package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.base.BaseController; import com.jsh.erp.base.TableDataInfo; import com.jsh.erp.datasource.entities.Role; import com.jsh.erp.datasource.entities.RoleEx; import com.jsh.erp.service.RoleService; import com.jsh.erp.service.UserBusinessService; import com.jsh.erp.utils.Constants; import com.jsh.erp.utils.ErpInfo; import com.jsh.erp.utils.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; import static com.jsh.erp.utils.ResponseJsonUtil.returnStr; /** * @author ji sheng hua jshERP */ @RestController @RequestMapping(value = "/role") @Api(tags = {"角色管理"}) public class RoleController extends BaseController { private Logger logger = LoggerFactory.getLogger(RoleController.class); @Resource private RoleService roleService; @Resource private UserBusinessService userBusinessService; @GetMapping(value = "/info") @ApiOperation(value = "根据id获取信息") public String getList(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { Role role = roleService.getRole(id); Map objectMap = new HashMap<>(); if(role != null) { objectMap.put("info", role); return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } @GetMapping(value = "/list") @ApiOperation(value = "获取信息列表") public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search, HttpServletRequest request)throws Exception { String name = StringUtil.getInfo(search, "name"); String description = StringUtil.getInfo(search, "description"); List list = roleService.select(name, description); return getDataTable(list); } @PostMapping(value = "/add") @ApiOperation(value = "新增") public String addResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int insert = roleService.insertRole(obj, request); return returnStr(objectMap, insert); } @PutMapping(value = "/update") @ApiOperation(value = "修改") public String updateResource(@RequestBody JSONObject obj, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int update = roleService.updateRole(obj, request); return returnStr(objectMap, update); } @DeleteMapping(value = "/delete") @ApiOperation(value = "删除") public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int delete = roleService.deleteRole(id, request); return returnStr(objectMap, delete); } @DeleteMapping(value = "/deleteBatch") @ApiOperation(value = "批量删除") public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int delete = roleService.batchDeleteRole(ids, request); return returnStr(objectMap, delete); } @GetMapping(value = "/checkIsNameExist") @ApiOperation(value = "检查名称是否存在") public String checkIsNameExist(@RequestParam Long id, @RequestParam(value ="name", required = false) String name, HttpServletRequest request)throws Exception { Map objectMap = new HashMap<>(); int exist = roleService.checkIsNameExist(id, name); if(exist > 0) { objectMap.put("status", true); } else { objectMap.put("status", false); } return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } /** * 角色对应应用显示 * @param request * @return */ @GetMapping(value = "/findUserRole") @ApiOperation(value = "查询用户的角色") public JSONArray findUserRole(@RequestParam("UBType") String type, @RequestParam("UBKeyId") String keyId, HttpServletRequest request)throws Exception { JSONArray arr = new JSONArray(); try { //获取权限信息 String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId); List dataList = roleService.findUserRole(); if (null != dataList) { for (Role role : dataList) { JSONObject item = new JSONObject(); item.put("id", role.getId()); item.put("text", role.getName()); Boolean flag = ubValue.contains("[" + role.getId().toString() + "]"); if (flag) { item.put("checked", true); } arr.add(item); } } } catch (Exception e) { logger.error(e.getMessage(), e); } return arr; } @GetMapping(value = "/allList") @ApiOperation(value = "查询全部角色列表") public List allList(HttpServletRequest request)throws Exception { return roleService.allList(); } @GetMapping(value = "/tenantRoleList") @ApiOperation(value = "查询租户角色列表") public List tenantRoleList(HttpServletRequest request)throws Exception { return roleService.tenantRoleList(); } /** * 批量设置状态-启用或者禁用 * @param jsonObject * @param request * @return */ @PostMapping(value = "/batchSetStatus") @ApiOperation(value = "批量设置状态") public String batchSetStatus(@RequestBody JSONObject jsonObject, HttpServletRequest request)throws Exception { Boolean status = jsonObject.getBoolean("status"); String ids = jsonObject.getString("ids"); Map objectMap = new HashMap<>(); int res = roleService.batchSetStatus(status, ids); if(res > 0) { return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } else { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } }