From 909af32e600e1f47284617596938a06e1fe7513b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Wed, 28 Apr 2021 23:24:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=86=E9=85=8D=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/FunctionController.java | 58 +++++++++++++------ .../controller/UserBusinessController.java | 17 +++--- .../userBusiness/UserBusinessService.java | 6 +- 3 files changed, 53 insertions(+), 28 deletions(-) diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java index 1246e760..e571d49d 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java @@ -20,7 +20,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author ji-sheng-hua jshERP @@ -186,32 +188,52 @@ public class FunctionController { /** * 根据id列表查找功能信息 - * @param functionsIds + * @param roleId * @param request * @return */ - @GetMapping(value = "/findByIds") - public BaseResponseInfo findByIds(@RequestParam("functionsIds") String functionsIds, + @GetMapping(value = "/findRoleFunctionsById") + public BaseResponseInfo findByIds(@RequestParam("roleId") Long roleId, HttpServletRequest request)throws Exception { BaseResponseInfo res = new BaseResponseInfo(); try { - List dataList = functionService.findByIds(functionsIds); - JSONObject outer = new JSONObject(); - outer.put("total", dataList.size()); - //存放数据json数组 - JSONArray dataArray = new JSONArray(); - if (null != dataList) { - for (Function function : dataList) { - JSONObject item = new JSONObject(); - item.put("id", function.getId()); - item.put("name", function.getName()); - item.put("pushBtn", function.getPushBtn()); - dataArray.add(item); + List list = userBusinessService.getBasicData(roleId.toString(), "RoleFunctions"); + if(null!=list && list.size()>0) { + //按钮 + Map btnMap = new HashMap<>(); + String btnStr = list.get(0).getBtnStr(); + if(StringUtil.isNotEmpty(btnStr)) { + JSONArray btnArr = JSONArray.parseArray(btnStr); + for(Object obj: btnArr) { + JSONObject btnObj = JSONObject.parseObject(obj.toString()); + if(btnObj.get("funId")!=null && btnObj.get("btnStr")!=null) { + btnMap.put(btnObj.getLong("funId"), btnObj.getString("btnStr")); + } + } } + //菜单 + String funIds = list.get(0).getValue(); + funIds = funIds.substring(1, funIds.length() - 1); + funIds = funIds.replace("][",","); + List dataList = functionService.findByIds(funIds); + JSONObject outer = new JSONObject(); + outer.put("total", dataList.size()); + //存放数据json数组 + JSONArray dataArray = new JSONArray(); + if (null != dataList) { + for (Function function : dataList) { + JSONObject item = new JSONObject(); + item.put("id", function.getId()); + item.put("name", function.getName()); + item.put("pushBtn", function.getPushBtn()); + item.put("btnStr", btnMap.get(function.getId())); + dataArray.add(item); + } + } + outer.put("rows", dataArray); + res.code = 200; + res.data = outer; } - outer.put("rows", dataArray); - res.code = 200; - res.data = outer; } catch (Exception e) { e.printStackTrace(); res.code = 500; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/UserBusinessController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/UserBusinessController.java index 5f40e081..5add53b5 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/UserBusinessController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/UserBusinessController.java @@ -8,6 +8,7 @@ import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.ErpInfo; +import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; @@ -68,18 +69,20 @@ public class UserBusinessController { /** * 更新角色的按钮权限 - * @param userBusinessId - * @param btnStr + * @param jsonObject * @param request * @return */ @PostMapping(value = "/updateBtnStr") - public BaseResponseInfo updateBtnStr(@RequestParam(value ="userBusinessId", required = false) Long userBusinessId, - @RequestParam(value ="btnStr", required = false) String btnStr, - HttpServletRequest request)throws Exception { + public BaseResponseInfo updateBtnStr(@RequestBody JSONObject jsonObject, + HttpServletRequest request)throws Exception { BaseResponseInfo res = new BaseResponseInfo(); try { - int back = userBusinessService.updateBtnStr(userBusinessId, btnStr); + String roleId = jsonObject.getString("roleId"); + String btnStr = jsonObject.getString("btnStr"); + String keyId = roleId; + String type = "RoleFunctions"; + int back = userBusinessService.updateBtnStr(keyId, type, btnStr); if(back > 0) { res.code = 200; res.data = "成功"; @@ -87,7 +90,7 @@ public class UserBusinessController { } catch (Exception e) { e.printStackTrace(); res.code = 500; - res.data = "查询权限失败"; + res.data = "更新权限失败"; } return res; } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java index 1c31b828..64dcf306 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java @@ -179,14 +179,14 @@ public class UserBusinessService { } @Transactional(value = "transactionManager", rollbackFor = Exception.class) - public int updateBtnStr(Long userBusinessId, String btnStr) throws Exception{ + public int updateBtnStr(String keyId, String type, String btnStr) throws Exception{ logService.insertLog("关联关系", - new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(userBusinessId).toString(), + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_EDIT).append(type).toString(), ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); UserBusiness userBusiness = new UserBusiness(); userBusiness.setBtnStr(btnStr); UserBusinessExample example = new UserBusinessExample(); - example.createCriteria().andIdEqualTo(userBusinessId); + example.createCriteria().andKeyIdEqualTo(keyId).andTypeEqualTo(type); int result=0; try{ result= userBusinessMapper.updateByExampleSelective(userBusiness, example);