提交 c75a038e authored 作者: 杨凯's avatar 杨凯

feat:家庭医生初始化

上级 4edbc3cd
package com.ebaiyihui.family.doctor.server.task;
import com.alibaba.fastjson.JSONObject;
import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.dto.HealthInfoDTO;
import com.ebaiyihui.family.doctor.common.dto.SendImMsgDTO;
import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants;
import com.ebaiyihui.family.doctor.server.common.constants.ImConstants;
import com.ebaiyihui.family.doctor.server.common.enums.MsgTempTypeEnum;
import com.ebaiyihui.family.doctor.server.common.enums.StatusEnum;
import com.ebaiyihui.family.doctor.server.entity.MobileBenefitPackageEntity;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.family.doctor.server.mapper.MobileBenefitPackageMapper;
import com.ebaiyihui.family.doctor.server.service.ImMsgTemplateService;
import com.ebaiyihui.family.doctor.server.service.PatientSignService;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ebaiyihui.family.doctor.server.common.enums.WhetherEnum;
import com.ebaiyihui.family.doctor.server.entity.ScheduleRecordEntity;
import com.ebaiyihui.family.doctor.server.mapper.ScheduleRecordMapper;
import com.ebaiyihui.family.doctor.server.util.DateUtils;
import com.ebaiyihui.family.doctor.server.util.ThirdOrderPushUtil;
import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.imforward.client.vo.IMQueryMsgReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginRspVO;
import com.ebaiyihui.imforward.client.vo.IMSingleMsgResultVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName: TaskSchedule
......@@ -38,168 +29,137 @@ import java.util.List;
@Slf4j
public class ScheduleTask {
@Autowired
private ImMsgTemplateService imMsgTemplateService;
@Autowired
private PatientSignService patientSignSevice;
@Autowired
private MobileBenefitPackageMapper mobileBenefitPackageMapper;
private static final String MONDAY = "星期一";
@Autowired
private ThirdOrderPushUtil thirdOrderPushUtil;
private ScheduleRecordMapper scheduleRecordMapper;
// @Scheduled(cron = "0 0/2 * * * ?")
@Scheduled(cron = "0 0 0 * * ?")
public void regularTimeExport() {
/*
* 某天
* 某业务
* 某医生
* 某科室 下的开通循环排班的数据
*
* 此条件下 第5周 开通排班 未停诊 的数据
*
* 对比这两个list 去掉重复 新增(不停诊 日期为第5周的当天)
*
* 定时任务时间修改
*
*/
String currentDateSimpleToString = DateUtils.getCurrentDateSimpleToString();
log.info("当前时间{}", JSON.toJSONString(currentDateSimpleToString));
String weekChinese = DateUtils.getWeekChinese(currentDateSimpleToString);
log.info("当前时间是{}", JSON.toJSONString(weekChinese));
if (!MONDAY.equals(weekChinese)) {
return;
}
// @Scheduled(cron = "0 0 10 * * ?")
public void healthRecordWhetherUpdate() {
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity());
if (!patientSignEntities.isEmpty()) {
for (PatientSignEntity ps : patientSignEntities) {
HealthInfoDTO healthInfoDTO = new HealthInfoDTO();
healthInfoDTO.setPhone(ps.getPatientPhone());
// 查询用户健康档案30天内是否有更新
String result = thirdOrderPushUtil.getHealthRecordWhetherUpdate(healthInfoDTO);
Result<Boolean> res = JSONObject.parseObject(result, Result.class);
Boolean flag = res.getData();
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO();
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE);
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE);
sendImMsgDTO.setAdmId(ps.getAdmId());
if (!flag) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_PUSH_HEAL_REC.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、签约完成定时任务第10天,主动触发 2、定时任务之后每隔15天,主动触发
Date curDate = new Date();
int difDay = DateUtils.daysBetween(ps.getCreateTime(), curDate);
int afterFifteenDay = DateUtils.daysBetween(ps.getCreateTime(), curDate);
if (10 == difDay || afterFifteenDay % 15 == 0) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT__SIG_SUC.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、当用户有触发过‘报告异常’问诊 2、定时任务触发20天后主动触发
if (20 == difDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_REP_ANO.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、当用户与医生7天未进行沟通 2、判断后主动触发
// {"appCode":"EHOS_PATIENT","appointmentId":["9ad0b140bd1b4b86b1aa68f59c9dbf9a"],"businessCode":"jtys","msgType":"1","page":0,"pageSize":999,"sortOrder":"ASC","userId":"18170905967"}
IMQueryMsgReqVO imQueryMsgReqVO = new IMQueryMsgReqVO();
imQueryMsgReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM);
imQueryMsgReqVO.setBusinessCode(ImConstants.IM_QUERY_ACCOUNT_CODE);
imQueryMsgReqVO.setMsgType("1");
imQueryMsgReqVO.setPageSize(10);
imQueryMsgReqVO.setSortOrder("DESC");
List<String> appointmentIds = new ArrayList<>();
appointmentIds.add(ps.getAdmId());
imQueryMsgReqVO.setAppointmentId(appointmentIds);
imQueryMsgReqVO.setUserId(ps.getPatientUserId());
String sendTimeStr = "2023-12-01 00:00:00";
try {
BaseResponse<List<IMSingleMsgResultVO>> msgContent = patientSignSevice.getAllMsgContent(imQueryMsgReqVO);
if ("1".equals(msgContent.getCode())) {
List<IMSingleMsgResultVO> imSingleMsgResultVOS = msgContent.getData();
IMQueryUserLoginReqVO imQueryUserLoginReqVO = new IMQueryUserLoginReqVO();
imQueryUserLoginReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM);
imQueryUserLoginReqVO.setUserId(ps.getPatientUserId());
BaseResponse<IMQueryUserLoginRspVO> sdkLogin = patientSignSevice.querySdkLogin(imQueryUserLoginReqVO);
if ("1".equals(sdkLogin.getCode())) {
IMQueryUserLoginRspVO imQueryUserLoginRspVO = sdkLogin.getData();
String sdkAccount = imQueryUserLoginRspVO.getSdkAccount();
for (IMSingleMsgResultVO imSingleMsgResultVO : imSingleMsgResultVOS) {
if (imSingleMsgResultVO.getSender().equals(sdkAccount)) {
sendTimeStr = imSingleMsgResultVO.getSendTime();
//周末
String oneDayForWeekLast = DateUtils.getOneDayForWeekLast(currentDateSimpleToString);
Date weekDateFirst = DateUtils.strToDateNoTry(currentDateSimpleToString);
Date weekDateLast = DateUtils.strToDateNoTry(oneDayForWeekLast);
List<String> dateRange = DateUtils.getDateRange(weekDateFirst, weekDateLast);
log.info("一周的日期{}", JSON.toJSONString(dateRange));
for (String schDate : dateRange) {
QueryWrapper<ScheduleRecordEntity> schWapper = new QueryWrapper<>();
ScheduleRecordEntity scheduleRecordEntity = new ScheduleRecordEntity();
scheduleRecordEntity.setIsCycleSchedule(WhetherEnum.ALLOW.getValue());
scheduleRecordEntity.setScheduleDate(DateUtils.strToDateNoTry(schDate));
schWapper.setEntity(scheduleRecordEntity);
log.info("某天开通循环排班列表入参{}", JSON.toJSONString(schWapper));
List<ScheduleRecordEntity> list = scheduleRecordMapper.selectList(schWapper);
log.info("某天开通循环排班列表出参{}", JSON.toJSONString(list));
if (CollectionUtils.isEmpty(list)) {
continue;
}
//根据业务分组
Map<Integer, List<ScheduleRecordEntity>> servTypeCollect =
list.stream().collect(Collectors.groupingBy(ScheduleRecordEntity::getServType));
for (Integer servType : servTypeCollect.keySet()) {
List<ScheduleRecordEntity> servTypeList = servTypeCollect.get(servType);
//根据医生分组
Map<String, List<ScheduleRecordEntity>> doctorCollect =
servTypeList.stream().collect(Collectors.groupingBy(ScheduleRecordEntity::getDoctorId));
for (String docId : doctorCollect.keySet()) {
List<ScheduleRecordEntity> scheduleDeptList = doctorCollect.get(docId);
//根据科室分组
Map<String, List<ScheduleRecordEntity>> deptCollect =
scheduleDeptList.stream().collect(Collectors.groupingBy(ScheduleRecordEntity::getDeptId));
for (String deptId : deptCollect.keySet()) {
//某天某医生某科室的所有排班
List<ScheduleRecordEntity> rangeList = deptCollect.get(deptId);
QueryWrapper<ScheduleRecordEntity> nextWrapper = new QueryWrapper<>();
ScheduleRecordEntity nextSchedule = new ScheduleRecordEntity();
nextSchedule.setStatus(WhetherEnum.ALLOW.getValue());
nextSchedule.setDoctorId(docId);
nextSchedule.setDeptId(deptId);
nextSchedule.setServType(servType);
nextSchedule.setScheduleDate(DateUtils.getNextWeek(schDate, 3));
nextWrapper.setEntity(nextSchedule);
log.info("第5周当天排班入参{}", JSON.toJSONString(schWapper));
List<ScheduleRecordEntity> nextScheList = scheduleRecordMapper.selectList(nextWrapper);
log.info("第5周当天排班出参{}", JSON.toJSONString(nextScheList));
if (CollectionUtils.isEmpty(nextScheList)) {
rangeList.stream().forEach(rangeVo -> {
ScheduleRecordEntity schedule = new ScheduleRecordEntity();
BeanUtils.copyProperties(rangeVo, schedule);
schedule.setStatus(WhetherEnum.ALLOW.getValue());
schedule.setScheduleDate(DateUtils.getNextWeek(schDate, 3));
// schedule.setAvailableCount(rangeVo.getTotalCount());
log.info("排班新增入参:" + schedule.toString());
scheduleRecordMapper.insert(schedule);
});
continue;
}
ArrayList<ScheduleRecordEntity> rangeSch = new ArrayList<>();
//如果第5周有排班 和当前对比 去除重复的时段
for (ScheduleRecordEntity rangeReq : rangeList) {
Boolean flag = false;
for (ScheduleRecordEntity rangeRes : nextScheList) {
Boolean aBoolean = DateUtils.rangeCompare(DateUtils.strToDateNoTryForMinute(rangeReq.getStartTime()),
DateUtils.strToDateNoTryForMinute(rangeReq.getEndTime()),
DateUtils.strToDateNoTryForMinute(rangeRes.getStartTime()),
DateUtils.strToDateNoTryForMinute(rangeRes.getEndTime()));
if (aBoolean) {
flag = true;
break;
}
}
if (flag) {
continue;
} else {
rangeSch.add(rangeReq);
}
}
Date sendTime = DateUtils.parseDate(sendTimeStr, DateUtils.FULL_FORMAT);
int difSendDay = DateUtils.daysBetween(sendTime, curDate);
if (7 == difSendDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_UN_CON.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
}
} catch (Exception e) {
log.error("获取发送消息异常", e);
}
}
}
}
// @Scheduled(cron = "0 0 20 * * ?")
public void holidayPush() {
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity());
try {
if (!patientSignEntities.isEmpty()) {
for (PatientSignEntity ps : patientSignEntities) {
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO();
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE);
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE);
sendImMsgDTO.setAdmId(ps.getAdmId());
Date curDate = new Date();
Date qmBeforeDay = DateUtils.getQingMingBeforeDay(curDate);
Date curDay = DateUtils.parseDate(DateUtils.getFormatDateString(curDate, DateUtils.SIMPLE_FORMAT), DateUtils.SIMPLE_FORMAT);
if (qmBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TSD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date laborBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (laborBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_LD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date duanWuBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (duanWuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TDBF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date zhongQiuBeforeDay = DateUtils.getZhongQiuBeforeDay(curDate);
if (zhongQiuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date guoQingBeforeDay = DateUtils.getGuoQingBeforeDay(curDate);
if (guoQingBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
if (CollectionUtils.isEmpty(rangeSch)) {
continue;
}
log.info("rangeList{}", JSON.toJSONString(rangeSch));
rangeSch.stream().forEach(rangeVo -> {
ScheduleRecordEntity schedule = new ScheduleRecordEntity();
BeanUtils.copyProperties(rangeVo, schedule);
schedule.setStatus(WhetherEnum.ALLOW.getValue());
schedule.setScheduleDate(DateUtils.getNextWeek(schDate, 3));
// schedule.setAvailableCount(rangeVo.getTotalCount());
log.info("排班新增入参:" + schedule.toString());
scheduleRecordMapper.insert(schedule);
});
continue;
}
}
}
} catch (Exception e) {
log.error("节日日期转换异常", e);
}
}
// @Scheduled(cron = "0 0 1 * * ?")
public void orderInvalidation() {
List<MobileBenefitPackageEntity> mobileBenefitPackageEntities = mobileBenefitPackageMapper.queryMaxOneList();
try {
if (!mobileBenefitPackageEntities.isEmpty()) {
for (MobileBenefitPackageEntity mbp : mobileBenefitPackageEntities) {
Date curTime = new Date();
Date endTime = DateUtils.parseDate(mbp.getBenefitsEndTime(), DateUtils.FULL_FORMAT);
PatientSignEntity patientSignEntity = patientSignSevice.getOneByPhone(mbp.getPhone());
mbp.setVersion(1);
if (endTime.after(curTime)) {
patientSignEntity.setPackageOrderId(mbp.getActivateOrderId());
patientSignEntity.setSignEndTime(endTime);
} else {
patientSignEntity.setStatus(StatusEnum.FINISH_APPLY.getValue());
}
patientSignSevice.updateById(patientSignEntity);
mobileBenefitPackageMapper.updateVersion(mbp);
}
}
} catch (Exception e) {
log.error("日期转换异常", e);
}
}
}
package com.ebaiyihui.family.doctor.server.task;
import com.alibaba.fastjson.JSONObject;
import com.ebaiyihui.family.doctor.common.bo.Result;
import com.ebaiyihui.family.doctor.common.dto.HealthInfoDTO;
import com.ebaiyihui.family.doctor.common.dto.SendImMsgDTO;
import com.ebaiyihui.family.doctor.server.common.constants.CommonConstants;
import com.ebaiyihui.family.doctor.server.common.constants.ImConstants;
import com.ebaiyihui.family.doctor.server.common.enums.MsgTempTypeEnum;
import com.ebaiyihui.family.doctor.server.common.enums.StatusEnum;
import com.ebaiyihui.family.doctor.server.entity.MobileBenefitPackageEntity;
import com.ebaiyihui.family.doctor.server.entity.PatientSignEntity;
import com.ebaiyihui.family.doctor.server.mapper.MobileBenefitPackageMapper;
import com.ebaiyihui.family.doctor.server.service.ImMsgTemplateService;
import com.ebaiyihui.family.doctor.server.service.PatientSignService;
import com.ebaiyihui.family.doctor.server.util.DateUtils;
import com.ebaiyihui.family.doctor.server.util.ThirdOrderPushUtil;
import com.ebaiyihui.framework.response.BaseResponse;
import com.ebaiyihui.imforward.client.vo.IMQueryMsgReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginReqVO;
import com.ebaiyihui.imforward.client.vo.IMQueryUserLoginRspVO;
import com.ebaiyihui.imforward.client.vo.IMSingleMsgResultVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @ClassName: SignedTask
* @Author:yanliang
* @Date:2024/3/22 10:20
* @Description
*/
@Component
@Slf4j
public class SignedTask {
@Autowired
private ImMsgTemplateService imMsgTemplateService;
@Autowired
private PatientSignService patientSignSevice;
@Autowired
private MobileBenefitPackageMapper mobileBenefitPackageMapper;
@Autowired
private ThirdOrderPushUtil thirdOrderPushUtil;
// @Scheduled(cron = "0 0 10 * * ?")
public void healthRecordWhetherUpdate() {
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity());
if (!patientSignEntities.isEmpty()) {
for (PatientSignEntity ps : patientSignEntities) {
HealthInfoDTO healthInfoDTO = new HealthInfoDTO();
healthInfoDTO.setPhone(ps.getPatientPhone());
// 查询用户健康档案30天内是否有更新
String result = thirdOrderPushUtil.getHealthRecordWhetherUpdate(healthInfoDTO);
Result<Boolean> res = JSONObject.parseObject(result, Result.class);
Boolean flag = res.getData();
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO();
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE);
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE);
sendImMsgDTO.setAdmId(ps.getAdmId());
if (!flag) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_PUSH_HEAL_REC.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、签约完成定时任务第10天,主动触发 2、定时任务之后每隔15天,主动触发
Date curDate = new Date();
int difDay = DateUtils.daysBetween(ps.getCreateTime(), curDate);
int afterFifteenDay = DateUtils.daysBetween(ps.getCreateTime(), curDate);
if (10 == difDay || afterFifteenDay % 15 == 0) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT__SIG_SUC.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、当用户有触发过‘报告异常’问诊 2、定时任务触发20天后主动触发
if (20 == difDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_REP_ANO.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
// 1、当用户与医生7天未进行沟通 2、判断后主动触发
// {"appCode":"EHOS_PATIENT","appointmentId":["9ad0b140bd1b4b86b1aa68f59c9dbf9a"],"businessCode":"jtys","msgType":"1","page":0,"pageSize":999,"sortOrder":"ASC","userId":"18170905967"}
IMQueryMsgReqVO imQueryMsgReqVO = new IMQueryMsgReqVO();
imQueryMsgReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM);
imQueryMsgReqVO.setBusinessCode(ImConstants.IM_QUERY_ACCOUNT_CODE);
imQueryMsgReqVO.setMsgType("1");
imQueryMsgReqVO.setPageSize(10);
imQueryMsgReqVO.setSortOrder("DESC");
List<String> appointmentIds = new ArrayList<>();
appointmentIds.add(ps.getAdmId());
imQueryMsgReqVO.setAppointmentId(appointmentIds);
imQueryMsgReqVO.setUserId(ps.getPatientUserId());
String sendTimeStr = "2023-12-01 00:00:00";
try {
BaseResponse<List<IMSingleMsgResultVO>> msgContent = patientSignSevice.getAllMsgContent(imQueryMsgReqVO);
if ("1".equals(msgContent.getCode())) {
List<IMSingleMsgResultVO> imSingleMsgResultVOS = msgContent.getData();
IMQueryUserLoginReqVO imQueryUserLoginReqVO = new IMQueryUserLoginReqVO();
imQueryUserLoginReqVO.setAppCode(ImConstants.IM_PAT_ACCOUNT_NUM);
imQueryUserLoginReqVO.setUserId(ps.getPatientUserId());
BaseResponse<IMQueryUserLoginRspVO> sdkLogin = patientSignSevice.querySdkLogin(imQueryUserLoginReqVO);
if ("1".equals(sdkLogin.getCode())) {
IMQueryUserLoginRspVO imQueryUserLoginRspVO = sdkLogin.getData();
String sdkAccount = imQueryUserLoginRspVO.getSdkAccount();
for (IMSingleMsgResultVO imSingleMsgResultVO : imSingleMsgResultVOS) {
if (imSingleMsgResultVO.getSender().equals(sdkAccount)) {
sendTimeStr = imSingleMsgResultVO.getSendTime();
break;
}
}
}
Date sendTime = DateUtils.parseDate(sendTimeStr, DateUtils.FULL_FORMAT);
int difSendDay = DateUtils.daysBetween(sendTime, curDate);
if (7 == difSendDay) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_UN_CON.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
}
} catch (Exception e) {
log.error("获取发送消息异常", e);
}
}
}
}
// @Scheduled(cron = "0 0 20 * * ?")
public void holidayPush() {
List<PatientSignEntity> patientSignEntities = patientSignSevice.selectList(new PatientSignEntity());
try {
if (!patientSignEntities.isEmpty()) {
for (PatientSignEntity ps : patientSignEntities) {
SendImMsgDTO sendImMsgDTO = new SendImMsgDTO();
sendImMsgDTO.setAppCode(CommonConstants.APP_CODE);
sendImMsgDTO.setOrganId(CommonConstants.ORGAN_CODE);
sendImMsgDTO.setAdmId(ps.getAdmId());
Date curDate = new Date();
Date qmBeforeDay = DateUtils.getQingMingBeforeDay(curDate);
Date curDay = DateUtils.parseDate(DateUtils.getFormatDateString(curDate, DateUtils.SIMPLE_FORMAT), DateUtils.SIMPLE_FORMAT);
if (qmBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TSD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date laborBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (laborBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_LD.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date duanWuBeforeDay = DateUtils.getLaborBeforeDay(curDate);
if (duanWuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_TDBF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date zhongQiuBeforeDay = DateUtils.getZhongQiuBeforeDay(curDate);
if (zhongQiuBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
Date guoQingBeforeDay = DateUtils.getGuoQingBeforeDay(curDate);
if (guoQingBeforeDay.equals(curDay)) {
sendImMsgDTO.setType(MsgTempTypeEnum.ACT_FU_MAF.getValue());
imMsgTemplateService.sendImMsg(sendImMsgDTO);
}
}
}
} catch (Exception e) {
log.error("节日日期转换异常", e);
}
}
// @Scheduled(cron = "0 0 1 * * ?")
public void orderInvalidation() {
List<MobileBenefitPackageEntity> mobileBenefitPackageEntities = mobileBenefitPackageMapper.queryMaxOneList();
try {
if (!mobileBenefitPackageEntities.isEmpty()) {
for (MobileBenefitPackageEntity mbp : mobileBenefitPackageEntities) {
Date curTime = new Date();
Date endTime = DateUtils.parseDate(mbp.getBenefitsEndTime(), DateUtils.FULL_FORMAT);
PatientSignEntity patientSignEntity = patientSignSevice.getOneByPhone(mbp.getPhone());
mbp.setVersion(1);
if (endTime.after(curTime)) {
patientSignEntity.setPackageOrderId(mbp.getActivateOrderId());
patientSignEntity.setSignEndTime(endTime);
} else {
patientSignEntity.setStatus(StatusEnum.FINISH_APPLY.getValue());
}
patientSignSevice.updateById(patientSignEntity);
mobileBenefitPackageMapper.updateVersion(mbp);
}
}
} catch (Exception e) {
log.error("日期转换异常", e);
}
}
}
......@@ -8,9 +8,9 @@
INSERT INTO mobile_benefit_package (
<if test="productId != '' and productId != null">productId,</if>
<if test="userId != '' and userId != null">userId,</if>
<if test="activateOrderId != '' and activateOrderId != null">orderId,</if>
<if test="activateOrderId != '' and activateOrderId != null">benefitOrderId,</if>
<if test="timeLimit != 0 and timeLimit != null">timeLimit,</if>
<if test="orderId != '' and orderId != null">benefitOrderId,</if>
<if test="orderId != '' and orderId != null">orderId,</if>
<if test="benefitsStartTime != '' and benefitsStartTime != null">benefitsStartTime,</if>
<if test="benefitsEndTime != '' and benefitsEndTime != null">benefitsEndTime,</if>
<if test="isRenew != '' and isRenew != null">isRenew,</if>
......@@ -58,8 +58,7 @@
FROM
mobile_benefit_package
WHERE
phone = #{mobile} and orderId = #{activateOrderId}
and NOW() BETWEEN STR_TO_DATE(benefitsStartTime, '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE(benefitsEndTime, '%Y-%m-%d %H:%i:%s')
phone = #{mobile} and activateOrderId = #{activateOrderId}
ORDER BY
x_create_time DESC
LIMIT 0,1
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论