diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java index 49cdca264..1842b4ba7 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/entity/SysUser.java @@ -9,6 +9,7 @@ import cn.stylefeng.roses.kernel.rule.enums.SexEnum; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.sys.api.enums.user.UserStatusEnum; import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO; +import cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.SysUserCertificateResponse; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; @@ -210,4 +211,13 @@ public class SysUser extends BaseExpandFieldEntity { @ChineseDescription("获取用户角色id列表") private List roleIdList; + /** + * 用户证书列表 + *

+ * 用在获取用户详情信息的响应 + */ + @TableField(exist = false) + @ChineseDescription("用户证书列表") + private List userCertificateList; + } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/response/SysUserCertificateResponse.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/response/SysUserCertificateResponse.java new file mode 100644 index 000000000..767737ad7 --- /dev/null +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/pojo/response/SysUserCertificateResponse.java @@ -0,0 +1,50 @@ +package cn.stylefeng.roses.kernel.sys.modular.user.pojo.response; + +import cn.stylefeng.roses.kernel.dict.api.format.DictFormatProcess; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.annotation.SimpleFieldFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 用户证书返回值封装 + * + * @author fengshuonan + * @since 2023/11/09 22:44 + */ +@Data +public class SysUserCertificateResponse { + + /** + * 证书类型,取字典id + */ + @ChineseDescription("证书类型,取字典id") + @SimpleFieldFormat(processClass = DictFormatProcess.class) + private Long certificateType; + + /** + * 证书编号 + */ + @ChineseDescription("证书编号") + private String certificateNo; + + /** + * 发证机构名称 + */ + @ChineseDescription("发证机构名称") + private String issuingAuthority; + + /** + * 证书发证日期 + */ + @ChineseDescription("证书发证日期") + private Date dateIssued; + + /** + * 证书到期日期,如果为空,则为长期 + */ + @ChineseDescription("证书到期日期,如果为空,则为长期") + private Date dateExpires; + +} diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserCertificateService.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserCertificateService.java index d00ee5f0d..708dde3e4 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserCertificateService.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/SysUserCertificateService.java @@ -1,6 +1,7 @@ package cn.stylefeng.roses.kernel.sys.modular.user.service; import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate; +import cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.SysUserCertificateResponse; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -23,4 +24,14 @@ public interface SysUserCertificateService extends IService */ void updateUserCertificate(Long userId, List sysUserCertificateList); + /** + * 获取指定用户的证书信息 + *

+ * 用在用户详情界面 + * + * @author fengshuonan + * @since 2023/11/10 0:01 + */ + List getUserCertificateList(Long userId); + } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserCertificateServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserCertificateServiceImpl.java index f1fe911a0..a15b61fc1 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserCertificateServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserCertificateServiceImpl.java @@ -1,17 +1,20 @@ package cn.stylefeng.roses.kernel.sys.modular.user.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.dsctn.api.context.DataSourceContext; import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi; import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUserCertificate; import cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserCertificateMapper; +import cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.SysUserCertificateResponse; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserCertificateService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -45,6 +48,22 @@ public class SysUserCertificateServiceImpl extends ServiceImpl getUserCertificateList(Long userId) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUserCertificate::getUserId, userId); + + queryWrapper.select(SysUserCertificate::getCertificateType, SysUserCertificate::getCertificateNo, SysUserCertificate::getDateIssued, + SysUserCertificate::getDateExpires, SysUserCertificate::getIssuingAuthority); + List sysUserCertificateList = this.list(queryWrapper); + if (ObjectUtil.isEmpty(sysUserCertificateList)) { + return new ArrayList<>(); + } + + return BeanUtil.copyToList(sysUserCertificateList, SysUserCertificateResponse.class); + } + @Override public void validateHaveUserBind(Set beRemovedUserIdList) { // ignore diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java index 8fa1b68d9..6ddaa3d72 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -35,6 +35,7 @@ import cn.stylefeng.roses.kernel.sys.modular.user.factory.SysUserCreateFactory; import cn.stylefeng.roses.kernel.sys.modular.user.mapper.SysUserMapper; import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest; import cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.PersonalInfo; +import cn.stylefeng.roses.kernel.sys.modular.user.pojo.response.SysUserCertificateResponse; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserCertificateService; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserOrgService; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserRoleService; @@ -220,6 +221,10 @@ public class SysUserServiceImpl extends ServiceImpl impl List userRoleIdList = sysUserRoleService.getUserRoleIdList(sysUser.getUserId()); sysUser.setRoleIdList(userRoleIdList); + // 获取用户证书信息 + List userCertificateList = sysUserCertificateService.getUserCertificateList(sysUser.getUserId()); + sysUser.setUserCertificateList(userCertificateList); + return sysUser; }