Parcourir la source

合伙人bug修改

xuqiang il y a 1 an
Parent
commit
b52bf24d3e

+ 56 - 29
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -40,6 +40,8 @@ import com.ydtech.modules.message.constants.MessageTypeConstants;
 import com.ydtech.modules.message.service.MessageSecretaryService;
 import com.ydtech.modules.order.entity.po.InsUploadFiles;
 import com.ydtech.modules.order.service.InsUploadFilesService;
+import com.ydtech.modules.partner.dao.PartnerUserMapper;
+import com.ydtech.modules.partner.model.PartnerUser;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.security.utils.PasswordUtils;
 import com.ydtech.utils.StringUtils;
@@ -59,6 +61,7 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.*;
 
@@ -106,6 +109,7 @@ public class SysUserController extends BaseController {
 
     private final UnionPayRequestApiComponent unionPayRequestApiComponent;
 
+    private final PartnerUserMapper partnerUserMapper;
 
     //    @PreAuthorize("hasAuthority('sys:user:delete')")
     @ApiOperation(value = "逻辑删除")
@@ -859,7 +863,10 @@ public class SysUserController extends BaseController {
             sysUser.setLeaderId(leaderUser.getLeaderId());
             sysUser.setLeaderName(leaderUser.getLeaderName());
         }
-
+        //  新APP 用户 渠道个代邀请代理人
+        if (StringUtils.equals("1",dto.getNewApp())){
+            sysUser.setType(4);
+        }
         sysUserService.save(sysUser);
         sysUserRoleService.save(userRole);
 
@@ -871,10 +878,29 @@ public class SysUserController extends BaseController {
         if ("2".equals(dto.getFlag())) {
             esmUserReferrerService.addReferrer(dto.getReferrerId(), nextPK);
         }
+        //  新APP 渠道个代邀请代理人
+        if (StringUtils.equals("1",dto.getNewApp())){
+            addPartner(sysUser,recommenderid);
+        }
         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.setCommissionRate(BigDecimal.ZERO);
+        partnerUser.setReferrerId(referrerId);
+        partnerUserMapper.insert(partnerUser);
+    }
+
+
     @GetMapping(value = "/findUserInfo/{userId}")
     @ApiOperation(value = "获取用户信息")
     @ApiImplicitParams({
@@ -999,6 +1025,7 @@ public class SysUserController extends BaseController {
         // 22	后线人员 必须归属部门
         SysUser sysUser = sysUserVo.getSysUser();
         sysUser.setNewApp(1);
+        sysUser.setType(4);
         SysUserInfo sysUserInfo = new SysUserInfo();
         SysUser sysUser1 = sysUserService.getById(sysUserVo.getSysUser().getReferrerId());
         if (Objects.isNull(sysUser1)){
@@ -1019,34 +1046,34 @@ public class SysUserController extends BaseController {
             throw new SystemException("角色id不能为空");
         }
         //获取机构层级
-        int deptLevel = sysUserService.getDeptLevel(sysUserVo);
-        if (!StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
-            if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())
-                    || RoleConstants.R20.getCode().equals(sysUser.getRoleId())
-                    || RoleConstants.R19.getCode().equals(sysUser.getRoleId())) {//19 出单员 21	团队长 20	代理人
-
-                if (deptLevel != 6) {
-                    throw new SystemException("团队长、代理人、出单员只能归属团队中");
-                }
-                //如果为团队长,判断是否已经存在团队长,存在不允许添加   add by  hxl  2024-05-07  ============begin
-                if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())) {
-                    int count = sysUserService.getCountByDeptAndRoleId(sysUser);
-                    if (count > 0) {
-                        throw new SystemException("该机构已存在团队长,不允许再添加!!");
-                    }
-                }
-                // =========================add by hxl   end ====================
-            } else if (RoleConstants.R18.getCode().equals(sysUser.getRoleId())) { // 42 门店长
-                if (deptLevel != 5) {
-                    throw new SystemException("机构管理员只能归属机构中");
-                }
-            } else if (RoleConstants.R17.getCode().equals(sysUser.getRoleId())) {
-                if (deptLevel != 4) {
-                    throw new SystemException("部长只能归属于4级");
-                }
-            }
-
-        }
+//        int deptLevel = sysUserService.getDeptLevel(sysUserVo);
+//        if (!StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
+//            if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())
+//                    || RoleConstants.R20.getCode().equals(sysUser.getRoleId())
+//                    || RoleConstants.R19.getCode().equals(sysUser.getRoleId())) {//19 出单员 21	团队长 20	代理人
+//
+//                if (deptLevel != 6) {
+//                    throw new SystemException("团队长、代理人、出单员只能归属团队中");
+//                }
+//                //如果为团队长,判断是否已经存在团队长,存在不允许添加   add by  hxl  2024-05-07  ============begin
+//                if (RoleConstants.R21.getCode().equals(sysUser.getRoleId())) {
+//                    int count = sysUserService.getCountByDeptAndRoleId(sysUser);
+//                    if (count > 0) {
+//                        throw new SystemException("该机构已存在团队长,不允许再添加!!");
+//                    }
+//                }
+//                // =========================add by hxl   end ====================
+//            } else if (RoleConstants.R18.getCode().equals(sysUser.getRoleId())) { // 42 门店长
+//                if (deptLevel != 5) {
+//                    throw new SystemException("机构管理员只能归属机构中");
+//                }
+//            } else if (RoleConstants.R17.getCode().equals(sysUser.getRoleId())) {
+//                if (deptLevel != 4) {
+//                    throw new SystemException("部长只能归属于4级");
+//                }
+//            }
+//
+//        }
         return sysUserService.newSaveUserInfoByPartner(sysUserVo);
     }
 

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/dto/AgentUserDto.java

