mirror of
https://github.com/mfish-qf/mfish-nocode.git
synced 2026-09-24 15:45:53 +08:00
feat:增加根据固定组织编码查询组织下的用户接口
This commit is contained in:
+8
@@ -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<RemoteOrgService> {
|
||||
public Result<List<SsoOrg>> queryByFixCode(String code, String direction) {
|
||||
return Result.fail("错误:根据编码获取组织树失败" + cause.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<PageResult<UserInfo>> queryUserByCode(String code, String account, String nickname, String phone, ReqPage reqPage) {
|
||||
return Result.fail("错误:根据编码获取组织下用户失败" + cause.getMessage());
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+9
-2
@@ -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<List<SsoOrg>> queryById(@PathVariable("ids") String ids);
|
||||
|
||||
@GetMapping("/org/fixCode")
|
||||
Result<List<SsoOrg>> queryByFixCode(@RequestParam("code") String code, @RequestParam("direction") String direction);
|
||||
@GetMapping("/org/code/{code}")
|
||||
Result<List<SsoOrg>> queryByFixCode(@PathVariable("code") String code, @RequestParam("direction") String direction);
|
||||
|
||||
@GetMapping("/org/user/{code}")
|
||||
Result<PageResult<UserInfo>> queryUserByCode(@PathVariable("code") String code, @RequestParam("account") String account, @RequestParam("nickname") String nickname, @RequestParam("phone") String phone, @SpringQueryMap ReqPage reqPage);
|
||||
}
|
||||
|
||||
@@ -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<List<SsoOrg>> queryByFixCode(@RequestParam String code, @RequestParam String direction) {
|
||||
public Result<List<SsoOrg>> queryByFixCode(@ApiParam(name = "code", value = "固定编码") @PathVariable("code") String code, @RequestParam String direction) {
|
||||
List<SsoOrg> list = ssoOrgService.queryOrgByCode(code, TreeDirection.getDirection(direction));
|
||||
return Result.ok(list, "组织结构表-查询成功!");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取组织下的用户-通过固定编码查询", notes = "获取组织下的用户-通过固定编码查询")
|
||||
@GetMapping("/user/{code}")
|
||||
public Result<PageResult<UserInfo>> queryUserByCode(@ApiParam(name = "code", value = "固定编码") @PathVariable("code") String code, ReqOrgUser reqOrgUser, ReqPage reqPage) {
|
||||
return Result.ok(ssoOrgService.queryUserByCode(code, reqOrgUser, reqPage),"组织下用户查询成功");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<SsoOrg> {
|
||||
|
||||
@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<String> getOrgUserId(String orgId);
|
||||
|
||||
List<UserRole> getOrgRoles(@Param("orgIds") String... orgIds);
|
||||
|
||||
int isTenantOrg(@Param("orgId") String orgId, @Param("tenantId") String tenantId);
|
||||
|
||||
List<UserInfo> queryUserByCode(@Param("code") String code, @Param("reqOrgUser") ReqOrgUser reqOrgUser);
|
||||
}
|
||||
|
||||
@@ -121,4 +121,22 @@
|
||||
WHERE tenant_id = #{tenantId})) sso_org
|
||||
where id = #{orgId}
|
||||
</select>
|
||||
<select id="queryUserByCode" resultType="cn.com.mfish.common.oauth.api.entity.UserInfo">
|
||||
select su.*
|
||||
from sso_user su
|
||||
inner JOIN sso_org_user sou on sou.user_id = su.id
|
||||
inner JOIN sso_org so on so.id = sou.org_id
|
||||
WHERE so.org_code like (select CONCAT(org_code, '%') from sso_org o
|
||||
where o.org_fix_code = #{code} and o.status=0 and o.del_flag=0
|
||||
)
|
||||
<if test="reqOrgUser.nickname != null and reqOrgUser.nickname != ''">
|
||||
and su.nickname like CONCAT('%',#{reqOrgUser.nickname},'%')
|
||||
</if>
|
||||
<if test="reqOrgUser.account != null and reqOrgUser.account != ''">
|
||||
and su.account like CONCAT('%',#{reqOrgUser.account},'%')
|
||||
</if>
|
||||
<if test="reqOrgUser.phone != null and reqOrgUser.phone != ''">
|
||||
and su.phone like CONCAT('%',#{reqOrgUser.phone},'%')
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<SsoOrg> {
|
||||
List<UserRole> getOrgRoles(String... orgIds);
|
||||
|
||||
boolean isTenantOrg(String orgId, String tenantId);
|
||||
|
||||
PageResult<UserInfo> queryUserByCode(String code, ReqOrgUser reqOrgUser, ReqPage reqPage);
|
||||
}
|
||||
|
||||
@@ -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<SsoOrgMapper, SsoOrg> impleme
|
||||
return baseMapper.isTenantOrg(orgId, tenantId) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<UserInfo> queryUserByCode(String code, ReqOrgUser reqOrgUser, ReqPage reqPage) {
|
||||
PageHelper.startPage(reqPage.getPageNum(), reqPage.getPageSize());
|
||||
return new PageResult<>(baseMapper.queryUserByCode(code, reqOrgUser));
|
||||
}
|
||||
|
||||
List<SsoOrg> queryOrg(SsoOrg org, TreeDirection direction) {
|
||||
if (org == null) {
|
||||
return new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user