zoujiajian 2 лет назад
Родитель
Сommit
e209056726

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/mapper/UserDistributeRankStatisticsRecordMapper.java

@@ -30,5 +30,5 @@ public interface UserDistributeRankStatisticsRecordMapper extends BaseMapper<Use
 
 	UserActivityRankRobot getRobotRankInfo(@Param("robotId") Long robotId, @Param("filed") String filed, @Param("statisticsTime") String statisticsTime);
 
-	DistributeUserRankView getMoreSelfRank(Integer rankId);
+	DistributeUserRankView getMoreSelfRank(@Param("rankId") Integer rankId, @Param("filed") String filed, @Param("statisticsTime") String statisticsTime);
 }

+ 16 - 10
netflix-dao/src/main/resources/mapper/UserDistributeRankStatisticsRecordMapper.xml

@@ -97,15 +97,21 @@
 
     <select id="getMoreSelfRank" resultType="com.cyksj.model.views.DistributeUserRankView">
         select *
-        from (select ROW_NUMBER()                             OVER (ORDER BY ${filed} desc) AS rank_id, concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*', RIGHT(ifnull(u.nickname,udsr.nickname),1)) as nickname,
-                     ifnull(u.headimgurl, udsr.headimgurl) as headimgurl,
-                     udsr.user_id,
-                     udsr.statistics_start_time,
-                     udsr.money,
-                     udsr.orders
-              from user_distribute_rank_statistics_record udsr
-                       left join user u on u.id = udsr.user_id
-              where statistics_start_time = #{statisticsTime}) s
-        where s.user_id > #{rankId} order by rank_id desc limit 1
+        from (select ROW_NUMBER() OVER (ORDER BY ${filed} desc) AS rank_id,
+        concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*', RIGHT(ifnull(u.nickname,udsr.nickname),1)) as nickname,
+        ifnull(u.headimgurl, udsr.headimgurl) as headimgurl,
+        udsr.user_id,
+        udsr.statistics_start_time,
+        udsr.money,
+        udsr.orders
+        from user_distribute_rank_statistics_record udsr
+        left join user u on u.id = udsr.user_id
+        where statistics_start_time = #{statisticsTime}) s
+        <where>
+            <if test="rankId != null">
+                s.user_id > #{rankId}
+            </if>
+        </where>
+        order by rank_id desc limit 1
     </select>
 </mapper>

+ 14 - 10
netflix-web/src/main/java/com/cyksj/web/controller/distribute/DistributeRankController.java

@@ -1,6 +1,7 @@
 package com.cyksj.web.controller.distribute;
 
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.constant.Constant;
@@ -25,6 +26,7 @@ import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.temporal.ChronoField;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * server/分销排行
@@ -88,18 +90,20 @@ public class DistributeRankController {
 			LocalDate monday = LocalDate.now().with(ChronoField.DAY_OF_WEEK, DayOfWeek.MONDAY.getValue());
 			statisticsTime = monday.toString();
 		} else {
-			LocalDate monday = LocalDate.now().with(ChronoField.DAY_OF_MONTH, DayOfWeek.MONDAY.getValue()).plusMonths(-1);
-			statisticsTime = monday.toString();
+			DateTime beginOfMonth = DateUtil.beginOfMonth(DateTime.now());
+			statisticsTime = beginOfMonth.toDateStr();
 		}
 
-		DistributeUserRankView self = userDistributeRankStatisticsRecordMapper.getSelfRank(orderByField, userId, statisticsTime);
+		DistributeUserRankView self = Optional.ofNullable(userDistributeRankStatisticsRecordMapper.getSelfRank(orderByField, userId, statisticsTime)).orElse(new DistributeUserRankView());
 		distributeUserRankPersonalView.setSelf(self);
 
-		DistributeUserRankView more = userDistributeRankStatisticsRecordMapper.getMoreSelfRank(self.getRankId());
-		if (type == 1) {
-			self.setGapOrders(more.getOrders() - self.getOrders());
-		} else {
-			self.setGapMoney(more.getMoney().subtract(self.getMoney()));
+		DistributeUserRankView more = userDistributeRankStatisticsRecordMapper.getMoreSelfRank(self.getRankId(), orderByField, statisticsTime);
+		if (more != null) {
+			if (type == 1) {
+				self.setGapOrders(more.getOrders() - self.getOrders());
+			} else {
+				self.setGapMoney(more.getMoney().subtract(self.getMoney()));
+			}
 		}
 
 		Page<DistributeUserRankView> ranks = userDistributeRankStatisticsRecordMapper.selectDistributeRanks(orderByField, statisticsTime, new Page<>(start, limit));
@@ -118,8 +122,8 @@ public class DistributeRankController {
 			LocalDate monday = LocalDate.now().with(ChronoField.DAY_OF_WEEK, DayOfWeek.MONDAY.getValue()).plusWeeks(-1);
 			lastTime = monday.toString();
 		} else {
-			LocalDate monday = LocalDate.now().with(ChronoField.DAY_OF_MONTH, DayOfWeek.MONDAY.getValue()).plusMonths(-1);
-			lastTime = monday.toString();
+			DateTime lastBeginOfMonth = DateUtil.offsetMonth(DateUtil.beginOfMonth(DateTime.now()), -1);
+			lastTime = lastBeginOfMonth.toDateStr();
 		}
 		String orderByField = "money";
 		if (type == 1) {