添加相关方项目培训用户分页查询功能
parent
1a3365b921
commit
0e8138b9b5
|
|
@ -2,10 +2,7 @@ package com.zcloud.edu.web.training;
|
|||
|
||||
|
||||
import com.zcloud.edu.api.training.TrainingUserServiceI;
|
||||
import com.zcloud.edu.dto.training.TrainingUserAddCmd;
|
||||
import com.zcloud.edu.dto.training.TrainingUserEntranceQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
||||
import com.zcloud.edu.dto.training.*;
|
||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
|
|
@ -65,6 +62,24 @@ public class TrainingUserController {
|
|||
return MultiResponse.of(trainingUserService.listAllByPhones(qry));
|
||||
}
|
||||
|
||||
/**
|
||||
* 相关方项目使用(分页)
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("相关方项目使用(分页)")
|
||||
@PostMapping("/listEduUserPage")
|
||||
public PageResponse<TrainingUserCO> listEduUserPage(@RequestBody TrainingUserPageProjectQry qry) {
|
||||
return trainingUserService.listEduUserPage(qry);
|
||||
} /**
|
||||
* 相关方项目使用(分页)
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("相关方项目使用")
|
||||
@PostMapping("/listEduUser")
|
||||
public MultiResponse<TrainingUserCO> listEduUser(@RequestBody TrainingUserPageProjectQry qry) {
|
||||
return trainingUserService.listEduUser(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("详情")
|
||||
@GetMapping("/{id}")
|
||||
public SingleResponse<TrainingUserCO> getInfoById(@PathVariable("id") Long id) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
package com.zcloud.edu.command.query.training;
|
||||
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||
import com.zcloud.edu.command.convertor.training.TrainingUserCoConvertor;
|
||||
import com.zcloud.edu.dto.training.TrainingUserEntranceQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserPageProjectQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||
import com.zcloud.edu.persistence.dataobject.TrainingUserDO;
|
||||
|
|
@ -35,11 +37,11 @@ public class TrainingUserQueryExe {
|
|||
private final TrainingUserCoConvertor trainingUserCoConvertor;
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param trainingUserPageQry
|
||||
* @return
|
||||
*/
|
||||
* 分页
|
||||
*
|
||||
* @param trainingUserPageQry
|
||||
* @return
|
||||
*/
|
||||
public PageResponse<TrainingUserCO> execute(TrainingUserPageQry trainingUserPageQry) {
|
||||
Map<String,Object> params = PageQueryHelper.toHashMap(trainingUserPageQry);
|
||||
PageResponse<TrainingUserDO> pageResponse = trainingUserRepository.listPage(params);
|
||||
|
|
@ -47,6 +49,38 @@ public class TrainingUserQueryExe {
|
|||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*
|
||||
* @param qry
|
||||
* @return
|
||||
*/
|
||||
public PageResponse<TrainingUserCO> listEduUserPageExecute(TrainingUserPageProjectQry qry) {
|
||||
Map<String,Object> params = PageQueryHelper.toHashMap(qry);
|
||||
if (ObjectUtils.isEmpty(params.get("corpinfoId"))){
|
||||
params.put("corpinfoId", AuthContext.getTenantId());
|
||||
}
|
||||
PageResponse<TrainingUserDO> pageResponse = trainingUserRepository.listEduUserPage(params);
|
||||
List<TrainingUserCO> examCenterCOS = trainingUserCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param qry
|
||||
* @return
|
||||
*/
|
||||
public MultiResponse<TrainingUserCO> listEduUserExecute(TrainingUserPageProjectQry qry) {
|
||||
Map<String,Object> params = PageQueryHelper.toHashMap(qry);
|
||||
if (ObjectUtils.isEmpty(params.get("corpinfoId"))){
|
||||
params.put("corpinfoId", AuthContext.getTenantId());
|
||||
}
|
||||
List<TrainingUserDO> trainingUserDOS = trainingUserRepository.listEduUser(params);
|
||||
List<TrainingUserCO> examCenterCOS = trainingUserCoConvertor.converDOsToCOs(trainingUserDOS);
|
||||
return MultiResponse.of(examCenterCOS);
|
||||
}
|
||||
|
||||
public List<EduProjectUserDO> listAllByPhonesExecute(List<EduProjectUserDO> qry) {
|
||||
List<String> phones = qry.stream().map(EduProjectUserDO::getPhone).collect(Collectors.toList());
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
|
|
|
|||
|
|
@ -6,10 +6,7 @@ import com.zcloud.edu.command.training.TrainingUserAddExe;
|
|||
import com.zcloud.edu.command.training.TrainingUserRemoveExe;
|
||||
import com.zcloud.edu.command.training.TrainingUserUpdateExe;
|
||||
import com.zcloud.edu.command.query.training.TrainingUserQueryExe;
|
||||
import com.zcloud.edu.dto.training.TrainingUserAddCmd;
|
||||
import com.zcloud.edu.dto.training.TrainingUserEntranceQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
||||
import com.zcloud.edu.dto.training.*;
|
||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
|
|
@ -39,6 +36,16 @@ public class TrainingUserServiceImpl implements TrainingUserServiceI {
|
|||
return trainingUserQueryExe.execute(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<TrainingUserCO> listEduUserPage(TrainingUserPageProjectQry qry) {
|
||||
return trainingUserQueryExe.listEduUserPageExecute(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiResponse<TrainingUserCO> listEduUser(TrainingUserPageProjectQry qry) {
|
||||
return trainingUserQueryExe.listEduUserExecute(qry);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse add(TrainingUserAddCmd cmd) {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
package com.zcloud.edu.api.training;
|
||||
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.zcloud.edu.dto.training.TrainingUserAddCmd;
|
||||
import com.zcloud.edu.dto.training.TrainingUserEntranceQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
||||
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
||||
import com.zcloud.edu.dto.training.*;
|
||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
|
|
@ -20,6 +17,8 @@ import java.util.List;
|
|||
*/
|
||||
public interface TrainingUserServiceI {
|
||||
PageResponse<TrainingUserCO> listPage(TrainingUserPageQry qry);
|
||||
PageResponse<TrainingUserCO> listEduUserPage(TrainingUserPageProjectQry qry);
|
||||
MultiResponse<TrainingUserCO> listEduUser(TrainingUserPageProjectQry qry);
|
||||
|
||||
SingleResponse<TrainingUserCO> add(TrainingUserAddCmd cmd);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.zcloud.edu.dto.clientobject.training;
|
||||
|
||||
import com.alibaba.cola.dto.ClientObject;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -35,6 +36,33 @@ public class TrainingUserCO extends ClientObject {
|
|||
//考试状态:1.待考试2:考试通过,3:考试不通过
|
||||
@ApiModelProperty(value = "考试状态:1.待考试2:考试通过,3:考试不通过")
|
||||
private Long examineStatus;
|
||||
|
||||
//姓名
|
||||
@ApiModelProperty(value = "姓名")
|
||||
private String name;
|
||||
|
||||
//所属部门
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private String departmentName;
|
||||
|
||||
//所属部门id
|
||||
@ApiModelProperty(value = "所属部门id")
|
||||
private Long departmentId;
|
||||
|
||||
//所属岗位
|
||||
@ApiModelProperty(value = "所属岗位")
|
||||
private String postName;
|
||||
|
||||
//所属岗位id
|
||||
@ApiModelProperty(value = "所属岗位id")
|
||||
private Long postId;
|
||||
|
||||
//当前培训证书有效状态 0-无效 1-有效
|
||||
@ApiModelProperty(value = "当前培训证书有效状态 0-无效 1-有效")
|
||||
private Integer stateFlag;
|
||||
|
||||
|
||||
|
||||
//乐观锁
|
||||
@ApiModelProperty(value = "乐观锁")
|
||||
private Integer version;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
package com.zcloud.edu.dto.training;
|
||||
|
||||
import com.alibaba.cola.dto.PageQuery;
|
||||
import io.swagger.models.auth.In;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* web-client
|
||||
* @Author makejava
|
||||
* @Date 2026-01-12 15:41:04
|
||||
*/
|
||||
@Data
|
||||
public class TrainingUserPageProjectQry extends PageQuery {
|
||||
|
||||
/**
|
||||
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||
* - `eq`: 等值查询,对应SQL的=操作符
|
||||
* - `gt`: 大于比较查询
|
||||
* - `lt`: 小于比较查询
|
||||
* - `ge`: 大于等于比较查询
|
||||
* - `le`: 小于等于比较查询
|
||||
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||
*/
|
||||
private String likeTrainingUserId;
|
||||
private Integer flowFlag;
|
||||
private Integer noMain;
|
||||
private Integer eqEmploymentFlag;
|
||||
private List<Integer> departmentList;
|
||||
private String name;
|
||||
private Integer corpinfoId;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -42,6 +42,34 @@ public class TrainingUserDO extends BaseDO {
|
|||
@TableField(exist = false)
|
||||
private Integer stateFlag;
|
||||
|
||||
|
||||
//姓名
|
||||
@ApiModelProperty(value = "姓名")
|
||||
@TableField(exist = false)
|
||||
private String name;
|
||||
|
||||
//所属部门
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
@TableField(exist = false)
|
||||
private String departmentName;
|
||||
|
||||
//所属部门id
|
||||
@ApiModelProperty(value = "所属部门id")
|
||||
@TableField(exist = false)
|
||||
private Long departmentId;
|
||||
|
||||
//所属岗位
|
||||
@ApiModelProperty(value = "所属岗位")
|
||||
@TableField(exist = false)
|
||||
private String postName;
|
||||
|
||||
//所属岗位id
|
||||
@ApiModelProperty(value = "所属岗位id")
|
||||
@TableField(exist = false)
|
||||
private Long postId;
|
||||
|
||||
|
||||
|
||||
public TrainingUserDO(String trainingUserId) {
|
||||
this.trainingUserId = trainingUserId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.zcloud.edu.persistence.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zcloud.edu.persistence.dataobject.TrainingUserDO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
|
@ -19,5 +20,8 @@ public interface TrainingUserMapper extends BaseMapper<TrainingUserDO> {
|
|||
|
||||
List<TrainingUserDO> listAllByPhones(@Param("params") Map<String,Object> params);
|
||||
|
||||
IPage<TrainingUserDO> listEduUserPage(IPage<TrainingUserDO> page, @Param("params") Map<String, Object> params);
|
||||
List<TrainingUserDO> listEduUser(@Param("params") Map<String, Object> params);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public class TrainingUserRepositoryImpl extends BaseRepositoryImpl<TrainingUserM
|
|||
|
||||
@Override
|
||||
public PageResponse<TrainingUserDO> listPage(Map<String,Object> params) {
|
||||
IPage<TrainingUserDO> iPage = new Query<TrainingUserDO>().getPage(params);
|
||||
IPage<TrainingUserDO> iPage = new Query<TrainingUserDO>().getPage(params);
|
||||
QueryWrapper<TrainingUserDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
|
||||
queryWrapper.orderByDesc("create_time");
|
||||
|
|
@ -38,6 +38,18 @@ public class TrainingUserRepositoryImpl extends BaseRepositoryImpl<TrainingUserM
|
|||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<TrainingUserDO> listEduUserPage(Map<String, Object> params) {
|
||||
IPage<TrainingUserDO> iPage = new Query<TrainingUserDO>().getPage(params);
|
||||
IPage<TrainingUserDO> result = trainingUserMapper.listEduUserPage(iPage, params);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TrainingUserDO> listEduUser(Map<String, Object> params) {
|
||||
return trainingUserMapper.listEduUser(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateTime(TrainingUserE trainingUserE) {
|
||||
Map<String, Object> params = PageQueryHelper.toHashMap(trainingUserE);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ import java.util.Map;
|
|||
public interface TrainingUserRepository extends BaseRepository<TrainingUserDO> {
|
||||
PageResponse<TrainingUserDO> listPage(Map<String,Object> params);
|
||||
|
||||
PageResponse<TrainingUserDO> listEduUserPage(Map<String,Object> params);
|
||||
|
||||
List<TrainingUserDO> listEduUser(Map<String,Object> params);
|
||||
|
||||
void updateTime(TrainingUserE trainingUserE);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,9 +34,175 @@
|
|||
#{phone}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="listEduUserPage" resultType="com.zcloud.edu.persistence.dataobject.TrainingUserDO">
|
||||
select
|
||||
u.id,
|
||||
u.user_id,
|
||||
u.username,
|
||||
u.name,
|
||||
u.corpinfo_id,
|
||||
u.password,
|
||||
u.main_corp_flag,
|
||||
u.user_type,
|
||||
u.department_id,
|
||||
u.post_id,
|
||||
u.post_name,
|
||||
u.role_id,
|
||||
u.email,
|
||||
u.personnel_type,
|
||||
u.personnel_type_name,
|
||||
u.nation,
|
||||
u.nation_name,
|
||||
u.user_id_card,
|
||||
u.user_avatar_url,
|
||||
u.current_address,
|
||||
u.location_address,
|
||||
u.rank_level,
|
||||
u.rank_level_name,
|
||||
u.sort,
|
||||
u.department_leader_flag,
|
||||
u.deputy_leader_flag,
|
||||
u.cultural_level,
|
||||
u.cultural_level_name,
|
||||
u.marital_status,
|
||||
u.marital_status_name,
|
||||
u.political_affiliation,
|
||||
u.political_affiliation_name,
|
||||
u.employment_flag,
|
||||
u.flow_flag,
|
||||
u.rz_flag,
|
||||
u.version,
|
||||
u.create_id,
|
||||
u.create_name,
|
||||
u.create_time,
|
||||
u.update_id,
|
||||
u.update_name,
|
||||
u.update_time,
|
||||
u.remarks,
|
||||
u.delete_enum,
|
||||
u.tenant_id,
|
||||
u.org_id,
|
||||
u.env,
|
||||
u.open_id,
|
||||
tu.phone,
|
||||
case when tu.start_time < now() and tu.end_time > now() then 1 else 0 end stateFlag
|
||||
from
|
||||
user u
|
||||
left join training_user tu on tu.phone = u.username and tu.delete_enum = 'FALSE'
|
||||
<where>
|
||||
and u.delete_enum = 'FALSE'
|
||||
<if test="params.noMain != null">
|
||||
and u.id != u.corpinfo_id
|
||||
</if>
|
||||
<if test="params.name != null and params.name != ''">
|
||||
and u.name LIKE CONCAT('%', #{params.name}, '%')
|
||||
</if>
|
||||
<if test="params.corpinfoId != null">
|
||||
and u.corpinfo_id = #{params.corpinfoId}
|
||||
</if>
|
||||
<if test="params.flowFlag != null">
|
||||
and u.flow_flag = #{params.flowFlag}
|
||||
</if>
|
||||
<if test="params.eqEmploymentFlag != null">
|
||||
and u.employment_flag = #{params.eqEmploymentFlag}
|
||||
</if>
|
||||
<if test="params.departmentList != null and params.departmentList.size() > 0">
|
||||
and u.department_id in
|
||||
<foreach item="item" index="index" collection="params.departmentList" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
group by u.id
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="listEduUser" resultType="com.zcloud.edu.persistence.dataobject.TrainingUserDO">
|
||||
select
|
||||
u.id,
|
||||
u.user_id,
|
||||
u.username,
|
||||
u.name,
|
||||
u.corpinfo_id,
|
||||
u.password,
|
||||
u.main_corp_flag,
|
||||
u.user_type,
|
||||
u.department_id,
|
||||
u.post_id,
|
||||
u.post_name,
|
||||
u.role_id,
|
||||
u.email,
|
||||
u.personnel_type,
|
||||
u.personnel_type_name,
|
||||
u.nation,
|
||||
u.nation_name,
|
||||
u.user_id_card,
|
||||
u.user_avatar_url,
|
||||
u.current_address,
|
||||
u.location_address,
|
||||
u.rank_level,
|
||||
u.rank_level_name,
|
||||
u.sort,
|
||||
u.department_leader_flag,
|
||||
u.deputy_leader_flag,
|
||||
u.cultural_level,
|
||||
u.cultural_level_name,
|
||||
u.marital_status,
|
||||
u.marital_status_name,
|
||||
u.political_affiliation,
|
||||
u.political_affiliation_name,
|
||||
u.employment_flag,
|
||||
u.flow_flag,
|
||||
u.rz_flag,
|
||||
u.version,
|
||||
u.create_id,
|
||||
u.create_name,
|
||||
u.create_time,
|
||||
u.update_id,
|
||||
u.update_name,
|
||||
u.update_time,
|
||||
u.remarks,
|
||||
u.delete_enum,
|
||||
u.tenant_id,
|
||||
u.org_id,
|
||||
u.env,
|
||||
u.open_id,
|
||||
tu.phone,
|
||||
case when tu.start_time < now() and tu.end_time > now() then 1 else 0 end stateFlag
|
||||
from
|
||||
user u
|
||||
left join training_user tu on tu.phone = u.username and tu.delete_enum = 'FALSE'
|
||||
<where>
|
||||
and u.delete_enum = 'FALSE'
|
||||
<if test="params.noMain != null">
|
||||
and u.id != u.corpinfo_id
|
||||
</if>
|
||||
<if test="params.name != null and params.name != ''">
|
||||
AND u.name LIKE CONCAT('%', #{params.name}, '%')
|
||||
</if>
|
||||
<if test="params.corpinfoId != null">
|
||||
and u.corpinfo_id = #{params.corpinfoId}
|
||||
</if>
|
||||
<if test="params.flowFlag != null">
|
||||
and u.flow_flag = #{params.flowFlag}
|
||||
</if>
|
||||
<if test="params.eqEmploymentFlag != null">
|
||||
and u.employment_flag = #{params.eqEmploymentFlag}
|
||||
</if>
|
||||
<if test="params.departmentList != null and params.departmentList.size() > 0">
|
||||
and u.department_id in
|
||||
<foreach item="item" index="index" collection="params.departmentList" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
group by u.id
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue