Browse Source

Merge branch 'task-lyh-pay'

lyhzzz 2 years ago
parent
commit
309cbed60c

+ 3 - 0
src/main/java/com/fdkankan/ucenter/constant/OrderConstant.java

@@ -15,4 +15,7 @@ public class OrderConstant {
 
     public static final int FAILURE_CODE_8004 = 8004;
     public static final String FAILURE_MSG_8004 = "支付方式异常";
+
+    public static final int FAILURE_CODE_8005 = 8005;
+    public static final String FAILURE_MSG_8005= "下单失败";
 }

+ 20 - 0
src/main/java/com/fdkankan/ucenter/httpClient/address/PayAddressSource.java

@@ -0,0 +1,20 @@
+package com.fdkankan.ucenter.httpClient.address;
+
+import com.dtflys.forest.callback.AddressSource;
+import com.dtflys.forest.http.ForestAddress;
+import com.dtflys.forest.http.ForestRequest;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class PayAddressSource implements AddressSource {
+
+    @Value("${4dkk.payService.basePath}")
+    private String basePath;
+
+
+    @Override
+    public ForestAddress getAddress(ForestRequest forestRequest) {
+        return new ForestAddress("","",null,basePath);
+    }
+}

+ 35 - 0
src/main/java/com/fdkankan/ucenter/httpClient/client/PayClient.java

@@ -0,0 +1,35 @@
+package com.fdkankan.ucenter.httpClient.client;
+
+import com.dtflys.forest.annotation.*;
+import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.common.ResultData;
+import com.fdkankan.ucenter.httpClient.address.LaserAddressSource;
+import com.fdkankan.ucenter.httpClient.address.PayAddressSource;
+import com.fdkankan.ucenter.httpClient.param.PayOrderParam;
+import com.fdkankan.ucenter.httpClient.param.SSDownSceneParam;
+import com.fdkankan.ucenter.httpClient.param.SsBindParam;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 获取,支付中心
+ */
+@Address(source = PayAddressSource.class)
+public interface PayClient {
+
+    /**
+     * 下单
+     */
+    @Post("/service/pay/order/down")
+    ResultData downOrder(@JSONBody PayOrderParam param);
+
+
+    /**
+     * 查询订单状态
+     */
+    @Get("/service/pay/order/info/{orderSn}")
+    ResultData queryOrder(@Var("orderSn")String orderSn);
+
+
+}

+ 21 - 0
src/main/java/com/fdkankan/ucenter/httpClient/param/PayGoods.java

@@ -0,0 +1,21 @@
+package com.fdkankan.ucenter.httpClient.param;
+
+import lombok.Data;
+
+@Data
+public class PayGoods {
+    private String name;
+    private Integer count;
+    private String sceneNum;
+
+    public PayGoods(String name, Integer count) {
+        this.name = name;
+        this.count = count;
+    }
+
+    public PayGoods(String name, Integer count,String sceneNum) {
+        this.name = name;
+        this.count = count;
+        this.sceneNum = sceneNum;
+    }
+}

+ 24 - 0
src/main/java/com/fdkankan/ucenter/httpClient/param/PayOrderParam.java

@@ -0,0 +1,24 @@
+package com.fdkankan.ucenter.httpClient.param;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class PayOrderParam {
+    private String serveName = "ucenter";
+    private BigDecimal orderMoney;
+    private String orderType;
+    private String userName;
+    private String nickName;
+    private List<PayGoods> goodsInfo;
+
+    public PayOrderParam(BigDecimal orderMoney, String orderType, String userName, String nickName, List<PayGoods> goodsInfo) {
+        this.orderMoney = orderMoney;
+        this.orderType = orderType;
+        this.userName = userName;
+        this.nickName = nickName;
+        this.goodsInfo = goodsInfo;
+    }
+}

+ 47 - 0
src/main/java/com/fdkankan/ucenter/httpClient/service/PayService.java

