网站建设的几个阶段,.net 网站开发视频教程,wordpress页面输入密码,深圳网站关键词优化推广大家好#xff0c;我是雄雄。 内容先知前言代码实现前言
以前#xff0c;我们做的国家平台项目#xff0c;都是采用现在开源的框架来做的#xff0c;比如若依#xff0c;bladex#xff0c;相比之下#xff0c;若依用的要稍多点儿。因为那时候刚开始接触vue#xff0c;… 大家好我是雄雄。 内容先知前言代码实现前言
以前我们做的国家平台项目都是采用现在开源的框架来做的比如若依bladex相比之下若依用的要稍多点儿。因为那时候刚开始接触vue多方打探若依比较容易上手。待做了几个项目将若依用成熟之后开始用bladexbladex有个很大的改进就是其内部集成了mybatis-plus不好上手等上手了之后就很顺当了。
最近新开了个产品和团队成员三思过后决定采用微服务去做框架选择jeecg-boot.选其主要有以下几个方面的考虑
该框架集成了mybatis-plus该框架集成的外部插件比较多比如文件桶企业微信,xxl-job等正好是个微服务项目就当来练练手网上该框架的资源也比较遇到Bug之后能有相应的解决方案。
现在新项目中有个这样的需求即有代理商和机构的概念当前机构只能查看自己机构及下级机构的信息无法查看上级机构的信息介于此我们将原来的部门的概念换成了机构的概念相应的代码也有了调整。
代码实现
获取当前用户下的机构id代码如下 /*** 获取当前用户下的机构id** return*/GetMapping(queryAllDepartByUser)public Object queryAllDepartByUser() {LoginUser user (LoginUser) SecurityUtils.getSubject().getPrincipal();ListSysUserDepart list sysUserDepartService.list(new QueryWrapperSysUserDepart().eq(user_id, user.getId()).select(dep_id));StringBuilder ids new StringBuilder();list.forEach(ud - {ids.append(ud.getDepId()).append(,);});if (ids.length() 0) {ids.delete(ids.length() - 1, ids.length());}return ids;}分析 该方法主要实现的功能就是获取当前登录的用户信息然后根据其机构id和用户id查询其机构id,最后将机构id返回给前端。
数据库中加入了两个字段一个是等级level在主要是为了确认当前的机构是第几级好在后面操作。另一个是他的所有父级parentIds所以我们需要修改一下添加机构的方法代码如下
/*** 添加新数据 添加用户新建的部门对象数据,并保存到数据库** param sysDepart* return*///RequiresRoles({admin})RequestMapping(value /add, method RequestMethod.POST)CacheEvict(value {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries true)public ResultSysDepart add(RequestBody SysDepart sysDepart, HttpServletRequest request) {ResultSysDepart result new ResultSysDepart();String username JwtUtil.getUserNameByToken(request);try {//region 随机生成一个八位字符串的邀请码 如果数据库中存在则重新生成 wangjie 2022-08-23String shortBuffer common.generateShortUuid();QueryWrapperSysDepart Depart new QueryWrapper();Depart.eq(invite_code, shortBuffer);ListSysDepart list sysDepartService.list(Depart);if (list.size() 0) {shortBuffer common.generateShortUuid();sysDepart.setInviteCode(shortBuffer);} else {sysDepart.setInviteCode(shortBuffer);}sysDepart.setCreateBy(username);sysDepartService.saveDepartData(sysDepart, username);//获取当前部门的所有父级idResult resultPids queryParentIds(sysDepart.getId(), null);JSONObject resultPidsObject (JSONObject) resultPids.getResult();//根据当前部门的id获取值JSONObject parentIdsObject resultPidsObject.getJSONObject(sysDepart.getId());JSONArray parentIdsList parentIdsObject.getJSONArray(parentIds);StringBuilder pidsSb new StringBuilder();parentIdsList.forEach(p - {pidsSb.append(p);pidsSb.append(,);});//设置所有父节点的值sysDepart.setAncestors(pidsSb.toString());sysDepart.setLevel(parentIdsList.size());sysDepartService.updateById(sysDepart);//清除部门树内存// FindsDepartsChildrenUtil.clearSysDepartTreeList();// FindsDepartsChildrenUtil.clearDepartIdModel();result.success(添加成功);} catch (Exception e) {log.error(e.getMessage(), e);result.error500(操作失败);}return result;}然后其他的方法我们直接用原生的即可。