Browse Source

定时任务修改

master
zhizhi wu 3 years ago
parent
commit
2a0c348c2a
  1. 2
      src/main/java/com/ccsens/yanyuan/YanyuanApplication.java
  2. 15
      src/main/java/com/ccsens/yanyuan/api/FamilyController.java
  3. 9
      src/main/java/com/ccsens/yanyuan/bean/dto/FamilyDto.java
  4. 9
      src/main/java/com/ccsens/yanyuan/bean/vo/FamilyVo.java
  5. 8
      src/main/java/com/ccsens/yanyuan/mq/MentalTestReceive.java
  6. 9
      src/main/java/com/ccsens/yanyuan/persist/dao/FamilyDao.java
  7. 5
      src/main/java/com/ccsens/yanyuan/service/FamilyService.java
  8. 8
      src/main/java/com/ccsens/yanyuan/service/IFamilyService.java
  9. 13
      src/main/java/com/ccsens/yanyuan/service/MentalTestService.java
  10. 4
      src/main/resources/application.yml
  11. 21
      src/main/resources/mapper_dao/FamilyDao.xml
  12. 4
      src/main/resources/mapper_dao/MentalTestDao.xml
  13. 8
      src/main/resources/mapper_dao/TrainContentDao.xml

2
src/main/java/com/ccsens/yanyuan/YanyuanApplication.java

@ -10,6 +10,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* @author whj
@ -17,6 +18,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@MapperScan(basePackages = {"com.ccsens.yanyuan.persist.*","com.ccsens.common.persist.*"})
@ServletComponentScan
@EnableAsync
@EnableScheduling
//开启断路器功能
@EnableCircuitBreaker
@EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign")

15
src/main/java/com/ccsens/yanyuan/api/FamilyController.java

@ -1,5 +1,6 @@
package com.ccsens.yanyuan.api;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.cloudutil.annotation.MustLogin;
import com.ccsens.util.CodeError;
import com.ccsens.util.JsonResponse;
@ -95,4 +96,18 @@ public class FamilyController {
log.info("查询待审核家属成员数量结束{}",code);
return JsonResponse.newInstance().ok(code);
}
@MustLogin
@ApiOperation(value = "查询项目待审核家属成员数量", notes = "查询项目待审核家属成员数量")
@RequestMapping(value = "/queryProjectAuditNum", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<FamilyVo.WaitAuditNum>> queryProjectAuditNum(@ApiParam @Validated @RequestBody QueryDto<List<FamilyDto.QueryProjectFamily>> params) {
log.info("查询项目待审核家属成员数量:{}",params);
if (CollectionUtil.isEmpty(params.getParam())) {
return JsonResponse.newInstance().ok();
}
List<FamilyVo.WaitAuditNum> auditNum = familyService.queryProjectAuditNum(params.getParam(),params.getUserId());
log.info("查询项目待审核家属成员数量结束{}",auditNum);
return JsonResponse.newInstance().ok(auditNum);
}
}

9
src/main/java/com/ccsens/yanyuan/bean/dto/FamilyDto.java

@ -72,4 +72,13 @@ public class FamilyDto {
@ApiModelProperty("项目id")
private Long projectId;
}
@Data
@ApiModel("查询项目待审核的家属数-请求")
public static class QueryProjectFamily {
@NotNull
@ApiModelProperty("项目id(使用者userId)")
private Long projectId;
}
}

9
src/main/java/com/ccsens/yanyuan/bean/vo/FamilyVo.java

@ -93,4 +93,13 @@ public class FamilyVo {
private Integer sex;
}
@Data
@ApiModel("项目待审核的家属数-返回")
public static class WaitAuditNum {
@ApiModelProperty("训练人ID(项目ID)")
private Long traineeId;
@ApiModelProperty("待审核数量")
private Integer auditNum;
}
}

8
src/main/java/com/ccsens/yanyuan/mq/MentalTestReceive.java

