中央热水项目
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

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();
}
}
}