Преглед на файлове

商户端-严选达人-排行榜

jyc преди 1 месец
родител
ревизия
c0be097733

+ 19 - 3
alien-entity/src/main/java/shop/alien/mapper/LifeUserExpertMapper.java

@@ -117,12 +117,13 @@ public interface LifeUserExpertMapper extends BaseMapper<LifeUserExpert> {
             "    where delete_flag = 0 " +
             "    group by followed_id " +
             ") " +
-            " select expert.id, expert.expert_code, expert.expert_type, user.id AS user_id, user.user_image, user.user_name, user.user_phone, ifnull(fans.num, 0) fansNum " +
+            " select expert.id, expert.expert_code,expert.review_time reviewTime, expert.expert_type, user.id AS user_id, user.user_image, user.user_name, user.user_phone, ifnull(fans.num, 0) fansNum, ifnull(sum(work.like_count),0) likeNum " +
             " from life_user_expert expert " +
             " left join life_user user on user.id = expert.user_id " +
+            " left join life_user_expert_works work on expert.id = work.expert_id " +
             " left join fans on fans.followed_id = concat('user_', user.user_phone)  " +
-            " where expert.delete_flag = 0 and user.delete_flag = 0 " +
-            " ORDER BY fansNum DESC")
+            " where expert.delete_flag = 0 and user.delete_flag = 0 and work.delete_flag = 0 and expert.expert_status = 0 " +
+            " ORDER BY fansNum,reviewTime DESC")
     List<LifeUserExpertVo> getRankList();
 
     @Select("with fans as ( " +
@@ -130,6 +131,21 @@ public interface LifeUserExpertMapper extends BaseMapper<LifeUserExpert> {
             "    from life_fans " +
             "    where delete_flag = 0 " +
             "    group by followed_id " +
+            ") " +
+            " select expert.id, expert.expert_code,expert.review_time reviewTime, expert.expert_type, user.id AS user_id, user.user_image, user.user_name, user.user_phone, ifnull(fans.num, 0) fansNum, ifnull(sum(work.like_count),0) likeNum " +
+            " from life_user_expert expert " +
+            " left join life_user user on user.id = expert.user_id " +
+            " left join life_user_expert_works work on expert.id = work.expert_id " +
+            " left join fans on fans.followed_id = concat('user_', user.user_phone)  " +
+            " where expert.delete_flag = 0 and user.delete_flag = 0 and work.delete_flag = 0 and expert.expert_status = 0 " +
+            " ORDER BY likeNum,reviewTime DESC")
+    List<LifeUserExpertVo> getRankListByLikeCount();
+
+    @Select("with fans as ( " +
+            "    select followed_id, count(id) num " +
+            "    from life_fans " +
+            "    where delete_flag = 0 " +
+            "    group by followed_id " +
             "), " +  // 这里添加逗号分隔不同的 CTE
             "works as ( " +
             "    select expert_id, count(id) worksNum, sum(like_count) likeNum, sum(play_count) playNum " +

+ 2 - 2
alien-store/src/main/java/shop/alien/store/controller/StoreUserExpertController.java

@@ -40,9 +40,9 @@ public class StoreUserExpertController {
     @ApiOperation("排行榜查询")
     @ApiOperationSupport(order = 2)
     @GetMapping("/getRankList")
-    public R<List<LifeUserExpertVo>> getRankList() {
+    public R<List<LifeUserExpertVo>> getRankList(@RequestParam("type") Integer type) {
         log.info("StoreUserExpertController.getRankList");
-        return R.data(storeUserExpertService.getRankList());
+        return R.data(storeUserExpertService.getRankList(type));
     }
 
     @ApiOperation("达人详情")

+ 1 - 1
alien-store/src/main/java/shop/alien/store/service/StoreUserExpertService.java

@@ -12,7 +12,7 @@ import java.util.Map;
 
 public interface StoreUserExpertService extends IService<LifeUserExpert> {
 
-    List<LifeUserExpertVo> getRankList();
+    List<LifeUserExpertVo> getRankList(Integer type);
 
     List<Map<String, LifeUserExpertVo>> getExpertDetails(Integer expertId);
 

+ 6 - 2
alien-store/src/main/java/shop/alien/store/service/impl/StoreUserExpertServiceImpl.java

@@ -48,8 +48,12 @@ public class StoreUserExpertServiceImpl extends ServiceImpl<LifeUserExpertMapper
     private final LifeUserMapper lifeUserMapper;
 
     @Override
-    public List<LifeUserExpertVo> getRankList() {
-        return lifeUserExpertMapper.getRankList();
+    public List<LifeUserExpertVo> getRankList(Integer type) {
+        if (type == 0) {
+            return lifeUserExpertMapper.getRankList();
+        }else {
+            return lifeUserExpertMapper.getRankListByLikeCount();
+        }
     }
 
     @Override