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

View File

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

View File

@ -30,6 +30,9 @@ public class UserCertificatePageQry extends PageQuery {
@ApiModelProperty(value = "姓名", name = "likeUserName") @ApiModelProperty(value = "姓名", name = "likeUserName")
private String 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") @ApiModelProperty(value = "企业ID", name = "eqCorpinfoId")
private Long 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 io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
public class UserDO { public class UserBasicInfo {
@ApiModelProperty(value = "用户ID") @ApiModelProperty(value = "用户ID")
private Long userId; private Long userId;

View File

@ -55,5 +55,22 @@ public class UserCertificateE extends BaseE {
private LocalDate certificateDateEnd; private LocalDate certificateDateEnd;
//复审日期 //复审日期
private LocalDate reviewDate; 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.zcloud.certificate.persistence.dataobject.UserCertificateDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO; 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.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -22,7 +21,7 @@ public interface UserCertificateMapper extends BaseMapper<UserCertificateDO> {
/** /**
* userId * 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.zcloud.certificate.persistence.dataobject.UserCertificateDO;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.BaseRepository; import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO; import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO;
import com.zcloud.certificate.persistence.dataobject.UserDO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -22,19 +20,16 @@ public interface UserCertificateRepository extends BaseRepository<UserCertificat
/** /**
* userId * 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( PageResponse<UserCertificateStatDO> selectCorpCertificateStatPage(@Param("params") Map<String, Object> params);
IPage<UserCertificateStatDO> page,
@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.UserCertificateDO;
import com.zcloud.certificate.persistence.dataobject.UserCertificateStatDO; 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.mapper.UserCertificateMapper;
import com.zcloud.certificate.persistence.repository.UserCertificateRepository; import com.zcloud.certificate.persistence.repository.UserCertificateRepository;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
@ -15,7 +14,6 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -40,18 +38,22 @@ public class UserCertificateRepositoryImpl extends BaseRepositoryImpl<UserCertif
} }
@Override @Override
public List<UserDO> getUserNamesByUserIds(List<Long> userIds) { public List<com.zcloud.certificate.domain.model.UserBasicInfo> getUserNamesByUserIds(List<Long> userIds) {
return userCertificateMapper.selectUserNamesByUserIds(userIds); return userCertificateMapper.selectUserNamesByUserIds(userIds);
} }
@Override @Override
public IPage<UserCertificateDO> listPageWithUser(IPage<UserCertificateDO> page, Map<String, Object> params) { public PageResponse<UserCertificateDO> listPageWithUser(Map<String, Object> params) {
return userCertificateMapper.selectPageWithUser(page, params); IPage<UserCertificateDO> page = new Query<UserCertificateDO>().getPage(params);
IPage<UserCertificateDO> iPage = userCertificateMapper.selectPageWithUser(page, params);
return PageHelper.pageToResponse(iPage, iPage.getRecords());
} }
@Override @Override
public IPage<UserCertificateStatDO> selectCorpCertificateStatPage(IPage<UserCertificateStatDO> page, Map<String, Object> params) { public PageResponse<UserCertificateStatDO> selectCorpCertificateStatPage(Map<String, Object> params) {
return userCertificateMapper.selectCorpCertificateStatPage(page, 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 != ''"> <if test="params.eqCorpinfoId != null and params.eqCorpinfoId != ''">
AND uc.corpinfo_id = #{params.eqCorpinfoId} AND uc.corpinfo_id = #{params.eqCorpinfoId}
</if> </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 ORDER BY uc.create_time DESC
</select> </select>
<select id="selectUserNamesByUserIds" resultType="com.zcloud.certificate.persistence.dataobject.UserDO"> <select id="selectUserNamesByUserIds" resultType="com.zcloud.certificate.domain.model.UserBasicInfo">
SELECT SELECT
u.id AS userId, u.id AS userId,
u.name AS userName, u.name AS userName,