1、增加app查询表示

2、优化代码结构
main
hezhiqiang 2026-01-08 11:50:49 +08:00
parent bc5ce255b2
commit 20222626a7
11 changed files with 88 additions and 84 deletions

View File

@ -1,5 +1,7 @@
package com.zcloud.certificate.command;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.certificate.domain.gateway.UserCertificateGateway;
import com.zcloud.certificate.domain.model.UserCertificateE;
import com.zcloud.certificate.dto.UserCertificateAddCmd;
@ -27,6 +29,8 @@ public class UserCertificateAddExe {
UserCertificateE userCertificateE = new UserCertificateE();
BeanUtils.copyProperties(cmd, userCertificateE);
SSOUser ssoUser = AuthContext.getCurrentUser();
Boolean certificate = userCertificateGateway.checkCertificateExist(userCertificateE);
if (certificate) {
throw new BizException("证书编号已存在");
@ -34,6 +38,7 @@ public class UserCertificateAddExe {
boolean res = false;
try {
userCertificateE.setCorpinfoId(ssoUser != null ? ssoUser.getTenantId() : null);
res = userCertificateGateway.add(userCertificateE);
} catch (Exception e) {
throw new RuntimeException(e);

View File

@ -1,5 +1,6 @@
package com.zcloud.certificate.command.convertor;
import com.zcloud.certificate.domain.model.UserCertificateE;
import com.zcloud.certificate.dto.clientobject.UserCertificateCO;
import com.zcloud.certificate.dto.clientobject.UserCertificateStatCO;
import com.zcloud.certificate.persistence.dataobject.UserCertificateDO;
@ -26,5 +27,7 @@ public interface UserCertificateCoConvertor {
UserCertificateCO converDOToCO(UserCertificateDO userCertificateDO);
List<UserCertificateStatCO> converStatDOsToStatCOs(List<UserCertificateStatDO> userCertificateStatDOs);
UserCertificateCO converEToCO(UserCertificateE userCertificateE);
}

View File

@ -65,19 +65,9 @@ public class CorpCertificateQueryExe {
public PageResponse<CertificateStatisticsCO> statPage(CorpCertificateStatPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<CorpInfoDO> pageResponse =
corpCertificateRepository.statPage(params);
List<CertificateStatisticsCO> cos =
corpCertificateStatCoConvertor.convertRowsToCOs(pageResponse.getData());
return PageResponse.of(
cos,
pageResponse.getTotalCount(),
pageResponse.getPageSize(),
pageResponse.getPageIndex()
);
PageResponse<CorpInfoDO> pageResponse = corpCertificateRepository.statPage(params);
List<CertificateStatisticsCO> cos = corpCertificateStatCoConvertor.convertRowsToCOs(pageResponse.getData());
return PageResponse.of(cos, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}

View File

@ -1,24 +1,23 @@
package com.zcloud.certificate.command.query;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.certificate.command.convertor.UserCertificateCoConvertor;
import com.zcloud.certificate.domain.model.UserCertificateE;
import com.zcloud.certificate.dto.CorpCertificateStatPageQry;
import com.zcloud.certificate.dto.UserCertificatePageQry;
import com.zcloud.certificate.dto.clientobject.UserCertificateCO;
import com.zcloud.certificate.dto.clientobject.UserCertificateStatCO;
import com.zcloud.certificate.persistence.dataobject.UserCertificateDO;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import com.zcloud.certificate.persistence.repository.UserCertificateRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -38,42 +37,31 @@ public class UserCertificateQueryExe {
* @return
*/
public UserCertificateCO queryById(Long id) {
UserCertificateCO userCertificateCO = userCertificateCoConvertor.converDOToCO(userCertificateRepository.getById(id));
if (userCertificateCO == null) {
UserCertificateDO certDO = userCertificateRepository.getById(id);
if (certDO == null) {
return null;
}
// 查询用户名 在职状态并设置
UserDO userDO = userCertificateRepository.getUserNamesByUserIds(Collections.singletonList(userCertificateCO.getUserId())).stream().findFirst().orElse(null);
if (userDO != null) {
userCertificateCO.setUserName(userDO.getUserName());
userCertificateCO.setEmploymentStatus(userDO.getEmploymentStatus());
userCertificateCO.setPostName(userDO.getPostName());
userCertificateCO.setDepartmentName(userDO.getDepartmentName());
userCertificateCO.setCorpinfoName(userDO.getCorpinfoName());
}
return userCertificateCO;
UserCertificateE e = new UserCertificateE();
BeanUtils.copyProperties(certDO, e);
com.zcloud.certificate.domain.model.UserBasicInfo userBasicInfo = userCertificateRepository.getUserNamesByUserIds(Collections.singletonList(e.getUserId())).stream().findFirst().orElse(null);
e.attach(userBasicInfo);
return userCertificateCoConvertor.converEToCO(e);
}
/**
*
*
* @return
*/
public PageResponse<UserCertificateCO> execute(UserCertificatePageQry qry) {
if (qry.getIsAppQuery() != null) {
SSOUser ssoUser = AuthContext.getCurrentUser();
qry.setEqUserId(ssoUser.getUserId());
}
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
IPage<UserCertificateDO> iPage = userCertificateRepository.listPageWithUser(new Page<>(qry.getPageIndex(), qry.getPageSize()), params);
List<UserCertificateCO> cos = Optional.ofNullable(iPage.getRecords())
.orElse(Collections.emptyList())
.stream()
.map(userCertificateCoConvertor::converDOToCO)
.collect(Collectors.toList());
return PageResponse.of(
cos,
(int) iPage.getTotal(),
(int) iPage.getSize(),
(int) iPage.getCurrent()
);
PageResponse<UserCertificateDO> iPage = userCertificateRepository.listPageWithUser(params);
List<UserCertificateCO> cos = userCertificateCoConvertor.converDOsToCOs(iPage.getData());
return PageResponse.of(cos, iPage.getTotalCount(), iPage.getPageSize(), iPage.getPageIndex());
}
/**
@ -81,25 +69,9 @@ public class UserCertificateQueryExe {
*/
public PageResponse<UserCertificateStatCO> execute(CorpCertificateStatPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
IPage<UserCertificateStatDO> page = new Page<>(
qry.getPageIndex(),
qry.getPageSize()
);
IPage<UserCertificateStatDO> result =
userCertificateRepository.selectCorpCertificateStatPage(page, params);
List<UserCertificateStatCO> cos = userCertificateCoConvertor.converStatDOsToStatCOs(
Optional.ofNullable(result.getRecords()).orElse(Collections.emptyList())
);
return PageResponse.of(
cos,
(int)result.getTotal(),
(int) result.getSize(),
(int) result.getCurrent()
);
PageResponse<UserCertificateStatDO> result = userCertificateRepository.selectCorpCertificateStatPage(params);
List<UserCertificateStatCO> cos = userCertificateCoConvertor.converStatDOsToStatCOs(result.getData());
return PageResponse.of(cos, result.getTotalCount(), result.getPageSize(), result.getPageIndex());
}

View File

@ -30,6 +30,9 @@ public class UserCertificatePageQry extends PageQuery {
@ApiModelProperty(value = "姓名", name = "likeUserName")
private String likeUserName;
@ApiModelProperty(value = "用户ID", name = "eqUserId")
private Long eqUserId;
/**
*
*/
@ -53,5 +56,17 @@ public class UserCertificatePageQry extends PageQuery {
*/
@ApiModelProperty(value = "企业ID", name = "eqCorpinfoId")
private Long eqCorpinfoId;
/**
*
*/
@ApiModelProperty(value = "岗位名称", name = "likePostName")
private String likePostName;
/**
* app
*/
@ApiModelProperty(value = "app 端查询表示", name = "isAppQuery")
private Integer isAppQuery;
}

View File

@ -1,10 +1,10 @@
package com.zcloud.certificate.persistence.dataobject;
package com.zcloud.certificate.domain.model;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class UserDO {
public class UserBasicInfo {
@ApiModelProperty(value = "用户ID")
private Long userId;

View File

@ -55,5 +55,22 @@ public class UserCertificateE extends BaseE {
private LocalDate certificateDateEnd;
//复审日期
private LocalDate reviewDate;
//用户名
private String userName;
//在职状态
private Integer employmentStatus;
//部门名称
private String departmentName;
//企业名称
private String corpinfoName;
public void attach(UserBasicInfo userBasicInfo) {
if (userBasicInfo == null) return;
this.userName = userBasicInfo.getUserName();
this.employmentStatus = userBasicInfo.getEmploymentStatus();
this.departmentName = userBasicInfo.getDepartmentName();
this.corpinfoName = userBasicInfo.getCorpinfoName();
}
}

View File

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcloud.certificate.persistence.dataobject.UserCertificateDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -22,7 +21,7 @@ public interface UserCertificateMapper extends BaseMapper<UserCertificateDO> {
/**
* userId
*/
List<UserDO> selectUserNamesByUserIds(List<Long> userIds);
List<com.zcloud.certificate.domain.model.UserBasicInfo> selectUserNamesByUserIds(List<Long> userIds);
/**
*
@ -32,7 +31,7 @@ public interface UserCertificateMapper extends BaseMapper<UserCertificateDO> {
/**
* //
*/
IPage<UserCertificateStatDO> selectCorpCertificateStatPage(IPage<UserCertificateStatDO> page, @Param("params") Map<String, Object> params);
IPage<UserCertificateStatDO> selectCorpCertificateStatPage(IPage<UserCertificateDO> page, @Param("params") Map<String, Object> params);

View File

@ -2,10 +2,8 @@ package com.zcloud.certificate.persistence.repository;
import com.zcloud.certificate.persistence.dataobject.UserCertificateDO;
import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -22,19 +20,16 @@ public interface UserCertificateRepository extends BaseRepository<UserCertificat
/**
* userId
*/
List<UserDO> getUserNamesByUserIds(List<Long> userIds);
List<com.zcloud.certificate.domain.model.UserBasicInfo> getUserNamesByUserIds(List<Long> userIds);
/**
*
*/
IPage<UserCertificateDO> listPageWithUser(IPage<UserCertificateDO> page, Map<String, Object> params);
PageResponse<UserCertificateDO> listPageWithUser(Map<String, Object> params);
/**
* //
*/
IPage<UserCertificateStatDO> selectCorpCertificateStatPage(
IPage<UserCertificateStatDO> page,
@Param("params") Map<String, Object> params
);
PageResponse<UserCertificateStatDO> selectCorpCertificateStatPage(@Param("params") Map<String, Object> params);
}

View File

@ -2,7 +2,6 @@ package com.zcloud.certificate.persistence.repository.impl;
import com.zcloud.certificate.persistence.dataobject.UserCertificateDO;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import com.zcloud.certificate.persistence.mapper.UserCertificateMapper;
import com.zcloud.certificate.persistence.repository.UserCertificateRepository;
import com.alibaba.cola.dto.PageResponse;
@ -15,7 +14,6 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ -40,18 +38,22 @@ public class UserCertificateRepositoryImpl extends BaseRepositoryImpl<UserCertif
}
@Override
public List<UserDO> getUserNamesByUserIds(List<Long> userIds) {
public List<com.zcloud.certificate.domain.model.UserBasicInfo> getUserNamesByUserIds(List<Long> userIds) {
return userCertificateMapper.selectUserNamesByUserIds(userIds);
}
@Override
public IPage<UserCertificateDO> listPageWithUser(IPage<UserCertificateDO> page, Map<String, Object> params) {
return userCertificateMapper.selectPageWithUser(page, params);
public PageResponse<UserCertificateDO> listPageWithUser(Map<String, Object> params) {
IPage<UserCertificateDO> page = new Query<UserCertificateDO>().getPage(params);
IPage<UserCertificateDO> iPage = userCertificateMapper.selectPageWithUser(page, params);
return PageHelper.pageToResponse(iPage, iPage.getRecords());
}
@Override
public IPage<UserCertificateStatDO> selectCorpCertificateStatPage(IPage<UserCertificateStatDO> page, Map<String, Object> params) {
return userCertificateMapper.selectCorpCertificateStatPage(page, params);
public PageResponse<UserCertificateStatDO> selectCorpCertificateStatPage(Map<String, Object> params) {
IPage<UserCertificateDO> page = new Query<UserCertificateDO>().getPage(params);
IPage<UserCertificateStatDO> iPage = userCertificateMapper.selectCorpCertificateStatPage(page, params);
return PageHelper.pageToResponse(iPage, iPage.getRecords());
}
}

View File

@ -44,12 +44,18 @@
<if test="params.eqCorpinfoId != null and params.eqCorpinfoId != ''">
AND uc.corpinfo_id = #{params.eqCorpinfoId}
</if>
<if test="params.likePostName != null and params.likePostName != ''">
AND uc.post_name LIKE CONCAT('%', #{params.likePostName}, '%')
</if>
<if test="params.eqUserId != null and params.eqUserId != ''">
AND uc.user_id = #{params.eqUserId}
</if>
ORDER BY uc.create_time DESC
</select>
<select id="selectUserNamesByUserIds" resultType="com.zcloud.certificate.persistence.dataobject.UserDO">
<select id="selectUserNamesByUserIds" resultType="com.zcloud.certificate.domain.model.UserBasicInfo">
SELECT
u.id AS userId,
u.name AS userName,