Commit 2a473681 authored by 施翔轲's avatar 施翔轲

修复批量新增企业普通管理员账号手机号重复问题

parent 22d5962b
...@@ -104,10 +104,12 @@ public class SysTenantController extends BaseController { ...@@ -104,10 +104,12 @@ public class SysTenantController extends BaseController {
@Log(title = "用户管理", businessType = BusinessType.INSERT) @Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping("/addTenantAdmin") @PostMapping("/addTenantAdmin")
public R<Void> addTenantAdmin(@Validated @RequestBody SysTenantAdminBo tenantAdminBo) { public R<Void> addTenantAdmin(@Validated @RequestBody SysTenantAdminBo tenantAdminBo) {
if (!userService.checkPhoneUnique(BeanUtil.toBean(tenantAdminBo, SysUser.class))) { //校验手机号是否已存在
if (TenantHelper.ignore(()->userService.checkTenantAdminPhoneUnique(tenantAdminBo))) {
return R.fail("新增用户'" + tenantAdminBo.getPhonenumber() + "'失败,手机号码已存在"); return R.fail("新增用户'" + tenantAdminBo.getPhonenumber() + "'失败,手机号码已存在");
} }
return toAjax(TenantHelper.ignore(() -> tenantService.addTenantAdmin(tenantAdminBo))); return toAjax(TenantHelper.ignore(() -> tenantService.addTenantAdmin(tenantAdminBo)));
//return R.ok("手机号验证成功");
} }
/** /**
......
...@@ -3,6 +3,7 @@ package com.dsk.system.service; ...@@ -3,6 +3,7 @@ package com.dsk.system.service;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.system.domain.SysUser; import com.dsk.system.domain.SysUser;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.bo.SysTenantAdminBo;
import com.dsk.system.domain.vo.SysUserImportVo; import com.dsk.system.domain.vo.SysUserImportVo;
import java.util.List; import java.util.List;
...@@ -103,6 +104,14 @@ public interface ISysUserService { ...@@ -103,6 +104,14 @@ public interface ISysUserService {
*/ */
boolean checkPhoneUnique(SysUser user); boolean checkPhoneUnique(SysUser user);
/**
* 校验企业普通管理员手机号码是否唯一
*
* @param tenantAdminBo 用户信息
* @return 结果
*/
boolean checkTenantAdminPhoneUnique(SysTenantAdminBo tenantAdminBo);
/** /**
* 校验email是否唯一 * 校验email是否唯一
* *
......
...@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsk.common.constant.CacheNames; import com.dsk.common.constant.CacheNames;
import com.dsk.common.constant.Constants; import com.dsk.common.constant.Constants;
import com.dsk.common.constant.TenantConstants; import com.dsk.common.constant.TenantConstants;
import com.dsk.common.constant.UserConstants;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.entity.SysDictData; import com.dsk.common.core.domain.entity.SysDictData;
import com.dsk.common.core.domain.entity.SysDictType; import com.dsk.common.core.domain.entity.SysDictType;
...@@ -281,20 +282,33 @@ public class ISysTenantServiceImpl implements ISysTenantService { ...@@ -281,20 +282,33 @@ public class ISysTenantServiceImpl implements ISysTenantService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean addTenantAdmin(SysTenantAdminBo tenantAdminBo) { public Boolean addTenantAdmin(SysTenantAdminBo tenantAdminBo) {
String tenantId = tenantAdminBo.getTenantId(); String tenantId = tenantAdminBo.getTenantId();
// 根据套餐创建角色
Long roleId = createTenantRole(tenantId, tenantAdminBo.getPackageId(),
TenantConstants.TENANT_ADMIN_ROLE_NAME,
TenantConstants.TENANT_ADMIN_ROLE_KEY);
//获取部门ID //获取部门ID
Long deptId = deptMapper.selectOne(new LambdaQueryWrapper<SysDept>() Long deptId = deptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getTenantId, tenantId)).getDeptId(); .eq(SysDept::getTenantId, tenantId)).getDeptId();
// 角色和部门关联表 SysRole sysRole = roleMapper.selectOne(new LambdaQueryWrapper<SysRole>()
SysRoleDept roleDept = new SysRoleDept(); .eq(SysRole::getStatus, UserConstants.ROLE_NORMAL)
roleDept.setRoleId(roleId); .eq(SysRole::getDelFlag, UserConstants.ROLE_NORMAL)
roleDept.setDeptId(deptId); .eq(SysRole::getTenantId, tenantId)
roleDeptMapper.insert(roleDept); .eq(SysRole::getRoleKey, TenantConstants.TENANT_ADMIN_ROLE_KEY));
Long roleId = null;
//校验当前企业是否已存在普通管理员角色
if (ObjectUtil.isNull(sysRole)) {
//不存在,则根据套餐创建角色
roleId = createTenantRole(tenantId, tenantAdminBo.getPackageId(),
TenantConstants.TENANT_ADMIN_ROLE_NAME,
TenantConstants.TENANT_ADMIN_ROLE_KEY);
// 角色和部门关联表
SysRoleDept roleDept = new SysRoleDept();
roleDept.setRoleId(roleId);
roleDept.setDeptId(deptId);
roleDeptMapper.insert(roleDept);
} else {
roleId = sysRole.getRoleId();
}
// 创建系统用户 // 创建系统用户
SysUser user = new SysUser(); SysUser user = new SysUser();
...@@ -316,25 +330,9 @@ public class ISysTenantServiceImpl implements ISysTenantService { ...@@ -316,25 +330,9 @@ public class ISysTenantServiceImpl implements ISysTenantService {
userRole.setRoleId(roleId); userRole.setRoleId(roleId);
userRoleMapper.insert(userRole); userRoleMapper.insert(userRole);
String defaultTenantId = TenantConstants.DEFAULT_TENANT_ID;
//List<SysDictType> dictTypeList = dictTypeMapper.selectList(
// new LambdaQueryWrapper<SysDictType>().eq(SysDictType::getTenantId, defaultTenantId));
//List<SysDictData> dictDataList = dictDataMapper.selectList(
// new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getTenantId, defaultTenantId));
//for (SysDictType dictType : dictTypeList) {
// dictType.setDictId(null);
// dictType.setTenantId(tenantId);
//}
//for (SysDictData dictData : dictDataList) {
// dictData.setDictCode(null);
// dictData.setTenantId(tenantId);
//}
//dictTypeMapper.insertBatch(dictTypeList);
//dictDataMapper.insertBatch(dictDataList);
List<SysConfig> sysConfigList = configMapper.selectList( List<SysConfig> sysConfigList = configMapper.selectList(
new LambdaQueryWrapper<SysConfig>() new LambdaQueryWrapper<SysConfig>()
.eq(SysConfig::getTenantId, defaultTenantId) .eq(SysConfig::getTenantId, TenantConstants.DEFAULT_TENANT_ID)
.eq(SysConfig::getConfigType, "Y")); .eq(SysConfig::getConfigType, "Y"));
for (SysConfig config : sysConfigList) { for (SysConfig config : sysConfigList) {
config.setConfigId(null); config.setConfigId(null);
......
...@@ -26,6 +26,7 @@ import com.dsk.common.utils.StreamUtils; ...@@ -26,6 +26,7 @@ import com.dsk.common.utils.StreamUtils;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.ValidatorUtils; import com.dsk.common.utils.ValidatorUtils;
import com.dsk.system.domain.*; import com.dsk.system.domain.*;
import com.dsk.system.domain.bo.SysTenantAdminBo;
import com.dsk.system.domain.vo.SysUserImportVo; import com.dsk.system.domain.vo.SysUserImportVo;
import com.dsk.system.mapper.*; import com.dsk.system.mapper.*;
import com.dsk.system.service.ISysUserService; import com.dsk.system.service.ISysUserService;
...@@ -68,9 +69,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService { ...@@ -68,9 +69,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
public Long queryTenantAdminNumCreatedByDSK(Long tenantId) { public Long queryTenantAdminNumCreatedByDSK(Long tenantId) {
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<SysUser>() LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId) .select(SysUser::getUserId)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL) .eq(SysUser::getStatus, UserConstants.NORMAL)
.eq(SysUser::getTenantId, tenantId) .eq(SysUser::getDelFlag, UserConstants.NORMAL)
.eq(SysUser::getCreateBy, "suadmin"); .eq(SysUser::getTenantId, tenantId);
//.eq(SysUser::getCreateBy, "suadmin");
return baseMapper.selectCount(queryWrapper); return baseMapper.selectCount(queryWrapper);
} }
...@@ -252,6 +254,20 @@ public class SysUserServiceImpl implements ISysUserService, UserService { ...@@ -252,6 +254,20 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
return !exist; return !exist;
} }
/**
* 校验企业普通管理员手机号码是否唯一
*
* @param tenantAdminBo 用户信息
* @return 结果
*/
@Override
public boolean checkTenantAdminPhoneUnique(SysTenantAdminBo tenantAdminBo) {
return baseMapper.exists(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getTenantId, tenantAdminBo.getTenantId())
.eq(SysUser::getPhonenumber, tenantAdminBo.getPhonenumber())
.eq(SysUser::getStatus, UserConstants.NORMAL));
}
/** /**
* 校验email是否唯一 * 校验email是否唯一
* *
...@@ -424,9 +440,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService { ...@@ -424,9 +440,10 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateUser(SysUser user) { public int updateUser(SysUser user) {
Long userId = user.getUserId(); Long userId = user.getUserId();
if (LoginHelper.isTenantAdmin(LoginHelper.getLoginUser().getRolePermission())) {
//校验企业管理员角色下是否至少有一个账号 //校验企业管理员角色下是否至少有一个账号
checkAdminHasUsers(user); checkAdminHasUsers(user);
}
// 删除用户与角色关联 // 删除用户与角色关联
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
// 新增用户与角色管理 // 新增用户与角色管理
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment