xuqiang 1 год назад
Родитель
Сommit
ea70a4f405

+ 19 - 15
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -871,9 +871,10 @@ public class SysUserController extends BaseController {
             sysUser.setLeaderName(leaderUser.getLeaderName());
         }
         //  新APP 用户 渠道个代邀请代理人
-        if (StringUtils.equals("1",dto.getNewApp())){
+        if (1 == recommender.getNewApp()){
             sysUser.setType(4);
         }
+        sysUser.setNewApp(recommender.getNewApp());
         sysUserService.save(sysUser);
         sysUserRoleService.save(userRole);
 
@@ -886,24 +887,27 @@ public class SysUserController extends BaseController {
             esmUserReferrerService.addReferrer(dto.getReferrerId(), nextPK);
         }
         //  新APP 渠道个代邀请代理人
-        if (StringUtils.equals("1",dto.getNewApp())){
-            addPartner(sysUser,recommenderid);
-        }
+        addPartner(sysUser,recommenderid,recommender);
         return HttpResult.ok("保存成功", sysUser.getId());
     }
 
 
-    public void addPartner(SysUser sysUser,String referrerId){
-
-        PartnerUser partnerUser = new PartnerUser();
-        partnerUser.setName(sysUser.getName());
-        partnerUser.setMobile(sysUser.getMobile());
-        partnerUser.setUserId(sysUser.getId());
-        partnerUser.setDeptId(sysUser.getDeptId());
-        partnerUser.setDeptName(sysUser.getDeptName());
-        partnerUser.setGrade(Integer.valueOf(6));
-        partnerUser.setReferrerId(referrerId);
-        partnerUserMapper.insert(partnerUser);
+    public void addPartner(SysUser sysUser,String referrerId,SysUser recommender){
+        if (null == recommender){
+            return;
+        }
+        if (1 == recommender.getNewApp()){
+            Integer max = partnerUserMapper.selectByUserIdMax(referrerId);
+            PartnerUser partnerUser = new PartnerUser();
+            partnerUser.setName(sysUser.getName());
+            partnerUser.setMobile(sysUser.getMobile());
+            partnerUser.setUserId(sysUser.getId());
+            partnerUser.setDeptId(sysUser.getDeptId());
+            partnerUser.setDeptName(sysUser.getDeptName());
+            partnerUser.setGrade(max + 1);
+            partnerUser.setReferrerId(referrerId);
+            partnerUserMapper.insert(partnerUser);
+        }
     }
 
 

+ 17 - 15
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -3257,6 +3257,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Transactional
     public String agentRegist(AgentUserNewDto dto, SysUser recommender) {
         int noCount = 3;
+        SysUser user = sysUserMapper.selectById(dto.getReferrerId());
         //根据机构号获取userid最大值,不需要加人员类型判断  从sys_user获取
         String maxId = this.findMaxId(recommender.getDeptId());
         String nextPK = StringUtils.isNullOrEmpty(maxId) ? recommender.getDeptId() + "001"
@@ -3277,6 +3278,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUser.setFactorVerify(0);  // 未认证状态
         sysUser.setUpdateTime(new Date());
         sysUser.setUpdateBy("admin");
+        sysUser.setNewApp(user.getNewApp());
         this.save(sysUser);
         //角色配置
         SysUserRole userRole = new SysUserRole();
@@ -3293,25 +3295,25 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         SpringUtil.getBean(UserAgentTrackUtils.class).addTrack(
                 sysUser.getId(), UserAgentStatus.UAS_0.getCode(),
                 "admin");
-        if (dto.getNewApp().equals("1") && null != dto.getNewApp()){
-            addPartner(sysUser, dto.getReferrerId());
-        }
+        addPartner(sysUser, dto.getReferrerId(),user.getNewApp());
         return sysUser.getId();
     }
 
 
-    public void addPartner(SysUser sysUser,String referrerId){
-
-        PartnerUser partnerUser = new PartnerUser();
-        partnerUser.setName(sysUser.getName());
-        partnerUser.setMobile(sysUser.getMobile());
-        partnerUser.setUserId(sysUser.getId());
-        partnerUser.setDeptId(sysUser.getDeptId());
-        partnerUser.setDeptName(sysUser.getDeptName());
-        partnerUser.setGrade(Integer.valueOf(6));
-        partnerUser.setReferrerId(referrerId);
-        partnerUser.setCreateTime(new Date());
-        partnerUserService.save(partnerUser);
+    public void addPartner(SysUser sysUser,String referrerId,Integer newApp){
+        if (1 == newApp){
+            Integer max = partnerUserService.selectByUserIdMax(referrerId);
+            PartnerUser partnerUser = new PartnerUser();
+            partnerUser.setName(sysUser.getName());
+            partnerUser.setMobile(sysUser.getMobile());
+            partnerUser.setUserId(sysUser.getId());
+            partnerUser.setDeptId(sysUser.getDeptId());
+            partnerUser.setDeptName(sysUser.getDeptName());
+            partnerUser.setGrade(max + 1);
+            partnerUser.setReferrerId(referrerId);
+            partnerUser.setCreateTime(new Date());
+            partnerUserService.save(partnerUser);
+        }
     }
 
     @Override

+ 28 - 26
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -231,7 +231,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private PartnerUserService partnerUserService;
 
-
+    private static final Integer[] STATIC_INTEGER_ARRAY = {1, 2, 3, 4};
 
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService,
@@ -367,31 +367,33 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (Objects.isNull(partnerUser)) {
             return;
         }
-        PartnerPremiumDetails details = new PartnerPremiumDetails();
-        // 获取订单信息
-        InsOrders insOrders = getById(insAreaCompany.getOrderno());
-        details.setUserId(partnerUser.getUserId());
-        details.setUserName("");
-        details.setIssuerId(userId);
-        details.setIssuerName(insOrders.getUsername());
-        details.setOrderno(insAreaCompany.getOrderno());
-        details.setCompanyId(insAreaCompany.getId());
-        details.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
-        details.setJqpremium(insAreaCompany.getJqpremium());
-        details.setSypremium(insAreaCompany.getSypremium());
-        details.setJypremium(insAreaCompany.getJypremium());
-        BigDecimal bigDecimal = CalculateCommissionUtils.calculateCommission(String.valueOf(partnerUser.getGrade()), partnerUser.getUserId(),userId3,userId4);
-        details.setProportional(String.valueOf(bigDecimal));
-        details.setExtractFee(details.getSumpremium().multiply(bigDecimal.divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN));
-        details.setStatus(0);
-        details.setType(1);
-        details.setDeptId(partnerUser.getDeptId());
-        details.setIndustrySector(0);
-        details.setCreateTime(new Date());
-        details.setLicenseno(insOrders.getLicenseno());
-        details.setSource(partnerUser.getGrade());
-        list.add(details);
-        SpringUtil.getBean(KickbackChangeUtils.class).before(bigDecimal, details,userId3,userId4);
+        if (Arrays.stream(STATIC_INTEGER_ARRAY).anyMatch(partnerUser.getGrade()::equals)){
+            PartnerPremiumDetails details = new PartnerPremiumDetails();
+            // 获取订单信息
+            InsOrders insOrders = getById(insAreaCompany.getOrderno());
+            details.setUserId(partnerUser.getUserId());
+            details.setUserName("");
+            details.setIssuerId(userId);
+            details.setIssuerName(insOrders.getUsername());
+            details.setOrderno(insAreaCompany.getOrderno());
+            details.setCompanyId(insAreaCompany.getId());
+            details.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
+            details.setJqpremium(insAreaCompany.getJqpremium());
+            details.setSypremium(insAreaCompany.getSypremium());
+            details.setJypremium(insAreaCompany.getJypremium());
+            BigDecimal bigDecimal = CalculateCommissionUtils.calculateCommission(String.valueOf(partnerUser.getGrade()), partnerUser.getUserId(),userId3,userId4);
+            details.setProportional(String.valueOf(bigDecimal));
+            details.setExtractFee(details.getSumpremium().multiply(bigDecimal.divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN));
+            details.setStatus(0);
+            details.setType(1);
+            details.setDeptId(partnerUser.getDeptId());
+            details.setIndustrySector(0);
+            details.setCreateTime(new Date());
+            details.setLicenseno(insOrders.getLicenseno());
+            details.setSource(partnerUser.getGrade());
+            list.add(details);
+            SpringUtil.getBean(KickbackChangeUtils.class).before(bigDecimal, details,userId3,userId4);
+        }
         saveFeeLevelInfo(grade - 1, partnerUser.getReferrerId(), insAreaCompany, userId, list,userId3,userId4);
     }
 

+ 4 - 0
src/main/java/com/ydtech/modules/partner/dao/PartnerUserMapper.java

@@ -185,4 +185,8 @@ public interface PartnerUserMapper extends BaseMapper<PartnerUser> {
 
     @Update("UPDATE partner_user SET commission_rate = null WHERE user_id = #{userId} AND grade = #{grade}")
     void resetFixedRatio(@Param("userId") String userId, @Param("grade")Integer grade);
+
+    @Select("SELECT max(grade) FROM partner_user WHERE user_id = #{userId}")
+    Integer selectByUserIdMax(String referrerId);
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -421,6 +421,11 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
         return getAttribute(partnerRuleEntity, bf, p, ownBf, strategyArray);
     }
 
+    @Override
+    public Integer selectByUserIdMax(String referrerId) {
+        return baseMapper.selectByUserIdMax(referrerId);
+    }
+
 
     private List<MyUserLevel> getUserLevels(String userId, List<PartnerRule> partnerRules, Map<Integer, PartnerUser> userMap) {
         List<MyUserLevel> list = new ArrayList<>();

+ 2 - 0
src/main/java/com/ydtech/modules/partner/service/PartnerUserService.java

@@ -78,4 +78,6 @@ public interface PartnerUserService extends IService<PartnerUser> {
     HttpResult queryDowngradeTask(String grade,String userId);
 
     HttpResult degradedTask(String grade,String userId);
+
+    Integer selectByUserIdMax(String referrerId);
 }