提交 fd86fdeb 作者: 张小凤

PostingLeaderboardDTO(update)

上级 f3812a4e
package com.mmc.csf.release.gambit.dto;
import com.mmc.csf.release.auth.qo.UserAccountQO;
import com.mmc.csf.user.vo.UserAccountVO;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small
* @Date 2023/9/21 15:56
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PostingLeaderboardDTO {
@ApiModelProperty(value = "用户id",example = "1")
private Integer userAccountId;
@ApiModelProperty(value = "用户发贴数量",example = "1")
private Integer number;
@ApiModelProperty(value = "用户信息",example = "")
private UserAccountVO userAccountVO;
}
package com.mmc.csf.release.gambit.qo;
import com.mmc.csf.release.model.group.Freeze;
import com.mmc.csf.release.model.group.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @Author small
* @Date 2023/9/21 15:58
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PostingLeaderboardQO {
@ApiModelProperty(value = "页码",example = "1")
@NotNull(message = "页码不能为空", groups = { Page.class, Freeze.class })
@Min(value = 1, groups = Page.class,message = "pageNo不能少于1")
private Integer pageNo;
@ApiModelProperty(value = "每页显示数",example = "10")
@NotNull(message = "每页显示数不能为空", groups = { Page.class, Freeze.class })
@Min(value = 1, groups = Page.class,message = "pageSize不能少于1")
private Integer pageSize;
/**
* 初始化起始查询行并返回当前页
*/
public Integer buildCurrentPage() {
Integer pageNo = this.pageNo;
this.pageNo = (pageNo - 1) * pageSize;
return pageNo;
}
}
...@@ -8,7 +8,9 @@ import com.mmc.csf.release.forum.vo.CommentVO; ...@@ -8,7 +8,9 @@ import com.mmc.csf.release.forum.vo.CommentVO;
import com.mmc.csf.release.forum.vo.DynamicVO; import com.mmc.csf.release.forum.vo.DynamicVO;
import com.mmc.csf.release.forum.vo.ReplyToAReviewVO; import com.mmc.csf.release.forum.vo.ReplyToAReviewVO;
import com.mmc.csf.release.gambit.dto.ForumGambitDTO; import com.mmc.csf.release.gambit.dto.ForumGambitDTO;
import com.mmc.csf.release.gambit.dto.PostingLeaderboardDTO;
import com.mmc.csf.release.gambit.qo.ForumGambitQO; import com.mmc.csf.release.gambit.qo.ForumGambitQO;
import com.mmc.csf.release.gambit.qo.PostingLeaderboardQO;
import com.mmc.csf.release.gambit.vo.ForumGambitVO; import com.mmc.csf.release.gambit.vo.ForumGambitVO;
import com.mmc.csf.release.service.DynamicService; import com.mmc.csf.release.service.DynamicService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
...@@ -98,5 +100,12 @@ public class DynamicController extends BaseController { ...@@ -98,5 +100,12 @@ public class DynamicController extends BaseController {
return ResultBody.success(dynamicService.appGambitList(forumGambitQO)); return ResultBody.success(dynamicService.appGambitList(forumGambitQO));
} }
@ApiOperation(value = "发贴排行榜")
@PostMapping("/postingLeaderboard")
public ResultBody<PostingLeaderboardDTO> postingLeaderboard(@RequestBody PostingLeaderboardQO postingLeaderboardQO){
return ResultBody.success(dynamicService.postingLeaderboard(postingLeaderboardQO));
}
} }
...@@ -2,7 +2,9 @@ package com.mmc.csf.release.dao; ...@@ -2,7 +2,9 @@ package com.mmc.csf.release.dao;
import com.mmc.csf.release.entity.forum.*; import com.mmc.csf.release.entity.forum.*;
import com.mmc.csf.release.entity.gambit.ForumGambitDO; import com.mmc.csf.release.entity.gambit.ForumGambitDO;
import com.mmc.csf.release.gambit.dto.PostingLeaderboardDTO;
import com.mmc.csf.release.gambit.qo.ForumGambitQO; import com.mmc.csf.release.gambit.qo.ForumGambitQO;
import com.mmc.csf.release.gambit.qo.PostingLeaderboardQO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -190,4 +192,5 @@ public interface DynamicDao { ...@@ -190,4 +192,5 @@ public interface DynamicDao {
void deleteReview(Integer id, Integer userAccountId); void deleteReview(Integer id, Integer userAccountId);
List<PostingLeaderboardDTO> postingLeaderboardCount(PostingLeaderboardQO postingLeaderboardQO);
} }
...@@ -6,6 +6,7 @@ import com.mmc.csf.release.forum.vo.CommentVO; ...@@ -6,6 +6,7 @@ import com.mmc.csf.release.forum.vo.CommentVO;
import com.mmc.csf.release.forum.vo.DynamicVO; import com.mmc.csf.release.forum.vo.DynamicVO;
import com.mmc.csf.release.forum.vo.ReplyToAReviewVO; import com.mmc.csf.release.forum.vo.ReplyToAReviewVO;
import com.mmc.csf.release.gambit.qo.ForumGambitQO; import com.mmc.csf.release.gambit.qo.ForumGambitQO;
import com.mmc.csf.release.gambit.qo.PostingLeaderboardQO;
import com.mmc.csf.release.gambit.vo.ForumGambitVO; import com.mmc.csf.release.gambit.vo.ForumGambitVO;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -65,4 +66,6 @@ public interface DynamicService { ...@@ -65,4 +66,6 @@ public interface DynamicService {
PageResult appGambitList(ForumGambitQO forumGambitQO); PageResult appGambitList(ForumGambitQO forumGambitQO);
ResultBody reviewLikes(Integer id, Integer userAccountId, Boolean status); ResultBody reviewLikes(Integer id, Integer userAccountId, Boolean status);
PageResult postingLeaderboard(PostingLeaderboardQO postingLeaderboardQO);
} }
...@@ -17,7 +17,9 @@ import com.mmc.csf.release.entity.gambit.ForumGambitDO; ...@@ -17,7 +17,9 @@ import com.mmc.csf.release.entity.gambit.ForumGambitDO;
import com.mmc.csf.release.feign.UserAppApi; import com.mmc.csf.release.feign.UserAppApi;
import com.mmc.csf.release.forum.vo.*; import com.mmc.csf.release.forum.vo.*;
import com.mmc.csf.release.gambit.dto.ForumGambitDTO; import com.mmc.csf.release.gambit.dto.ForumGambitDTO;
import com.mmc.csf.release.gambit.dto.PostingLeaderboardDTO;
import com.mmc.csf.release.gambit.qo.ForumGambitQO; import com.mmc.csf.release.gambit.qo.ForumGambitQO;
import com.mmc.csf.release.gambit.qo.PostingLeaderboardQO;
import com.mmc.csf.release.gambit.vo.ForumGambitVO; import com.mmc.csf.release.gambit.vo.ForumGambitVO;
import com.mmc.csf.release.service.DynamicService; import com.mmc.csf.release.service.DynamicService;
import com.mmc.csf.release.service.WxApiService; import com.mmc.csf.release.service.WxApiService;
...@@ -39,6 +41,7 @@ import java.util.Map; ...@@ -39,6 +41,7 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @Author LW * @Author LW
...@@ -403,6 +406,18 @@ public class DynamicServiceImpl implements DynamicService { ...@@ -403,6 +406,18 @@ public class DynamicServiceImpl implements DynamicService {
return ResultBody.success(); return ResultBody.success();
} }
@Override
public PageResult postingLeaderboard(PostingLeaderboardQO postingLeaderboardQO) {
Integer pageNo = postingLeaderboardQO.getPageNo();
postingLeaderboardQO.buildCurrentPage();
List<PostingLeaderboardDTO> postingLeaderboardDTOS = dynamicDao.postingLeaderboardCount(postingLeaderboardQO);
for (PostingLeaderboardDTO postingLeaderboardDTO : postingLeaderboardDTOS) {
UserAccountVO info = info(postingLeaderboardDTO.getUserAccountId());
postingLeaderboardDTO.setUserAccountVO(info);
}
return PageResult.buildPage(pageNo, postingLeaderboardQO.getPageSize(),postingLeaderboardDTOS.size(),postingLeaderboardDTOS);
}
public UserAccountVO info( Integer userAccountId) { public UserAccountVO info( Integer userAccountId) {
String token = null; String token = null;
......
...@@ -129,6 +129,23 @@ ...@@ -129,6 +129,23 @@
delete from forum_review_likes where user_account_id=#{userAccountId} and review_id=#{id} delete from forum_review_likes where user_account_id=#{userAccountId} and review_id=#{id}
</delete> </delete>
<select id="postingLeaderboardCount" resultType="com.mmc.csf.release.gambit.dto.PostingLeaderboardDTO">
SELECT
user_account_id,
count( user_account_id ) AS number
FROM
forum_dynamic
WHERE
is_deleted = 0
AND check_status = 1
GROUP BY
user_account_id
HAVING
count( user_account_id )>= 1
ORDER BY
number DESC
</select>
<insert id="insertReviewLikes" > <insert id="insertReviewLikes" >
insert into forum_review_likes(user_account_id,review_id,create_time,update_time) values(#{userAccountId},#{id},NOW(),NOW()) insert into forum_review_likes(user_account_id,review_id,create_time,update_time) values(#{userAccountId},#{id},NOW(),NOW())
</insert> </insert>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论