mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
处理角色管理、部门管理,组织id参数
This commit is contained in:
+3
@@ -17,6 +17,9 @@ public class DeptSaveReqVO {
|
||||
@Schema(description = "部门编号", example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "组织id")
|
||||
private Long organId;
|
||||
|
||||
@Schema(description = "部门名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰")
|
||||
@NotBlank(message = "部门名称不能为空")
|
||||
@Size(max = 30, message = "部门名称长度不能超过 30 个字符")
|
||||
|
||||
+9
-1
@@ -7,6 +7,7 @@ import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.system.controller.admin.permission.vo.role.*;
|
||||
import com.cf.imes.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
||||
@@ -29,6 +30,7 @@ import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
@@ -47,14 +49,20 @@ public class RoleController {
|
||||
@Operation(summary = "创建角色")
|
||||
@PreAuthorize("@ss.hasPermission('system:role:create')")
|
||||
public CommonResult<Long> createRole(@Valid @RequestBody RoleSaveReqVO createReqVO) {
|
||||
if(Objects.isNull(createReqVO.getOrganId())) {
|
||||
createReqVO.setOrganId(OrganContextHolder.getOrganId());
|
||||
}
|
||||
Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId();
|
||||
return success(roleService.createRole(createReqVO, null, organId));
|
||||
return success(roleService.createRole(createReqVO, null));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "修改角色")
|
||||
@PreAuthorize("@ss.hasPermission('system:role:update')")
|
||||
public CommonResult<Boolean> updateRole(@Valid @RequestBody RoleSaveReqVO updateReqVO) {
|
||||
if(Objects.isNull(updateReqVO.getOrganId())) {
|
||||
updateReqVO.setOrganId(OrganContextHolder.getOrganId());
|
||||
}
|
||||
roleService.updateRole(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
+2
@@ -28,4 +28,6 @@ public class UserProfileUpdateReqVO {
|
||||
@Schema(description = "用户性别,参见 SexEnum 枚举类", example = "1")
|
||||
private Integer sex;
|
||||
|
||||
private Long organId;
|
||||
|
||||
}
|
||||
|
||||
+15
-2
@@ -2,12 +2,16 @@ package com.cf.imes.module.system.dal.mysql.dept;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.framework.organ.core.security.OrganSecurityWebFilter;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.dept.DeptDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Mapper
|
||||
public interface DeptMapper extends BaseMapperX<DeptDO> {
|
||||
@@ -19,8 +23,17 @@ public interface DeptMapper extends BaseMapperX<DeptDO> {
|
||||
.eqIfPresent(DeptDO::getStatus, reqVO.getStatus()));
|
||||
}
|
||||
|
||||
default DeptDO selectByParentIdAndName(Long parentId, String name) {
|
||||
return selectOne(DeptDO::getParentId, parentId, DeptDO::getName, name);
|
||||
default DeptDO selectByParentIdAndName(Long parentId, String name, Long organId) {
|
||||
//如果请求中没有organId 从上下文中获取
|
||||
if(Objects.isNull(organId)) {
|
||||
organId = OrganContextHolder.getOrganId();
|
||||
}
|
||||
return selectOne(new LambdaQueryWrapperX<DeptDO>()
|
||||
.eq(DeptDO::getOrganId, organId)
|
||||
.eq(DeptDO::getParentId, parentId)
|
||||
.eq(DeptDO::getName, name)
|
||||
);
|
||||
//return selectOne(DeptDO::getParentId, parentId, DeptDO::getName, name);
|
||||
}
|
||||
|
||||
default Long selectCountByParentId(Long parentId) {
|
||||
|
||||
+4
-4
@@ -48,7 +48,7 @@ public class DeptServiceImpl implements DeptService {
|
||||
// 校验父部门的有效性
|
||||
validateParentDept(null, createReqVO.getParentId());
|
||||
// 校验部门名的唯一性
|
||||
validateDeptNameUnique(null, createReqVO.getParentId(), createReqVO.getName());
|
||||
validateDeptNameUnique(null, createReqVO.getParentId(), createReqVO.getName(), createReqVO.getOrganId());
|
||||
|
||||
// 插入部门
|
||||
DeptDO dept = BeanUtils.toBean(createReqVO, DeptDO.class);
|
||||
@@ -68,7 +68,7 @@ public class DeptServiceImpl implements DeptService {
|
||||
// 校验父部门的有效性
|
||||
validateParentDept(updateReqVO.getId(), updateReqVO.getParentId());
|
||||
// 校验部门名的唯一性
|
||||
validateDeptNameUnique(updateReqVO.getId(), updateReqVO.getParentId(), updateReqVO.getName());
|
||||
validateDeptNameUnique(updateReqVO.getId(), updateReqVO.getParentId(), updateReqVO.getName(), updateReqVO.getOrganId());
|
||||
|
||||
// 更新部门
|
||||
DeptDO updateObj = BeanUtils.toBean(updateReqVO, DeptDO.class);
|
||||
@@ -136,8 +136,8 @@ public class DeptServiceImpl implements DeptService {
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void validateDeptNameUnique(Long id, Long parentId, String name) {
|
||||
DeptDO dept = deptMapper.selectByParentIdAndName(parentId, name);
|
||||
void validateDeptNameUnique(Long id, Long parentId, String name, Long organId) {
|
||||
DeptDO dept = deptMapper.selectByParentIdAndName(parentId, name, organId);
|
||||
if (dept == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
+1
-1
@@ -150,7 +150,7 @@ public class OrganServiceImpl implements OrganService {
|
||||
RoleSaveReqVO reqVO = new RoleSaveReqVO();
|
||||
reqVO.setName(RoleCodeEnum.TENANT_ADMIN.getName()).setCode(RoleCodeEnum.TENANT_ADMIN.getCode())
|
||||
.setSort(0).setRemark("系统自动生成").setOrganId(organId);
|
||||
Long roleId = roleService.createRole(reqVO, RoleTypeEnum.SYSTEM.getType(), organId);
|
||||
Long roleId = roleService.createRole(reqVO, RoleTypeEnum.SYSTEM.getType());
|
||||
// 分配权限
|
||||
permissionService.assignRoleMenu(roleId, tenantPackage.getMenuIds());
|
||||
return roleId;
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ public interface RoleService {
|
||||
* @param type 角色类型
|
||||
* @return 角色编号
|
||||
*/
|
||||
Long createRole(@Valid RoleSaveReqVO createReqVO, Integer type, Long organId);
|
||||
Long createRole(@Valid RoleSaveReqVO createReqVO, Integer type);
|
||||
|
||||
/**
|
||||
* 更新角色
|
||||
|
||||
+4
-5
@@ -49,15 +49,15 @@ public class RoleServiceImpl implements RoleService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createRole(RoleSaveReqVO createReqVO, Integer type, Long organId) {
|
||||
public Long createRole(RoleSaveReqVO createReqVO, Integer type) {
|
||||
// 校验角色
|
||||
validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null, organId);
|
||||
validateRoleDuplicate(createReqVO.getName(), createReqVO.getCode(), null, createReqVO.getOrganId());
|
||||
// 插入到数据库
|
||||
RoleDO role = BeanUtils.toBean(createReqVO, RoleDO.class);
|
||||
role.setType(ObjectUtil.defaultIfNull(type, RoleTypeEnum.CUSTOM.getType()));
|
||||
role.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限
|
||||
role.setOrganId(organId);
|
||||
role.setOrganId(createReqVO.getOrganId());
|
||||
roleMapper.insert(role);
|
||||
// 返回
|
||||
return role.getId();
|
||||
@@ -66,11 +66,10 @@ public class RoleServiceImpl implements RoleService {
|
||||
@Override
|
||||
@CacheEvict(value = RedisKeyConstants.ROLE, key = "#updateReqVO.id")
|
||||
public void updateRole(RoleSaveReqVO updateReqVO) {
|
||||
Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId();
|
||||
// 校验是否可以更新
|
||||
validateRoleForUpdate(updateReqVO.getId());
|
||||
// 校验角色的唯一字段是否重复
|
||||
validateRoleDuplicate(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId(), organId);
|
||||
validateRoleDuplicate(updateReqVO.getName(), updateReqVO.getCode(), updateReqVO.getId(), updateReqVO.getOrganId());
|
||||
|
||||
// 更新到数据库
|
||||
RoleDO updateObj = BeanUtils.toBean(updateReqVO, RoleDO.class);
|
||||
|
||||
Reference in New Issue
Block a user