fanzherong_v 2 mesiacov pred
rodič
commit
24bd47b563

+ 1 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizactivate/entity/BizActivate.java

@@ -60,5 +60,6 @@ public class BizActivate extends CommonEntity {
     private String userName;
 
     /**成功激活需要人数*/
+    @TableField(exist = false)
     private Integer successCount;
 }

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

@@ -171,6 +171,46 @@ public class WxPayNotifyController {
                     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::getActivateId, activate.getId()).
+                                        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 == planConfig.getHelpCount()){
+
+                                        //帮助激活人数等于配置的帮助激活人数,账户糕点可激活
+                                        user.setAccountBalance(user.getAccountBalance().add(activate.getAccountBalance()));
+
+                                        //修改推荐人账户余额
+                                        bizUserMapper.updateById(user);
+
+                                        activate.setStatus("2");
+                                    }
+                                    activate.setHelpCount(activate.getHelpCount()+1);
+                                    bizActivateService.updateById(activate);
+                                }
+                            }
+                        }
+                    }
                 }else{
                     //插入一条待激活的记录
                     BizActivate bizActivate = new BizActivate();