package com.mh.user.controller; import com.mh.common.http.HttpResult; import com.mh.common.page.PageRequest; import com.mh.user.annotation.SysLogger; import com.mh.user.constants.SysConstants; import com.mh.user.mapper.SysRoleMapper; import com.mh.user.model.SysRole; import com.mh.user.model.SysRoleMenu; import com.mh.user.service.SysRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Date; import java.util.List; /** * 角色控制器 * @author ljf * @date 2020-04-25 */ @RestController @RequestMapping("role") public class SysRoleController { @Autowired private SysRoleService sysRoleService; @Autowired private SysRoleMapper sysRoleMapper; @SysLogger(title="角色管理",optDesc = "保存或者编辑角色信息") @PostMapping(value="/save") public HttpResult save(@RequestBody SysRole record) { SysRole role = sysRoleService.findById(record.getId()); if(role != null) { if(SysConstants.ADMIN.equalsIgnoreCase(role.getName())) { return HttpResult.error("超级管理员不允许修改!"); } List role1=sysRoleService.findByName(record.getName()); if (role1!=null && role1.size()>0){ if(role.getId()!=role1.get(0).getId()){ return HttpResult.error("角色名不能重复!"); } } } // 新增角色 if((record.getId() == null || record.getId() ==0) && !sysRoleService.findByName(record.getName()).isEmpty()) { return HttpResult.error("角色名已存在!"); } record.setCreateBy("admin"); Date date=new Date(); record.setCreateTime(date); //创建日期 record.setLastUpdateTime(date); //更新日期 return HttpResult.ok(sysRoleService.save(record)); } // 删除多个 @SysLogger(title="角色管理",optDesc = "删除角色信息") @PostMapping(value="/delete") public HttpResult delete(@RequestBody List records) { return HttpResult.ok(sysRoleService.delete(records)); } // 删除单个 @PostMapping(value="/deleteById") public HttpResult deleteById(@RequestBody SysRole record) { return HttpResult.ok(sysRoleService.delete(record)); } @PreAuthorize("hasAuthority('sys:role:view')") @PostMapping(value="/findPage") public HttpResult findPage(@RequestBody PageRequest pageRequest) { return HttpResult.ok(sysRoleService.findPage(pageRequest)); } @PreAuthorize("hasAuthority('sys:role:view')") @GetMapping(value="/findAll") public HttpResult findAll() { return HttpResult.ok(sysRoleService.findAll()); } @PreAuthorize("hasAuthority('sys:role:view')") @GetMapping(value="/findRoleMenus") public HttpResult findRoleMenus(@RequestParam Long roleId) { return HttpResult.ok(sysRoleService.findRoleMenus(roleId)); } @PreAuthorize("hasAuthority('sys:role:view')") @PostMapping(value="/saveRoleMenus") public HttpResult saveRoleMenus(@RequestBody List records) { for(SysRoleMenu record:records) { SysRole sysRole = sysRoleMapper.selectByPrimaryKey(record.getRoleId()); if(SysConstants.ADMIN.equalsIgnoreCase(sysRole.getName())) { // 如果是超级管理员,不允许修改 return HttpResult.error("超级管理员拥有所有菜单权限,不允许修改!"); } } return HttpResult.ok(sysRoleService.saveRoleMenus(records)); } @PostMapping(value="/findId") public HttpResult findByName(@RequestParam String name) { return HttpResult.ok(sysRoleService.findByName(name)); } @SysLogger(title="角色管理",optDesc = "查询角色信息") @PostMapping(value="/queryRoles") public HttpResult queryRoles(@RequestParam(value = "roleName", required = false) String roleName, @RequestParam(value = "page", required = false, defaultValue = "1") int page, @RequestParam(value = "limit", required = false, defaultValue = "1000") int limit) { try{ List list=sysRoleService.queryRoles(roleName,page,limit); int count=sysRoleService.getCount(roleName,page,limit); return HttpResult.ok(count,list); }catch (Exception e){ return HttpResult.error(); } } }