From 2f885b3c4899f3d352c23d4a50ceb79d6be23bee Mon Sep 17 00:00:00 2001 From: songyuanlun Date: Fri, 3 Jan 2025 10:29:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3488):=20=E4=BA=BA=E5=91=98=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/orguser/feign/OrgUserApi.java | 15 +++- .../enums/GenericUserListScenarioEnum.java | 21 ++++++ .../dto/orguser/enums/IBaseUserFlagEnum.java | 24 +++++++ .../dto/orguser/req/PageOrgUserReq.java | 65 +++++++++++++++++ .../dto/orguser/resp/OrgUserBriefResp.java | 59 ++++++++++++++++ .../orguser/resp/OrgUserFlagEntityResp.java | 45 ++++++++++++ .../orguser/resp/PageOrgUserElementResp.java | 69 +++++++++++++++++++ .../orguser/controller/OrgUserController.java | 7 ++ 8 files changed, 304 insertions(+), 1 deletion(-) create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/GenericUserListScenarioEnum.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/IBaseUserFlagEnum.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/req/PageOrgUserReq.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserBriefResp.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserFlagEntityResp.java create mode 100644 orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/PageOrgUserElementResp.java diff --git a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/orguser/feign/OrgUserApi.java b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/orguser/feign/OrgUserApi.java index 965335e..b2d0179 100644 --- a/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/orguser/feign/OrgUserApi.java +++ b/orgmanax-api/src/main/java/cn/axzo/orgmanax/api/orguser/feign/OrgUserApi.java @@ -2,8 +2,11 @@ package cn.axzo.orgmanax.api.orguser.feign; import cn.axzo.foundation.page.PageResp; import cn.axzo.foundation.result.ApiResult; -import cn.axzo.orgmanax.dto.orguser.req.ListOrgUserReq; import cn.axzo.orgmanax.dto.orguser.dto.OrgUserDTO; +import cn.axzo.orgmanax.dto.orguser.req.ListOrgUserReq; +import cn.axzo.orgmanax.dto.orguser.req.PageOrgUserReq; +import cn.axzo.orgmanax.dto.orguser.resp.PageOrgUserElementResp; +import javax.validation.Valid; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -32,4 +35,14 @@ public interface OrgUserApi { @PostMapping("/api/org-user/list") ApiResult> list(@RequestBody @Validated ListOrgUserReq req); + /** + * TODO: 第三期实现 + * 通用人员列表分页查询 + * 和其他接口逻辑、返回结构,完全不同,只能平迁 + * @param req 分页查询入参 + * @return 通用人员列表 + */ + @PostMapping(value = "/api/org-user/generic/page") + ApiResult> page(@RequestBody @Valid PageOrgUserReq req); + } diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/GenericUserListScenarioEnum.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/GenericUserListScenarioEnum.java new file mode 100644 index 0000000..35cd026 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/GenericUserListScenarioEnum.java @@ -0,0 +1,21 @@ +package cn.axzo.orgmanax.dto.orguser.enums; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @description + * 通用人员列表场景枚举 + * @author luofu + * @version 1.0 + * @date 2024/8/2 + */ +@Getter +@AllArgsConstructor(access = AccessLevel.PRIVATE) +public enum GenericUserListScenarioEnum { + + ATTENDANCE("考勤"); + + private final String desc; +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/IBaseUserFlagEnum.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/IBaseUserFlagEnum.java new file mode 100644 index 0000000..4b5ab06 --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/enums/IBaseUserFlagEnum.java @@ -0,0 +1,24 @@ +package cn.axzo.orgmanax.dto.orguser.enums; + +/** + * @author luofu + * @version 1.0 + * @date 2024/8/2 + */ +public interface IBaseUserFlagEnum { + + /** + * 获取用户标签编码 + */ + String getCode(); + + /** + * 获取用户标签描述 + */ + String getDesc(); + + /** + * 标签优先级 + */ + int getPriority(); +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/req/PageOrgUserReq.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/req/PageOrgUserReq.java new file mode 100644 index 0000000..1ab86cb --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/req/PageOrgUserReq.java @@ -0,0 +1,65 @@ +package cn.axzo.orgmanax.dto.orguser.req; + +import cn.axzo.foundation.page.PageReqV2; +import cn.axzo.orgmanax.dto.orguser.enums.GenericUserListScenarioEnum; +import com.alibaba.fastjson.JSON; +import java.util.List; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author luofu + * @version 1.0 + * @date 2024/8/2 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class PageOrgUserReq extends PageReqV2 { + + /** + * 人员列表使用的业务场景 + * ATTENDANCE: 考勤 + * + * @see GenericUserListScenarioEnum + */ + @NotNull(message = "业务场景不能为空") + private String scenario; + + /** + * 项目id + */ + private Long workspaceId; + /** + * 当前用户session中的单位id + */ + private Long sessionOuId; + + /** + * 搜索关键字: + * * 姓名模糊查询 + * * 手机号、身份证号精确匹配 + */ + private String keyword; + + /** + * 单位id列表 + */ + private List ouIds; + + /** + * 用户标签编码列表 + */ + private List userFlagCodes; + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserBriefResp.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserBriefResp.java new file mode 100644 index 0000000..1e0eb8c --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserBriefResp.java @@ -0,0 +1,59 @@ +package cn.axzo.orgmanax.dto.orguser.resp; + +import com.alibaba.fastjson.JSON; +import java.io.Serializable; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @description 用户基础信息 + * @author luofu + * @version 1.0 + * @date 2024/8/2 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class OrgUserBriefResp implements Serializable { + + private static final long serialVersionUID = -1037841970293974523L; + + /** + * 自然人id + */ + private Long personId; + /** + * 身份id + */ + private Long identityId; + /** + * 真实姓名 + */ + private String realName; + /** + * 用户头像 + */ + private String avatarUrl; + /** + * 性别 + * 1:女性 + * 2:男性 + */ + private Integer genderCode; + /** + * 手机号 + */ + private String phone; + /** + * 身份证号 + */ + private String idNumber; + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserFlagEntityResp.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserFlagEntityResp.java new file mode 100644 index 0000000..a70eb1a --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/OrgUserFlagEntityResp.java @@ -0,0 +1,45 @@ +package cn.axzo.orgmanax.dto.orguser.resp; + +import cn.axzo.orgmanax.dto.orguser.enums.IBaseUserFlagEnum; +import com.alibaba.fastjson.JSON; +import java.io.Serializable; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description 标签实体 + * @author luofu + * @version 1.0 + * @date 2024/8/2 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrgUserFlagEntityResp implements Serializable { + + private static final long serialVersionUID = -6965721030042547822L; + + /** + * 标签编码 + */ + private String flagCode; + /** + * 标签描述 + */ + private String flagDesc; + + public static OrgUserFlagEntityResp from(IBaseUserFlagEnum userFlag) { + return OrgUserFlagEntityResp.builder() + .flagCode(userFlag.getCode()) + .flagDesc(userFlag.getDesc()) + .build(); + } + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} diff --git a/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/PageOrgUserElementResp.java b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/PageOrgUserElementResp.java new file mode 100644 index 0000000..0a94aee --- /dev/null +++ b/orgmanax-dto/src/main/java/cn/axzo/orgmanax/dto/orguser/resp/PageOrgUserElementResp.java @@ -0,0 +1,69 @@ +package cn.axzo.orgmanax.dto.orguser.resp; + +import com.alibaba.fastjson.JSON; +import java.io.Serializable; +import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author luofu + * @version 1.0 + * @date 2024/8/2 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class PageOrgUserElementResp implements Serializable { + + private static final long serialVersionUID = 4468275572308565888L; + + /** + * 用户基础信息 + */ + private OrgUserBriefResp brief; + + /** + * 单位id + */ + private Long ouId; + /** + * 单位名称 + */ + private String ouName; + + /** + * 部门id + */ + private Long orgNodeId; + /** + * 部门名称 + */ + private String orgNodeName; + /** + * 主管标识 + */ + private Boolean managerFlag; + + /** + * 岗位id - 主岗 + */ + private Long jobId; + /** + * 岗位名称 - 主岗 + */ + private String jobName; + + /** + * 用户标签列表 + */ + private List userFlagEntities; + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} diff --git a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/controller/OrgUserController.java b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/controller/OrgUserController.java index bd31647..9b01a4e 100644 --- a/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/controller/OrgUserController.java +++ b/orgmanax-server/src/main/java/cn/axzo/orgmanax/server/orguser/controller/OrgUserController.java @@ -5,6 +5,8 @@ import cn.axzo.foundation.result.ApiResult; import cn.axzo.orgmanax.api.orguser.feign.OrgUserApi; import cn.axzo.orgmanax.dto.orguser.req.ListOrgUserReq; import cn.axzo.orgmanax.dto.orguser.dto.OrgUserDTO; +import cn.axzo.orgmanax.dto.orguser.req.PageOrgUserReq; +import cn.axzo.orgmanax.dto.orguser.resp.PageOrgUserElementResp; import cn.axzo.orgmanax.server.orguser.service.OrgUserService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.RequestMapping; @@ -25,4 +27,9 @@ public class OrgUserController implements OrgUserApi { public ApiResult> list(ListOrgUserReq req) { return ApiResult.success(orgUserService.page(req)); } + + @Override + public ApiResult> page(PageOrgUserReq req) { + return ApiResult.success(); + } }