@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@ -22,7 +23,7 @@ import java.util.List;
*/
@Slf4j
@Component
@RabbitListener(queues = YanYuanConstant.Mq.MENTAL_TEST_ALL)
//@RabbitListener(queues = YanYuanConstant.Mq.MENTAL_TEST_ALL)
public class MentalTestReceive {
@Resource
@ -30,8 +31,9 @@ public class MentalTestReceive {
@Resource
private AmqpTemplate amqpTemplate;
@RabbitHandler
public void process(String messageJson){
// @RabbitHandler
@Scheduled(cron = "00 00 00 * * ?")
public void process(){
Calendar instance = Calendar.getInstance();
instance = DateUtil.beginOfDay(instance);
instance.add(Calendar.DAY_OF_YEAR, -YanYuanConstant.MentalTest.PERIOD);

9
src/main/java/com/ccsens/yanyuan/persist/dao/FamilyDao.java

@ -1,5 +1,6 @@
package com.ccsens.yanyuan.persist.dao;
import com.ccsens.yanyuan.bean.dto.FamilyDto;
import com.ccsens.yanyuan.bean.vo.FamilyVo;
import com.ccsens.yanyuan.bean.vo.ZaritVo;
import com.ccsens.yanyuan.persist.mapper.UserFamilyMapper;
@ -40,4 +41,12 @@ public interface FamilyDao extends UserFamilyMapper {
* @return 使用者名字,家属最后一次zarit得分
*/
FamilyVo.NeedAuditNum queryOtherInfo(@Param("projectId") Long projectId,@Param("userId") Long userId);
/**
* 查询项目对应用户有权限审核的待审核家属数量
* @param param 项目集合
* @param userId 查询人
* @return 项目和待审核数
*/
List<FamilyVo.WaitAuditNum> queryProjectAuditNum(@Param("projects") List<FamilyDto.QueryProjectFamily> param, @Param("userId") Long userId);
}

5
src/main/java/com/ccsens/yanyuan/service/FamilyService.java

@ -171,5 +171,10 @@ public class FamilyService implements IFamilyService {
return member;
}
@Override
public List<FamilyVo.WaitAuditNum> queryProjectAuditNum(List<FamilyDto.QueryProjectFamily> param, Long userId) {
return familyDao.queryProjectAuditNum(param, userId);
}
}

8
src/main/java/com/ccsens/yanyuan/service/IFamilyService.java

@ -57,4 +57,12 @@ public interface IFamilyService {
* @return 是否是成员
*/
FamilyVo.Member isMember(FamilyDto.Member param, Long userId);
/**
* 查询项目对应的待审核家属数
* @param param 项目ID集合
* @param userId 操作者ID
* @return 项目+待审核家属数
*/
List<FamilyVo.WaitAuditNum> queryProjectAuditNum(List<FamilyDto.QueryProjectFamily> param, Long userId);
}

13
src/main/java/com/ccsens/yanyuan/service/MentalTestService.java

@ -89,6 +89,17 @@ public class MentalTestService implements IMentalTestService {
@Override
public Long generateMentalTest(Long keyUserId, String userId) {
DateTime today = DateUtil.beginOfDay(new Date());
// 判断用户今天有没有脑力测评,有则不重复生成
MentalTestExample todayMentalTestExample = new MentalTestExample();
todayMentalTestExample.createCriteria().andKeyUserIdEqualTo(keyUserId).andTestAtEqualTo(today);
todayMentalTestExample.setOrderByClause("key_id desc limit 1");
List<MentalTest> mentalTests = mentalTestDao.selectByExample(todayMentalTestExample);
log.info("已经有的脑力测评:{}", mentalTests);
if (CollectionUtil.isNotEmpty(mentalTests)) {
return mentalTests.get(0).getKeyId();
}
// 将未完成的设置为过时
MentalTestExample mentalTestExample = new MentalTestExample();
mentalTestExample.createCriteria().andKeyUserIdEqualTo(keyUserId).andFinishStatusEqualTo(YanYuanConstant.MentalTest.FINISH_STATUS_NO);
@ -101,7 +112,7 @@ public class MentalTestService implements IMentalTestService {
mentalTest.setKeyId(snowflake.nextId());
mentalTest.setKeyUserId(keyUserId);
mentalTest.setUserId(userId);
mentalTest.setTestAt(DateUtil.beginOfDay(new Date()));
mentalTest.setTestAt(today);
mentalTestDao.insertSelective(mentalTest);
// 随机获取题目ID
List<Long> numIds = evaluationNumDao.queryRandomIds(YanYuanConstant.Evaluation.TYPE_NLCP, YanYuanConstant.Evaluation.TYPE_NLCP_TOTAL);

4
src/main/resources/application.yml

@ -1,4 +1,4 @@
spring:
profiles:
active: prod
include: common, util-prod
active: test
include: common, util-test

21
src/main/resources/mapper_dao/FamilyDao.xml

@ -73,4 +73,25 @@
ORDER BY c.create_at DESC
LIMIT 1
</select>
<select id="queryProjectAuditNum" resultType="com.ccsens.yanyuan.bean.vo.FamilyVo$WaitAuditNum">
SELECT
r1.key_user_id AS traineeId,
count(*) AS auditNum
FROM
u_user_relation r1,
u_user_relation r2
WHERE
r1.key_user_id = r2.key_user_id
<foreach collection="projects" item="item" open="AND r1.key_user_id IN (" separator="," close=")">
#{item.projectId}
</foreach>
AND r1.user_id = #{userId}
AND r1.relation_type IN ( 0, 1 )
AND r2.user_id != #{userId}
AND r2.audit_status = 0
AND r1.rec_status = 0
AND r2.rec_status = 0
GROUP BY
r1.key_user_id
</select>
</mapper>

4
src/main/resources/mapper_dao/MentalTestDao.xml

@ -20,7 +20,7 @@
count(*)
FROM
u_user u
LEFT JOIN u_mental_test t ON u.id = t.user_id AND t.test_at &lt;= #{date} and t.finish_status = 0
LEFT JOIN u_mental_test t ON u.id = t.user_id AND t.test_at &gt; #{date} and t.finish_status = 1
where u.use_level = 1 and u.rec_status = 0 and t.id is null
</select>
<select id="queryUserIds" resultType="com.ccsens.yanyuan.bean.vo.TraineeVo$UserId">
@ -29,7 +29,7 @@
u.key_id as keyUserId
FROM
u_user u
LEFT JOIN u_mental_test t ON u.id = t.user_id AND t.test_at &lt;= #{date} and t.finish_status = 0
LEFT JOIN u_mental_test t ON u.id = t.user_id AND t.test_at &gt; #{date} and t.finish_status = 1
where u.use_level = 1 and u.rec_status = 0 and t.id is null
limit ${start}, ${size}
</select>

8
src/main/resources/mapper_dao/TrainContentDao.xml

@ -44,7 +44,7 @@
from t_train_content c
left join t_train_img ci on c.id = ci.content_id and ci.type = 0 and ci.rec_status = 0
left join t_train_content_detail d on c.id = d.content_id and d.rec_status = 0
left join t_train_img di on d.id = di.content_id and ci.type = 1 and di.rec_status = 0
left join t_train_img di on d.id = di.content_id and di.type = 1 and di.rec_status = 0
where c.id = #{contentId} and c.rec_status = 0
order by ci.sort, d.id, di.sort
</select>
@ -120,10 +120,10 @@
LEFT JOIN t_train_aid ta on c.aid_id = ta.id and ta.rec_status = 0
WHERE
<choose>
<when test="type==1">r.start_time &gt;= t1.start_time</when>
<otherwise>r.start_time &lt;= t1.start_time</otherwise>
<when test="type==1">r.start_time &gt;= t1.start_time AND r.id &gt; #{recordId}</when>
<otherwise>r.start_time &lt;= t1.start_time AND r.id &lt; #{recordId}</otherwise>
</choose>
AND r.id != #{recordId}
ORDER BY
<choose>
<when test="type==1">r.start_time, r.id</when>

Loading…
Cancel
Save