From 5417f1285a5a057a58471a33a792439f59b477fb Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Mon, 13 Mar 2023 16:12:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=8A=9F=E8=83=BD=E4=B8=8D=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20#4676?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysTenantController.java | 42 +++++++++++++----- .../system/mapper/SysTenantMapper.java | 10 +++++ .../system/mapper/SysTenantPackMapper.java | 5 +-- .../system/mapper/xml/SysTenantMapper.xml | 17 ++++++- .../system/service/ISysTenantPackService.java | 4 +- .../system/service/ISysTenantService.java | 10 +++++ .../impl/SysTenantPackServiceImpl.java | 5 +-- .../service/impl/SysTenantServiceImpl.java | 44 ++++++++++++++++++- 8 files changed, 113 insertions(+), 24 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTenantController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTenantController.java index 1cf6a7e7..2ea89067 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTenantController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTenantController.java @@ -67,8 +67,8 @@ public class SysTenantController { //@RequiresPermissions("system:tenant:list") @PermissionData(pageComponent = "system/TenantList") @RequestMapping(value = "/list", method = RequestMethod.GET) - public Result> queryPageList(SysTenant sysTenant,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req) { + public Result> queryPageList(SysTenant sysTenant, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Result> result = new Result>(); //---author:zhangyafei---date:20210916-----for: 租户管理添加日期范围查询--- Date beginDate=null; @@ -104,8 +104,8 @@ public class SysTenantController { */ @GetMapping("/recycleBinPageList") //@RequiresPermissions("system:tenant:recycleBinPageList") - public Result> recycleBinPageList(SysTenant sysTenant,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,HttpServletRequest req){ + public Result> recycleBinPageList(SysTenant sysTenant, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req){ Result> result = new Result>(); Page page = new Page(pageNo, pageSize); IPage pageList = sysTenantService.getRecycleBinPageList(page, sysTenant); @@ -218,8 +218,10 @@ public class SysTenantController { result.error500("参数为空!"); } //------------------------------------------------------------------------------------------------ - //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】 - if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ + //获取登录用户信息 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】, admin给特权可以管理所有租户 + if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL && !"admin".equals(sysUser.getUsername())){ Integer loginSessionTenant = oConvertUtils.getInt(TenantContext.getTenant()); if(loginSessionTenant!=null && !loginSessionTenant.equals(Integer.valueOf(id))){ result.error500("无权限访问他人租户!"); @@ -360,7 +362,7 @@ public class SysTenantController { */ @PutMapping("/invitationUserJoin") //@RequiresPermissions("system:tenant:invitation:user") - public Result invitationUserJoin(@RequestParam("ids") String ids,@RequestParam("userIds") String userIds){ + public Result invitationUserJoin(@RequestParam("ids") String ids, @RequestParam("userIds") String userIds){ sysTenantService.invitationUserJoin(ids,userIds); return Result.ok("邀请用户成功"); } @@ -417,7 +419,7 @@ public class SysTenantController { * @return */ @RequestMapping(value = "/editOwnTenant", method ={RequestMethod.PUT, RequestMethod.POST}) - public Result editOwnTenant(@RequestBody SysTenant tenant,HttpServletRequest req) { + public Result editOwnTenant(@RequestBody SysTenant tenant, HttpServletRequest req) { Result result = new Result(); String tenantId = TokenUtils.getTenantIdByRequest(req); if(!tenantId.equals(tenant.getId().toString())){ @@ -556,7 +558,7 @@ public class SysTenantController { */ @PutMapping("/cancelTenant") //@RequiresPermissions("system:tenant:cancelTenant") - public Result cancelTenant(@RequestBody SysTenant sysTenant,HttpServletRequest request) { + public Result cancelTenant(@RequestBody SysTenant sysTenant, HttpServletRequest request) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); SysTenant tenant = sysTenantService.getById(sysTenant.getId()); if (null == tenant) { @@ -638,7 +640,7 @@ public class SysTenantController { * @return */ @DeleteMapping("/exitUserTenant") - public Result exitUserTenant(@RequestBody SysTenant sysTenant,HttpServletRequest request){ + public Result exitUserTenant(@RequestBody SysTenant sysTenant, HttpServletRequest request){ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); //验证用户是否已存在 Integer count = relationService.userTenantIzExist(sysUser.getId(),sysTenant.getId()); @@ -797,4 +799,24 @@ public class SysTenantController { TenantDepartAuthInfo info = sysTenantService.getTenantDepartAuthInfo(Integer.parseInt(id)); return Result.ok(info); } + + /** + * 获取产品包下的用户列表(分页) + * @param tenantId + * @param packId + * @param status + * @param pageNo + * @param pageSize + * @return + */ + @GetMapping("/queryTenantPackUserList") + public Result> queryTenantPackUserList(@RequestParam("tenantId") String tenantId, + @RequestParam("packId") String packId, + @RequestParam("status") Integer status, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){ + Page page = new Page<>(pageNo,pageSize); + IPage pageList = sysTenantService.queryTenantPackUserList(tenantId,packId,status,page); + return Result.ok(pageList); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantMapper.java index a4e53531..cad0c421 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantMapper.java @@ -91,4 +91,14 @@ public interface SysTenantMapper extends BaseMapper { * @return */ List queryUserPositionList(@Param("userIdList") List userIdList); + + /** + * 查询产品包关联的用户列表 + * @param page + * @param tenantId + * @param packId + * @param status + * @return + */ + List queryTenantPackUserList(@Param("page") Page page, @Param("tenantId") String tenantId, @Param("packId") String packId, @Param("status") Integer status); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantPackMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantPackMapper.java index 0fc1a3bb..aae21d43 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantPackMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysTenantPackMapper.java @@ -1,10 +1,7 @@ package org.jeecg.modules.system.mapper; -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import org.jeecg.modules.system.entity.SysTenantPack; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.system.entity.SysTenantPack; /** * @Description: 租户产品包 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTenantMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTenantMapper.xml index 40fd6291..edff252b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTenantMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysTenantMapper.xml @@ -100,7 +100,7 @@ - + + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantPackService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantPackService.java index acd89877..54d7a4be 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantPackService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantPackService.java @@ -1,7 +1,7 @@ package org.jeecg.modules.system.service; -import org.jeecg.modules.system.entity.SysTenantPack; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.system.entity.SysTenantPack; import org.jeecg.modules.system.entity.SysTenantPackUser; import java.util.List; @@ -71,5 +71,5 @@ public interface ISysTenantPackService extends IService { * @param packCode * @return */ - SysTenantPack getSysTenantPack(Integer tenantId ,String packCode); + SysTenantPack getSysTenantPack(Integer tenantId , String packCode); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantService.java index 1e457733..1d840b57 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysTenantService.java @@ -190,4 +190,14 @@ public interface ISysTenantService extends IService { * @param sysTenantPackUser */ void deleteApply(SysTenantPackUser sysTenantPackUser); + + /** + * 产品包用户列表 + * @param tenantId + * @param packId + * @param status + * @param page + * @return + */ + IPage queryTenantPackUserList(String tenantId, String packId, Integer status, Page page); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantPackServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantPackServiceImpl.java index 8904d9e8..c438fcac 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantPackServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantPackServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.TenantConstant; @@ -9,7 +10,6 @@ import org.jeecg.common.util.SpringContextUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.aop.TenantLog; import org.jeecg.modules.system.entity.SysPackPermission; -import org.jeecg.modules.system.entity.SysTenant; import org.jeecg.modules.system.entity.SysTenantPack; import org.jeecg.modules.system.entity.SysTenantPackUser; import org.jeecg.modules.system.mapper.SysPackPermissionMapper; @@ -18,11 +18,8 @@ import org.jeecg.modules.system.mapper.SysTenantPackUserMapper; import org.jeecg.modules.system.service.ISysTenantPackService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; -import javax.sql.DataSource; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantServiceImpl.java index 1c87d387..d855b718 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTenantServiceImpl.java @@ -74,7 +74,7 @@ public class SysTenantServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); query.eq(SysUserTenant::getTenantId,id); - query.eq(SysUserTenant::getStatus,CommonConstant.STATUS_1); + query.eq(SysUserTenant::getStatus, CommonConstant.STATUS_1); // 查找出已被关联的用户数量 return userTenantMapper.selectCount(query); } @@ -107,7 +107,7 @@ public class SysTenantServiceImpl extends ServiceImpl queryTenantPackUserList(String tenantId, String packId, Integer status, Page page) { + // 查询用户 + List userList = baseMapper.queryTenantPackUserList(page,tenantId, packId,status); + // 获取产品包下用户部门和职位 + userList = getPackUserPositionAndDepart(userList); + return page.setRecords(userList); + } + + /** + * 获取用户职位和部门 + * @param userList + * @return + */ + private List getPackUserPositionAndDepart(List userList) { + if(userList!=null && userList.size()>0){ + List userIdList = userList.stream().map(i->i.getId()).collect(Collectors.toList()); + // 部门 + List depList = baseMapper.queryUserDepartList(userIdList); + // 职位 + //List userPositions = baseMapper.queryUserPositionList(userIdList); + // 遍历用户 往用户中添加 部门信息和职位信息 + for (TenantPackUser user : userList) { + //添加部门 + for (UserDepart dep : depList) { + if (user.getId().equals(dep.getUserId())) { + user.addDepart(dep.getDepartName()); + } + } +// //添加职位 +// for (UserPosition userPosition : userPositions) { +// if (user.getId().equals(userPosition.getUserId())) { +// user.addPosition(userPosition.getPositionName()); +// } +// } + } + } + return userList; + } + /** * 触发入职流程 *