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

+ 67 - 149
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/wx/WxPayNotifyController.java

@@ -161,55 +161,7 @@ public class WxPayNotifyController {
                     //有充值计划,立即到账
                     bizUser.setAccountBalance(bizUser.getAccountBalance().add(bizRechargeRecord.getPlanAccountBalance()));
 
-                    // 记录用户账户资金变动记录
-                    log.info("=========== 记录用户账户资金变动记录 ========");
-                    BizUserFundChangeRecord bizUserFundChangeRecord = new BizUserFundChangeRecord();
-                    bizUserFundChangeRecord.setChangeType(FundChangeTypeEnum.RECHARGE.getValue());
-                    bizUserFundChangeRecord.setUserId(bizRechargeRecord.getUserId());
-                    bizUserFundChangeRecord.setOldAccountBalance(bizRechargeRecord.getOldAccountBalance());
-                    bizUserFundChangeRecord.setOldVoucherBalance(bizRechargeRecord.getOldVoucherBalance());
-                    bizUserFundChangeRecord.setNewAccountBalance(bizUser.getAccountBalance());
-                    bizUserFundChangeRecord.setNewVoucherBalance(bizUser.getVoucherBalance());
-                    bizUserFundChangeRecordService.save(bizUserFundChangeRecord);
-
-                    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()){
-
-                                        //帮助激活人数等于配置的帮助激活人数,账户糕点可激活
-                                        user.setAccountBalance(user.getAccountBalance().add(activate.getAccountBalance()));
-
-                                        //修改推荐人账户余额
-                                        bizUserMapper.updateById(user);
-
-                                        activate.setStatus("2");
-                                    }
-                                    activate.setHelpCount(activate.getHelpCount()+1);
-                                    bizActivateService.updateById(activate);
-                                }
-                            }
-                        }
-                    }
+                    getActivate(bizUser,bizRechargeRecord);
                 }else{
                     //插入一条待激活的记录
                     BizActivate bizActivate = new BizActivate();
@@ -221,109 +173,11 @@ public class WxPayNotifyController {
                     bizActivateService.save(bizActivate);
 
 
-                    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);
-                                }
-                            }
-                        }
-                    }
+                    getActivate(bizUser,bizRechargeRecord);
                 }
             } else {
                 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);
-                            }
-                        }
-                    }
-                }
+                getActivate(bizUser,bizRechargeRecord);
             }
             bizUserMapper.updateById(bizUser);
             //更新充值记录
@@ -334,6 +188,16 @@ public class WxPayNotifyController {
             bizRechargeRecord.setWxOrderNo(transaction.getTransactionId());
             bizRechargeRecord.setWxPayAmount(realPayAmount);
             bizRechargeRecordService.updateById(bizRechargeRecord);
+            // 记录充值用户账户资金变动记录
+            log.info("=========== 记录用户账户资金变动记录 ========");
+            BizUserFundChangeRecord bizUserFundChangeRecord = new BizUserFundChangeRecord();
+            bizUserFundChangeRecord.setChangeType(FundChangeTypeEnum.RECHARGE.getValue());
+            bizUserFundChangeRecord.setUserId(bizRechargeRecord.getUserId());
+            bizUserFundChangeRecord.setOldAccountBalance(bizRechargeRecord.getOldAccountBalance());
+            bizUserFundChangeRecord.setOldVoucherBalance(bizRechargeRecord.getOldVoucherBalance());
+            bizUserFundChangeRecord.setNewAccountBalance(bizUser.getAccountBalance());
+            bizUserFundChangeRecord.setNewVoucherBalance(bizUser.getVoucherBalance());
+            bizUserFundChangeRecordService.save(bizUserFundChangeRecord);
             //生成蛋糕券
             if (bizRechargeRecord.getCouponNum() != null && bizRechargeRecord.getCouponNum() > 0) {
                 log.info("=========== 生成优惠券 ========");
@@ -375,4 +239,58 @@ public class WxPayNotifyController {
         returnMap.put("message", "成功");
         return JSONObject.toJSONString(returnMap);
     }
+
+    //记录激活记录
+    public void getActivate(BizUser bizUser,BizRechargeRecord bizRechargeRecord){
+        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);
+                    }
+                }
+            }
+        }
+    }
 }