@@ -0,0 +1,47 @@
+package com.fdkankan.ucenter.httpClient.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.annotation.Get;
+import com.dtflys.forest.annotation.JSONBody;
+import com.dtflys.forest.annotation.Post;
+import com.dtflys.forest.annotation.Var;
+import com.fdkankan.ucenter.common.ResultData;
+import com.fdkankan.ucenter.httpClient.client.PayClient;
+import com.fdkankan.ucenter.httpClient.param.PayGoods;
+import com.fdkankan.ucenter.httpClient.param.PayOrderParam;
+import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Service
+public class PayService {
+
+    @Autowired
+    PayClient payClient;
+
+    public PayOrderVo downOrder(BigDecimal money, String type, String userName, String nickName, List<PayGoods> goodsInfo){
+        PayOrderParam param = new PayOrderParam(money,type,userName,nickName,goodsInfo);
+        ResultData resultData = payClient.downOrder(param);
+        if(resultData.getCode() == 200 ){
+            String orderStr = JSONObject.toJSONString(resultData.getData());
+            return JSONObject.parseObject(orderStr,PayOrderVo.class);
+        }
+        return null;
+    }
+
+
+    /**
+     * 查询订单状态
+     */
+    public PayOrderVo queryOrder(String orderSn){
+        ResultData resultData = payClient.queryOrder(orderSn);
+        if(resultData.getCode() == 200 ){
+            String orderStr = JSONObject.toJSONString(resultData.getData());
+            return JSONObject.parseObject(orderStr,PayOrderVo.class);
+        }
+        return null;
+    }
+}

+ 63 - 0
src/main/java/com/fdkankan/ucenter/httpClient/vo/PayOrderVo.java

@@ -0,0 +1,63 @@
+package com.fdkankan.ucenter.httpClient.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class PayOrderVo {
+
+    /**
+     * 订单表
+     */
+    private Integer orderId;
+
+    /**
+     * 服务名称
+     */
+    private String serveName;
+    /**
+     * 服务名称
+     */
+    private Integer serveId;
+
+    /**
+     * 订单编号
+     */
+    private String orderSn;
+
+    /**
+     * 订单类型
+     */
+    private String orderType;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal orderMoney;
+
+    /**
+     * 0微信h5,1微信jsapi,2,微信扫码支付,3支付宝扫码,4支付宝h5
+     */
+    private Integer payType;
+
+    /**
+     * 支付状态,0未支付,1支付成功,2支付失败
+     */
+    private Integer payStatus;
+
+    private String openId;
+
+    private String tradeNo;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    private Date payTime;
+
+}

+ 85 - 0
src/main/java/com/fdkankan/ucenter/mq/consumer/OrderDownConsumer.java

