Qchen 1 год назад
Родитель
Сommit
12ce537467

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

@@ -876,6 +876,62 @@ public class SysUserController extends BaseController {
         return sysUserService.saveUserInfo(sysUserVo);
     }
 
+    @ApiOperation(value = "保存用户基本详情信息")
+    @PostMapping(value = "/saveUserInfoByPartner")
+    public HttpResult saveUserInfoByPartner(@RequestBody SysUser2Vo sysUserVo) {
+        //by gws 21	团队长 20	代理人 必须归属团队
+        // 22	后线人员 必须归属部门
+        SysUser sysUser = sysUserVo.getSysUser();
+        if (sysUserVo.getIsPartner() != null && sysUserVo.getIsPartner().equals("1")) {
+            SysUserInfo sysUserInfo = new SysUserInfo();
+            SysUser partnerId = sysUserService.getById(sysUserVo.getSysUser().getReferrerId());
+            sysUser.setDeptId(partnerId.getDeptId());
+            sysUser.setStatus(2); //直接默认为入司待审核
+            LocalDate birthday = LocalDate.parse(sysUser.getIdentity().substring(6, 10) + "-" + sysUser.getIdentity().substring(10, 12) + "-" + sysUser.getIdentity().substring(12, 14));
+            sysUserInfo.setBirthday(birthday);
+            sysUserVo.setSysUserInfo(sysUserInfo);
+        }
+        if (StringUtils.isNullOrEmpty(sysUser)) {
+            return HttpResult.error("用户信息不能为空");
+        }
+        if (StringUtils.isNullOrEmpty(sysUser.getDeptId())) {
+            return HttpResult.error("机构ID不能为空");
+        }
+        if (StringUtils.isNullOrEmpty(sysUser.getRoleId())) {
+            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级");
+                }
+            }
+
+        }
+        return sysUserService.saveUserInfoByPartner(sysUserVo);
+    }
+
     @ApiOperation(value = "保存用户基本详情信息")
     @PostMapping(value = "/saveTeamLeader")
     public HttpResult saveTeamLeader(@RequestBody SysUser2Vo sysUserVo) {

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -129,6 +129,8 @@ public interface SysUserService extends BaseIService<SysUser> {
 
     HttpResult saveUserInfo(SysUser2Vo sysUserVo);
 
+    HttpResult saveUserInfoByPartner(SysUser2Vo sysUserVo);
+
     HttpResult saveUserInfo1(SysUser2Vo sysUserVo,SysDeptVo sysDeptVo);
 
     /**

+ 96 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -836,6 +836,101 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return HttpResult.ok("新增成功");
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult saveUserInfoByPartner(SysUser2Vo sysUserVo) {
+        SysUser sysUser = sysUserVo.getSysUser();
+        // 手机号
+        List<SysUser> mobileList = lambdaQuery().eq(SysUser::getMobile, sysUser.getMobile()).list();
+        if (!mobileList.isEmpty()) {
+            throw new SystemException("手机号已经注册请更换手机号。");
+        }
+        // 身份证号
+        List<SysUser> identityList = lambdaQuery().eq(SysUser::getIdentity, sysUser.getIdentity()).list();
+        if (!identityList.isEmpty()) {
+            throw new SystemException("身份证号已经注册请更换身份证号。");
+        }
+
+        //处理密码
+        if (StringUtils.isNotEmpty(sysUser.getPassword())) {
+            String salt = PasswordUtils.getSalt();
+            String pwd = PasswordUtils.encode(sysUser.getPassword(), salt);
+            sysUser.setPassword(pwd);
+            sysUser.setSalt(salt);
+        } else {
+            return HttpResult.error("密码不能为空");
+        }
+        String userId = "";
+        if ("19".equals(sysUser.getRoleId())) {//19 出单员 校验机构和业务员机构是否一致
+            // add by  hxl  2024-08-20
+            // return checkChuDanUser(sysUser);
+            if (StringUtils.isEmpty(sysUser.getReferrerId())) {
+                return HttpResult.error("业务员工号不能为空");
+            }
+            //归属业务员和出单员部门必须一致
+            SysUser user = getById(sysUser.getReferrerId());
+            if (user == null || !user.getDeptId().equals(sysUser.getDeptId())) {
+                return HttpResult.error("出单员机构必须和归属业务员机构一致");
+            }
+            sysUser.setOperatorCode(sysUser.getReferrerId());
+            if (StringUtils.isEmpty(sysUser.getId())) {
+                userId = gainNextUserId(sysUser.getDeptId());
+                sysUser.setId(userId);
+                save(sysUser);
+                //角色配置
+                SysUserRole userRole = new SysUserRole();
+                userRole.setUserId(sysUser.getId());
+                userRole.setRoleId(StringUtils.toLong(sysUser.getRoleId()));
+                sysUserRoleService.save(userRole);
+            } else {
+                userId = sysUser.getId();
+                updateById(sysUser);
+            }
+            SysUserInfo userInfo = sysUserVo.getSysUserInfo();
+            userInfo.setId(sysUser.getId());
+            sysUserInfoService.save(userInfo);
+        } else {
+            userId = gainNextUserId(sysUser.getDeptId());
+
+            if (RoleConstants.R22.getCode().equals(sysUser.getRoleId())) {//22	后线人员
+                if (!SysConstants.isAdministration(userId)) {
+                    throw new SystemException("后线人员只能公司部门中");
+                }
+            }
+
+            sysUser.setId(userId);
+            save(sysUser);
+
+            //角色配置
+            SysUserRole userRole = new SysUserRole();
+            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);
+            }
+            SysUserInfo userInfo = sysUserVo.getSysUserInfo();
+            if (userInfo != null) {
+                if (null != userInfo.getLiveAddressString() && userInfo.getLiveAddressString().length > 0) {
+                    sysUserVo.getSysUserInfo().setLiveAddress(Arrays.stream(userInfo.getLiveAddressString()).map(item -> item.toString()).collect(Collectors.joining(",")));
+                }
+                userInfo.setId(sysUser.getId());
+            }
+//        userInfo.setId(sysUser.getId());
+            sysUserInfoService.save(userInfo);
+        }
+        List<EsmUserImageVo> esmUserImageVo = sysUserVo.getEsmUserImageVo();
+        String finalUserId = userId;
+        List<EsmUserImage> esmUserImages = esmUserImageVo.stream().map(x -> new EsmUserImage(x, finalUserId)).collect(Collectors.toList());
+        esmUserImageService.saveBatch(esmUserImages);
+        SpringUtil.getBean(RecordUserUtils.class).addRecord(userId, null);
+        return HttpResult.ok("新增成功");
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpResult saveUserInfo1(SysUser2Vo sysUserVo, SysDeptVo sysDeptVo) {
@@ -929,7 +1024,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         String finalUserId = userId;
         List<EsmUserImage> esmUserImages = esmUserImageVo.stream().map(x -> new EsmUserImage(x, finalUserId)).collect(Collectors.toList());
         esmUserImageService.saveBatch(esmUserImages);
-        SpringUtil.getBean(RecordUserUtils.class).addRecord(userId, BaseController.getUserName());
+        SpringUtil.getBean(RecordUserUtils.class).addRecord(userId, null);
         return HttpResult.ok("新增成功");
     }