You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
4.3 KiB
127 lines
4.3 KiB
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<SysRole> 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<SysRole> 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<SysRoleMenu> 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<SysRole> list=sysRoleService.queryRoles(roleName,page,limit); |
|
int count=sysRoleService.getCount(roleName,page,limit); |
|
return HttpResult.ok(count,list); |
|
}catch (Exception e){ |
|
return HttpResult.error(); |
|
} |
|
} |
|
}
|
|
|