jeecg微服务中如何实现机构的概念(当前机构只能查到其子机构)

大家好,我是雄雄。

在这里插入图片描述

内容先知

    • 前言
    • 代码实现

前言

以前,我们做的国家平台项目,都是采用现在开源的框架来做的,比如若依bladex,相比之下,若依用的要稍多点儿。因为那时候刚开始接触vue,多方打探,若依比较容易上手。待做了几个项目,将若依用成熟之后,开始用bladexbladex有个很大的改进,就是其内部集成了mybatis-plus,不好上手,等上手了之后就很顺当了。

最近,新开了个产品,和团队成员三思过后,决定采用微服务去做,框架选择:jeecg-boot.选其主要有以下几个方面的考虑:

  1. 该框架集成了mybatis-plus
  2. 该框架集成的外部插件比较多,比如文件桶企业微信,xxl-job
  3. 正好是个微服务项目,就当来练练手
  4. 网上该框架的资源也比较,遇到Bug之后能有相应的解决方案。

现在新项目中,有个这样的需求,即:有代理商和机构的概念,当前机构只能查看自己机构及下级机构的信息,无法查看上级机构的信息,介于此,我们将原来的部门的概念,换成了机构的概念,相应的代码也有了调整。

代码实现

  1. 获取当前用户下的机构id,代码如下:
	/*** 获取当前用户下的机构id** @return*/@GetMapping("queryAllDepartByUser")public Object queryAllDepartByUser() {LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();List<SysUserDepart> list = sysUserDepartService.list(new QueryWrapper<SysUserDepart>().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返回给前端。

  1. 数据库中加入了两个字段,一个是等级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 Result<SysDepart> add(@RequestBody SysDepart sysDepart, HttpServletRequest request) {Result<SysDepart> result = new Result<SysDepart>();String username = JwtUtil.getUserNameByToken(request);try {//region 随机生成一个八位字符串的邀请码 如果数据库中存在则重新生成  wangjie 2022-08-23String shortBuffer = common.generateShortUuid();QueryWrapper<SysDepart> Depart = new QueryWrapper<>();Depart.eq("invite_code", shortBuffer);List<SysDepart> 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;}

然后其他的方法,我们直接用原生的即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nssl1162-农夫约的假期【中位数,贪心】

正题 题目大意 n∗nn*nn∗n的矩阵&#xff0c;给若干个点&#xff0c;求一个位置让这些点的距离和这个位置的曼哈顿距离和最小。 解题思路 我们可以将x坐标和y坐标分开来处理。 这样就是一个线性问题了。 我们先定义这个位置为所有x的平均数&#xff0c;然后我们考虑将x左右移…

初学结构体(一)

#include<stdio.h>struct Student{int age;float score;char sex;};main(){struct Student st{25,88,M};printf("%d\n",st.age); struct Student *pst&st;pst->age100;printf("%d\n",st.age);printf("%d",pst->age); }构造结构…

.NET Conf 2017后初尝Xamarin Forms 3.0@Linux

对很多.NET粉&#xff0c;.NET Conf 2017的东西估计提前一个月都熟悉了&#xff0c;Xamarin粉估计最大惊喜不是Xamarin Live Player, 也不是Xamarin.Forms混合NativeControl &#xff0c;而是Xamarin.Forms 3.0&#xff0c;因为它融入到 Linux平台. Xamarin.Forms 跨平台&#…

Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比

转载自 Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比 redis作为一种高效的缓存框架&#xff0c;使用是非常广泛的&#xff0c;在数据存储上&#xff0c;在运行时其将数据存储在内存中&#xff0c;以实现数据的高效读写&#xff0c;并且根据定制的持久化规则…

微信小程序中使用画布canvas实现动态心电图绘制

大家好&#xff0c;我是雄雄。 内容先知前言效果图实现代码前言 近期&#xff0c;接了个项目&#xff0c;三端&#xff08;小程序、PC、公众号&#xff09;同步开发&#xff0c;PC端没的问题&#xff0c;以前一直做的就是PC端&#xff0c;但是小程序和公众号之前没有做过&…

nssl1163-小x游世界树【树形dp,二次扫描和换根法】

正题 题目大意 一棵树&#xff0c;一条边的权是原本的权值减去出发点的加速。 求一个点使得这个点到所有点路径边权和最小。 解题思路 我们先求出以1为根时的答案 然后用换根法 我们从1转移到2&#xff0c;我们会发现 红色的部分的路径都减去的紫色的路径长度&#xff0c;蓝…

结构体跨函数应用(二)

#include<stdio.h> struct Student { int age;char sex; };int main(void){struct Student st;InputStudent(&st);printf("%d,%c",st.age,st.sex);}void InputStudent(struct Student *pstu) {(*pstu).age88;pstu->sexF;}老是出现警告&#xff0c;排查好…

ASP.NET Core依赖注入解读使用Autofac替代实现

1. 前言关于IoC模式&#xff08;控制反转&#xff09;和DI技术&#xff08;依赖注入&#xff09;&#xff0c;我们已经见过很多的探讨&#xff0c;这里就不再赘述了。比如说必看的Martin Fowler《IoC 容器和 Dependency Injection 模式》&#xff0c;相关资料链接都附于文章末尾…

jmeter如何进行一个简单的测试(超级详细,有图有文字,闭着眼都能成功)

大家好&#xff0c;我是雄雄。 内容先知前言软件获取开始测试1.新建线程组2.创建一个请求3.添加HTTP信息头4.开始测试5.查看请求情况前言 上头问题要服务器的配置&#xff0c;基于我们现在做的项目&#xff0c;需要安排别人去采购服务器&#xff0c;给出的消息是&#xff1a;2…

三年半Java后端面试经历

转载自 三年半Java后端面试经历 经过半年的沉淀&#xff0c;加上对MySQL&#xff0c;redis和分布式这块的补齐&#xff0c;终于开始重拾面试信心&#xff0c;再次出征。 鹅厂 面试职位&#xff1a;go后端开发工程师&#xff0c;接受从Java转语言 都知道鹅厂是cpp的主战场&…

nssl1164-观察【平衡树,LCA】

正题 题目大意 一棵树&#xff0c;开始全是白点&#xff0c;两个操作 将一个节点翻转询问一颗棋子与所有面朝上为黑色的棋子lca最深的那个的编号 解题思路 必备技能&#xff1a;平衡树&#xff08;或set库的使用方法&#xff09;&#xff0c;大量卡常技巧&#xff0c;LCA 我…

开封游(一)

今天去开封玩了一下&#xff0c;白天在路程上耽搁太多时间&#xff0c;主要在晚上玩的。终于到显示我米9夜景功能的时候了。 去了包公祠&#xff0c;西司夜市&#xff0c;鼓楼夜市。 下午先去了包公祠 下面是夜景了&#xff0c;特别的炫酷。 首先是西司夜市 进去的时候 这个…

C#中的两把双刃剑:抽象类和接口

问题出现&#xff1a;我们在使用C#的抽象类和接口的时候&#xff0c;往往会遇到以下类似的问题&#xff0c;大致归纳如下:(1)抽象类和接口有什么本质的区别和联系&#xff1f;(2)什么时候选择使用抽象类&#xff0c;然啥时候使用接口最恰当呢&#xff1f;(3)在项目中怎样使用才…

开封游(二)

短暂的永远浪漫&#xff0c;漫长换来不满。人就是这样&#xff0c;第一天是怀着期盼喜悦的心情来的&#xff0c;等到二天&#xff0c;被漫长的行程磨平心境后就再也不想出来旅游了。 总之第二天的心情只能用疲倦来概括。 本来愉悦的心情&#xff0c;而转折点是在吃完海底捞之…

java 高并发面试题

转载自 java 高并发面试题 1、线程与进程 进程是一个实体。每一个进程都有它自己的地址空间&#xff0c;一般情况下&#xff0c;包括文本区域&#xff08;text region&#xff09;、数据区域&#xff08;data region&#xff09;和堆栈&#xff08;stack region&#xff09;。…

ssl提高组周六模拟赛【2018.9.23】

前言 我ssl模拟式爆炸了&#xff0c;我已经打算从1楼跳下去了 成绩 因为比赛的时候数据出bug&#xff0c;所以排名有些奇怪&#xff0c;就不放了。 正题 T1:nssl1162−T1:nssl1162-T1:nssl1162−农夫约的假期【中位数,,,贪心】 博客链接:https://blog.csdn.net/Mr_wuyongcon…

.NetCore之下载文件

本篇将和大家分享的丝.NetCore下载文件&#xff0c;常见的下载有两种&#xff1a;A标签直接指向下载文件地址和post或get请求后台输出文件流的方式&#xff0c;本篇也将围绕这两种来分享&#xff1b;如果对您有好的帮助&#xff0c;请多多支持。允许站点不识别content-type下载…

jeecg-boot中如何修改自定义主题颜色

大家好&#xff0c;我是雄雄。 前言 今天第一次上老丈人家&#xff0c;哈哈哈&#xff0c;有点猝不及防&#xff0c;本来没准备去&#xff0c;结果正好在小区门口碰到&#xff0c;人家让我去&#xff0c;我就把后备箱里面的东西拿下来带着去的。 聊了几个小时&#xff0c;也还…

开封一游后续

游玩过开封后还是很累的&#xff0c;等几个小时的火车更是相当的累。今天有缘坐火车的时候身边是一姑娘&#xff0c;前面没怎么聊&#xff0c;后面她讲她也是八点多到的&#xff0c;我就问她是不是阜阳的&#xff0c;和我们一个学校吗&#xff1f;就这样聊了起来&#xff0c;讲…

P1156-垃圾陷阱【dp】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1156 题目大意 有若干个垃圾&#xff0c;在tit_iti​时掉落&#xff0c;可以选择吃掉多活fif_ifi​天&#xff0c;也可以堆hih_ihi​高度&#xff0c;高度到达DDD就可以脱逃&#xff0c;求最短逃脱时…