Yangzw 9 mesiacov pred
rodič
commit
02b01bbbdc

+ 25 - 22
feifan-module-distri/feifan-module-distri-api/src/main/java/cn/newfeifan/mall/module/distri/enums/CaclEnum.java

@@ -6,28 +6,26 @@ import lombok.Getter;
 @Getter
 @AllArgsConstructor
 public enum CaclEnum {
-    PLATFORM_TOTAL_ADD(0, "平台总收益"),
-    PLATFORM_SERVICE_FEE(1, "平台服务费"),
-    PLATFORM_REVENUE(2, "平台收益"),
-    RECOMMENDED_PERSON_QUOTA(3, "直推奖获得可用积分"),
-    DIRECT_REFERRAL_QUOTA(4, "购物获得可用积分"),       //购物用户自得额度
-    TOGETHER_AWARD(5, "合赢奖"),
-    HIGH_QUOTA(6, "最高可以获得积分"),
-    SMALL_QUOTA_CRASH(7, "合赢奖获得"),
-    AFTER_CRASH_CALC_PT_TOTAL_QUOTA(8, "碰撞后计算平台总收益"),
-    ORDER_PAY_INTEGRAL(9, "购物使用积分进行支付"),      //购物使用积分进行支付
-    ORDER_REFUND_INTEGRAL(10, "退回退款订单项,消费者支付的积分"),
-    ORDER_INTEGRAL_UNFREEZE(11, "订单积分到账"),
-    AFTER_CRASH_CALC_PT_TOTAL_GROSS_QUOTA(12, "碰撞后计算平台收益"),
-    FREEZE_CHANGE_INTEGRAL(13, "冻结积分转化成可用积分"),
-    GROSS_PROFIT_BONUS_QUOTA_PERC_EXCEED_MAXIMUM_LIMIT(14, "合赢奖超额"),
-    GROSS_PROFIT_ANCESTOR_QUOTA_PERC_EXCEED_MAXIMUM_LIMIT(15, "直推奖超额"),
-    ORDER_CANCEL_BY_USER_REFUND_INTEGRAL(16,"取消订单,退回积分"),
-    ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL(17,"订单超时未支付,退回积分"),
-    ORDER_PAY_INTEGRAL_ANCESTER(18, "直推人购物,推荐人获得冻结积分"),//购物 上级直推人 获得积分
-    ORDER_REFUND_INTEGRAL_CONSUMER(19,"订单退款,收回消费者获得的冻结积分"),
-    ORDER_REFUND_INTEGRAL_ANCESTER(20,"订单退款,收回消费者的推荐人,获得的冻结积分"),
-    ORDER_PAY_INTEGRAL_CONSUMER(21, "消费者购物,获得冻结积分"),//购物者本人 获得积分
+    PLATFORM_TOTAL_ADD(0, "平台总收益","平台总收益"),
+    PLATFORM_SERVICE_FEE(1, "平台服务费","平台服务费"),
+    PLATFORM_REVENUE(2, "平台收益","平台收益"),
+    RECOMMENDED_PERSON_QUOTA(3, "直推奖获得","直推奖获得"),           //直推奖获得可用积分
+    DIRECT_REFERRAL_QUOTA(4, "购物获得","购物获得可用积分"),       //购物用户自得额度
+    TOGETHER_AWARD(5, "合赢奖","合赢奖"),
+    HIGH_QUOTA(6, "最高可以获得积分","最高可以获得积分"),
+    SMALL_QUOTA_CRASH(7, "合赢奖获得","小区额度分配"),
+    AFTER_CRASH_CALC_PT_TOTAL_QUOTA(8, "碰撞后计算平台总收益","碰撞后计算平台总收益"),
+    ORDER_PAY_INTEGRAL(9, "购物支付","购物使用积分进行支付"),      //购物使用积分进行支付
+    ORDER_REFUND_INTEGRAL(10, "退回退款返回","退回退款订单项,消费者支付的积分"),
+    AFTER_CRASH_CALC_PT_TOTAL_GROSS_QUOTA(12, "碰撞后计算平台收益","碰撞后计算平台收益"),
+    GROSS_PROFIT_BONUS_QUOTA_PERC_EXCEED_MAXIMUM_LIMIT(14, "合赢奖超额","合赢奖超额"),
+    GROSS_PROFIT_ANCESTOR_QUOTA_PERC_EXCEED_MAXIMUM_LIMIT(15, "直推奖超额","直推奖超额"),
+    ORDER_CANCEL_BY_USER_REFUND_INTEGRAL(16,"手动取消支付返回","取消订单,退回积分"),
+    ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL(17,"支付超时返回","订单超时未支付,退回积分"),
+    ORDER_PAY_INTEGRAL_ANCESTER(18, "直推奖获得","直推人购物,推荐人获得冻结积分"),//购物 上级直推人 获得积分
+    ORDER_REFUND_INTEGRAL_CONSUMER(19,"订单退款","订单退款,收回消费者获得的冻结积分"),
+    ORDER_REFUND_INTEGRAL_ANCESTER(20,"订单退款","订单退款,收回消费者的推荐人,获得的冻结积分"),
+    ORDER_PAY_INTEGRAL_CONSUMER(21, "购物获得","消费者购物,获得冻结积分"),//购物者本人 获得积分
     ;
 
     /**
@@ -39,6 +37,11 @@ public enum CaclEnum {
      */
     private final String name;
 
+    /**
+     * 描述
+     */
+    private final String mark;
+
     public static CaclEnum getCaclEnumByValue(int value) {
         for (CaclEnum caclEnum : CaclEnum.values()) {
             if (caclEnum.getType() == value) {

+ 5 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/app/ptprofitlog/vo/PtProfitLogRespVO.java

@@ -71,4 +71,9 @@ public class PtProfitLogRespVO {
     @Schema(description = "直推奖超出额度")
     private Long ancestorQuotaAmount;
 
+    @Schema(description = "显示这条记录是由谁产生的用户名")
+    private String username;
+
+    @Schema(description = "产生积分的用户ID,例如:下订单的用户ID", example = "31502")
+    private Long generateUserId;
 }

+ 21 - 5
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/ptprofitlog/PtProfitLogMapper.java

@@ -28,18 +28,29 @@ public interface PtProfitLogMapper extends BaseMapperX<PtProfitLogDO> {
         List<Integer> profitStatus = null;
 
         if (!reqVO.getIsFreeze()) {
+            //可用
             profitStatus = Arrays.asList(
                     RECOMMENDED_PERSON_QUOTA.getType(),
                     DIRECT_REFERRAL_QUOTA.getType(),
-                    FREEZE_CHANGE_INTEGRAL.getType(),
-                    SMALL_QUOTA_CRASH.getType());
+                    SMALL_QUOTA_CRASH.getType(),
+                    ORDER_PAY_INTEGRAL.getType(),
+                    ORDER_REFUND_INTEGRAL.getType(),
+                    ORDER_CANCEL_BY_USER_REFUND_INTEGRAL.getType(),
+                    ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL.getType()
+            );
         } else {
+            //冻结
             profitStatus = Arrays.asList(
+                    RECOMMENDED_PERSON_QUOTA.getType(),
                     DIRECT_REFERRAL_QUOTA.getType(),
-                    ORDER_PAY_INTEGRAL.getType());
+                    ORDER_PAY_INTEGRAL_ANCESTER.getType(),
+                    ORDER_REFUND_INTEGRAL_CONSUMER.getType(),
+                    ORDER_REFUND_INTEGRAL_ANCESTER.getType(),
+                    ORDER_PAY_INTEGRAL_CONSUMER.getType());
         }
 
         if (!reqVO.getIsFreeze() && reqVO.getUserId().equals(PT_ID)) {
+            //平台账号可用
             profitStatus = Arrays.asList(
                     PLATFORM_TOTAL_ADD.getType(),
                     PLATFORM_SERVICE_FEE.getType(),
@@ -52,8 +63,13 @@ public interface PtProfitLogMapper extends BaseMapperX<PtProfitLogDO> {
             reqVO.setUserId(null);
         } else if (reqVO.getIsFreeze() && reqVO.getUserId().equals(PT_ID)) {
             profitStatus = Arrays.asList(
+                    RECOMMENDED_PERSON_QUOTA.getType(),
                     DIRECT_REFERRAL_QUOTA.getType(),
-                    ORDER_PAY_INTEGRAL.getType()
+                    SMALL_QUOTA_CRASH.getType(),
+                    ORDER_PAY_INTEGRAL.getType(),
+                    ORDER_REFUND_INTEGRAL.getType(),
+                    ORDER_CANCEL_BY_USER_REFUND_INTEGRAL.getType(),
+                    ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL.getType()
             );
             reqVO.setUserId(null);
         }
@@ -69,7 +85,7 @@ public interface PtProfitLogMapper extends BaseMapperX<PtProfitLogDO> {
         return selectPage(reqVO, queryWrapper);
     }
 
-    default PageResult<PtProfitLogDO> getMaxAmountPage(PtProfitLogPageReqVO pageReqVO){
+    default PageResult<PtProfitLogDO> getMaxAmountPage(PtProfitLogPageReqVO pageReqVO) {
         List<Integer> profitStatus = Arrays.asList(
                 DIRECT_REFERRAL_QUOTA.getType(),
                 RECOMMENDED_PERSON_QUOTA.getType(),

+ 15 - 1
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ptprofitlog/PtProfitLogServiceImpl.java

@@ -2,6 +2,7 @@ package cn.newfeifan.mall.module.distri.service.ptprofitlog;
 
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.module.distri.enums.CaclEnum;
+import cn.newfeifan.mall.module.member.service.user.MemberUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -20,6 +21,7 @@ import cn.newfeifan.mall.module.distri.dal.mysql.ptprofitlog.PtProfitLogMapper;
 
 import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
+import static cn.newfeifan.mall.module.distri.enums.CaclEnum.RECOMMENDED_PERSON_QUOTA;
 import static cn.newfeifan.mall.module.distri.enums.ErrorCodeConstants.*;
 
 /**
@@ -34,6 +36,9 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
     @Resource
     private PtProfitLogMapper ptProfitLogMapper;
 
+    @Resource
+    private MemberUserService memberUserService;
+
     @Override
     public Long createPtProfitLog(PtProfitLogSaveReqVO createReqVO) {
         // 插入
@@ -76,6 +81,11 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
         pageReqVO.setUserId(getLoginUserId());
         PageResult<PtProfitLogRespVO> result = BeanUtils.toBean(ptProfitLogMapper.selectPage(pageReqVO), PtProfitLogRespVO.class);
         for (PtProfitLogRespVO ptProfitLogRespVO : result.getList()) {
+            if (ptProfitLogRespVO.getProfitStatus().equals(RECOMMENDED_PERSON_QUOTA.getType()) ||
+                    ptProfitLogRespVO.getProfitStatus().equals(CaclEnum.ORDER_PAY_INTEGRAL_ANCESTER.getType()) ||
+                    ptProfitLogRespVO.getProfitStatus().equals(CaclEnum.ORDER_REFUND_INTEGRAL_ANCESTER.getType())) {
+                ptProfitLogRespVO.setUsername(memberUserService.getUser(ptProfitLogRespVO.getGenerateUserId()).getUsername());
+            }
             ptProfitLogRespVO.setProfitStatusName(Objects.requireNonNull(CaclEnum.getCaclEnumByValue(ptProfitLogRespVO.getProfitStatus())).getName());
         }
         return result;
@@ -86,6 +96,9 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
         pageReqVO.setUserId(getLoginUserId());
         PageResult<PtProfitLogRespVO> result = BeanUtils.toBean(ptProfitLogMapper.getMaxAmountPage(pageReqVO), PtProfitLogRespVO.class);
         for (PtProfitLogRespVO ptProfitLogRespVO : result.getList()) {
+            if (ptProfitLogRespVO.getProfitStatus().equals(RECOMMENDED_PERSON_QUOTA.getType())) {
+                ptProfitLogRespVO.setUsername(memberUserService.getUser(ptProfitLogRespVO.getGenerateUserId()).getUsername());
+            }
             ptProfitLogRespVO.setProfitStatusName(Objects.requireNonNull(CaclEnum.getCaclEnumByValue(ptProfitLogRespVO.getProfitStatus())).getName());
         }
         return result;
@@ -99,6 +112,7 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
 
     /**
      * 添加一条用户积分日志消息
+     *
      * @param userId
      * @param caclEnum
      * @param amount
@@ -117,7 +131,7 @@ public class PtProfitLogServiceImpl implements PtProfitLogService {
                            String percentTemplate,
                            Long tradeOrderId,
                            String OrderNum
-                           ) {
+    ) {
         PtProfitLogSaveReqVO ptProfitLog = PtProfitLogSaveReqVO.builder()
                 .afterAmount(afterAmount)
                 .amount(amount)

+ 9 - 3
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/socialstatus/SocialStatusServiceImpl.java

@@ -81,14 +81,20 @@ public class SocialStatusServiceImpl implements SocialStatusService {
         );
 
         SocialStatusBO socialStatusBO = SocialStatusBO.builder().build();
+
         for (int i = 0; i < socialStatusDOS.size(); i++) {
             if (point < socialStatusDOS.get(i).getPoint()) {
-                socialStatusBO.setId(socialStatusDOS.get(i - 1).getId());
-                socialStatusBO.setSocialUpNeed(socialStatusDOS.get(i).getPoint() - point);
+                if (point < socialStatusDOS.get(0).getPoint()) {
+                    socialStatusBO.setId(socialStatusDOS.get(i).getId());
+                    socialStatusBO.setSocialUpNeed(socialStatusDOS.get(i + 1).getPoint() - point);
+                } else {
+                    socialStatusBO.setId(socialStatusDOS.get(i - 1).getId());
+                    socialStatusBO.setSocialUpNeed(socialStatusDOS.get(i).getPoint() - point);
+                }
                 break;
             }
         }
-        if(socialStatusBO.getId() == null){
+        if (socialStatusBO.getId() == null) {
             socialStatusBO.setId(socialStatusDOS.get(socialStatusDOS.size() - 1).getId());
             socialStatusBO.setSocialUpNeed(0L);
         }