新建角色,更新角色,前后端连调修改

This commit is contained in:
s2042968 2025-01-06 17:12:49 +08:00
parent 1d76327674
commit 25d0cee750
6 changed files with 56 additions and 15 deletions

View File

@ -17,6 +17,12 @@ public class EdMetaObjectHandler implements MetaObjectHandler {
if (metaObject.hasGetter("createdAt")) { if (metaObject.hasGetter("createdAt")) {
this.strictInsertFill(metaObject, "createdAt", Date.class, new Date()); this.strictInsertFill(metaObject, "createdAt", Date.class, new Date());
} }
if (metaObject.hasSetter("gmtModified")) {
this.strictUpdateFill(metaObject, "gmtModified", Date.class, new Date());
}
if (metaObject.hasGetter("updatedAt")) {
this.strictUpdateFill(metaObject, "updatedAt", Date.class, new Date());
}
} }
@Override @Override

View File

@ -1,11 +1,13 @@
package com.electromagnetic.industry.software.manage.controller; package com.electromagnetic.industry.software.manage.controller;
import com.electromagnetic.industry.software.common.exception.BizException;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO; import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO;
import com.electromagnetic.industry.software.manage.pojo.req.RolePageDTO; import com.electromagnetic.industry.software.manage.pojo.req.RolePageDTO;
import com.electromagnetic.industry.software.manage.service.RoleService; import com.electromagnetic.industry.software.manage.service.RoleService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -20,13 +22,23 @@ public class RoleController {
@ApiOperation(value = "新建角色", notes = "") @ApiOperation(value = "新建角色", notes = "")
@RequestMapping(value = "/createRole", method = RequestMethod.POST) @RequestMapping(value = "/createRole", method = RequestMethod.POST)
public ElectromagneticResult<?> createRole(@RequestBody RoleDTO roleDTO) { public ElectromagneticResult<?> createRole(@RequestBody RoleDTO roleDTO) {
return ElectromagneticResultUtil.success(roleService.createRole(roleDTO)); try {
Boolean res = roleService.createRole(roleDTO);
return ElectromagneticResultUtil.success(res);
} catch (BizException e) {
return ElectromagneticResultUtil.fail("400", e.getMsg());
}
} }
@ApiOperation(value = "更新角色", notes = "") @ApiOperation(value = "更新角色", notes = "")
@RequestMapping(value = "/updateRole", method = RequestMethod.POST) @RequestMapping(value = "/updateRole", method = RequestMethod.POST)
public ElectromagneticResult<?> updateRole(@RequestBody RoleDTO roleDTO) { public ElectromagneticResult<?> updateRole(@RequestBody RoleDTO roleDTO) {
return ElectromagneticResultUtil.success(roleService.updateRole(roleDTO)); try {
Boolean res = roleService.updateRole(roleDTO);
return ElectromagneticResultUtil.success(res);
} catch (BizException e) {
return ElectromagneticResultUtil.fail("400", e.getMsg());
}
} }
@ApiOperation(value = "删除角色", notes = "") @ApiOperation(value = "删除角色", notes = "")

View File

@ -20,16 +20,25 @@ public interface RoleMapper extends BaseMapper<Role> {
" r.role_name AS roleName, " + " r.role_name AS roleName, " +
" r.role_desc AS roleDesc, " + " r.role_desc AS roleDesc, " +
" GROUP_CONCAT(DISTINCT f.file_name) AS dataScope, " + " GROUP_CONCAT(DISTINCT f.file_name) AS dataScope, " +
" GROUP_CONCAT(DISTINCT rp.permission_code) AS allowedActions " + " GROUP_CONCAT(DISTINCT rp.permission_code) AS allowedActions, " +
" CASE " +
" WHEN MAX(u.is_activated) = 1 THEN 1 " +
" ELSE 0 " +
" END AS isBind " +
"FROM " + "FROM " +
" ed_role r " + " ed_role r " +
"LEFT JOIN " + "LEFT JOIN " +
" ed_role_permission rp ON r.role_id = rp.role_id " + " ed_role_permission rp ON r.role_id = rp.role_id " +
"LEFT JOIN " + "LEFT JOIN " +
" ed_file_info f ON rp.file_id = f.id " + " ed_file_info f ON rp.file_id = f.id " +
"LEFT JOIN" +
" ed_user_role ur ON r.role_id = ur.user_id " +
"LEFT JOIN" +
" ed_users u ON ur.user_id = u.user_id " +
"WHERE " + "WHERE " +
"<if test='ew != null'>" + " 1=1 " +
" ${ew.sqlSegment} " + "<if test=\"ew != null and ew.sqlSegment != null and ew.sqlSegment != ''\">" +
" AND ${ew.sqlSegment} " +
"</if>" + "</if>" +
"GROUP BY " + "GROUP BY " +
" r.role_id" + " r.role_id" +

View File

@ -61,7 +61,7 @@ public class Role {
/** /**
* 编辑时间 * 编辑时间
*/ */
@TableField(value = "gmt_modified", fill = FieldFill.UPDATE) @TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE)
private Date gmtModified; private Date gmtModified;
} }

