lyhzzz 2 lat temu
rodzic
commit
1985113c4e

+ 9 - 7
src/main/java/com/fdkankan/pay/controller/AutopayOrderController.java

@@ -9,10 +9,7 @@ import com.fdkankan.pay.entity.Order;
 import com.fdkankan.pay.entity.PaypalConfig;
 import com.fdkankan.pay.entity.PaypalWebhookLog;
 import com.fdkankan.pay.exception.BusinessException;
-import com.fdkankan.pay.service.IAutopayOrderService;
-import com.fdkankan.pay.service.IOrderService;
-import com.fdkankan.pay.service.IPaypalConfigService;
-import com.fdkankan.pay.service.IPaypalWebhookLogService;
+import com.fdkankan.pay.service.*;
 import com.fdkankan.pay.util.CacheUtil;
 import com.fdkankan.pay.util.OrderSnUtil;
 import com.fdkankan.pay.util.paypal.restApi.RestApiPaypalService;
@@ -51,7 +48,7 @@ public class AutopayOrderController {
     @Autowired
     IOrderService orderService;
     @Autowired
-    OrderSnUtil orderSnUtil;
+    IAutopayOrderSonService autopayOrderSonService;
 
     @PostMapping("/webhook")
     public ResultData webhook(@RequestBody JSONObject webhookObj){
@@ -62,11 +59,12 @@ public class AutopayOrderController {
         AutopayOrder autopayOrder = null;
         String subscriptionId = null;
 
-        String tradeNo = resource.getString("id");
+        String tradeNo = "";
         String state =resource.getString("state");
         switch (event_type){
             case "PAYMENT.SALE.COMPLETED" :     //每日扣款
                 subscriptionId = resource.getString("billing_agreement_id");
+                tradeNo = resource.getString("id");
                 break;
             case "CATALOG.PRODUCT.CREATED" :     //创建商品
                 break;
@@ -105,10 +103,14 @@ public class AutopayOrderController {
         log.setStatus(1);
         paypalWebhookLogService.updateById(log);
 
+        String orderSnSon = null;
+        if("PAYMENT.SALE.COMPLETED".equals(event_type)){
+            orderSnSon = autopayOrderSonService.addOrderByOrder(autopayOrder.getId(),resource);
+        }
         HashMap<String,String >map = new HashMap<>();
         map.put("subscriptionOrderSn",orderSn);
         map.put("subscriptionId",subscriptionId);
-        map.put("orderSn", orderSnUtil.getOrderSn());
+        map.put("orderSn",orderSnSon );
         map.put("eventType",event_type);
         map.put("tradeNo",tradeNo);
         map.put("state",state);

+ 55 - 0
src/main/java/com/fdkankan/pay/entity/AutopayOrderSon.java

@@ -0,0 +1,55 @@
+package com.fdkankan.pay.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-11-09
+ */
+@Getter
+@Setter
+@TableName("t_autopay_order_son")
+public class AutopayOrderSon implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("autopay_order_id")
+    private Integer autopayOrderId;
+
+    @TableField("order_sn")
+    private String orderSn;
+
+    @TableField("trade_no")
+    private String tradeNo;
+
+    @TableField("state")
+    private String state;
+
+    @TableField("amount")
+    private String amount;
+
+    @TableField("currency")
+    private String currency;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 1 - 1
src/main/java/com/fdkankan/pay/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"pay", getTables(new String[]{
-                "t_autopay_plan"
+                "t_autopay_order_son"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/pay/mapper/IAutopayOrderSonMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.pay.mapper;
+
+import com.fdkankan.pay.entity.AutopayOrderSon;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-11-09
+ */
+@Mapper
+public interface IAutopayOrderSonMapper extends BaseMapper<AutopayOrderSon> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/pay/service/IAutopayOrderSonService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.pay.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.pay.entity.AutopayOrder;
+import com.fdkankan.pay.entity.AutopayOrderSon;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-11-09
+ */
+public interface IAutopayOrderSonService extends IService<AutopayOrderSon> {
+
+    String addOrderByOrder(Integer id , JSONObject resource);
+}

+ 46 - 0
src/main/java/com/fdkankan/pay/service/impl/AutopayOrderSonServiceImpl.java

@@ -0,0 +1,46 @@
+package com.fdkankan.pay.service.impl;
+import java.util.Date;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.pay.entity.AutopayOrder;
+import com.fdkankan.pay.entity.AutopayOrderSon;
+import com.fdkankan.pay.mapper.IAutopayOrderSonMapper;
+import com.fdkankan.pay.service.IAutopayOrderSonService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.pay.util.OrderSnUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-11-09
+ */
+@Service
+public class AutopayOrderSonServiceImpl extends ServiceImpl<IAutopayOrderSonMapper, AutopayOrderSon> implements IAutopayOrderSonService {
+
+    @Autowired
+    OrderSnUtil orderSnUtil;
+
+    @Override
+    public String addOrderByOrder(Integer autoPayOrderId, JSONObject resource ) {
+        String state =resource.getString("state");
+        String tradeNo = resource.getString("id");
+        JSONObject amountObj = resource.getJSONObject("amount");
+        String amount = amountObj.getString("total");
+        String currency = amountObj.getString("currency");
+
+        AutopayOrderSon autopayOrderSon = new AutopayOrderSon();
+        autopayOrderSon.setAutopayOrderId(autoPayOrderId);
+        autopayOrderSon.setOrderSn(orderSnUtil.getOrderSn());
+        autopayOrderSon.setTradeNo(tradeNo);
+        autopayOrderSon.setState(state);
+        autopayOrderSon.setAmount(amount);
+        autopayOrderSon.setCurrency(currency);
+        this.save(autopayOrderSon);
+        return autopayOrderSon.getOrderSn();
+    }
+}

+ 0 - 3
src/main/java/com/fdkankan/pay/service/impl/OrderServiceImpl.java

@@ -82,9 +82,6 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         order.setPayTime(new Date());
         order.setUpdateTime(new Date());
         this.updateById(order);
-        if(order.getAutoPay() ==1){
-            return;
-        }
         Map<String, Object> map = BeanUtil.beanToMap(order);
         rabbitMqProducer.sendByWorkQueue(CacheUtil.orderPayResultQueue,map);
     }

+ 5 - 0
src/main/resources/mapper/pay/AutopayOrderSonMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.pay.mapper.IAutopayOrderSonMapper">
+
+</mapper>