diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index f9692af..3e4555a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -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"); diff --git a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java index 25dbe72..ddeb905 100644 --- a/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java +++ b/ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java @@ -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 stringResponseEntity = h5OrderService.payCallBack(messageDTO); System.out.println(stringResponseEntity.getBody()); diff --git a/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java b/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java new file mode 100644 index 0000000..c3fcfad --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java @@ -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 qw = new QueryWrapper<>(); + qw.eq("status", Constants.OrderStatus.NOTPAID); + qw.eq("aftersale_status", 1); + List orderList = orderMapper.selectList(qw); + List 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("【取消订单任务结束】"); + } + +} diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml index 055d864..43ed9e2 100644 --- a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml @@ -47,17 +47,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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 - + update oms_order - - status=#{item.status}, - update_by=#{item.updateBy}, - update_time=#{item.updateTime} - + set + status=#{item.status}, + update_by=#{item.updateBy}, + update_time=#{item.updateTime} where id=#{item.id} - +