fixbug 批处理未执行 & fix 误提交微信发送预定消息

This commit is contained in:
2023-12-15 11:26:15 +08:00
parent 1a66c5df1b
commit 80bc31a5a5
9 changed files with 81 additions and 28 deletions

View File

@@ -0,0 +1,16 @@
package com.ydd.oms.config.spring;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import java.util.concurrent.Executors;
@Configuration
public class ScheduleConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
//当然了这里设置的线程池是corePoolSize也是很关键了自己根据业务需求设定
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(6));
}
}

View File

@@ -29,36 +29,21 @@ public class BarcodeTimeOrderTask {
@Resource
BarcodeOrderTimeMapper barcodeOrderTimeMapper;
@Resource
MemberEnterStatusMapper memberEnterStatusMapper;
@Scheduled(cron = "0 0/5 * * * ?")
@Transactional
public void execute(){
logger.error("执行BarcodeTimeOrderTask.execute");
// 查询用户已经过期的按次入场订单
List<BarcodeOrderTime> barcodeOrderTimes = barcodeOrderTimeMapper.endOrderList(new Date());
if (barcodeOrderTimes != null && barcodeOrderTimes.size() > 0){
Date date = new Date();
for (BarcodeOrderTime barcodeOrderTime : barcodeOrderTimes) {
logger.info("用户:" + barcodeOrderTime.getMemberId() + ",在场馆" + barcodeOrderTime.getVenueId() + "已到期");
barcodeOrderTime.setStatus(BarCodeStatusEnum.USED.getValue());
barcodeOrderTime.setModifiedTime(date);
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrderTime);
}
}
}
@Scheduled(cron = "0 0 0 * * ?")
@Transactional
public void clearMember(){
// 清场,将所有没有出场记录的用户、都设置为场外
List<MemberEnterStatus> allNeedClear = memberEnterStatusMapper.findAllNeedClear();
if (allNeedClear != null && allNeedClear.size() > 0) {
logger.info("" + allNeedClear.size() + "的人还在场内!!!");
for (MemberEnterStatus memberEnterStatus : allNeedClear) {
memberEnterStatus.setStatus(StayEnum.OUT.getValue());
logger.info("用户:" + memberEnterStatus.getMemberId() + ",在场馆" + memberEnterStatus.getVenueId() + "还没出来");
memberEnterStatusMapper.updateByPrimaryKey(memberEnterStatus);
}
}
}
}

View File

@@ -0,0 +1,45 @@
package com.ydd.oms.task;
import com.enums.StayEnum;
import com.sv.entity.MemberEnterStatus;
import com.sv.mapper.MemberEnterStatusMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* Controller - 修改用户会员卡
*
* @author limqsh
* @since 2023-12-06
*/
@Component
public class ClearPersonTask {
private final Logger logger = LoggerFactory.getLogger(ClearPersonTask.class);
@Resource
MemberEnterStatusMapper memberEnterStatusMapper;
@Scheduled(cron = "0 0 1 * * ?")
public void clearMember(){
// 清场,将所有没有出场记录的用户、都设置为场外
List<MemberEnterStatus> allNeedClear = memberEnterStatusMapper.findAllNeedClear();
if (allNeedClear != null && allNeedClear.size() > 0) {
logger.info("" + allNeedClear.size() + "的人还在场内!!!");
Date date = new Date();
for (MemberEnterStatus memberEnterStatus : allNeedClear) {
memberEnterStatus.setStatus(StayEnum.OUT.getValue());
memberEnterStatus.setModifiedTime(date);
logger.info("用户:" + memberEnterStatus.getMemberId() + ",在场馆" + memberEnterStatus.getVenueId() + "还没出来");
memberEnterStatusMapper.updateByPrimaryKey(memberEnterStatus);
}
}
}
}

View File

