|
|
@@ -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);
|
|
|
//订单奖金
|