@@ -0,0 +1,85 @@
+package com.fdkankan.ucenter.mq.consumer;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.rabbitmq.util.RabbitMqProducer;
+import com.fdkankan.ucenter.entity.DownloadOrder;
+import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
+import com.fdkankan.ucenter.pay.strategy.impl.DownloadOrderImpl;
+import com.fdkankan.ucenter.pay.strategy.impl.EntityOrderImpl;
+import com.fdkankan.ucenter.pay.strategy.impl.IncrementOrderImpl;
+import com.fdkankan.ucenter.service.IIncrementOrderService;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.amqp.core.ExchangeTypes;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Exchange;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.QueueBinding;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import sun.rmi.runtime.Log;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+
+@Slf4j
+@Component
+public class OrderDownConsumer {
+
+
+    @Autowired
+    IncrementOrderImpl incrementOrder;
+    @Autowired
+    DownloadOrderImpl downloadOrder;
+    @Autowired
+    EntityOrderImpl entityOrder;
+
+
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.orderPay.order-payResult:order-payResult}")
+    )
+    public void consumerQueue(Channel channel, Message message)  {
+        try {
+            String messageId = message.getMessageProperties().getMessageId();
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            log.info("接受下单结果mq--messageId:{},msg:{}",messageId,msg);
+
+            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+            msg = msg.substring(1, msg.length() - 1);
+
+            msg = StringEscapeUtils.unescapeJava(msg);
+
+            PayOrderVo order = JSONObject.parseObject(msg, PayOrderVo.class);
+            if(order == null){
+                return;
+            }
+            //更新订单状态
+            Integer payType = 3;
+            //付款方式,0表示微信,1表示支付宝,2表示paypal,3表示其他
+            switch (order.getPayType()){
+                case 0 : case 1: case 2: payType = 0;break;
+                case 3 : case 4:  payType = 1;break;
+                case 5 :   payType = 2;break;
+            }
+            if("incrementOrder".equals(order.getOrderType())){
+                incrementOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
+            }
+            if("downOrder".equals(order.getOrderType())){
+                downloadOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
+            }
+            if("partOrder".equals(order.getOrderType())){
+                entityOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
+            }
+        }catch (Exception e){
+            log.error("order-payResult----消费失败",e);
+        }finally {
+
+        }
+
+    }
+
+}

+ 2 - 1
src/main/java/com/fdkankan/ucenter/service/IDownloadOrderService.java

@@ -3,6 +3,7 @@ package com.fdkankan.ucenter.service;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.entity.DownloadOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
 
@@ -25,7 +26,7 @@ public interface IDownloadOrderService extends IService<DownloadOrder> {
 
     boolean paySuccessDownloadOrder(String orderSn, String tradeNo, int paymentTypeName);
 
-    DownloadOrder insertDownloadOrder(Long id, DownNumParam param, BigDecimal bigDecimal);
+    DownloadOrder insertDownloadOrder(User user, DownNumParam param, BigDecimal bigDecimal);
 
     DownloadOrder getByOrderSnNoPay(String orderSn);
 }

+ 2 - 1
src/main/java/com/fdkankan/ucenter/service/IIncrementOrderService.java

@@ -4,6 +4,7 @@ import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.entity.IncrementOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.entity.IncrementType;
+import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.vo.request.DownNumParam;
 import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
 import com.fdkankan.ucenter.vo.request.OrderParam;
@@ -26,7 +27,7 @@ public interface IIncrementOrderService extends IService<IncrementOrder> {
 
     GoodsSkuVo getDownloadPrice(OrderParam param);
 
-    IncrementOrder insertIncrementOrder(Long userId, DownNumParam param, IncrementType incrementType);
+    IncrementOrder insertIncrementOrder(User user, DownNumParam param, IncrementType incrementType);
 
      DateTime getDateTime(IncrementType incrementType, Integer userIncrementId,Integer count) ;
 

+ 17 - 3
src/main/java/com/fdkankan/ucenter/service/impl/DownloadOrderServiceImpl.java

@@ -5,11 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.constant.TbStatus;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.common.util.NumberUtils;
+import com.fdkankan.ucenter.constant.OrderConstant;
 import com.fdkankan.ucenter.entity.DownloadOrder;
 import com.fdkankan.ucenter.entity.Invoice;
 import com.fdkankan.ucenter.entity.User;
+import com.fdkankan.ucenter.httpClient.param.PayGoods;
+import com.fdkankan.ucenter.httpClient.service.PayService;
+import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
 import com.fdkankan.ucenter.mapper.IDownloadOrderMapper;
 import com.fdkankan.ucenter.service.IDownloadOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,6 +32,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -106,16 +112,24 @@ public class DownloadOrderServiceImpl extends ServiceImpl<IDownloadOrderMapper,
 
     }
 
+    @Autowired
+    PayService payService;
+
     @Override