@@ -42,4 +42,7 @@ public class AgentUserDto {
     @ApiModelProperty(value = "个代、出单员标识:2个代、1出单员",required = true)
     private String flag;
 
+    @ApiModelProperty(value = "0-旧版本APP;1-新版APP",required = true)
+    private String newApp;
+
 }

+ 4 - 0
src/main/java/com/ydtech/modules/admin/model/dto/AgentUserNewDto.java

@@ -37,4 +37,8 @@ public class AgentUserNewDto {
     @NotBlank(message = "个代、出单员标识不能为空")
     @ApiModelProperty(value = "个代、出单员标识:2个代、1出单员",required = true)
     private String flag;
+
+    @ApiModelProperty(value = "0-旧版本APP;1-新版APP",required = true)
+    private String newApp;
+
 }

+ 2 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -753,7 +753,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             if (StringUtils.isNullOrEmpty(vo.getComlevel())){
                 filterAndProcessChildren(vo);
             }else {
-                if (Integer.parseInt(vo.getComlevel()) >= 5){
+                if (Integer.parseInt(vo.getComlevel()) >= 4){
                     filterAndProcessChildren(vo);
                 }else {
                     break;
@@ -765,7 +765,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
 
     private void filterAndProcessChildren(SysDeptTreeVo node) {
         List<SysDeptTreeVo>   filtered = node.getChildren().stream()
-                .filter(child -> child.getComlevel() != null)
+                .filter(child -> child.getComlevel() != null && Integer.parseInt(child.getComlevel()) <= 4)
                 .peek(this::filterAndProcessChildren)
                 .collect(Collectors.toList());
         node.setChildren(filtered);

+ 93 - 12
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1218,11 +1218,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Transactional(rollbackFor = Exception.class)
     public HttpResult newSaveUserInfoByPartner(SysUser2Vo sysUserVo) {
 
-        String deptId = addNewTeam(sysUserVo.getSysUser());
 
-        SysUser sysUser = sysUserVo.getSysUser();
 
-        sysUser.setDeptId(deptId);
+        SysUser sysUser = sysUserVo.getSysUser();
+        String grade = String.valueOf(sysUser.getGrade());
+        if (StringUtils.equals("4",grade) || StringUtils.equals("5",grade)){
+            addDeptUser(sysUser,grade);
+        }
+        sysUser.setDeptId(sysUser.getDeptId());
         //1:合伙人 2:工作室管理员
         Integer type = sysUser.getType();
         // 手机号
@@ -1259,13 +1262,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         userRole.setUserId(sysUser.getId());
         userRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
         sysUserRoleService.save(userRole);
-        if (StringUtils.isNotEmpty(sysUser.getReferrerId())) {
-            //推荐人
-            esmUserReferrerService.addReferrer(sysUser.getReferrerId(), userId);
-        } else if ("20".equals(sysUser.getRoleId()) || "21".equals(sysUser.getRoleId())) {
-            //如果是 团队长或代码人 并且没有推荐人 则默认推荐人为自己
-            esmUserReferrerService.addReferrer(sysUser.getId(), userId);
-        }
+//        if (StringUtils.isNotEmpty(sysUser.getReferrerId())) {
+//            //推荐人
+//            esmUserReferrerService.addReferrer(sysUser.getReferrerId(), userId);
+//        } else if ("20".equals(sysUser.getRoleId()) || "21".equals(sysUser.getRoleId())) {
+//            //如果是 团队长或代码人 并且没有推荐人 则默认推荐人为自己
+//            esmUserReferrerService.addReferrer(sysUser.getId(), userId);
+//        }
         SysUserInfo userInfo = sysUserVo.getSysUserInfo();
         if (userInfo != null) {
             if (null != userInfo.getLiveAddressString() && userInfo.getLiveAddressString().length > 0) {
@@ -1314,7 +1317,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             SysDeptVo dept = new SysDeptVo();
             dept.setId(sysUser.getDeptId() + "D" + deptId);
             dept.setName(sysUser.getName() + "团队长");
-            dept.setManagementSource("1");
+            dept.setManagementSource(sysUser.getDeptSource());
             dept.setDeptType("D");
             dept.setParentId(sysUser.getDeptId());
             sysDeptService.addDept(dept);
@@ -1340,6 +1343,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Transactional(rollbackFor = Exception.class)
     public HttpResult saveByPartner(SysUser2Vo sysUser2Vo) {
         SysUser sysUser = sysUser2Vo.getSysUser();
+        sysUser.getGradeList().forEach(x->{
+            if (StringUtils.equals("4",x) || StringUtils.equals("5",x)){
+                addDeptUser(sysUser,x);
+            }
+        });
         //1:合伙人 2:工作室管理员
         Integer type = sysUser.getType();
         // 手机号
@@ -3242,9 +3250,27 @@ 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")){
+            addPartner(sysUser, dto.getReferrerId());
+        }
         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.setCommissionRate(BigDecimal.ZERO);
+        partnerUser.setReferrerId(referrerId);
+        partnerUserService.insert(partnerUser);
+    }
+
     @Override
     @Transactional
     public SysUserAgentVo agentAuth(SysUser sysUser, AgentAuthDto dto) {
@@ -3640,7 +3666,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     }
 
-    private static PartnerUser getPartnerUser(SysUser sysUser,String grade,CommissionRulesVo rulesVo) {
+    private  PartnerUser getPartnerUser(SysUser sysUser,String grade,CommissionRulesVo rulesVo) {
         PartnerUser partnerUser = new PartnerUser();
         partnerUser.setName(sysUser.getName());
         partnerUser.setMobile(sysUser.getMobile());
@@ -3656,6 +3682,61 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return partnerUser;
     }
 
+     public  void addDeptUser(SysUser sysUser,String grade){
+         SysDept sysDept = sysDeptMapper.selectById(sysUser.getDeptId());
+         SysDeptVo sysDeptVo = new SysDeptVo();
+         sysDeptVo.setParentId(sysDept.getId());
+         sysDeptVo.setComtype(sysUser.getDeptType());
+         sysDeptVo.setAddress(sysDept.getAddress());
+         sysDeptVo.setComattribute("procar"); //机构性质 车险
+         sysDeptVo.setProvince(sysDept.getProvince()); // 默认省与负责人所在机构一样
+         sysDeptVo.setCity(sysDept.getCity()); // 默认市与负责人所在机构一样
+         sysDeptVo.setArea(sysDept.getArea()); // 默认区县与负责人所在机构一样
+         if (StringUtils.equals("4",grade)){
+             sysDeptVo.setDeptType("C"); // 默认为子公司
+             sysDeptVo.setName(sysUser.getName() + "(工作室)");
+             sysDeptVo.setComlevel("5");
+         }
+         if (StringUtils.equals("5",grade)){
+             sysDeptVo.setDeptType("D"); // 默认为子公司
+             sysDeptVo.setName(sysUser.getName() + "团队"); // 以人名设置工作室名称
+         }
+         sysDeptVo.setManagementSource(sysUser.getDeptSource());
+         String sysDeptVo1 = queryDId(sysDeptVo);
+         sysUser.setDeptId(sysDeptVo1);
+     }
+
+     public String queryDId(SysDeptVo sysDeptVo){
+         String deptType = sysDeptVo.getDeptType();
+         String comlevel = sysDeptVo.getComlevel();
+         String parentId = sysDeptVo.getParentId();
+         if ("C".equals(deptType) && comlevel.equals("5")) {
+             sysDeptVo.setDeptType("M");
+         } else if ("D".equals(deptType)) {
+             sysDeptVo.setDeptType("D");
+             deptType = "M";
+         }
+         String number;
+         String maxId = sysDeptMapper.getMaxId(sysDeptVo.getParentId(), deptType, comlevel);
+         if (!maxId.equals("0")) {
+             String substring = maxId.substring(parentId.length() + 1);
+             int i = Integer.parseInt("1" + substring) + 1;
+             number = String.valueOf(i);
+         } else {
+             number = "101";
+         }
+
+         String substring = number.substring(number.length() - 2);
+         String serialNumber;
+         if ("M,D".contains(sysDeptVo.getDeptType())) {
+             serialNumber = parentId + sysDeptVo.getDeptType() + substring;
+         } else {
+             serialNumber = parentId + substring;
+         }
+         return serialNumber;
+     }
+
+
 
     public static BigDecimal getCommissionRate(String grade,CommissionRulesVo rulesVo) {
         if (grade.equals("1")){

+ 7 - 2
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -253,8 +253,13 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
 
     public void getLevelUserId(String userId,Set<String> list){
         List<String> level = baseMapper.selectByLevelUserId(userId);
-        boolean b = containsOnlyId(level, userId);
-        if (CollectionUtil.isNotEmpty(level) && b){
+        if (CollectionUtil.isNotEmpty(level)){
+            level.removeIf(s -> s.equals(userId));
+        }
+        if (CollectionUtil.isEmpty(level)){
+            return;
+        }
+        if ( containsOnlyId(level, userId)){
             return;
         }
         if (CollectionUtil.isNotEmpty(level)){

+ 1 - 1
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -2207,7 +2207,7 @@
         LEFT JOIN sys_role t4 ON t3.role_id = t4.id
         AND sd.del_flag = '0'
         WHERE
-         su.status = 2 and sd.management_source = 5 and su.id  LIKE '%M%'
+         su.status = 2 and su.type = 4
         <if test='user !=null  '>
             <if test='user.name !=null and user.name!="" '>
                 and su.name like concat('%',#{user.name},'%')