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

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

@@ -29,4 +29,6 @@ public interface UserDistributeRankStatisticsRecordMapper extends BaseMapper<Use
 	Page<UserDistributeRankActivityView> rankPage(@Param("nickname") String nickname, @Param("userId") Long userId, @Param("date") String date, @Param("page") Page<UserDistributeRankActivityView> objects, @Param("filed") String filed, @Param("orderBy") String orderBy, @Param("sort") String sort);
 
 	UserActivityRankRobot getRobotRankInfo(@Param("robotId") Long robotId, @Param("filed") String filed, @Param("statisticsTime") String statisticsTime);
+
+	DistributeUserRankView getMoreSelfRank(Integer rankId);
 }

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeUserRankView.java

@@ -42,4 +42,10 @@ public class DistributeUserRankView {
 
 	@DbField("udsr.money")
 	private BigDecimal money = BigDecimal.ZERO;
+
+	@DbIgnore
+	private Integer gapOrders;
+
+	@DbIgnore
+	private BigDecimal gapMoney;
 }

+ 14 - 0
netflix-dao/src/main/resources/mapper/UserDistributeRankStatisticsRecordMapper.xml

@@ -94,4 +94,18 @@
               where statistics_start_time = #{statisticsTime}) s
         where s.robot_id = #{robotId}
     </select>
+
+    <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
+    </select>
 </mapper>

+ 6 - 0
netflix-web/src/main/java/com/cyksj/web/controller/distribute/DistributeRankController.java

@@ -95,6 +95,12 @@ public class DistributeRankController {
 		DistributeUserRankView self = userDistributeRankStatisticsRecordMapper.getSelfRank(orderByField, userId, statisticsTime);
 		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()));
+		}
 
 		Page<DistributeUserRankView> ranks = userDistributeRankStatisticsRecordMapper.selectDistributeRanks(orderByField, statisticsTime, new Page<>(start, limit));
 		distributeUserRankPersonalView.setRanks(ranks);