@@ -10,6 +10,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
@@ -40,8 +41,9 @@ public class CopyLessonTask {
/**
* 每周一九点
*/
@Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 0/1 * * * ?")
public void execute(){
logger.error("执行CopyLessonTask.execute");
LocalTime time = LocalTime.now();
LocalDate date = LocalDate.now();
logger.info(time.toString());

View File

@@ -0,0 +1,52 @@
package com.ydd.oms.task;
import com.sv.entity.MemberCard;
import com.sv.service.api.MemberCardService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* Controller - 修改用户会员卡
*
* @author lihong
* @since 2018-08-25
*/
@Component
public class MemberCardUpdate {
private final Logger logger = LoggerFactory.getLogger(MemberCardUpdate.class);
@Resource
private MemberCardService memberCardService;
// 每天执行一次
@Scheduled(cron = "0 0 0 * * ?")
public void execute(){
logger.error("MemberCardUpdate.execute");
// 查询用户已过期的会员卡
List<MemberCard> cards = memberCardService.findAllCard();
if (cards != null && cards.size() > 0){
//修改过期的会员卡为未激活
memberCardService.updateStatus(cards,0);
// 查询出用户顺延的会员卡,正好是今日
List<MemberCard> memberCards = memberCardService.findAllMemberCard(cards);
//修改用户默认会员卡
if (memberCards!= null && memberCards.size() > 0){
for (MemberCard memberCard : memberCards){
MemberCard mem = memberCardService.findMemberCardByVenue(memberCard.getMemberId(),memberCard.getVenueId(),memberCard.getVeneuType());
if (mem != null){
mem.setStatus(1);
memberCardService.update(mem);
}
}
}
}
}
}

View File

@@ -0,0 +1,83 @@
package com.ydd.oms.task;
import com.sv.dto.api.MemberLessonTicketDTO;
import com.sv.entity.MemberLessonTicket;
import com.sv.service.api.MemberLessonTicketService;
import com.sv.service.api.VenueLessonService;
import com.sv.service.api.VenueLessonTicketService;
import com.sv.service.api.util.DateUtilCard;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
/**
* Controller - 检查预约课程,是否超时
*
* @author lihong
* @since 2018-08-11
*/
@Component
public class MemberLessonTickerOrderTask {
private final Logger logger = LoggerFactory.getLogger(MemberLessonTickerOrderTask.class);
@Resource
private MemberLessonTicketService memberLessonTicketService;
@Resource
private VenueLessonTicketService venueLessonTicketService;
@Resource
private VenueLessonService venueLessonService;
/**
* 每30秒执行一次订单查看
*/
@Scheduled(fixedDelay = 30000)
public void execute(){
logger.error("MemberLessonTickerOrderTask.execute");
// 查询所有未支付订单
List<MemberLessonTicket> memberLessonTickets = memberLessonTicketService.findOrders();
if (memberLessonTickets.size() > 0){
logger.info("开始取消课程");
List<MemberLessonTicket> lessonIds = memberLessonTicketService.findOrdersLessonId();
if (lessonIds.size() > 0 ){
for (MemberLessonTicket lessonId : lessonIds){
Integer num = memberLessonTicketService.lessonNum(lessonId.getLessonId());
venueLessonService.updateSaleNum(num,lessonId.getLessonId());
}
}
memberLessonTicketService.updateMemberLessonTicketStatus(memberLessonTickets);
venueLessonTicketService.updateTicketStatus(memberLessonTickets);
}
updateExpired();
}
/**
* 修改课程结束,还未签到的状态
*/
public void updateExpired(){
// 判断签到是否过期
List<MemberLessonTicketDTO> ticketDTOS = memberLessonTicketService.findAllExpired();
for (MemberLessonTicketDTO ticketDTO : ticketDTOS) {
//判断日期是否在今天之前,过期,直接改状态
long nowDate = DateUtilCard.getTime(new Date()).getTime();
long lessonDate = ticketDTO.getDate().getTime();
LocalTime now = DateUtilCard.nowTime();
LocalTime lessTIme = ticketDTO.getEndTime();
boolean compare = now.isAfter(lessTIme);
if (nowDate > lessonDate) {
memberLessonTicketService.updateMemberStatus(ticketDTO);
} else if (compare && nowDate == lessonDate) {
//日期等于今天,判断上课时间是否结束,是,改状态
memberLessonTicketService.updateMemberStatus(ticketDTO);
}
}
}
}

View File

@@ -15,6 +15,9 @@ public class BarcodeTimeTaskTest {
@Resource
BarcodeTimeOrderTask barcodeTimeOrderTask;
@Resource
ClearPersonTask clearPersonTask;
@Test
public void testTask(){
barcodeTimeOrderTask.execute();
@@ -22,7 +25,7 @@ public class BarcodeTimeTaskTest {
@Test
public void testClearTask(){
barcodeTimeOrderTask.clearMember();
clearPersonTask.clearMember();
}
}