CardJob.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.usky.dxtop.service.job;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.usky.dxtop.model.Charge;
  5. import com.usky.dxtop.model.MsgLog;
  6. import com.usky.dxtop.model.Order;
  7. import com.usky.dxtop.service.ChargeService;
  8. import com.usky.dxtop.service.MsgLogService;
  9. import com.usky.dxtop.service.OrderService;
  10. import com.usky.dxtop.service.emun.OrderStatus;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.scheduling.annotation.Scheduled;
  14. import org.springframework.stereotype.Component;
  15. import java.util.List;
  16. import java.util.TreeMap;
  17. /**
  18. * @author yq
  19. * @date 2021/9/16 9:31
  20. */
  21. @Slf4j
  22. @Component
  23. public class CardJob {
  24. private TreeMap<String,Integer> treeMap = new TreeMap<>();
  25. @Autowired
  26. private OrderService orderService;
  27. @Autowired
  28. private ChargeService chargeService;
  29. @Autowired
  30. private MsgLogService msgLogService;
  31. @Scheduled(cron = "0 */1 * * * ?")
  32. public void execute(){
  33. LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery();
  34. queryWrapper
  35. .eq(Order::getOrderFlag,OrderStatus.SUCCESS.getCode());
  36. List<Order> list = orderService.list(queryWrapper);
  37. for (Order order:list) {
  38. try {
  39. LambdaQueryWrapper<MsgLog> msgLogLambdaQueryWrapper = Wrappers.lambdaQuery();
  40. msgLogLambdaQueryWrapper.eq(MsgLog::getBusinessId,order.getId());
  41. List<MsgLog> msgLogs = msgLogService.list(msgLogLambdaQueryWrapper);
  42. Charge one = chargeService.one(msgLogs.get(0).getId());
  43. if (null == one){
  44. cartError(order);
  45. }else {
  46. order.setOrderFlag(OrderStatus.COMPLETE.getCode());
  47. orderService.updateById(order);
  48. }
  49. }catch (Exception e){
  50. log.error("---orderJob---异常"+e.getMessage());
  51. }
  52. }
  53. log.info("---orderJob---处理完成");
  54. }
  55. public void cartError(Order order){
  56. String orderNumber = order.getOrderNumber();
  57. if (treeMap.containsKey(orderNumber)){
  58. Integer count = treeMap.get(orderNumber);
  59. if (count >= 10){
  60. order.setOrderFlag(OrderStatus.PAYMENT_ERROR_DEBIT.getCode());
  61. orderService.updateById(order);
  62. }else {
  63. treeMap.put(orderNumber,count+1);
  64. }
  65. }else {
  66. treeMap.put(orderNumber,1);
  67. }
  68. }
  69. }