Ver código fonte

支付中心

lyhzzz 2 anos atrás
pai
commit
68095192f1

+ 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);
+    }
+}

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

@@ -0,0 +1,34 @@
+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.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 = LaserAddressSource.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);
+
+
+}

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

@@ -0,0 +1,17 @@
+package com.fdkankan.ucenter.httpClient.param;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class PayOrderParam {
+    private String serveName = "ucenter";
+    private BigDecimal orderMoney;
+    private String orderType;
+
+    public PayOrderParam( BigDecimal orderMoney, String orderType) {
+        this.orderMoney = orderMoney;
+        this.orderType = orderType;
+    }
+}

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

@@ -0,0 +1,43 @@
+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.PayOrderParam;
+import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+
+@Service
+public class PayService {
+
+    @Autowired
+    PayClient payClient;
+
+    public PayOrderVo downOrder(BigDecimal money, String type){
+        PayOrderParam param = new PayOrderParam(money,type);
+        ResultData resultData = payClient.downOrder(param);
+        if(resultData.getCode() == 200 ){
+            return (PayOrderVo ) resultData.getData();
+        }
+        return null;
+    }
+
+
+    /**
+     * 查询订单状态
+     */
+    public PayOrderVo queryOrder(String orderSn){
+        ResultData resultData = payClient.queryOrder(orderSn);
+        if(resultData.getCode() == 200 ){
+            return (PayOrderVo ) resultData.getData();
+        }
+        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;
+
+}

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

@@ -0,0 +1,46 @@
+package com.fdkankan.ucenter.mq.consumer;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.rabbitmq.util.RabbitMqProducer;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+@Slf4j
+@Component
+public class OrderDownConsumer {
+
+    @Value("${queue.orderPay.order-down:order-down}")
+    private String orderDownQueue;
+    @Value("${queue.orderPay.down-payResult:down-payResult}")
+    private String orderPayResultQueue;
+
+    @Autowired
+    RabbitMqProducer rabbitMqProducer;
+
+
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.orderPay.down-payResult:down-payResult}")
+    )
+    public void consumerQueue(Channel channel, Message message) throws Exception {
+        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);
+
+        //更新订单状态
+    }
+}

+ 12 - 2
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,11 @@ 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.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;
@@ -142,6 +147,8 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
 
         return responseGoodsSku;
     }
+    @Autowired
+    PayService payService;
 
     @Override
     public IncrementOrder insertIncrementOrder(Long userId, DownNumParam param,IncrementType incrementType) {
@@ -152,8 +159,11 @@ public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper
         }
 
         IncrementOrder incrementOrderEntity = new IncrementOrder();
-
-        incrementOrderEntity.setOrderSn(NumberUtils.getOrderSn());
+        PayOrderVo payOrderVo = payService.downOrder(total, "increment");
+        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);