View File

@ -32,6 +32,11 @@ public class RoleDTO {
*/ */
private String allowedActions; private String allowedActions;
/**
* 是否绑定用户
*/
private Boolean isBind;
/** /**
* 权限数据 * 权限数据
*/ */

View File

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
import com.electromagnetic.industry.software.common.enums.FilePermission;
import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.exception.BizException;
import com.electromagnetic.industry.software.common.util.EleLog; import com.electromagnetic.industry.software.common.util.EleLog;
import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.IdWorker;
@ -64,7 +65,11 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
@Override @Override
public Boolean createRole(RoleDTO roleDTO) { public Boolean createRole(RoleDTO roleDTO) {
checkRoleNameUnique(roleDTO); if (!checkRoleNameUnique(roleDTO) ) {
String info = "当前角色名称已存在:" + roleDTO.getRoleName();
log.error(info);
throw new BizException(-1, info);
}
// 创建角色 // 创建角色
Role role = new Role(); Role role = new Role();
@ -96,7 +101,11 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
@Override @Override
public Boolean updateRole(RoleDTO roleDTO) { public Boolean updateRole(RoleDTO roleDTO) {
checkRoleNameUnique(roleDTO); if (!checkRoleNameUnique(roleDTO) ) {
String info = "当前角色名称已存在:" + roleDTO.getRoleName();
log.error(info);
throw new BizException(-1, info);
}
// 更新角色信息 // 更新角色信息
LambdaUpdateWrapper<Role> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<Role> updateWrapper = new LambdaUpdateWrapper<>();
@ -226,7 +235,6 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
if (StringUtils.isNotBlank(rolePageDTO.getRoleName())) { if (StringUtils.isNotBlank(rolePageDTO.getRoleName())) {
queryWrapper.eq("r.role_name", rolePageDTO.getRoleName()); queryWrapper.eq("r.role_name", rolePageDTO.getRoleName());
} }
return roleMapper.getPageRoleDTO(page, queryWrapper); return roleMapper.getPageRoleDTO(page, queryWrapper);
} }
@ -290,15 +298,11 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
* @param roleDTO * @param roleDTO
* @return * @return
*/ */
private void checkRoleNameUnique(RoleDTO roleDTO) { private Boolean checkRoleNameUnique(RoleDTO roleDTO) {
QueryWrapper<Role> queryWrapper = new QueryWrapper<>(); QueryWrapper<Role> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_name", roleDTO.getRoleName()); queryWrapper.eq("role_name", roleDTO.getRoleName());
Role role = this.getOne(queryWrapper); Role role = this.getOne(queryWrapper);
if (role != null && !role.getRoleId().equals(roleDTO.getRoleId())) { return role == null || role.getRoleId().equals(roleDTO.getRoleId());
String info = "当前角色名称已存在:" + roleDTO.getRoleName();
log.error(info);
throw new BizException(-1, info);
}
} }
/** /**
@ -323,6 +327,11 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
flatList.add(new RolePermission(roleId, node.getId(), code)); flatList.add(new RolePermission(roleId, node.getId(), code));
} }
}); });
if (node.getDataAuth().get("data").equals(Boolean.TRUE)) {
flatList.add(new RolePermission(roleId, node.getId(), FilePermission.VIEW.getCode()));
}
// 添加当前节点 // 添加当前节点
if (node.getChildren() != null && !node.getChildren().isEmpty()) { if (node.getChildren() != null && !node.getChildren().isEmpty()) {
for (RolePermissionDTO child : node.getChildren()) { for (RolePermissionDTO child : node.getChildren()) {