添加培训用户培训查询功能
parent
d480abc283
commit
318fc084e3
|
|
@ -65,8 +65,6 @@ public class StudentController {
|
||||||
return MultiResponse.of(new ArrayList<StudentCO>());
|
return MultiResponse.of(new ArrayList<StudentCO>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("查询用户统计")
|
@ApiOperation("查询用户统计")
|
||||||
@PostMapping("/listStudentCount")
|
@PostMapping("/listStudentCount")
|
||||||
public MultiResponse<StudentCO> listStudentCount(@RequestBody StudentCountQry qry) {
|
public MultiResponse<StudentCO> listStudentCount(@RequestBody StudentCountQry qry) {
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.zcloud.edu.web.training;
|
||||||
|
|
||||||
import com.zcloud.edu.api.training.TrainingUserServiceI;
|
import com.zcloud.edu.api.training.TrainingUserServiceI;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserAddCmd;
|
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.TrainingUserPageQry;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
||||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||||
|
|
@ -12,6 +13,7 @@ import com.alibaba.cola.dto.Response;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
|
import com.zcloud.gbscommon.zcloudqualifications.response.EduProjectUserDO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
@ -19,6 +21,8 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-adapter
|
* web-adapter
|
||||||
* @Author makejava
|
* @Author makejava
|
||||||
|
|
@ -50,6 +54,17 @@ public class TrainingUserController {
|
||||||
return MultiResponse.of(new ArrayList<TrainingUserCO>());
|
return MultiResponse.of(new ArrayList<TrainingUserCO>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 口门使用
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ApiOperation("根据手机号查询是否培训通过")
|
||||||
|
@PostMapping("/listAllByPhones")
|
||||||
|
public MultiResponse<EduProjectUserDO> listAllByPhones(@RequestBody List<EduProjectUserDO> qry) {
|
||||||
|
return trainingUserService.listAllByPhones(qry);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("详情")
|
@ApiOperation("详情")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public SingleResponse<TrainingUserCO> getInfoById(@PathVariable("id") Long id) {
|
public SingleResponse<TrainingUserCO> getInfoById(@PathVariable("id") Long id) {
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,25 @@
|
||||||
package com.zcloud.edu.command.query.training;
|
package com.zcloud.edu.command.query.training;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.MultiResponse;
|
||||||
import com.zcloud.edu.command.convertor.training.TrainingUserCoConvertor;
|
import com.zcloud.edu.command.convertor.training.TrainingUserCoConvertor;
|
||||||
|
import com.zcloud.edu.dto.training.TrainingUserEntranceQry;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
||||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||||
import com.zcloud.edu.persistence.dataobject.TrainingUserDO;
|
import com.zcloud.edu.persistence.dataobject.TrainingUserDO;
|
||||||
import com.zcloud.edu.persistence.repository.training.TrainingUserRepository;
|
import com.zcloud.edu.persistence.repository.training.TrainingUserRepository;
|
||||||
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 com.zcloud.gbscommon.zcloudqualifications.response.EduProjectUserDO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.apache.commons.beanutils.PropertyUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -38,5 +45,25 @@ public class TrainingUserQueryExe {
|
||||||
List<TrainingUserCO> examCenterCOS = trainingUserCoConvertor.converDOsToCOs(pageResponse.getData());
|
List<TrainingUserCO> examCenterCOS = trainingUserCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MultiResponse<EduProjectUserDO> listAllByPhonesExecute(List<EduProjectUserDO> qry) {
|
||||||
|
List<String> phones = qry.stream().map(EduProjectUserDO::getPhone).collect(Collectors.toList());
|
||||||
|
Map<String, Object> params = new HashMap<String, Object>();
|
||||||
|
params.put("phones", phones);
|
||||||
|
List<TrainingUserDO> list = trainingUserRepository.listAllByPhones(params);
|
||||||
|
Map<String, TrainingUserDO> existingUserMap = list.stream().collect(Collectors.toMap(TrainingUserDO::getPhone, user -> user));
|
||||||
|
qry.stream().forEach(eduProjectUserDO -> {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
TrainingUserDO trainingUser = existingUserMap.get(eduProjectUserDO.getPhone());
|
||||||
|
if(trainingUser.getStartTime() != null){
|
||||||
|
eduProjectUserDO.setStartTrainingTime(trainingUser.getStartTime().format(formatter));
|
||||||
|
}
|
||||||
|
if(trainingUser.getEndTime() != null){
|
||||||
|
eduProjectUserDO.setEndTrainingTime(trainingUser.getEndTime().format(formatter));
|
||||||
|
}
|
||||||
|
eduProjectUserDO.setTrainingState(String.valueOf(trainingUser.getStateFlag()));
|
||||||
|
});
|
||||||
|
return MultiResponse.of(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,25 @@
|
||||||
package com.zcloud.edu.service;
|
package com.zcloud.edu.service;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.MultiResponse;
|
||||||
import com.zcloud.edu.api.training.TrainingUserServiceI;
|
import com.zcloud.edu.api.training.TrainingUserServiceI;
|
||||||
import com.zcloud.edu.command.training.TrainingUserAddExe;
|
import com.zcloud.edu.command.training.TrainingUserAddExe;
|
||||||
import com.zcloud.edu.command.training.TrainingUserRemoveExe;
|
import com.zcloud.edu.command.training.TrainingUserRemoveExe;
|
||||||
import com.zcloud.edu.command.training.TrainingUserUpdateExe;
|
import com.zcloud.edu.command.training.TrainingUserUpdateExe;
|
||||||
import com.zcloud.edu.command.query.training.TrainingUserQueryExe;
|
import com.zcloud.edu.command.query.training.TrainingUserQueryExe;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserAddCmd;
|
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.TrainingUserPageQry;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
||||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
|
import com.zcloud.gbscommon.zcloudqualifications.response.EduProjectUserDO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-app
|
* web-app
|
||||||
* @Author makejava
|
* @Author makejava
|
||||||
|
|
@ -55,5 +60,10 @@ public class TrainingUserServiceImpl implements TrainingUserServiceI {
|
||||||
public void removeBatch(Long[] ids) {
|
public void removeBatch(Long[] ids) {
|
||||||
trainingUserRemoveExe.execute(ids);
|
trainingUserRemoveExe.execute(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MultiResponse<EduProjectUserDO> listAllByPhones(List<EduProjectUserDO> qry) {
|
||||||
|
return trainingUserQueryExe.listAllByPhonesExecute(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,17 @@
|
||||||
package com.zcloud.edu.api.training;
|
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.TrainingUserAddCmd;
|
||||||
|
import com.zcloud.edu.dto.training.TrainingUserEntranceQry;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
import com.zcloud.edu.dto.training.TrainingUserPageQry;
|
||||||
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
import com.zcloud.edu.dto.training.TrainingUserUpdateCmd;
|
||||||
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
import com.zcloud.edu.dto.clientobject.training.TrainingUserCO;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
|
import com.zcloud.gbscommon.zcloudqualifications.response.EduProjectUserDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-client
|
* web-client
|
||||||
|
|
@ -23,5 +28,7 @@ public interface TrainingUserServiceI {
|
||||||
void remove(Long id);
|
void remove(Long id);
|
||||||
|
|
||||||
void removeBatch(Long[] ids);
|
void removeBatch(Long[] ids);
|
||||||
|
|
||||||
|
MultiResponse<EduProjectUserDO> listAllByPhones(List<EduProjectUserDO> qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,5 +16,6 @@ public class FileUrlConfig {
|
||||||
}
|
}
|
||||||
public String getPrefixUrl() {
|
public String getPrefixUrl() {
|
||||||
return "http://192.168.192.201:8991/file/uploadFiles2/";
|
return "http://192.168.192.201:8991/file/uploadFiles2/";
|
||||||
|
// return prefixUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.zcloud.edu.dto.training;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
* @Author makejava
|
||||||
|
* @Date 2026-01-12 15:41:04
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TrainingUserEntranceQry {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||||
|
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||||
|
* - `eq`: 等值查询,对应SQL的=操作符
|
||||||
|
* - `gt`: 大于比较查询
|
||||||
|
* - `lt`: 小于比较查询
|
||||||
|
* - `ge`: 大于等于比较查询
|
||||||
|
* - `le`: 小于等于比较查询
|
||||||
|
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||||
|
*/
|
||||||
|
private List<String> phones;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -38,6 +38,10 @@ public class TrainingUserDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "考试状态:1.待考试2:考试通过,3:考试不通过")
|
@ApiModelProperty(value = "考试状态:1.待考试2:考试通过,3:考试不通过")
|
||||||
private Long examineStatus;
|
private Long examineStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "当前培训证书有效状态 0-无效 1-有效")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer stateFlag;
|
||||||
|
|
||||||
public TrainingUserDO(String trainingUserId) {
|
public TrainingUserDO(String trainingUserId) {
|
||||||
this.trainingUserId = trainingUserId;
|
this.trainingUserId = trainingUserId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -16,5 +17,7 @@ import java.util.Map;
|
||||||
public interface TrainingUserMapper extends BaseMapper<TrainingUserDO> {
|
public interface TrainingUserMapper extends BaseMapper<TrainingUserDO> {
|
||||||
void updateTime(@Param("params") Map<String, Object> params);
|
void updateTime(@Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
List<TrainingUserDO> listAllByPhones(@Param("params") Map<String,Object> params);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,5 +43,10 @@ public class TrainingUserRepositoryImpl extends BaseRepositoryImpl<TrainingUserM
|
||||||
Map<String, Object> params = PageQueryHelper.toHashMap(trainingUserE);
|
Map<String, Object> params = PageQueryHelper.toHashMap(trainingUserE);
|
||||||
trainingUserMapper.updateTime(params);
|
trainingUserMapper.updateTime(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TrainingUserDO> listAllByPhones(Map<String, Object> params) {
|
||||||
|
return trainingUserMapper.listAllByPhones(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,5 +17,8 @@ public interface TrainingUserRepository extends BaseRepository<TrainingUserDO> {
|
||||||
PageResponse<TrainingUserDO> listPage(Map<String,Object> params);
|
PageResponse<TrainingUserDO> listPage(Map<String,Object> params);
|
||||||
|
|
||||||
void updateTime(TrainingUserE trainingUserE);
|
void updateTime(TrainingUserE trainingUserE);
|
||||||
|
|
||||||
|
|
||||||
|
List<TrainingUserDO> listAllByPhones(Map<String, Object> params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,5 +14,29 @@
|
||||||
and ( end_time is null or end_time < #{params.endTime})
|
and ( end_time is null or end_time < #{params.endTime})
|
||||||
</where>
|
</where>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<select id="listAllByPhones" resultType="com.zcloud.edu.persistence.dataobject.TrainingUserDO">
|
||||||
|
|
||||||
|
select
|
||||||
|
phone,
|
||||||
|
start_time,
|
||||||
|
end_time,
|
||||||
|
case when start_time < now() and end_time > now() then 1 else 0 end stateFlag
|
||||||
|
from
|
||||||
|
training_user
|
||||||
|
<where>
|
||||||
|
delete_enum = 'false'
|
||||||
|
<if test="params.phones != null">
|
||||||
|
and phone in
|
||||||
|
<foreach item="phone" collection="params.phones" open="(" separator="," close=")">
|
||||||
|
#{phone}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue