Переглянути джерело

fix 分销排行奖励明细

zoujiajian 1 рік тому
батько
коміт
1d63642aa8

+ 54 - 0
netflix-dao/src/main/java/com/cyksj/model/views/DistributeUserRankPreView.java

@@ -0,0 +1,54 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: DistributeUserRankPreView
+ * 创建者: JavaZou
+ * 创建时间:2024/9/2 15:43
+ */
+@Getter
+@Setter
+@SearchBean(tables = "user_distribute_rank_reward_detail udsr left join user u on u.id = udsr.user_id")
+public class DistributeUserRankPreView {
+
+	@DbField("udsr.rank_id")
+	private Integer rankId;
+
+	@DbField("udsr.user_id")
+	private Long userId;
+
+	@DbField("concat(LEFT(ifnull(u.nickname,udsr.nickname),1),'*',RIGHT(ifnull(u.nickname,udsr.nickname),1))")
+	private String nickname;
+
+	@DbField("ifnull(u.headimgurl,udsr.headimgurl)")
+	private String headimgurl;
+
+	@DbField("udsr.type")
+	private Integer type;
+
+	@DbField("udsr.orders")
+	private Integer orders = 0;
+
+	@DbField("udsr.statistics_start_time")
+	private String statisticsStartTime;
+
+	@DbField("udsr.money")
+	private BigDecimal money = BigDecimal.ZERO;
+
+	@DbField("udsr.reward_type")
+	private Integer rewardType;
+
+	@DbField("udsr.reward")
+	private String reward;
+
+	@DbIgnore
+	private Boolean isPrize = false;
+}

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

@@ -128,7 +128,7 @@ public class DistributeRankController {
 	 * 上期获奖名单
 	 */
 	@GetMapping("/get/previous/winners")
-	public Result<List<DistributeUserRankView>> getPreviousWinners(@RequestParam(defaultValue = "0") Integer type, @RequestParam(defaultValue = "week") String statisticsType) {
+	public Result<List<DistributeUserRankPreView>> getPreviousWinners(@RequestParam(defaultValue = "0") Integer type, @RequestParam(defaultValue = "week") String statisticsType) throws Exception {
 		long userId = StpUserUtil.getLoginIdAsLong();
 		String lastTime;
 		if (Constant.week.equals(statisticsType)) {
@@ -139,11 +139,8 @@ public class DistributeRankController {
 			DateTime lastBeginOfMonth = DateUtil.offsetMonth(DateUtil.beginOfMonth(DateTime.now()), -1);
 			lastTime = lastBeginOfMonth.toDateStr();
 		}
-		String orderByField = "money";
-		if (type == 1) {
-			orderByField = "orders";
-		}
-		List<DistributeUserRankView> ranks = userDistributeRankStatisticsRecordMapper.getPreviousWinners(orderByField, lastTime);
+		List<DistributeUserRankPreView> ranks = beanSearcher.searchAll(DistributeUserRankPreView.class, MapUtils.builder().field(DistributeUserRankPreView::getType, type)
+				.field(DistributeUserRankPreView::getStatisticsStartTime, lastTime).build());
 
 		ranks.forEach(rank -> {
 			if (ObjectUtil.equal(userId, rank.getUserId())) {
@@ -152,6 +149,7 @@ public class DistributeRankController {
 				rank.setUserId(null);
 			}
 		});
+
 		return GatewayResponse.SUCCESS.newBuilder().toResult(ranks);
 	}
 

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/user/DistributePopularizeController.java

@@ -189,7 +189,7 @@ public class DistributePopularizeController {
 			BigDecimal money = distributePointsExchangeMoney.getMoney();
 			BigDecimal oneHundred = BigDecimal.valueOf(100);
 			if (user.getPoints().compareTo(BigDecimal.ZERO) >= 0) {
-				distributePopularizeView.setGotMoney(user.getPoints().divide(points).multiply(money).divide(oneHundred));
+				distributePopularizeView.setGotMoney(user.getPoints().divide(points).multiply(money).divide(oneHundred, 2, RoundingMode.HALF_DOWN));
 			}
 			if (user.getPoints().compareTo(BigDecimal.ZERO) >= 0) {
 				distributePopularizeView.setWaitingMoney(waitingPoints.divide(points).multiply(money).divide(oneHundred, 2, RoundingMode.DOWN));