Просмотр исходного кода

Merge branch 'distribute_general_rank' into pre

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

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

@@ -2,6 +2,7 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.cyksj.model.entity.UserActivityRankRobot;
 import com.cyksj.model.entity.UserDistributeRankStatisticsRecord;
 import com.cyksj.model.views.ActivityOrderDataView;
 import com.cyksj.model.views.DistributeUserRankView;
@@ -26,4 +27,6 @@ public interface UserDistributeRankStatisticsRecordMapper extends BaseMapper<Use
 	ActivityOrderDataView selectAcOrderDataView(Long acId);
 
 	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);
 }

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserActivityRankRobot.java

@@ -1,5 +1,7 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -43,4 +45,24 @@ public class UserActivityRankRobot extends BaseEntity{
 	 * 初始金额
 	 */
 	private BigDecimal initMoney;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private Integer orders;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private Integer orderRank;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private BigDecimal money;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private Integer moneyRank;
+
+	@DbIgnore
+	@TableField(exist = false)
+	private Integer rankId;
 }

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

@@ -27,7 +27,7 @@
               from user_distribute_rank_statistics_record udsr
                        left join user u on u.id = udsr.user_id
               where statistics_start_time = #{statisticsTime}) s
-        where udsr.user_id = #{userId}
+        where s.user_id = #{userId}
     </select>
 
     <select id="getPreviousWinners" resultType="com.cyksj.model.views.DistributeUserRankView">
@@ -77,4 +77,19 @@
             order by ${orderBy} ${sort}
         </if>
     </select>
+
+    <select id="getRobotRankInfo" resultType="com.cyksj.model.entity.UserActivityRankRobot">
+        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,
+                     robot_id
+              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.robot_id = #{robotId}
+    </select>
 </mapper>

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

@@ -79,10 +79,10 @@ public class DistributeRankController {
 	public Result<DistributeUserRankPersonalView> getPersonal(@RequestParam(defaultValue = "0") Integer type, @RequestParam(defaultValue = "week") String statisticsType, @RequestParam(defaultValue = "1") Integer start, @RequestParam(defaultValue = "5") Integer limit) {
 		long userId = StpUserUtil.getLoginIdAsLong();
 		DistributeUserRankPersonalView distributeUserRankPersonalView = new DistributeUserRankPersonalView();
-		String orderByField = "money";
+		String orderByField = Constant.money;
 		//订单排行
 		if (type == 1) {
-			orderByField = "orders";
+			orderByField = Constant.orders;
 		}
 		String statisticsTime;
 		if (Constant.week.equals(statisticsType)) {

+ 20 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/active/UserActivityController.java

@@ -89,9 +89,27 @@ public class UserActivityController {
 		SearchResult<UserActivity> search = beanSearcher.search(UserActivity.class, MapUtils.flatBuilder(request.getParameterMap()).field(UserActivity::getDeleted, 1).build());
 		search.getDataList().forEach(e -> {
 			if (e.getType() == 1) {
-				List<UserActivityRankRobot> UserActivityRankRobots = rankRootMapper.selectList(Wrappers.lambdaQuery(UserActivityRankRobot.class)
+				String statisticsTime;
+				if (e.getStatisticsType().equals(Constant.week)) {
+					statisticsTime = LocalDate.now().with(ChronoField.DAY_OF_WEEK, DayOfWeek.MONDAY.getValue()).toString();
+				} else {
+					statisticsTime = LocalDate.now().with(ChronoField.DAY_OF_MONTH, DayOfWeek.MONDAY.getValue()).toString();
+				}
+				List<UserActivityRankRobot> userActivityRankRobots = rankRootMapper.selectList(Wrappers.lambdaQuery(UserActivityRankRobot.class)
 						.eq(UserActivityRankRobot::getAcId, e.getId()));
-				e.setRankRobots(UserActivityRankRobots);
+				userActivityRankRobots.forEach(robot -> {
+					UserActivityRankRobot moneyRank = userDistributeRankStatisticsRecordMapper.getRobotRankInfo(robot.getId(), Constant.money, statisticsTime);
+					if (moneyRank != null) {
+						robot.setMoney(moneyRank.getMoney());
+						robot.setMoneyRank(moneyRank.getRankId());
+					}
+					UserActivityRankRobot orderRank = userDistributeRankStatisticsRecordMapper.getRobotRankInfo(robot.getId(), Constant.orders, statisticsTime);
+					if (orderRank != null) {
+						robot.setOrders(orderRank.getOrders());
+						robot.setOrderRank(orderRank.getRankId());
+					}
+				});
+				e.setRankRobots(userActivityRankRobots);
 
 				try {
 					if (StrUtil.isNotBlank(e.getRewardInfo())) {