1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.usky.dxtop.service.job;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.usky.dxtop.model.Charge;
- import com.usky.dxtop.model.MsgLog;
- import com.usky.dxtop.model.Order;
- import com.usky.dxtop.service.ChargeService;
- import com.usky.dxtop.service.MsgLogService;
- import com.usky.dxtop.service.OrderService;
- import com.usky.dxtop.service.emun.OrderStatus;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import java.util.List;
- import java.util.TreeMap;
- /**
- * @author yq
- * @date 2021/9/16 9:31
- */
- @Slf4j
- @Component
- public class CardJob {
- private TreeMap<String,Integer> treeMap = new TreeMap<>();
- @Autowired
- private OrderService orderService;
- @Autowired
- private ChargeService chargeService;
- @Autowired
- private MsgLogService msgLogService;
- @Scheduled(cron = "0 */1 * * * ?")
- public void execute(){
- LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery();
- queryWrapper
- .eq(Order::getOrderFlag,OrderStatus.SUCCESS.getCode());
- List<Order> list = orderService.list(queryWrapper);
- for (Order order:list) {
- try {
- LambdaQueryWrapper<MsgLog> msgLogLambdaQueryWrapper = Wrappers.lambdaQuery();
- msgLogLambdaQueryWrapper.eq(MsgLog::getBusinessId,order.getId());
- List<MsgLog> msgLogs = msgLogService.list(msgLogLambdaQueryWrapper);
- Charge one = chargeService.one(msgLogs.get(0).getId());
- if (null == one){
- cartError(order);
- }else {
- order.setOrderFlag(OrderStatus.COMPLETE.getCode());
- orderService.updateById(order);
- }
- }catch (Exception e){
- log.error("---orderJob---异常"+e.getMessage());
- }
- }
- log.info("---orderJob---处理完成");
- }
- public void cartError(Order order){
- String orderNumber = order.getOrderNumber();
- if (treeMap.containsKey(orderNumber)){
- Integer count = treeMap.get(orderNumber);
- if (count >= 10){
- order.setOrderFlag(OrderStatus.PAYMENT_ERROR_DEBIT.getCode());
- orderService.updateById(order);
- }else {
- treeMap.put(orderNumber,count+1);
- }
- }else {
- treeMap.put(orderNumber,1);
- }
- }
- }
|