OrderServiceImpl.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.fdkankan.pay.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.fdkankan.pay.entity.Order;
  6. import com.fdkankan.pay.entity.PayServe;
  7. import com.fdkankan.pay.mapper.IOrderMapper;
  8. import com.fdkankan.pay.service.IOrderService;
  9. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  10. import com.fdkankan.pay.service.IPayServeService;
  11. import com.fdkankan.pay.util.CacheUtil;
  12. import com.fdkankan.pay.util.OrderSnUtil;
  13. import com.fdkankan.rabbitmq.util.RabbitMqProducer;
  14. import org.apache.commons.lang.StringEscapeUtils;
  15. import org.apache.commons.lang.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import java.util.Date;
  19. /**
  20. * <p>
  21. * 服务实现类
  22. * </p>
  23. *
  24. * @author
  25. * @since 2023-04-12
  26. */
  27. @Service
  28. public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
  29. @Autowired
  30. OrderSnUtil orderSnUtil;
  31. @Autowired
  32. IPayServeService payServeService;
  33. @Autowired
  34. RabbitMqProducer rabbitMqProducer;
  35. @Override
  36. public Order createOrderByMqMsg(String msg) {
  37. msg = StringEscapeUtils.unescapeJava(msg);
  38. Order order = JSONObject.parseObject(msg, Order.class);
  39. return this.createOrder(order);
  40. }
  41. @Override
  42. public Order createOrder(Order order) {
  43. if(StringUtils.isBlank(order.getServeName())){
  44. return null;
  45. }
  46. PayServe payServe = payServeService.getByServeName(order.getServeName());
  47. if(payServe == null ){
  48. return null;
  49. }
  50. order.setOrderId(null);
  51. order.setServeId(payServe.getId());
  52. String orderSn = orderSnUtil.getOrderSn();
  53. order.setOrderSn(orderSn);
  54. this.save(order);
  55. return order;
  56. }
  57. @Override
  58. public Order getByOrderSn(String orderSn) {
  59. LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
  60. wrapper.eq(Order::getOrderSn,orderSn);
  61. return this.getOne(wrapper);
  62. }
  63. @Override
  64. public void payResult(Order order, Boolean payFlag, String trade_no,String openId) {
  65. if(order.getPayStatus() != 0){
  66. return;
  67. }
  68. order.setPayStatus(payFlag ? 1:2);
  69. order.setTradeNo(trade_no);
  70. order.setOpenId(openId);
  71. order.setPayTime(new Date());
  72. order.setUpdateTime(new Date());
  73. this.updateById(order);
  74. rabbitMqProducer.sendByWorkQueue(CacheUtil.orderPayResultQueue,JSONObject.toJSONString(order));
  75. }
  76. }