取消订单定时任务

pull/1/head
czc 2 years ago
parent 4dcaa6c71d
commit cd5f941072

@ -5,6 +5,7 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
*
@ -16,6 +17,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
scanBasePackages = {"com.ruoyi", "com.cyl"}
)
@EnableConfigurationProperties(WechatPayData.class)
@EnableScheduling
public class RuoYiApplication {
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");

@ -14,6 +14,7 @@ import com.ruoyi.RuoYiApplication;
import com.ruoyi.common.config.properties.SmsProperties;
import com.ruoyi.common.core.sms.AliyunSmsTemplate;
import com.ruoyi.common.core.sms.SmsTemplate;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -102,9 +103,9 @@ public class ServiceTest {
public void test6(){
PayNotifyMessageDTO messageDTO = new PayNotifyMessageDTO();
messageDTO.setPayTime(new Date());
messageDTO.setOutTradeNo(5364038883215361L);
messageDTO.setOutTradeNo(5365581195495425L);
messageDTO.setMemberId(22L);
// messageDTO.setTradeStatus(TradeStatusEnum.TRADE_SUCCESS.getStatus());
messageDTO.setTradeStatus(Transaction.TradeStateEnum.SUCCESS);
messageDTO.setTradeNo("");
ResponseEntity<String> stringResponseEntity = h5OrderService.payCallBack(messageDTO);
System.out.println(stringResponseEntity.getBody());

@ -0,0 +1,49 @@
package com.cyl.job;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cyl.h5.pojo.request.CancelOrderRequest;
import com.cyl.h5.service.H5OrderService;
import com.cyl.manager.oms.domain.Order;
import com.cyl.manager.oms.mapper.OrderMapper;
import com.cyl.manager.oms.service.OrderService;
import com.ruoyi.common.constant.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
@Component
@Slf4j
public class OrderJob {
@Autowired
private H5OrderService h5OrderService;
@Autowired
private OrderMapper orderMapper;
@Async
@Scheduled(cron = "20 20 10 * * ?")
public void cancelOrder(){
log.info("【取消订单任务开始】");
QueryWrapper<Order> qw = new QueryWrapper<>();
qw.eq("status", Constants.OrderStatus.NOTPAID);
qw.eq("aftersale_status", 1);
List<Order> orderList = orderMapper.selectList(qw);
List<Long> idList = orderList.stream()
.filter(order -> LocalDateTimeUtil.between(order.getCreateTime(), LocalDateTime.now()).toMinutes() >= 15)
.map(Order::getId)
.collect(Collectors.toList());
CancelOrderRequest request = new CancelOrderRequest();
request.setIdList(idList);
h5OrderService.orderBatchCancel(request, null);
log.info("【取消订单任务结束】");
}
}

@ -47,17 +47,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectOrderVo">
select id, member_id, member_username, total_amount, purchase_price, pay_amount, freight_amount, pay_type, status, aftersale_status, delivery_company, delivery_sn, auto_confirm_day, receiver_name, receiver_phone, receiver_post_code, receiver_province, receiver_city, receiver_district, receiver_province_id, receiver_city_id, receiver_district_id, receiver_detail_address, note, confirm_status, delete_status, payment_time, delivery_time, receive_time, create_by, create_time, update_by, update_time from oms_order
</sql>
<delete id="cancelBatch">
<update id="cancelBatch">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update oms_order
<set>
status=#{item.status},
update_by=#{item.updateBy},
update_time=#{item.updateTime}
</set>
set
status=#{item.status},
update_by=#{item.updateBy},
update_time=#{item.updateTime}
where id=#{item.id}
</foreach>
</delete>
</update>
<select id="selectByEntity" parameterType="Order" resultMap="OrderResult">
<include refid="selectOrderVo"/>

Loading…
Cancel
Save