fanzherong_v 2 月之前
父节点
当前提交
d4635be129

+ 50 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/wx/WxPayNotifyController.java

@@ -274,6 +274,56 @@ public class WxPayNotifyController {
                 }
                 }
             } else {
             } else {
                 bizUser.setAccountBalance(bizUser.getAccountBalance().add(realPayAmount));
                 bizUser.setAccountBalance(bizUser.getAccountBalance().add(realPayAmount));
+                if (ObjectUtil.isNotEmpty(bizUser.getReferralUser())) {
+                    //查询推荐人最早的一条待激活的记录,帮助激活人数+1
+                    BizUser user = bizUserMapper.selectById(bizUser.getReferralUser());
+                    BizActivate activate = bizActivateService.getOne(new QueryWrapper<BizActivate>().lambda().eq(BizActivate::getUserId, user.getId())
+                            .eq(BizActivate::getStatus,"1")
+                            .orderByAsc(BizActivate::getCreateTime)
+                            .last("limit 1"));
+                    if(ObjectUtil.isNotNull(activate)){
+                        //查询待激活记录的充值方案信息
+                        BizRechargePlanConfig config = bizRechargePlanConfigService.getById(activate.getPlanConfigId());
+                        //本次充值金额大于待激活记录充值金额,可帮助激活一次
+                        if(bizRechargeRecord.getRechargeAmount().compareTo(config.getRechargeAmount()) >= 0){
+                            //根据充值人和激活记录id查询是否帮助激活过,一个人只能激活一次
+                            List<BizActivateDetail> list = bizActivateDetailService.list(new QueryWrapper<BizActivateDetail>().lambda().
+                                    eq(BizActivateDetail::getHelpUserId, bizUser.getId()));
+                            if(ObjectUtil.isEmpty(list)){
+                                //记录激活明细
+                                BizActivateDetail bizActivateDetail = new BizActivateDetail();
+                                bizActivateDetail.setActivateId(activate.getId());
+                                bizActivateDetail.setHelpUserId(bizUser.getId());
+                                bizActivateDetailService.save(bizActivateDetail);
+                                //判断是否到达激活人数
+                                if(activate.getHelpCount()+1 == config.getHelpCount()){
+
+                                    // 记录用户账户资金变动记录
+                                    log.info("=========== 记录用户账户资金变动记录 ========");
+                                    BizUserFundChangeRecord bizUserFundChangeRecord = new BizUserFundChangeRecord();
+                                    bizUserFundChangeRecord.setChangeType(FundChangeTypeEnum.RECHARGE.getValue());
+                                    bizUserFundChangeRecord.setUserId(user.getId());
+                                    bizUserFundChangeRecord.setOldAccountBalance(user.getAccountBalance());
+                                    bizUserFundChangeRecord.setOldVoucherBalance(user.getVoucherBalance());
+
+                                    //帮助激活人数等于配置的帮助激活人数,账户糕点可激活
+                                    user.setAccountBalance(user.getAccountBalance().add(activate.getAccountBalance()));
+
+                                    bizUserFundChangeRecord.setNewAccountBalance(user.getAccountBalance());
+                                    bizUserFundChangeRecord.setNewVoucherBalance(user.getVoucherBalance());
+                                    bizUserFundChangeRecordService.save(bizUserFundChangeRecord);
+
+                                    //修改推荐人账户余额
+                                    bizUserMapper.updateById(user);
+
+                                    activate.setStatus("2");
+                                }
+                                activate.setHelpCount(activate.getHelpCount()+1);
+                                bizActivateService.updateById(activate);
+                            }
+                        }
+                    }
+                }
             }
             }
             bizUserMapper.updateById(bizUser);
             bizUserMapper.updateById(bizUser);
             //更新充值记录
             //更新充值记录