فهرست منبع

训练营统计功能修复

mac 2 سال پیش
والد
کامیت
ac6e0c2b74

+ 1 - 1
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/dto/kxsapp/camp/CampOpenNumStatDTO.java

@@ -16,7 +16,7 @@ public class CampOpenNumStatDTO implements Serializable {
     /**
      * 用户ID
      */
-    private Long  userId;
+    private Integer  userId;
     /**
      * 品牌 ID
      */

+ 18 - 11
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -222,8 +222,11 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         KxsUser user = RetOps.of(kxsUserR)
                 .getData()
                 .orElseThrow(() -> new GlobalCustomerException(ErrorTypeEnum.USER_NOT_FOUND.getDescription()));
+        //参与训练营的创客ID
+        Integer campUserId = param.getUserId();
         if (kxsCamp == null) {
             kxsCamp = baseMapper.selectUserCamp(user.getPid());
+            campUserId = user.getPid();
         }
         if (kxsCamp == null) {
             return;
@@ -237,7 +240,7 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
             //给创客团队加金额
             KxsCampUser kxsCampUser = kxsCampUserService.getOne(Wrappers.<KxsCampUser>lambdaQuery()
                     .eq(KxsCampUser::getCampId, kxsCamp.getId())
-                    .eq(KxsCampUser::getUserId, param.getUserId()));
+                    .eq(KxsCampUser::getUserId, campUserId));
             kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
             kxsCampUserService.updateById(kxsCampUser);
             log.info("用户/上级{}参加训练营{},订单ID{}, 订单数{}", param.getUserId(), kxsCamp.getId(), param.getId(), kxsCamp.getOrderNum());
@@ -271,7 +274,7 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
             //给创客团队加金额
             KxsCampUser kxsCampUser = kxsCampUserService.getOne(Wrappers.<KxsCampUser>lambdaQuery()
                     .eq(KxsCampUser::getCampId, kxsCamp.getId())
-                    .eq(KxsCampUser::getUserId, param.getUserId()));
+                    .eq(KxsCampUser::getUserId, campUserId));
             kxsCampUser.setTeamOrderPool(NumberUtil.add(kxsCampUser.getTeamOrderPool(), amount));
             kxsCampUser.setTeamOrderNum(kxsCampUser.getTeamOrderNum() + number.intValue());
             kxsCampUserService.updateById(kxsCampUser);
@@ -284,7 +287,7 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
             kxsCampBonusLog.setUsername(user.getUsername());
             kxsCampBonusLog.setUserCode(user.getUserCode());
             kxsCampBonusLog.setRemark("商城下单");
-            kxsCampBonusLog.setSourceNum(1);
+            kxsCampBonusLog.setSourceNum(param.getBuyCount());
             kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
             if (param.getProductId() == 10) {
                 kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_DQ.getType()); //电签券
@@ -324,13 +327,16 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         //绑定时间
         LocalDateTime bindTime = LocalDateTimeUtil.parse(param.getBindTime(), DatePattern.UTC_SIMPLE_PATTERN);
         //查询当前用户参加的训练营
-        KxsCamp kxsCamp = baseMapper.selectUserCamp(param.getUserId().intValue());
+        KxsCamp kxsCamp = baseMapper.selectUserCamp(param.getUserId());
         R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(param.getUserId(), SecurityConstants.FROM_IN);
         KxsUser user = RetOps.of(kxsUserR)
                 .getData()
                 .orElseThrow(() -> new GlobalCustomerException(ErrorTypeEnum.USER_NOT_FOUND.getDescription()));
+        //参与训练营的创客ID
+        Integer campUserId = param.getUserId();
         if (kxsCamp == null) {
             kxsCamp = baseMapper.selectUserCamp(user.getPid());
+            campUserId = user.getPid();
         }
         if (kxsCamp == null) {
             return;
@@ -339,31 +345,32 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
         if (kxsCamp.getStartTime().isAfter(bindTime)) {
             return;
         }
+        int sourceNum = param.getActType() == 4 ? 2 : 1;
         //给训练营加金额
-        kxsCamp.setOpenNum(kxsCamp.getOpenNum() + (param.getActType() == 4 ? 2 : 1));
+        kxsCamp.setOpenNum(kxsCamp.getOpenNum() + sourceNum);
         baseMapper.updateById(kxsCamp);
 
         //给创客团队加金额
         KxsCampUser kxsCampUser = kxsCampUserService.getOne(Wrappers.<KxsCampUser>lambdaQuery()
                 .eq(KxsCampUser::getCampId, kxsCamp.getId())
-                .eq(KxsCampUser::getUserId, param.getUserId()));
+                .eq(KxsCampUser::getUserId, campUserId));
 
         switch (param.getActType()) {
-            case 1 -> kxsCampUser.setTeamPosNum(kxsCampUser.getTeamPosNum() + 1);
-            case 2 -> kxsCampUser.setTeamGdNum(kxsCampUser.getTeamGdNum() + 1);
-            case 3 -> kxsCampUser.setTeamLkbNum(kxsCampUser.getTeamLkbNum() + 1);
-            case 4 -> kxsCampUser.setTeamLkbNum(kxsCampUser.getTeamLkbNum() + 2);
+            case 1 -> kxsCampUser.setTeamPosNum(kxsCampUser.getTeamPosNum() + sourceNum);
+            case 2 -> kxsCampUser.setTeamGdNum(kxsCampUser.getTeamGdNum() + sourceNum);
+            case 3, 4 -> kxsCampUser.setTeamLkbNum(kxsCampUser.getTeamLkbNum() + sourceNum);
         }
         kxsCampUser.setTeamOpenNum(kxsCampUser.getTeamPosNum() + kxsCampUser.getTeamGdNum() + kxsCampUser.getTeamLkbNum());
         kxsCampUserService.updateById(kxsCampUser);
 
         KxsCampBonusLog kxsCampBonusLog = new KxsCampBonusLog();
         kxsCampBonusLog.setCampId(kxsCamp.getId());
+        kxsCampBonusLog.setCampUserId(kxsCampUser.getUserId());
         kxsCampBonusLog.setSourceId(user.getId());
         kxsCampBonusLog.setUsername(user.getUsername());
         kxsCampBonusLog.setUserCode(user.getUserCode());
         kxsCampBonusLog.setRemark("开通商户");
-        kxsCampBonusLog.setSourceNum(1);
+        kxsCampBonusLog.setSourceNum(sourceNum);
         kxsCampBonusLog.setKind(KindTypeEnum.ADD.getType());
         switch (param.getActType()) {
             case 1 -> kxsCampBonusLog.setSourceType(CampSourceTypeEnum.S_POS.getType());