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

修改峰值的返回及显示

Yangzw 8 місяців тому
батько
коміт
af760f3556
10 змінених файлів з 63 додано та 12 видалено
  1. 7 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/IntegralController.java
  2. 2 1
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralPageReqVO.java
  3. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralRespVO.java
  4. 3 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralSaveReqVO.java
  5. 4 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java
  6. 5 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralService.java
  7. 20 0
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralServiceImpl.java
  8. 4 3
      feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ordercalc/OrderCalcServiceImpl.java
  9. 7 7
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java
  10. 7 1
      sql/mysql/建空库SQL/13_20240617.sql

+ 7 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/IntegralController.java

@@ -92,4 +92,11 @@ public class IntegralController {
                         BeanUtils.toBean(list, IntegralRespVO.class));
     }
 
+    @GetMapping("/initializeIntegralHighQuotaTotal")
+    @Operation(summary = "初始化累计积分峰值")
+    @PreAuthorize("@ss.hasPermission('distri:integral:initializeIntegralHighQuotaTotal')")
+    public CommonResult<String> initializeIntegralHighQuotaTotal() {
+        integralService.initializeIntegralHighQuotaTotal();
+        return success("success");
+    }
 }

+ 2 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralPageReqVO.java

@@ -45,5 +45,6 @@ public class IntegralPageReqVO extends PageParam {
     @Schema(description = "最高可获取积分")
     private Long highQuota;
 
-
+    @Schema(description = "累计获取的峰值")
+    private Long highQuotaTotal;
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralRespVO.java

@@ -53,4 +53,8 @@ public class IntegralRespVO {
     @Schema(description = "最高可获取积分", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("最高可获取积分")
     private Long highQuota;
+
+    @Schema(description = "累计获取的峰值")
+    @ExcelProperty("累计获取的峰值")
+    private Long highQuotaTotal;
 }

+ 3 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/integral/vo/IntegralSaveReqVO.java

@@ -46,4 +46,7 @@ public class IntegralSaveReqVO {
 
     @Schema(description = "冻结的最高可获取积分", requiredMode = Schema.RequiredMode.REQUIRED)
     private Long freezeHighQuota;
+
+    @Schema(description = "累计获取的峰值")
+    private Long highQuotaTotal;
 }

+ 4 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/dataobject/integral/IntegralDO.java

@@ -64,4 +64,8 @@ public class IntegralDO extends BaseDO {
      * 冻结的最高可获取积分
      */
     private Long freezeHighQuota;
+    /**
+     * 累计获取的峰值
+     */
+    private Long highQuotaTotal;
 }

+ 5 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralService.java

@@ -95,4 +95,9 @@ public interface IntegralService {
      * @param payTime
      */
     void updateIntegralFreezeHighQuota(Long generateUserId, Long userId, CaclEnum caclEnum, Long totalFreezeHighQuota, Long tradeOrderId, String orderNum, LocalDateTime payTime);
+
+    /**
+     * 初始化累计积分峰值
+     */
+    void initializeIntegralHighQuotaTotal();
 }

+ 20 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/integral/IntegralServiceImpl.java

@@ -24,6 +24,7 @@ import cn.newfeifan.mall.framework.common.util.object.BeanUtils;
 import cn.newfeifan.mall.module.distri.dal.mysql.integral.IntegralMapper;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.newfeifan.mall.module.distri.enums.CaclEnum.DIRECT_REFERRAL_QUOTA;
 import static cn.newfeifan.mall.module.distri.enums.ErrorCodeConstants.*;
 
 /**
@@ -163,4 +164,23 @@ public class IntegralServiceImpl implements IntegralService {
         }
     }
 
+    @Override
+    public void initializeIntegralHighQuotaTotal() {
+        List<IntegralDO> integralDOS = integralMapper.selectList();
+        for (IntegralDO integralDO : integralDOS) {
+            List<PtProfitLogDO> ptProfitLogDOS = ptProfitLogMapper.selectList(new LambdaQueryWrapper<PtProfitLogDO>()
+                    .eq(PtProfitLogDO::getUserId, integralDO.getUserId())
+                    .eq(PtProfitLogDO::getProfitStatus, DIRECT_REFERRAL_QUOTA.getType())
+            );
+            for (PtProfitLogDO ptProfitLogDO : ptProfitLogDOS) {
+                integralDO.setHighQuotaTotal(integralDO.getHighQuotaTotal() + ptProfitLogDO.getMaxAvailablePointsAmount());
+            }
+
+            integralMapper.updateById(integralDO);
+            if(ptProfitLogDOS.size() > 1){
+                System.out.println("用户编号:[" + integralDO.getUserId() + "]");
+            }
+        }
+    }
+
 }

+ 4 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ordercalc/OrderCalcServiceImpl.java

@@ -421,7 +421,7 @@ public class OrderCalcServiceImpl implements OrderCalcService {
                     ptReplenish = ancestorQuotaInt - ancestorHighQuota;
                 }
             }
-            changeUserWallet(integralSaveReqVOS, integralDO, integralDOAncestor, ptIntegral, amount,
+            changeUserWallet(integralDO, integralDOAncestor, ptIntegral, amount,
                     descendantQuotaInt, highQuotaInt, grossProfitAfterBonusInt, platformQuotaInt);
 
             // ========== 修改平台信息 =================
@@ -595,7 +595,6 @@ public class OrderCalcServiceImpl implements OrderCalcService {
     /**
      * 修改用户钱包
      *
-     * @param integralSaveReqVOS 、
      * @param integralDO 当前用户钱包
      * @param integralDOAncestor 推荐人钱包
      * @param pt pt钱包
@@ -605,11 +604,13 @@ public class OrderCalcServiceImpl implements OrderCalcService {
      * @param ptA pt收益
      * @param ptB pt服务费
      */
-    private void changeUserWallet(List<IntegralSaveReqVO> integralSaveReqVOS, IntegralDO integralDO, IntegralDO integralDOAncestor, IntegralDO pt,
+    private void changeUserWallet(IntegralDO integralDO, IntegralDO integralDOAncestor, IntegralDO pt,
                                   Long ancestorQuota, Long descendantQuota, Long highQuota, Long ptA, Long ptB) {
         // 修改用户钱包
         // 增加直推人额度
         integralDO.setHighQuota(integralDO.getHighQuota() + highQuota);
+        //增加累计峰值
+        integralDO.setHighQuota(integralDO.getHighQuotaTotal() + highQuota);
         integralDO.setFreezeHighQuota(integralDO.getFreezeHighQuota() - highQuota);
         // todo 增加累计额度
 

+ 7 - 7
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -334,13 +334,13 @@ public class TradeOrderController {
         return success("success");
     }
 
-    @GetMapping("/calcOrderItem")
-    @Operation(summary = "计算所有订单的订单项的可获得峰值")
-    public CommonResult<String> calcOrderItem() {
-        tradeOrderUpdateService.updateOrderItemByFreezeHighQuota();
-
-        return success("success");
-    }
+//    @GetMapping("/calcOrderItem")
+//    @Operation(summary = "计算所有订单的订单项的可获得峰值")
+//    public CommonResult<String> calcOrderItem() {
+//        tradeOrderUpdateService.updateOrderItemByFreezeHighQuota();
+//
+//        return success("success");
+//    }
 
 
 }

+ 7 - 1
sql/mysql/建空库SQL/13_20240617.sql

@@ -39,4 +39,10 @@ ALTER TABLE distri_pt_profit_log
 ADD COLUMN after_freeze_high_quota BIGINT DEFAULT NULL COMMENT '变动后的冻结最大可用额度';
 
 ALTER TABLE trade_order_item
-    ADD COLUMN freeze_high_quota BIGINT DEFAULT NULL COMMENT '用户获得冻结最大可用额度';
+    ADD COLUMN freeze_high_quota BIGINT DEFAULT NULL COMMENT '用户获得冻结最大可用额度';
+
+ALTER TABLE trade_order_item
+    ADD COLUMN high_precision_price DECIMAL(11,6) DEFAULT 0 COMMENT '高精度价格';
+
+ALTER TABLE distri_integral
+    ADD COLUMN `high_quota_total` bigint(11) DEFAULT '0' COMMENT '累计获取的峰值';