微调
This commit is contained in:
@@ -14,7 +14,9 @@ public enum UserResponseEnum {
|
||||
REGISTER_EMAIL_FAIL("A010004", "该邮箱已被注册"),
|
||||
NAME_OR_CODE_REPEAT("A010005", "名称或编码已存在"),
|
||||
EXISTS_SAME_MENU_CHILDREN("A010006", "当前菜单下已存在相同的子菜单"),
|
||||
EXISTS_CHILDREN("A010007", "该节点下存在子节点,请先无法删除");
|
||||
EXISTS_CHILDREN_NOT_UPDATE("A010008", "该菜单下存在子节点,无法将菜单修改为按钮"),
|
||||
EXISTS_CHILDREN_NOT_DELETE("A010007", "该节点下存在子节点,无法删除"),
|
||||
ADMINSTRATOR_ROLE_CANNOT_DELETE("A010009", "超级管理员及管理员角色禁止删除"),;
|
||||
|
||||
private String code;
|
||||
private String message;
|
||||
|
||||
@@ -37,6 +37,17 @@ public class SysFunctionController extends BaseController {
|
||||
private final ISysFunctionService sysFunctionService;
|
||||
private final ISysRoleFunctionService sysRoleFunctionService;
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@PostMapping("/list")
|
||||
@ApiOperation("分页查询菜单树")
|
||||
@ApiImplicitParam(name = "queryParam", value = "查询参数", required = true)
|
||||
public HttpResult<List<SysFunction>> list(@RequestBody @Validated SysFunctionParam.QueryParam queryParam) {
|
||||
String methodDescribe = getMethodDescribe("list");
|
||||
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam);
|
||||
List<SysFunction> result = sysFunctionService.listFunction(queryParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
|
||||
@GetMapping("/functionTree")
|
||||
@ApiOperation("菜单树")
|
||||
@@ -71,7 +82,7 @@ public class SysFunctionController extends BaseController {
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
|
||||
@PutMapping("/update")
|
||||
@PostMapping("/update")
|
||||
@ApiOperation("修改菜单")
|
||||
@ApiImplicitParam(name = "functionParam", value = "菜单数据", required = true)
|
||||
public HttpResult<Boolean> update(@RequestBody @Validated SysFunctionParam.UpdateParam functionParam) {
|
||||
@@ -133,11 +144,11 @@ public class SysFunctionController extends BaseController {
|
||||
// }
|
||||
|
||||
@OperateInfo(operateType = OperateType.UPDATE, info = LogEnum.SYSTEM_MEDIUM)
|
||||
@PutMapping("/assignFunctionByRoleId")
|
||||
@PostMapping("/assignFunctionByRoleId")
|
||||
@ApiOperation("角色分配菜单")
|
||||
@ApiImplicitParam(name = "roleFunctionComponent", value = "角色信息", required = true)
|
||||
public HttpResult<Boolean> assignFunctionByRoleIndexes(@RequestBody @Validated SysRoleParam.RoleBindFunction param) {
|
||||
String methodDescribe = getMethodDescribe("assignFunctionByRoleIndexes");
|
||||
public HttpResult<Boolean> assignFunctionByRoleId(@RequestBody @Validated SysRoleParam.RoleBindFunction param) {
|
||||
String methodDescribe = getMethodDescribe("assignFunctionByRoleId");
|
||||
LogUtil.njcnDebug(log, "{},传入的角色id和资源id集合为:{}", methodDescribe, param);
|
||||
boolean result = sysRoleFunctionService.updateRoleFunction(param.getRoleId(), param.getFunctionIds());
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
|
||||
@@ -65,7 +65,7 @@ public class SysRoleController extends BaseController {
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
|
||||
@PutMapping("/update")
|
||||
@PostMapping("/update")
|
||||
@ApiOperation("修改角色信息")
|
||||
@ApiImplicitParam(name = "updateParam", value = "角色信息", required = true)
|
||||
public HttpResult<Object> update(@RequestBody @Validated SysRoleParam.UpdateParam updateParam) {
|
||||
|
||||
@@ -89,7 +89,7 @@ public class SysUserController extends BaseController {
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
|
||||
@PutMapping("/update")
|
||||
@PostMapping("/update")
|
||||
@ApiOperation("修改用户")
|
||||
@ApiImplicitParam(name = "updateUserParam", value = "修改用户", required = true)
|
||||
public HttpResult<Boolean> update(@RequestBody @Validated SysUserParam.SysUserUpdateParam updateUserParam) {
|
||||
@@ -123,7 +123,7 @@ public class SysUserController extends BaseController {
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE)
|
||||
@PutMapping("/updatePassword")
|
||||
@PostMapping("/updatePassword")
|
||||
@ApiOperation("修改密码")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "id", value = "用户id", required = true),
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
select b.*
|
||||
from sys_role_function a
|
||||
inner join sys_function b on a.Function_Id = b.id
|
||||
where a.Role_Id = #{roleId} and b.type in (1)
|
||||
and b.state = 1
|
||||
where a.Role_Id = #{roleId} and b.type in (0, 1)
|
||||
and b.state = 1 order by b.sort,b.Update_Time desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.gather.user.user.pojo.param;
|
||||
|
||||
import com.njcn.common.pojo.constant.PatternRegex;
|
||||
import com.njcn.gather.user.pojo.constant.UserValidMessage;
|
||||
import com.njcn.web.pojo.param.BaseParam;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -55,6 +56,18 @@ public class SysFunctionParam {
|
||||
@ApiModelProperty("描述")
|
||||
private String remark;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public static class QueryParam extends BaseParam {
|
||||
@ApiModelProperty("名称")
|
||||
@Pattern(regexp = PatternRegex.FUNCTION_NAME, message = UserValidMessage.NAME_FORMAT_ERROR)
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("资源类型")
|
||||
@Range(min = 0, max = 3, message = UserValidMessage.PARAM_FORMAT_ERROR)
|
||||
private Integer type;
|
||||
}
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public static class UpdateParam extends SysFunctionParam {
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.njcn.gather.user.user.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.gather.user.user.pojo.param.SysFunctionParam;
|
||||
import com.njcn.gather.user.user.pojo.param.SysRoleParam;
|
||||
import com.njcn.gather.user.user.pojo.po.SysFunction;
|
||||
|
||||
import java.util.List;
|
||||
@@ -13,6 +12,14 @@ import java.util.List;
|
||||
*/
|
||||
public interface ISysFunctionService extends IService<SysFunction> {
|
||||
|
||||
/**
|
||||
* 获取菜单(资源)列表
|
||||
*
|
||||
* @param queryParam 查询参数
|
||||
* @return 菜单列表
|
||||
*/
|
||||
List<SysFunction> listFunction(SysFunctionParam.QueryParam queryParam);
|
||||
|
||||
/**
|
||||
* 添加菜单(资源)
|
||||
*
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.njcn.gather.user.user.service;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.gather.user.user.pojo.param.SysRoleParam;
|
||||
import com.njcn.gather.user.user.pojo.po.SysFunction;
|
||||
import com.njcn.gather.user.user.pojo.po.SysRole;
|
||||
|
||||
import java.util.List;
|
||||
@@ -45,29 +44,6 @@ public interface ISysRoleService extends IService<SysRole> {
|
||||
*/
|
||||
boolean deleteRole(List<String> ids);
|
||||
|
||||
/**
|
||||
* 查询所有角色列表
|
||||
*
|
||||
* @return 角色列表
|
||||
*/
|
||||
//List<SysRole> listAllRole();
|
||||
|
||||
/**
|
||||
* 根据权限类型type获取角色列表
|
||||
*
|
||||
* @param type 角色类型
|
||||
* @return 角色列表
|
||||
*/
|
||||
//List<SysRole> listRoleByType(Integer type);
|
||||
|
||||
/**
|
||||
* 根据用户id获取角色
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 角色列表
|
||||
*/
|
||||
//List<SysRole> listRoleByUserId(String userId);
|
||||
|
||||
/**
|
||||
* 查询所有角色作为下拉框
|
||||
*
|
||||
@@ -80,7 +56,5 @@ public interface ISysRoleService extends IService<SysRole> {
|
||||
*
|
||||
* @param ids 角色id
|
||||
*/
|
||||
// boolean selectRelevance(List<String> ids);
|
||||
|
||||
|
||||
// boolean selectRelevance(List<String> ids);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.njcn.gather.user.user.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
@@ -34,6 +36,20 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
|
||||
|
||||
private final ISysRoleFunctionService sysRoleFunctionService;
|
||||
|
||||
@Override
|
||||
public List<SysFunction> listFunction(SysFunctionParam.QueryParam queryParam) {
|
||||
LambdaQueryWrapper<SysFunction> wrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotNull(queryParam)) {
|
||||
wrapper.like(StrUtil.isNotBlank(queryParam.getName()), SysFunction::getName, queryParam.getName()).eq(ObjectUtil.isNotNull(queryParam.getType()), SysFunction::getType, queryParam.getType());
|
||||
}
|
||||
wrapper.eq(SysFunction::getState, DataStateEnum.ENABLE.getCode());
|
||||
List<SysFunction> allFunctions = this.list(wrapper);
|
||||
return allFunctions.stream().filter(fun -> Objects.equals(FunctionConst.FATHER_PID, fun.getPid()))
|
||||
.peek(funS -> funS.setChildren(getChildrenList(funS, allFunctions)))
|
||||
.sorted(Comparator.comparingInt(SysFunction::getSort))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addFunction(SysFunctionParam functionParam) {
|
||||
checkFunctionParam(functionParam, false);
|
||||
@@ -60,10 +76,17 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
|
||||
|
||||
@Override
|
||||
public boolean updateFunction(SysFunctionParam.UpdateParam param) {
|
||||
boolean result = false;
|
||||
checkFunctionParam(param, true);
|
||||
SysFunction function = new SysFunction();
|
||||
BeanUtil.copyProperties(param, function);
|
||||
boolean result = this.updateById(function);
|
||||
SysFunction oldFunction = this.lambdaQuery().eq(SysFunction::getId, param.getId()).eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()).one();
|
||||
List<SysFunction> childrenList = this.lambdaQuery().eq(SysFunction::getPid, param.getId()).eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||
if (oldFunction.getType().equals(FunctionConst.TYPE_MENU) && param.getType().equals(FunctionConst.TYPE_BUTTON) && !CollectionUtils.isEmpty(childrenList)) {
|
||||
throw new BusinessException(UserResponseEnum.EXISTS_CHILDREN_NOT_UPDATE);
|
||||
} else {
|
||||
SysFunction function = new SysFunction();
|
||||
BeanUtil.copyProperties(param, function);
|
||||
result = this.updateById(function);
|
||||
}
|
||||
// if (result) {
|
||||
// refreshRolesFunctionsCache();
|
||||
// }
|
||||
@@ -81,7 +104,7 @@ public class SysFunctionServiceImpl extends ServiceImpl<SysFunctionMapper, SysFu
|
||||
// refreshRolesFunctionsCache();
|
||||
// }
|
||||
} else {
|
||||
throw new BusinessException(UserResponseEnum.EXISTS_CHILDREN);
|
||||
throw new BusinessException(UserResponseEnum.EXISTS_CHILDREN_NOT_DELETE);
|
||||
}
|
||||
return result1;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.gather.user.pojo.constant.RoleConst;
|
||||
import com.njcn.gather.user.pojo.enums.UserResponseEnum;
|
||||
import com.njcn.gather.user.user.mapper.SysRoleMapper;
|
||||
import com.njcn.gather.user.user.pojo.param.SysRoleParam;
|
||||
@@ -39,16 +40,14 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
public Page<SysRole> listRole(SysRoleParam.QueryParam queryParam) {
|
||||
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
|
||||
if (ObjectUtil.isNotNull(queryParam)) {
|
||||
queryWrapper.like(StrUtil.isNotBlank(queryParam.getName()), "sys_role.name", queryParam.getName())
|
||||
.eq(StrUtil.isNotBlank(queryParam.getCode()), "sys_role.code", queryParam.getCode())
|
||||
.eq(ObjectUtil.isNotNull(queryParam.getType()), "sys_role.type", queryParam.getType());
|
||||
queryWrapper.like(StrUtil.isNotBlank(queryParam.getName()), "sys_role.name", queryParam.getName()).eq(StrUtil.isNotBlank(queryParam.getCode()), "sys_role.code", queryParam.getCode()).eq(ObjectUtil.isNotNull(queryParam.getType()), "sys_role.type", queryParam.getType());
|
||||
}
|
||||
// if (queryParam.getType().equals(0)) {
|
||||
// queryWrapper.in("sys_role.type", queryParam.getType(), 1);
|
||||
// } else if (queryParam.getType().equals(1)) {
|
||||
// queryWrapper.eq("sys_role.type", 2);
|
||||
// }
|
||||
queryWrapper.eq("sys_role.state", DataStateEnum.ENABLE.getCode());
|
||||
queryWrapper.eq("sys_role.state", DataStateEnum.ENABLE.getCode()).orderByDesc("sys_role.Update_Time");
|
||||
return this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper);
|
||||
}
|
||||
|
||||
@@ -72,37 +71,24 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
|
||||
@Override
|
||||
public boolean deleteRole(List<String> ids) {
|
||||
//超级管理员、管理员角色不能删除
|
||||
Integer count = this.lambdaQuery()
|
||||
.in(SysRole::getType, RoleConst.TYPE_SUPER_ADMINISTRATOR, RoleConst.TYPE_ADMINISTRATOR)
|
||||
.in(SysRole::getId, ids).eq(SysRole::getState, DataStateEnum.ENABLE.getCode()).count();
|
||||
if (count > 0) {
|
||||
throw new BusinessException(UserResponseEnum.ADMINSTRATOR_ROLE_CANNOT_DELETE);
|
||||
}
|
||||
// 删除角色和用户的绑定
|
||||
sysUserRoleService.deleteUserRoleByRoleIds(ids);
|
||||
//删除角色和资源的绑定
|
||||
sysRoleFunctionService.deleteRoleFunctionByRoleIds(ids);
|
||||
return this.lambdaUpdate()
|
||||
.set(SysRole::getState, DataStateEnum.DELETED.getCode())
|
||||
.in(SysRole::getId, ids).update();
|
||||
return this.lambdaUpdate().set(SysRole::getState, DataStateEnum.DELETED.getCode()).in(SysRole::getId, ids).update();
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public List<SysRole> listAllRole() {
|
||||
// QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
|
||||
// queryWrapper.ne("sys_role.state", DataStateEnum.DELETED.getCode());
|
||||
// return this.baseMapper.selectList(queryWrapper);
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public List<SysRole> listRoleByType(Integer type) {
|
||||
// return this.lambdaQuery().eq(SysRole::getType, type).eq(SysRole::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public List<SysRole> listRoleByUserId(String userId) {
|
||||
// return sysUserRoleService.listRoleByUserId(userId);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public List<SysRole> simpleList() {
|
||||
LambdaQueryWrapper<SysRole> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// lambdaQueryWrapper.select(SysRole::getId, SysRole::getName).eq(SysRole::getState, DataStateEnum.ENABLE.getCode()).eq(SysRole::getType, RoleConst.TYPE_USER);
|
||||
lambdaQueryWrapper.select(SysRole::getId, SysRole::getName).eq(SysRole::getState, DataStateEnum.ENABLE.getCode());
|
||||
lambdaQueryWrapper.select(SysRole::getId, SysRole::getName).ne(SysRole::getType, RoleConst.TYPE_SUPER_ADMINISTRATOR).eq(SysRole::getState, DataStateEnum.ENABLE.getCode());
|
||||
return this.baseMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
@@ -126,9 +112,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||
private void checkRepeat(SysRoleParam roleParam, boolean isExcludeSelf) {
|
||||
LambdaQueryWrapper<SysRole> roleLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
roleLambdaQueryWrapper
|
||||
.eq(SysRole::getName, roleParam.getName())
|
||||
.eq(SysRole::getCode, roleParam.getCode())
|
||||
.eq(SysRole::getState, DataStateEnum.ENABLE.getCode());
|
||||
.eq(SysRole::getState, DataStateEnum.ENABLE.getCode())
|
||||
.and(w -> w.eq(SysRole::getName, roleParam.getName()).or().eq(SysRole::getCode, roleParam.getCode()));
|
||||
//更新的时候,需排除当前记录
|
||||
if (isExcludeSelf) {
|
||||
if (roleParam instanceof SysRoleParam.UpdateParam) {
|
||||
|
||||
Reference in New Issue
Block a user