From c811de7ace5358f1e6647f150a350b4c677fa432 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sun, 11 Jun 2023 21:19:02 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90sys=E3=80=91?= =?UTF-8?q?=E3=80=90user=E3=80=91=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E6=9C=BA=E6=9E=84=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=9A=84=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/sys/api/SysUserServiceApi.java | 28 +++++- .../sys/api/format/UserOrgFormatProcess.java | 35 ++++++++ .../roses/kernel/sys/api/pojo/UserOrgDTO.java | 87 +++++++++++++++++++ .../sys/modular/user/entity/SysUser.java | 15 ++++ .../user/service/impl/SysUserServiceImpl.java | 30 ++++++- 5 files changed, 188 insertions(+), 7 deletions(-) create mode 100644 kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java create mode 100644 kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/UserOrgDTO.java diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java index b3bb09889..06c378fe8 100644 --- a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java +++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserServiceApi.java @@ -25,6 +25,9 @@ package cn.stylefeng.roses.kernel.sys.api; import cn.stylefeng.roses.kernel.sys.api.pojo.SimpleUserDTO; +import cn.stylefeng.roses.kernel.sys.api.pojo.UserOrgDTO; + +import java.util.List; /** * 基础核心业务Api @@ -35,12 +38,29 @@ import cn.stylefeng.roses.kernel.sys.api.pojo.SimpleUserDTO; public interface SysUserServiceApi { /** - * 根据用户ID获取用户信息 + * 获取用户的基本信息 * - * @param userId 用户ID - * @author majianguo - * @since 2021/1/9 19:00 + * @author fengshuonan + * @since 2023/6/11 21:07 */ SimpleUserDTO getUserInfoByUserId(Long userId); + /** + * 获取用户的主要任职信息 + *

+ * 返回一条结果,只返回主部门的信息 + * + * @author fengshuonan + * @since 2023/6/11 21:07 + */ + UserOrgDTO getUserMainOrgInfo(Long userId); + + /** + * 获取用户绑定的组织机构列表,主要任职部门和次要任职部门都返回 + * + * @author fengshuonan + * @since 2023/6/11 21:08 + */ + List getUserOrgList(Long userId); + } diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java new file mode 100644 index 000000000..ede4fa6e1 --- /dev/null +++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/format/UserOrgFormatProcess.java @@ -0,0 +1,35 @@ +package cn.stylefeng.roses.kernel.sys.api.format; + +import cn.hutool.core.convert.Convert; +import cn.hutool.extra.spring.SpringUtil; +import cn.stylefeng.roses.kernel.rule.format.BaseSimpleFieldFormatProcess; +import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi; + +/** + * 用户所属组织机构的信息包装 + * + * @author fengshuonan + * @since 2023/6/11 21:11 + */ +public class UserOrgFormatProcess extends BaseSimpleFieldFormatProcess { + + @Override + public Class getItemClass() { + return Long.class; + } + + @Override + public Object simpleItemFormat(Object businessId) { + + if (businessId == null) { + return null; + } + + Long userId = Convert.toLong(businessId); + + SysUserServiceApi sysUserServiceApi = SpringUtil.getBean(SysUserServiceApi.class); + + return sysUserServiceApi.getUserMainOrgInfo(userId); + } + +} diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/UserOrgDTO.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/UserOrgDTO.java new file mode 100644 index 000000000..d30d04066 --- /dev/null +++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/UserOrgDTO.java @@ -0,0 +1,87 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.sys.api.pojo; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import lombok.Data; + +/** + * 用户信息的简单包装 + * + * @author fengshuonan + * @since 2023/6/11 17:05 + */ +@Data +public class UserOrgDTO { + + /** + * 用户id + */ + @ChineseDescription("用户id") + private Long userId; + + /** + * 用户所属公司id + */ + @ChineseDescription("用户所属公司id") + private Long companyId; + + /** + * 用户所属公司名称 + */ + @ChineseDescription("用户所属公司名称") + private String companyName; + + /** + * 用户所属部门id + */ + @ChineseDescription("用户所属部门id") + private Long deptId; + + /** + * 用户所属部门名称 + */ + @ChineseDescription("用户所属部门名称") + private String deptName; + + /** + * 所属部门的职位id + */ + @ChineseDescription("所属部门的职位id") + private Long positionId; + + /** + * 用户所属职位名称 + */ + @ChineseDescription("用户所属职位名称") + private String positionName; + + /** + * 是否是主部门:Y-是主部门,N-不是主部门 + */ + @ChineseDescription("是否是主部门:Y-是主部门,N-不是主部门") + private String mainFlag; + +} diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java index 4d49de851..fb68ff42a 100644 --- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java +++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java @@ -2,6 +2,9 @@ package cn.stylefeng.roses.kernel.sys.modular.user.entity; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseExpandFieldEntity; import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.EnumFieldFormat; +import cn.stylefeng.roses.kernel.rule.enums.SexEnum; +import cn.stylefeng.roses.kernel.sys.api.pojo.UserOrgDTO; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -77,6 +80,7 @@ public class SysUser extends BaseExpandFieldEntity { */ @TableField("sex") @ChineseDescription("性别:M-男,F-女") + @EnumFieldFormat(processEnum = SexEnum.class) private String sex; /** @@ -149,4 +153,15 @@ public class SysUser extends BaseExpandFieldEntity { @ChineseDescription("对接外部主数据的用户id") private String masterUserId; + //-------------------------------非实体字段------------------------------- + //-------------------------------非实体字段------------------------------- + //-------------------------------非实体字段------------------------------- + + /** + * 用户组织机构详情 + */ + @TableField(exist = false) + @ChineseDescription("用户组织机构详情") + private UserOrgDTO userOrgDTO; + } diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java index da2bdb538..d694d323d 100644 --- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -7,6 +7,9 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; +import cn.stylefeng.roses.kernel.sys.api.SysUserServiceApi; +import cn.stylefeng.roses.kernel.sys.api.pojo.SimpleUserDTO; +import cn.stylefeng.roses.kernel.sys.api.pojo.UserOrgDTO; import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUser; import cn.stylefeng.roses.kernel.sys.modular.user.enums.SysUserExceptionEnum; import cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserMapper; @@ -26,7 +29,7 @@ import java.util.List; * @date 2023/06/10 21:26 */ @Service -public class SysUserServiceImpl extends ServiceImpl implements SysUserService { +public class SysUserServiceImpl extends ServiceImpl implements SysUserService, SysUserServiceApi { @Override public void add(SysUserRequest sysUserRequest) { @@ -60,8 +63,14 @@ public class SysUserServiceImpl extends ServiceImpl impl // 只查询需要的字段 wrapper.select(SysUser::getUserId, SysUser::getRealName, SysUser::getAccount, SysUser::getSex, SysUser::getStatusFlag, BaseEntity::getCreateTime); - Page sysRolePage = this.page(PageFactory.defaultPage(), wrapper); - return PageResultFactory.createPageResult(sysRolePage); + Page sysUserPage = this.page(PageFactory.defaultPage(), wrapper); + + // 遍历查询结果,增加对用户部门信息的返回 + for (SysUser record : sysUserPage.getRecords()) { + record.setUserOrgDTO(this.getUserMainOrgInfo(record.getUserId())); + } + + return PageResultFactory.createPageResult(sysUserPage); } @Override @@ -70,6 +79,21 @@ public class SysUserServiceImpl extends ServiceImpl impl return this.list(wrapper); } + @Override + public SimpleUserDTO getUserInfoByUserId(Long userId) { + return null; + } + + @Override + public UserOrgDTO getUserMainOrgInfo(Long userId) { + return null; + } + + @Override + public List getUserOrgList(Long userId) { + return null; + } + /** * 获取信息 *