OrderServiceImpl.java 2.8 KB

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