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

大小盟主下单加入训练营统计订单

mac 2 лет назад
Родитель
Сommit
1c786c0c3f

+ 4 - 1
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mq/RabbitKxsOrderQueueListener.java

@@ -54,7 +54,10 @@ public class RabbitKxsOrderQueueListener {
 					|| parse.getProductId() == 77
 					|| parse.getProductId() == 78
 					|| parse.getProductId() == 79
-					|| parse.getProductId() == 92) ){
+					|| parse.getProductId() == 92
+					|| parse.getProductId() == 27
+					|| parse.getProductId() == 28
+					|| parse.getProductId() == 39) ){
 				PrizePoolDTO prizePoolDTO = new PrizePoolDTO();
 				BeanUtils.copyProperties(parse,  prizePoolDTO);
 				remoteSysService.prizePoolIsRefreshed(prizePoolDTO, SecurityConstants.FROM_IN);

+ 42 - 0
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsCampServiceImpl.java

@@ -188,6 +188,48 @@ public class KxsCampServiceImpl extends ServiceImpl<KxsCampMapper, KxsCamp> impl
 
         log.info("开始处理兑换券下单订单号:{}统计到训练营奖金池", param.getOrderNo());
 
+        if(param.getProductId() == 27 || param.getProductId() == 28 || param.getProductId() == 39 ){
+            //查询此用户是否参加进行中的训练营
+            KxsCamp kxsCamp = baseMapper.selectUserCamp(param.getUserId());
+            if (kxsCamp != null) {
+                //给训练营加金额
+                kxsCamp.setOrderNum(kxsCamp.getOrderNum() + 1);
+                baseMapper.updateById(kxsCamp);
+
+                //给创客团队加金额
+                KxsCampUser kxsCampUser = kxsCampUserService.getOne(Wrappers.<KxsCampUser>lambdaQuery()
+                        .eq(KxsCampUser::getCampId, kxsCamp.getId())
+                        .eq(KxsCampUser::getUserId, param.getUserId()));
+                kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
+                kxsCampUserService.updateById(kxsCampUser);
+                log.info("用户{}参加训练营{},订单ID{}, 订单数{}", param.getUserId(), kxsCamp.getId(), param.getId(), kxsCamp.getOrderNum());
+                return;
+            }
+            //查找此用户上级倒序后参加了训练营,把奖金加入到自己和训练营里
+            R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(param.getUserId(), SecurityConstants.FROM_IN);
+            KxsUser user = RetOps.of(kxsUserR)
+                    .getData()
+                    .orElseThrow(() -> new GlobalCustomerException(ErrorTypeEnum.USER_NOT_FOUND.getDescription()));
+            //下单用户的上级路径
+            String[] pidPaths = user.getPidPath().split(StrPool.COMMA);
+            //翻转上级从最近的开始查询
+            Arrays.sort(pidPaths, Collections.reverseOrder());
+            KxsCampUser kxsCampUser = baseMapper.selectParentUsersCamp(pidPaths);
+            if (kxsCampUser != null) {
+                //给训练营加金额
+                kxsCamp = baseMapper.selectById(kxsCampUser.getCampId());
+                kxsCamp.setOrderNum(kxsCamp.getOrderNum() + 1);
+                baseMapper.updateById(kxsCamp);
+
+                //给创客团队加金额
+                kxsCampUser.setTeamLeaderNum(kxsCampUser.getTeamLeaderNum() + 1);
+                kxsCampUserService.updateById(kxsCampUser);
+                log.info("用户{}的上级{}参加训练营{},订单ID{},订单数{}", param.getUserId(), kxsCampUser.getUserId(), kxsCamp.getId(), param.getId(), kxsCamp.getOrderNum());
+            }
+            return;
+        }
+
+
         //下单组数
         BigDecimal number = NumberUtil.div(param.getTotalPrice(), 600);
         //订单奖金