-    public DownloadOrder insertDownloadOrder(Long userId, DownNumParam param, BigDecimal price) {
+    public DownloadOrder insertDownloadOrder(User user, DownNumParam param, BigDecimal price) {
         BigDecimal total = price.multiply(new BigDecimal(param.getCount()));
+        PayGoods payGoods = new PayGoods(param.getSceneName() +"场景下载",param.getCount(),param.getSceneNum());
+        PayOrderVo payOrderVo = payService.downOrder(total, "downOrder",user.getUserName(),user.getNickName(), Arrays.asList(payGoods));
+        if(payOrderVo == null){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8005,OrderConstant.FAILURE_MSG_8005);
+        }
 
         DownloadOrder downloadOrderEntity = new DownloadOrder();
-        downloadOrderEntity.setOrderSn(NumberUtils.getOrderSn());
+        downloadOrderEntity.setOrderSn(payOrderVo.getOrderSn());
         downloadOrderEntity.setAmount(total);
         downloadOrderEntity.setPayType(param.getPayType());
         downloadOrderEntity.setPayStatus(-1);
-        downloadOrderEntity.setUserId(userId);
+        downloadOrderEntity.setUserId(user.getId());
         downloadOrderEntity.setCount(param.getCount());
         downloadOrderEntity.setAbroad(param.getAbroad());
         downloadOrderEntity.setStatus(1);

+ 17 - 4
src/main/java/com/fdkankan/ucenter/service/impl/IncrementOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.ucenter.service.impl;
 
+import com.amazonaws.services.simpleworkflow.flow.annotations.NoWait;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -10,7 +11,12 @@ import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.common.util.NumberUtils;
 import com.fdkankan.ucenter.common.SkuEnum;
 import com.fdkankan.ucenter.constant.LoginConstant;
+import com.fdkankan.ucenter.constant.OrderConstant;
 import com.fdkankan.ucenter.entity.*;
+import com.fdkankan.ucenter.httpClient.client.PayClient;
+import com.fdkankan.ucenter.httpClient.param.PayGoods;
+import com.fdkankan.ucenter.httpClient.service.PayService;
+import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
 import com.fdkankan.ucenter.mapper.IIncrementOrderMapper;
 import com.fdkankan.ucenter.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -29,6 +35,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -142,9 +149,11 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
 
         return responseGoodsSku;
     }
+    @Autowired
+    PayService payService;
 
     @Override
-    public IncrementOrder insertIncrementOrder(Long userId, DownNumParam param,IncrementType incrementType) {
+    public IncrementOrder insertIncrementOrder(User user, DownNumParam param,IncrementType incrementType) {
 
         BigDecimal total = incrementType.getPrice().multiply(new BigDecimal(param.getCount()));
         if(param.getMonthQy() != null){
@@ -152,12 +161,16 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
         }
 
         IncrementOrder incrementOrderEntity = new IncrementOrder();
-
-        incrementOrderEntity.setOrderSn(NumberUtils.getOrderSn());
+        PayGoods payGoods = new PayGoods(incrementType.getName(),param.getCount());
+        PayOrderVo payOrderVo = payService.downOrder(total, "incrementOrder",user.getUserName(),user.getNickName(), Arrays.asList(payGoods));
+        if(payOrderVo == null){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8005,OrderConstant.FAILURE_MSG_8005);
+        }
+        incrementOrderEntity.setOrderSn(payOrderVo.getOrderSn());
         incrementOrderEntity.setAmount(total);
         incrementOrderEntity.setPayType(param.getPayType());
         incrementOrderEntity.setPayStatus(-1);
-        incrementOrderEntity.setUserId(userId);
+        incrementOrderEntity.setUserId(user.getId());
         incrementOrderEntity.setCount(param.getCount());
         incrementOrderEntity.setAbroad(param.getAbroad());
         incrementOrderEntity.setStatus(param.getIncrementId() == null ? 1 : 2);

+ 31 - 84
src/main/java/com/fdkankan/ucenter/service/impl/OrderServiceImpl.java

@@ -13,6 +13,9 @@ import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.ucenter.common.RedisKeyUtil;
 import com.fdkankan.ucenter.constant.*;
 import com.fdkankan.ucenter.entity.*;
+import com.fdkankan.ucenter.httpClient.param.PayGoods;
+import com.fdkankan.ucenter.httpClient.service.PayService;
+import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
 import com.fdkankan.ucenter.mapper.IOrderMapper;
 import com.fdkankan.ucenter.pay.alipay.sdk.AlipayService;
 import com.fdkankan.ucenter.pay.wx.WXPay;
@@ -27,6 +30,7 @@ import com.fdkankan.ucenter.vo.request.OrderParam;
 import com.fdkankan.ucenter.vo.request.PlaceOrderParam;
 import com.fdkankan.ucenter.vo.response.GoodsSkuVo;
 import com.fdkankan.ucenter.vo.response.OrderVo;
+import com.google.common.collect.Ordering;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -121,6 +125,9 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         this.update(wrapper);
     }
 
