赞
踩
基于javaweb+mysql的springboot进销存管理系统(前后端分离+java+vue+springboot+ssm+mysql+maven+redis)
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot进销存管理系统(前后端分离+java+vue+springboot+ssm+mysql+maven+redis)
一、项目简述
本系统功能包括: 库存管理,入库管理,出库管理,往来管理,基础资料, 系统管理,消息中心,系统监控等等。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX ( Webstorm也 行)+ Eclispe ( IntelliJ IDEA ,Eclispe,MyEclispe , Sts都支持)。
项目技术: Springboot + Maven + Mybatis-plus+ Vue + Redis + Shiro + Druid + logback 组成,B/S模萤;,其他:fastjson, poi, Swagger-ui, quartz, lombok (简化代码)等
if(map!=null) { for (Map.Entry<String, String> entry : map.entrySet()) { String str = "${" + entry.getKey() + "}"; content = content.replace(str, entry.getValue()); } } return content; } @Override public void sendSysAnnouncement(String fromUser, String toUser,String title,Map<String, String> map, String templateCode) { List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode); } SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); //模板标题 title = title==null?sysSmsTemplate.getTemplateName():title; //模板内容 String content = sysSmsTemplate.getTemplateContent(); if(map!=null) { for (Map.Entry<String, String> entry : map.entrySet()) { String str = "${" + entry.getKey() + "}"; title = title.replace(str, entry.getValue()); content = content.replace(str, entry.getValue()); } } SysAnnouncement announcement = new SysAnnouncement(); announcement.setTitile(title); announcement.setMsgContent(content); announcement.setSender(fromUser); announcement.setPriority(CommonConstant.PRIORITY_M); announcement.setMsgType(CommonConstant.MSG_TYPE_UESR); announcement.setSendStatus(CommonConstant.HAS_SEND); announcement.setSendTime(new Date()); announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); sysAnnouncementMapper.insert(announcement); // 2.插入用户通告阅读标记表记录 String userId = toUser; String[] userIds = userId.split(","); String anntId = announcement.getId(); for(int i=0;i<userIds.length;i++) { if(oConvertUtils.isNotEmpty(userIds[i])) { SysUser sysUser = userMapper.getUserByName(userIds[i]); if(sysUser==null) { continue; } SysAnnouncementSend announcementSend = new SysAnnouncementSend();
log.error(e.getMessage(), e); return Result.error("文件导入失败:"+e.getMessage()); } finally { try { file.getInputStream().close(); } catch (IOException e) { e.printStackTrace(); } } } return Result.error("文件导入失败!"); } /** * 加载单个数据 用于回显 */ @RequestMapping(value = "/loadOne", method = RequestMethod.GET) public Result<SysCategory> loadOne(@RequestParam(name="field") String field,@RequestParam(name="val") String val) { Result<SysCategory> result = new Result<SysCategory>(); try { QueryWrapper<SysCategory> query = new QueryWrapper<SysCategory>(); query.eq(field, val); List<SysCategory> ls = this.sysCategoryService.list(query); if(ls==null || ls.size()==0) { result.setMessage("查询无果"); result.setSuccess(false); }else if(ls.size()>1) { result.setMessage("查询数据异常,["+field+"]存在多个值:"+val); result.setSuccess(false); }else { result.setSuccess(true); result.setResult(ls.get(0)); } } catch (Exception e) { e.printStackTrace(); result.setMessage(e.getMessage()); result.setSuccess(false);
} finReceiptService.updateMain(finReceipt, finReceiptPage.getFinReceiptEntryList()); return Result.ok("编辑成功!"); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "收款单-通过id删除") @ApiOperation(value="收款单-通过id删除", notes="收款单-通过id删除") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name="id",required=true) String id) { finReceiptService.delMain(id); return Result.ok("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "收款单-批量删除") @ApiOperation(value="收款单-批量删除", notes="收款单-批量删除") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { this.finReceiptService.delBatchMain(Arrays.asList(ids.split(","))); return Result.ok("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @AutoLog(value = "收款单-通过id查询") @ApiOperation(value="收款单-通过id查询", notes="收款单-通过id查询") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name="id",required=true) String id) { FinReceipt finReceipt = finReceiptService.getById(id); if(finReceipt==null) { return Result.error("未找到对应数据"); } return Result.ok(finReceipt); } /**
private void getTreeModelList(List<TreeModel> treeList, List<SysPermission> metaList, TreeModel temp) { for (SysPermission permission : metaList) { String tempPid = permission.getParentId(); TreeModel tree = new TreeModel(permission); if (temp == null && oConvertUtils.isEmpty(tempPid)) { treeList.add(tree); if (!tree.getIsLeaf()) { getTreeModelList(treeList, metaList, tree); } } else if (temp != null && tempPid != null && tempPid.equals(temp.getKey())) { temp.getChildren().add(tree); if (!tree.getIsLeaf()) { getTreeModelList(treeList, metaList, tree); } } } } /** * 获取权限JSON数组 * @param jsonArray * @param allList */ private void getAllAuthJsonArray(JSONArray jsonArray,List<SysPermission> allList) { JSONObject json = null; for (SysPermission permission : allList) { json = new JSONObject(); json.put("action", permission.getPerms()); json.put("status", permission.getStatus()); json.put("type", permission.getPermsType()); json.put("describe", permission.getName()); jsonArray.add(json); } } /** * 获取权限JSON数组 * @param jsonArray * @param metaList */ private void getAuthJsonArray(JSONArray jsonArray,List<SysPermission> metaList) { for (SysPermission permission : metaList) { if(permission.getMenuType()==null) { continue; } JSONObject json = null; if(permission.getMenuType().equals(CommonConstant.MENU_TYPE_2) &&CommonConstant.STATUS_1.equals(permission.getStatus())) { json = new JSONObject();
StringBuilder result = new StringBuilder(); // 快速检查 if (name == null || name.isEmpty()) { // 没必要转换 return ""; } else if (!name.contains("_")) { // 不含下划线,仅将首字母小写 return name.substring(0, 1).toUpperCase() + name.substring(1).toLowerCase(); } // 用下划线将原始字符串分割 String camels[] = name.split("_"); for (String camel : camels) { // 跳过原始字符串中开头、结尾的下换线或双重下划线 if (camel.isEmpty()) { continue; } // 其他的驼峰片段,首字母大写 result.append(camel.substring(0, 1).toUpperCase()); result.append(camel.substring(1).toLowerCase()); } return result.toString(); } //update-end--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能 /** * 将驼峰命名转化成下划线 * @param para * @return */ public static String camelToUnderline(String para){ if(para.length()<3){ return para.toLowerCase(); } StringBuilder sb=new StringBuilder(para); int temp=0;//定位 //从第三个字符开始 避免命名不规范 for(int i=2;i<para.length();i++){ if(Character.isUpperCase(para.charAt(i))){ sb.insert(i+temp, "_"); temp+=1; } } return sb.toString().toLowerCase(); } /** * 随机数 * @param place 定义随机数的位数 */ public static String randomGen(int place) { String base = "qwertyuioplkjhgfdsazxcvbnmQAZWSXEDCRFVTGBYHNUJMIKLOP0123456789"; StringBuffer sb = new StringBuffer();
long b = Integer.parseInt(ip[1]); long c = Integer.parseInt(ip[2]); long d = Integer.parseInt(ip[3]); long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d; return ipNum; } private static boolean isInner(long userIp, long begin, long end) { return (userIp >= begin) && (userIp <= end); } /** * 将下划线大写方式命名的字符串转换为驼峰式。 * 如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。</br> * 例如:hello_world->helloWorld * * @param name * 转换前的下划线大写方式命名的字符串 * @return 转换后的驼峰式命名的字符串 */ public static String camelName(String name) { StringBuilder result = new StringBuilder(); // 快速检查 if (name == null || name.isEmpty()) { // 没必要转换 return ""; } else if (!name.contains("_")) { // 不含下划线,仅将首字母小写 //update-begin--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能 //update-begin--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能 return name.substring(0, 1).toLowerCase() + name.substring(1).toLowerCase(); //update-end--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能 } // 用下划线将原始字符串分割 String camels[] = name.split("_"); for (String camel : camels) { // 跳过原始字符串中开头、结尾的下换线或双重下划线 if (camel.isEmpty()) { continue; } // 处理真正的驼峰片段 if (result.length() == 0) { // 第一个驼峰片段,全部字母都小写 result.append(camel.toLowerCase()); } else { // 其他的驼峰片段,首字母大写 result.append(camel.substring(0, 1).toUpperCase());
return sysDictService.queryAllDepartBackDictModel(); } @Override public List<JSONObject> queryAllDepart(Wrapper wrapper) { //noinspection unchecked return JSON.parseArray(JSON.toJSONString(sysDepartService.list(wrapper))).toJavaList(JSONObject.class); } @Override public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent) { this.sendSysAnnouncement(fromUser, toUser, title, msgContent, CommonConstant.MSG_CATEGORY_2); } @Override public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent, String setMsgCategory) { SysAnnouncement announcement = new SysAnnouncement(); announcement.setTitile(title); announcement.setMsgContent(msgContent); announcement.setSender(fromUser); announcement.setPriority(CommonConstant.PRIORITY_M); announcement.setMsgType(CommonConstant.MSG_TYPE_UESR); announcement.setSendStatus(CommonConstant.HAS_SEND); announcement.setSendTime(new Date()); announcement.setMsgCategory(setMsgCategory); announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); sysAnnouncementMapper.insert(announcement); // 2.插入用户通告阅读标记表记录 String userId = toUser; String[] userIds = userId.split(","); String anntId = announcement.getId(); for(int i=0;i<userIds.length;i++) { if(oConvertUtils.isNotEmpty(userIds[i])) { SysUser sysUser = userMapper.getUserByName(userIds[i]); if(sysUser==null) { continue; } SysAnnouncementSend announcementSend = new SysAnnouncementSend(); announcementSend.setAnntId(anntId); announcementSend.setUserId(sysUser.getId()); announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG); sysAnnouncementSendMapper.insert(announcementSend); JSONObject obj = new JSONObject(); obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER); obj.put(WebsocketConst.MSG_USER_ID, sysUser.getId()); obj.put(WebsocketConst.MSG_ID, announcement.getId()); obj.put(WebsocketConst.MSG_TXT, announcement.getTitile()); webSocket.sendOneMessage(sysUser.getId(), obj.toJSONString()); } }
} } return content; } @Override public void sendSysAnnouncement(String fromUser, String toUser,String title,Map<String, String> map, String templateCode) { List<SysMessageTemplate> sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode); } SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); //模板标题 title = title==null?sysSmsTemplate.getTemplateName():title; //模板内容 String content = sysSmsTemplate.getTemplateContent(); if(map!=null) { for (Map.Entry<String, String> entry : map.entrySet()) { String str = "${" + entry.getKey() + "}"; title = title.replace(str, entry.getValue()); content = content.replace(str, entry.getValue()); } } SysAnnouncement announcement = new SysAnnouncement(); announcement.setTitile(title); announcement.setMsgContent(content); announcement.setSender(fromUser); announcement.setPriority(CommonConstant.PRIORITY_M); announcement.setMsgType(CommonConstant.MSG_TYPE_UESR); announcement.setSendStatus(CommonConstant.HAS_SEND); announcement.setSendTime(new Date()); announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); sysAnnouncementMapper.insert(announcement); // 2.插入用户通告阅读标记表记录 String userId = toUser; String[] userIds = userId.split(","); String anntId = announcement.getId(); for(int i=0;i<userIds.length;i++) { if(oConvertUtils.isNotEmpty(userIds[i])) { SysUser sysUser = userMapper.getUserByName(userIds[i]); if(sysUser==null) { continue; } SysAnnouncementSend announcementSend = new SysAnnouncementSend(); announcementSend.setAnntId(anntId); announcementSend.setUserId(sysUser.getId()); announcementSend.setReadFlag(CommonConstant.NO_READ_FLAG); sysAnnouncementSendMapper.insert(announcementSend); JSONObject obj = new JSONObject(); obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_USER);
/** * <p> * 部门搜索功能方法,根据关键字模糊搜索相关部门 * </p> * * @param keyWord * @return */ @RequestMapping(value = "/searchBy", method = RequestMethod.GET) public Result<List<SysDepartTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord,@RequestParam(name = "myDeptSearch", required = false) String myDeptSearch) { Result<List<SysDepartTreeModel>> result = new Result<List<SysDepartTreeModel>>(); //部门查询,myDeptSearch为1时为我的部门查询,登录用户为上级时查只查负责部门下数据 LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String departIds = null; if(oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals( CommonConstant.USER_IDENTITY_2 )){ departIds = user.getDepartIds(); } List<SysDepartTreeModel> treeList = this.sysDepartService.searhBy(keyWord,myDeptSearch,departIds); if (treeList == null || treeList.size() == 0) { result.setSuccess(false); result.setMessage("未查询匹配数据!"); return result; } result.setResult(treeList); return result; } /** * 导出excel * * @param request */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(SysDepart sysDepart,HttpServletRequest request) { // Step.1 组装查询条件 QueryWrapper<SysDepart> queryWrapper = QueryGenerator.initQueryWrapper(sysDepart, request.getParameterMap()); //Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); List<SysDepart> pageList = sysDepartService.list(queryWrapper); //按字典排序 Collections.sort(pageList, new Comparator<SysDepart>() { @Override public int compare(SysDepart arg0, SysDepart arg1) { return arg0.getOrgCode().compareTo(arg1.getOrgCode()); }
Result<SysUser> result = new Result<SysUser>(); try { String ids = jsonObject.getString("ids"); String status = jsonObject.getString("status"); String[] arr = ids.split(","); for (String id : arr) { if(oConvertUtils.isNotEmpty(id)) { this.sysUserService.update(new SysUser().setStatus(Integer.parseInt(status)), new UpdateWrapper<SysUser>().lambda().eq(SysUser::getId,id)); } } } catch (Exception e) { log.error(e.getMessage(), e); result.error500("操作失败"+e.getMessage()); } result.success("操作成功!"); return result; } @RequestMapping(value = "/queryById", method = RequestMethod.GET) public Result<SysUser> queryById(@RequestParam(name = "id", required = true) String id) { Result<SysUser> result = new Result<SysUser>(); SysUser sysUser = sysUserService.getById(id); if (sysUser == null) { result.error500("未找到对应实体"); } else { result.setResult(sysUser); result.setSuccess(true); } return result; } @RequestMapping(value = "/queryUserRole", method = RequestMethod.GET) public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) { Result<List<String>> result = new Result<>(); List<String> list = new ArrayList<String>(); List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userid)); if (userRole == null || userRole.size() <= 0) { result.error500("未找到用户相关角色信息"); } else { for (SysUserRole sysUserRole : userRole) {
//@RequiresRoles({"admin"}) @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE) @CacheEvict(value= CacheConstant.SYS_DICT_CACHE, allEntries=true) public Result<SysDict> deleteBatch(@RequestParam(name="ids",required=true) String ids) { Result<SysDict> result = new Result<SysDict>(); if(oConvertUtils.isEmpty(ids)) { result.error500("参数不识别!"); }else { sysDictService.removeByIds(Arrays.asList(ids.split(","))); result.success("删除成功!"); } return result; } /** * @功能:刷新缓存 * @return */ @RequestMapping(value = "/refleshCache") public Result<?> refleshCache() { Result<?> result = new Result<SysDict>(); //清空字典缓存 Set keys = redisTemplate.keys(CacheConstant.SYS_DICT_CACHE + "*"); Set keys2 = redisTemplate.keys(CacheConstant.SYS_DICT_TABLE_CACHE + "*"); Set keys3 = redisTemplate.keys(CacheConstant.SYS_DEPARTS_CACHE + "*"); Set keys4 = redisTemplate.keys(CacheConstant.SYS_DEPART_IDS_CACHE + "*"); redisTemplate.delete(keys); redisTemplate.delete(keys2); redisTemplate.delete(keys3); redisTemplate.delete(keys4); return result; } /** * 导出excel * * @param request */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(SysDict sysDict,HttpServletRequest request) { // Step.1 组装查询条件 QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, request.getParameterMap());
/** * 判断一个类是否为基本数据类型。 * * @param clazz * 要判断的类。 * @return true 表示为基本数据类型。 */ private static boolean isBaseDataType(Class clazz) throws Exception { return (clazz.equals(String.class) || clazz.equals(Integer.class) || clazz.equals(Byte.class) || clazz.equals(Long.class) || clazz.equals(Double.class) || clazz.equals(Float.class) || clazz.equals(Character.class) || clazz.equals(Short.class) || clazz.equals(BigDecimal.class) || clazz.equals(BigInteger.class) || clazz.equals(Boolean.class) || clazz.equals(Date.class) || clazz.isPrimitive()); } /** * @param request * IP * @return IP Address */ public static String getIpAddrByRequest(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } /** * @return 本机IP * @throws SocketException */ public static String getRealIp() throws SocketException { String localip = null;// 本地IP,如果没有配置外网IP则返回它 String netip = null;// 外网IP Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; boolean finded = false;// 是否找到外网IP while (netInterfaces.hasMoreElements() && !finded) {
JSONArray menujsonArray = new JSONArray(); this.getPermissionJsonArray(menujsonArray, metaList, null); JSONArray authjsonArray = new JSONArray(); this.getAuthJsonArray(authjsonArray, metaList); //查询所有的权限 LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>(); query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0); query.eq(SysPermission::getMenuType, CommonConstant.MENU_TYPE_2); //query.eq(SysPermission::getStatus, "1"); List<SysPermission> allAuthList = sysPermissionService.list(query); JSONArray allauthjsonArray = new JSONArray(); this.getAllAuthJsonArray(allauthjsonArray, allAuthList); //路由菜单 json.put("menu", menujsonArray); //按钮权限(用户拥有的权限集合) json.put("auth", authjsonArray); //全部权限配置集合(按钮权限,访问权限) json.put("allAuth", allauthjsonArray); result.setResult(json); result.success("查询成功"); } catch (Exception e) { result.error500("查询失败:" + e.getMessage()); log.error(e.getMessage(), e); } return result; } /** * 添加菜单 * @param permission * @return */ //@RequiresRoles({"admin"}) @RequestMapping(value = "/add", method = RequestMethod.POST) public Result<SysPermission> add(@RequestBody SysPermission permission) { Result<SysPermission> result = new Result<SysPermission>(); try { permission = PermissionDataUtil.intelligentProcessData(permission); sysPermissionService.addPermission(permission); result.success("添加成功!"); } catch (Exception e) {
result.setSuccess(statusCode == 200); String responseBody = response.getBody(); try { // 尝试将返回结果转为JSON Object json = JSON.parse(responseBody); result.setResult(json); } catch (Exception e) { // 转成JSON失败,直接返回原始数据 result.setResult(responseBody); } return result; } catch (Exception e) { log.debug("中转HTTP请求失败", e); return Result.error(e.getMessage()); } } }
result.success("删除成功!"); } return result; } /** * 通过id查询 * @param id * @return */ @GetMapping(value = "/queryById") public Result<SysCategory> queryById(@RequestParam(name="id",required=true) String id) { Result<SysCategory> result = new Result<SysCategory>(); SysCategory sysCategory = sysCategoryService.getById(id); if(sysCategory==null) { result.error500("未找到对应实体"); }else { result.setResult(sysCategory); result.setSuccess(true); } return result; } /** * 导出excel * * @param request */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, SysCategory sysCategory) { // Step.1 组装查询条件查询数据 QueryWrapper<SysCategory> queryWrapper = QueryGenerator.initQueryWrapper(sysCategory, request.getParameterMap()); List<SysCategory> pageList = sysCategoryService.list(queryWrapper); // Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); // 过滤选中数据 String selections = request.getParameter("selections"); if(oConvertUtils.isEmpty(selections)) { mv.addObject(NormalExcelConstants.DATA_LIST, pageList); }else { List<String> selectionList = Arrays.asList(selections.split(",")); List<SysCategory> exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList()); mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
} catch (Exception e) { log.error(e.getMessage(), e); } return result; } /** * 保存角色授权 * * @return */ @RequestMapping(value = "/saveRolePermission", method = RequestMethod.POST) //@RequiresRoles({"admin"}) public Result<String> saveRolePermission(@RequestBody JSONObject json) { long start = System.currentTimeMillis(); Result<String> result = new Result<>(); try { String roleId = json.getString("roleId"); String permissionIds = json.getString("permissionIds"); String lastPermissionIds = json.getString("lastpermissionIds"); this.sysRolePermissionService.saveRolePermission(roleId, permissionIds, lastPermissionIds); result.success("保存成功!"); log.info("======角色授权成功=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); } catch (Exception e) { result.error500("授权失败!"); log.error(e.getMessage(), e); } return result; } private void getTreeList(List<SysPermissionTree> treeList, List<SysPermission> metaList, SysPermissionTree temp) { for (SysPermission permission : metaList) { String tempPid = permission.getParentId(); SysPermissionTree tree = new SysPermissionTree(permission); if (temp == null && oConvertUtils.isEmpty(tempPid)) { treeList.add(tree); if (!tree.getIsLeaf()) { getTreeList(treeList, metaList, tree); } } else if (temp != null && tempPid != null && tempPid.equals(temp.getId())) { temp.getChildren().add(tree); if (!tree.getIsLeaf()) { getTreeList(treeList, metaList, tree); } } } } private void getTreeModelList(List<TreeModel> treeList, List<SysPermission> metaList, TreeModel temp) { for (SysPermission permission : metaList) { String tempPid = permission.getParentId(); TreeModel tree = new TreeModel(permission); if (temp == null && oConvertUtils.isEmpty(tempPid)) {
/*update_begin author:wuxianquan date:20190908 for:先查询一级菜单,当用户点击展开菜单时加载子菜单 */ /** * 系统菜单列表(一级菜单) * * @return */ @RequestMapping(value = "/getSystemMenuList", method = RequestMethod.GET) public Result<List<SysPermissionTree>> getSystemMenuList() { long start = System.currentTimeMillis(); Result<List<SysPermissionTree>> result = new Result<>(); try { LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>(); query.eq(SysPermission::getMenuType,CommonConstant.MENU_TYPE_0); query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0); query.orderByAsc(SysPermission::getSortNo); List<SysPermission> list = sysPermissionService.list(query); List<SysPermissionTree> sysPermissionTreeList = new ArrayList<SysPermissionTree>(); for(SysPermission sysPermission : list){ SysPermissionTree sysPermissionTree = new SysPermissionTree(sysPermission); sysPermissionTreeList.add(sysPermissionTree); } result.setResult(sysPermissionTreeList); result.setSuccess(true); } catch (Exception e) { log.error(e.getMessage(), e); } log.info("======获取一级菜单数据=====耗时:" + (System.currentTimeMillis() - start) + "毫秒"); return result; } /** * 查询子菜单 * @param parentId * @return */ @RequestMapping(value = "/getSystemSubmenu", method = RequestMethod.GET) public Result<List<SysPermissionTree>> getSystemSubmenu(@RequestParam("parentId") String parentId){ Result<List<SysPermissionTree>> result = new Result<>(); try{ LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>(); query.eq(SysPermission::getParentId,parentId); query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0); query.orderByAsc(SysPermission::getSortNo); List<SysPermission> list = sysPermissionService.list(query); List<SysPermissionTree> sysPermissionTreeList = new ArrayList<SysPermissionTree>(); for(SysPermission sysPermission : list){
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。