package com.lyms.cm.controller.sys; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.lyms.cm.entity.sys.SysPermissions; import com.lyms.cm.entity.sys.SysRolePermissionMaps; import com.lyms.cm.entity.sys.SysRoles; import com.lyms.cm.service.sys.SysPermissionsService; import com.lyms.cm.service.sys.SysRolePermissionMapsService; import com.lyms.cm.service.sys.SysRolesService; import com.lyms.constants.OperationName; import com.lyms.util.InstanceUtils; import com.lyms.util.StrUtils; import com.lyms.web.bean.AjaxResult; import com.lyms.web.controller.BaseController; /** *

* 角色表 前端控制器 *

* * @author maliang * @since 2017-03-02 */ @Controller @RequestMapping("/sysRoles") public class SysRolesController extends BaseController { @Autowired private SysRolesService sysRolesService; @Autowired private SysPermissionsService sysPermissionsService; @Autowired private SysRolePermissionMapsService sysRolePermissionMapsService; @RequestMapping("/toList") public String list() { return "/role/role_list"; } @RequestMapping(value = { "/treeTest" }, method = RequestMethod.GET) public String treeTest(Model model) { return "/role/tree_test"; } @RequestMapping(value = "/getRoleList", method = { RequestMethod.POST }) @ResponseBody public java.util.Map getRoleList() { Page page = getPage(); EntityWrapper ew = new EntityWrapper(); ew.where("ifDel=0"); String id = getParameter("id"); String name = getParameter("name"); String type = getParameter("type"); if(StrUtils.isNotEmpty(id)){ ew.and("id like {0}", name.trim() + "%"); } if(StrUtils.isNotEmpty(name)){ ew.and("name like {0}", name.trim() + "%"); } if(StrUtils.isNotEmpty(type)){ ew.and("type={0}", type); } return toGridData(sysRolesService.selectPage(page, ew)); } /** * 跳转到编辑页面 * * @return */ @RequestMapping(value = { "/{id}/toEdit" }, method = RequestMethod.GET) public String toEdit(@PathVariable String id, Model model) { if (!StringUtils.isBlank(id) && !"0".equals(id)) { SysRoles role = sysRolesService.selectById(id); model.addAttribute("role", role); //当前用户权限数据 List rpList = sysRolePermissionMapsService .selectList(new EntityWrapper().where("role_id={0}", "'" + id + "'")); StringBuilder permissionSB = new StringBuilder(); for(SysRolePermissionMaps rpEntity : rpList){ permissionSB.append(","+rpEntity.getPermissionId()); } model.addAttribute("rolePermissions", permissionSB.toString().replaceFirst(",", "")); } //所有权限数据 List perList = sysPermissionsService.selectList(null); model.addAttribute("perString", toJson(perList)); return "/role/role_edit"; } /** * 创建用户 *

* TODO * * @param user * @return */ @RequestMapping(value = "/create", method = RequestMethod.POST) @ResponseBody public AjaxResult create(SysRoles role, AjaxResult ajaxResult) { boolean tag = false; String roleId = StrUtils.uuid(); role.setId(roleId); role.setIfdel(0); if(null == role.getEnable()){ role.setEnable(1); } tag = sysRolesService.createRole(role, getRolePermissionList(roleId, getParameter("resource"))); return handleAjaxResult(ajaxResult, tag, OperationName.CREATE); } /** * 修改信息 */ @RequestMapping(value = "/update", method = { RequestMethod.POST }) @ResponseBody public AjaxResult update(SysRoles role, AjaxResult ajaxResult) { boolean tag = false; if(null == role.getEnable()){ role.setEnable(1); } tag = sysRolesService.updateRole(role, getRolePermissionList(role.getId(), getParameter("resource"))); return handleAjaxResult(ajaxResult, tag, OperationName.UPDATE); } /** * 删除用户 * * @return */ @RequestMapping(value = "/{id}/delete", method = { RequestMethod.GET, RequestMethod.POST }) @ResponseBody public AjaxResult delete(@PathVariable String id, AjaxResult ajaxResult) { int tag = sysRolesService.deleteLogicById(id); return handleAjaxResult(ajaxResult, tag, OperationName.DELETE); } /** *

  • @Description:获取角色权限对应关系列表 *
  • @param roleId 角色id *
  • @param permissionIds 逗号分隔的权限id字符串 *
  • @return *
  • 创建人:方承 *
  • 创建时间:2017年3月8日 *
  • 修改人: *
  • 修改时间: */ private List getRolePermissionList(String roleId, String permissionIds) { List rpList = InstanceUtils.newArrayList(); if (StrUtils.isNotEmpty(permissionIds)) { String[] permissionArray = permissionIds.split(","); for (String permissionId : permissionArray) { if (StrUtils.isNotEmpty(permissionId)) { SysRolePermissionMaps rpentity = new SysRolePermissionMaps(); rpentity.setId(StrUtils.uuid()); rpentity.setRoleId(roleId); rpentity.setPermissionId(permissionId); rpentity.setIfdel(0); rpList.add(rpentity); } } } return rpList; } }