+   @Autowired
+    PayService payService;
+
     @Override
     public Order placeOrder(PlaceOrderParam param) {
         List<Long> id = param.getGoods().parallelStream().map(CartParam::getId).collect(Collectors.toList());
@@ -135,7 +142,7 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         OrderItem orderItemEntity = null;
         int goodsTotalCount = 0;
         BigDecimal goodsAmount = new BigDecimal(0);
-
+        List<PayGoods> goodsInfoList = new ArrayList<>();
         for(CartParam requestCart : param.getGoods()){
             goodsTotalCount += requestCart.getGoodsCount();
 
@@ -165,10 +172,16 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
             orderItemEntities.add(orderItemEntity);
 
             goodsAmount = goodsAmount.add(orderItemEntity.getGoodsPrice().multiply(new BigDecimal(orderItemEntity.getGoodsCount())));
+            PayGoods payGoods = new PayGoods(orderItemEntity.getGoodsName(),orderItemEntity.getGoodsCount());
+            goodsInfoList.add(payGoods);
         }
 
+        PayOrderVo payOrderVo = payService.downOrder(goodsAmount, "partOrder",user.getUserName(),user.getNickName(),goodsInfoList);
+        if(payOrderVo == null){
+            throw new BusinessException(OrderConstant.FAILURE_CODE_8005,OrderConstant.FAILURE_MSG_8005);
+        }
         Order orderEntity = new Order();
-        orderEntity.setOrderSn(NumberUtils.getOrderSn());
+        orderEntity.setOrderSn(payOrderVo.getOrderSn());
         orderEntity.setOrderTime(DateUserUtil.getDate(new Date()));
         orderEntity.setOrderStatus(OrderStatus.unprocessed.name());
         orderEntity.setPaymentStatus(PaymentStatus.unpaid.name());
@@ -209,90 +222,24 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
 
     @Override
     public boolean queryOrderStatus(OrderParam param) throws Exception {
-        boolean success = false;
         String orderSn = param.getOrderSn();
-        switch (param.getOrderType()){
-            case 0:
-                orderSn += "_entity";
-                break;
-            case 1:
-                orderSn += "_recharge";
-                break;
-            case 2:
-                orderSn += "_expansion";
-                break;
-            case 3:
-                orderSn += "_commerce";
-                break;
-            case 4:   //国内参数
-            case 6:   //国际服参数
-                orderSn += "_increment";
-                break;
-            case 5:
-                orderSn += "_download";
-                break;
+        if(StringUtils.isBlank(orderSn)){
+            return false;
         }
-        if(param.getPayType()!= 2 && !redisUtil.hasKey(RedisKeyUtil.QRCODE + orderSn)){
-            String wxPngPath =  QrCodeFilePath.WEIXIN_QRCODE_FOLDER + orderSn + ".png";
-            String aliPngPath =  QrCodeFilePath.ALI_QRCODE_FOLDER + orderSn + ".png";
-            FileUtils.deleteFile(wxPngPath);
-            FileUtils.deleteFile(aliPngPath);
-            //throw new BusinessException(LoginConstant.FAILURE_CODE_3035,LoginConstant.FAILURE_MSG_3035);
+        Order order = orderService.getByOrderSn(orderSn);
+        //付款状态(未付款unpaid、已付款paid、已取消cancel, 部分支付partPayment, 部分退款partRefund, 全额退款refunded)
+        if(order != null && order.getPaymentStatus().equals("paid")){
+            return true;
         }
-        switch (param.getPayType()){
-            // 微信
-            case 0:
-                String orderSnE = redisUtil.get(orderSn);
-                log.warn("out_trade_no:" + orderSnE);
-                if (StringUtils.isNotEmpty(orderSnE)){
-                    Map<String, String> data = new HashMap<String, String>();
-                    data.put("out_trade_no", orderSnE);
-                    WXPayDefaultConfig config = new WXPayDefaultConfig();
-                    WXPay wxPay = new WXPay(config);
-                    Map<String, String> resp = wxPay.orderQuery(data);
-                    if (resp.get("trade_state") != null && resp.get("trade_state").equals(WXPayConstants.SUCCESS)) {
-                        redisUtil.del(orderSnE);
-                        success = true;
-                    }
-                }
-                break;
-            // 支付宝
-            case 1:
-                log.warn("alipay out_trade_no:" + orderSn);
-                String type = alipayService.tradeQuery(orderSn);
-                log.warn("alipay type:" + type);
-                if ("SUCCESS".equals(type)){
-                    success = true;
-                }
-                break;
-            // paypal
-            case 2:
-                String[] str = orderSn.split("_");
-                orderSn = str[0];
-                String key = str[1];
-
-                if(key.equals("increment")){
-                    log.warn("paypal out_trade_no:" + orderSn);
-                    IncrementOrder orderEntity = incrementOrderService.getByOrderSn(orderSn);
-                    if (orderEntity.getPayStatus().equals(1)){
-                        success = true;
-                    }
-                } else if(key.equals("download")) {
-                    log.warn("paypal out_trade_no:" + orderSn);
-                    DownloadOrder orderEntity = downloadOrderService.getByOrderSn(orderSn);
-                    if (orderEntity.getPayStatus().equals(1)) {
-                        success = true;
-                    }
-                }else{
-                    log.warn("paypal out_trade_no:" + orderSn);
-                    Order orderEntity = orderService.getByOrderSn(orderSn);
-                    if (PaymentStatus.paid.name().equals(orderEntity.getPaymentStatus())){
-                        success = true;
-                    }
-                }
-                break;
+        DownloadOrder downloadOrder = downloadOrderService.getByOrderSn(orderSn);
+        if(downloadOrder != null && downloadOrder.getPayStatus() == 1){
+            return true;
+        }
+        IncrementOrder incrementOrder = incrementOrderService.getByOrderSn(orderSn);
+        if(incrementOrder != null && incrementOrder.getPayStatus() == 1){
+            return true;
         }
-        return success;
+        return false;
     }
 
     @Override
@@ -328,7 +275,7 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
             throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
         }
 
-        return downloadOrderService.insertDownloadOrder(user.getId(),param,incrementType.getDownloadPrice());
+        return downloadOrderService.insertDownloadOrder(user,param,incrementType.getDownloadPrice());
     }
 
     @Override
@@ -345,7 +292,7 @@ public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implement
         if(incrementType == null){
             throw new BusinessException(OrderConstant.FAILURE_CODE_8004, OrderConstant.FAILURE_MSG_8004);
         }
-        return incrementOrderService.insertIncrementOrder(user.getId(), param,incrementType);
+        return incrementOrderService.insertIncrementOrder(user, param,incrementType);
     }
 
     @Override