From 9de2f7c9b9e079dde2d3bc3de22e00bed23d1661 Mon Sep 17 00:00:00 2001 From: qiufeng Date: Tue, 2 Apr 2024 14:36:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E7=BB=84=E7=BB=87=E7=BC=96=E7=A0=81=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=BB=84=E7=BB=87=E4=B8=8B=E7=9A=84=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oauth/api/fallback/RemoteOrgFallback.java | 8 ++++++++ .../oauth/api/remote/RemoteOrgService.java | 11 +++++++++-- .../oauth/controller/SsoOrgController.java | 14 ++++++++++---- .../com/mfish/oauth/mapper/SsoOrgMapper.java | 5 +++++ .../mfish/oauth/mapper/xml/SsoOrgMapper.xml | 18 ++++++++++++++++++ .../cn/com/mfish/oauth/req/ReqOrgUser.java | 19 +++++++++++++++++++ .../mfish/oauth/service/SsoOrgService.java | 6 ++++++ .../oauth/service/impl/SsoOrgServiceImpl.java | 11 +++++++++++ 8 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 mf-oauth/src/main/java/cn/com/mfish/oauth/req/ReqOrgUser.java diff --git a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteOrgFallback.java b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteOrgFallback.java index efe4541d..b5263cb4 100644 --- a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteOrgFallback.java +++ b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/fallback/RemoteOrgFallback.java @@ -1,7 +1,10 @@ package cn.com.mfish.common.oauth.api.fallback; +import cn.com.mfish.common.core.web.PageResult; +import cn.com.mfish.common.core.web.ReqPage; import cn.com.mfish.common.core.web.Result; import cn.com.mfish.common.oauth.api.entity.SsoOrg; +import cn.com.mfish.common.oauth.api.entity.UserInfo; import cn.com.mfish.common.oauth.api.remote.RemoteOrgService; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; @@ -30,6 +33,11 @@ public class RemoteOrgFallback implements FallbackFactory { public Result> queryByFixCode(String code, String direction) { return Result.fail("错误:根据编码获取组织树失败" + cause.getMessage()); } + + @Override + public Result> queryUserByCode(String code, String account, String nickname, String phone, ReqPage reqPage) { + return Result.fail("错误:根据编码获取组织下用户失败" + cause.getMessage()); + } }; } } diff --git a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteOrgService.java b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteOrgService.java index e6c496cf..57c6cad9 100644 --- a/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteOrgService.java +++ b/mf-api/mf-oauth-api/src/main/java/cn/com/mfish/common/oauth/api/remote/RemoteOrgService.java @@ -1,10 +1,14 @@ package cn.com.mfish.common.oauth.api.remote; import cn.com.mfish.common.core.constants.ServiceConstants; +import cn.com.mfish.common.core.web.PageResult; +import cn.com.mfish.common.core.web.ReqPage; import cn.com.mfish.common.core.web.Result; import cn.com.mfish.common.oauth.api.entity.SsoOrg; +import cn.com.mfish.common.oauth.api.entity.UserInfo; import cn.com.mfish.common.oauth.api.fallback.RemoteOrgFallback; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; @@ -22,6 +26,9 @@ public interface RemoteOrgService { @GetMapping("/org/{ids}") Result> queryById(@PathVariable("ids") String ids); - @GetMapping("/org/fixCode") - Result> queryByFixCode(@RequestParam("code") String code, @RequestParam("direction") String direction); + @GetMapping("/org/code/{code}") + Result> queryByFixCode(@PathVariable("code") String code, @RequestParam("direction") String direction); + + @GetMapping("/org/user/{code}") + Result> queryUserByCode(@PathVariable("code") String code, @RequestParam("account") String account, @RequestParam("nickname") String nickname, @RequestParam("phone") String phone, @SpringQueryMap ReqPage reqPage); } diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoOrgController.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoOrgController.java index 62aa2a4b..bb2d23fa 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoOrgController.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/controller/SsoOrgController.java @@ -10,7 +10,9 @@ import cn.com.mfish.common.core.web.Result; import cn.com.mfish.common.log.annotation.Log; import cn.com.mfish.common.oauth.annotation.RequiresPermissions; import cn.com.mfish.common.oauth.api.entity.SsoOrg; +import cn.com.mfish.common.oauth.api.entity.UserInfo; import cn.com.mfish.common.oauth.api.entity.UserRole; +import cn.com.mfish.oauth.req.ReqOrgUser; import cn.com.mfish.oauth.req.ReqSsoOrg; import cn.com.mfish.oauth.service.SsoOrgService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -138,14 +140,18 @@ public class SsoOrgController { } @ApiOperation(value = "组织结构表-通过固定编码查询", notes = "组织结构表-通过固定编码查询") - @GetMapping("/fixCode") - @RequiresPermissions("sys:org:query") + @GetMapping("/code/{code}") @ApiImplicitParams({ - @ApiImplicitParam(name = "code", value = "固定编码", paramType = "query", required = true, dataTypeClass = String.class), @ApiImplicitParam(name = "direction", value = "方向 all 返回所有父子节点 up返回父节点 down返回子节点", paramType = "query", required = true, dataTypeClass = String.class), }) - public Result> queryByFixCode(@RequestParam String code, @RequestParam String direction) { + public Result> queryByFixCode(@ApiParam(name = "code", value = "固定编码") @PathVariable("code") String code, @RequestParam String direction) { List list = ssoOrgService.queryOrgByCode(code, TreeDirection.getDirection(direction)); return Result.ok(list, "组织结构表-查询成功!"); } + + @ApiOperation(value = "获取组织下的用户-通过固定编码查询", notes = "获取组织下的用户-通过固定编码查询") + @GetMapping("/user/{code}") + public Result> queryUserByCode(@ApiParam(name = "code", value = "固定编码") @PathVariable("code") String code, ReqOrgUser reqOrgUser, ReqPage reqPage) { + return Result.ok(ssoOrgService.queryUserByCode(code, reqOrgUser, reqPage),"组织下用户查询成功"); + } } diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoOrgMapper.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoOrgMapper.java index bd200299..c4267bb9 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoOrgMapper.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/SsoOrgMapper.java @@ -1,7 +1,9 @@ package cn.com.mfish.oauth.mapper; import cn.com.mfish.common.oauth.api.entity.SsoOrg; +import cn.com.mfish.common.oauth.api.entity.UserInfo; import cn.com.mfish.common.oauth.api.entity.UserRole; +import cn.com.mfish.oauth.req.ReqOrgUser; import cn.com.mfish.oauth.req.ReqSsoOrg; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Delete; @@ -35,10 +37,13 @@ public interface SsoOrgMapper extends BaseMapper { @Select("select count(0) from sso_org o where o.parent_id= #{orgId} and o.del_flag =0") int queryChildCount(String orgId); + @Select("select user_id from sso_org_user where org_id = #{orgId}") List getOrgUserId(String orgId); List getOrgRoles(@Param("orgIds") String... orgIds); int isTenantOrg(@Param("orgId") String orgId, @Param("tenantId") String tenantId); + + List queryUserByCode(@Param("code") String code, @Param("reqOrgUser") ReqOrgUser reqOrgUser); } diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoOrgMapper.xml b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoOrgMapper.xml index 132185f7..72c8a224 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoOrgMapper.xml +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/mapper/xml/SsoOrgMapper.xml @@ -121,4 +121,22 @@ WHERE tenant_id = #{tenantId})) sso_org where id = #{orgId} + diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/req/ReqOrgUser.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/req/ReqOrgUser.java new file mode 100644 index 00000000..d8b1c580 --- /dev/null +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/req/ReqOrgUser.java @@ -0,0 +1,19 @@ +package cn.com.mfish.oauth.req; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: 组织用户请求 + * @author: mfish + * @date: 2024/4/2 + */ +@Data +public class ReqOrgUser { + @ApiModelProperty("账号") + private String account; + @ApiModelProperty("手机号") + private String phone; + @ApiModelProperty("昵称--用于显示") + private String nickname; +} diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/service/SsoOrgService.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/service/SsoOrgService.java index a602919f..ccca27c4 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/service/SsoOrgService.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/service/SsoOrgService.java @@ -1,9 +1,13 @@ package cn.com.mfish.oauth.service; import cn.com.mfish.common.core.enums.TreeDirection; +import cn.com.mfish.common.core.web.PageResult; +import cn.com.mfish.common.core.web.ReqPage; import cn.com.mfish.common.core.web.Result; import cn.com.mfish.common.oauth.api.entity.SsoOrg; +import cn.com.mfish.common.oauth.api.entity.UserInfo; import cn.com.mfish.common.oauth.api.entity.UserRole; +import cn.com.mfish.oauth.req.ReqOrgUser; import cn.com.mfish.oauth.req.ReqSsoOrg; import com.baomidou.mybatisplus.extension.service.IService; @@ -35,4 +39,6 @@ public interface SsoOrgService extends IService { List getOrgRoles(String... orgIds); boolean isTenantOrg(String orgId, String tenantId); + + PageResult queryUserByCode(String code, ReqOrgUser reqOrgUser, ReqPage reqPage); } diff --git a/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoOrgServiceImpl.java b/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoOrgServiceImpl.java index b31bc7ef..6e17cff2 100644 --- a/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoOrgServiceImpl.java +++ b/mf-oauth/src/main/java/cn/com/mfish/oauth/service/impl/SsoOrgServiceImpl.java @@ -5,15 +5,20 @@ import cn.com.mfish.common.core.exception.MyRuntimeException; import cn.com.mfish.common.core.utils.AuthInfoUtils; import cn.com.mfish.common.core.utils.StringUtils; import cn.com.mfish.common.core.utils.TreeUtils; +import cn.com.mfish.common.core.web.PageResult; +import cn.com.mfish.common.core.web.ReqPage; import cn.com.mfish.common.core.web.Result; import cn.com.mfish.common.oauth.api.entity.SsoOrg; +import cn.com.mfish.common.oauth.api.entity.UserInfo; import cn.com.mfish.common.oauth.api.entity.UserRole; import cn.com.mfish.oauth.cache.common.ClearCache; import cn.com.mfish.oauth.mapper.SsoOrgMapper; +import cn.com.mfish.oauth.req.ReqOrgUser; import cn.com.mfish.oauth.req.ReqSsoOrg; import cn.com.mfish.oauth.service.SsoOrgService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -198,6 +203,12 @@ public class SsoOrgServiceImpl extends ServiceImpl impleme return baseMapper.isTenantOrg(orgId, tenantId) > 0; } + @Override + public PageResult queryUserByCode(String code, ReqOrgUser reqOrgUser, ReqPage reqPage) { + PageHelper.startPage(reqPage.getPageNum(), reqPage.getPageSize()); + return new PageResult<>(baseMapper.queryUserByCode(code, reqOrgUser)); + } + List queryOrg(SsoOrg org, TreeDirection direction) { if (org == null) { return new ArrayList<>();