Prechádzať zdrojové kódy

完善卡充值逻辑

yq 3 rokov pred
rodič
commit
03ede555ae

+ 2 - 1
src/main/java/com/usky/dxtop/service/emun/OrderStatus.java

@@ -16,8 +16,9 @@ public enum OrderStatus {
 
     SUCCESS(4,"支付成功"),
 
-    CANCEL_PAY(5,"取消支付");
+    CANCEL_PAY(5,"取消支付"),
 
+    COMPLETE(6,"已完成");
     private Integer code;
 
     private String name;

+ 21 - 8
src/main/java/com/usky/dxtop/service/impl/OrderServiceImpl.java

@@ -21,8 +21,10 @@ import com.usky.dxtop.model.Order;
 import com.usky.dxtop.service.CallApiLogService;
 import com.usky.dxtop.service.OrderService;
 import com.usky.dxtop.service.api.TopApi;
+import com.usky.dxtop.service.config.rabbitmq.charge.ChargeConsumeConfig;
 import com.usky.dxtop.service.emun.OrderPayType;
 import com.usky.dxtop.service.emun.OrderStatus;
+import com.usky.dxtop.service.vo.ChargeVO;
 import com.usky.dxtop.service.vo.OrderExport;
 import com.usky.dxtop.service.vo.OrderReport;
 import com.usky.dxtop.service.vo.OrderRequest;
@@ -31,7 +33,9 @@ import ma.glasnost.orika.MapperFacade;
 import ma.glasnost.orika.MapperFactory;
 import ma.glasnost.orika.impl.DefaultMapperFactory;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.FastByteArrayOutputStream;
@@ -66,6 +70,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private CallApiLogService callApiLogService;
 
+    @Autowired
+    @Qualifier(ChargeConsumeConfig.TEMPLATE)
+    private RabbitTemplate rabbitTemplate;
+
 
     @Transactional(rollbackFor = Exception.class)
     @Override
@@ -179,19 +187,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
     @Override
     public void callCardTopApi(Order order) {
-        boolean b;
-        String param = "";
-        String result = "";
+        boolean b = true;
         try {
-            b = true;
-            //TODO 等待测试接口,url,请求,响应需要替换
+            ChargeVO chargeVo = new ChargeVO();
+            chargeVo.setSeq(order.getId());
+            chargeVo.setAmt(order.getMoney());
+            chargeVo.setCard("h");
+            chargeVo.setMob(order.getOrderNumber());
+            chargeVo.setName("test");
+            rabbitTemplate.convertAndSend(ChargeConsumeConfig.NAME, ChargeConsumeConfig.NAME, JSON.toJSON(chargeVo));
         }catch (Exception e){
             b = false;
-            log.error("---order---卡充值api调用异常"+ e.getMessage());
+            log.error("---order---卡充值消息发送异常"+ e.getMessage());
         }
-        callApiLogService.saveOrUpdate(order.getOrderNumber(),CARD_TOP,TopApi.DEAL_SELECT_URL,JSONObject.toJSONString(param),result);
         if (b){
-            //成功修改状态成功
+            //成功修改状态支付成功
             order.setOrderFlag(OrderStatus.SUCCESS.getCode());
         }else {
             //失败修改状态为卡充值失败
@@ -254,6 +264,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             b = false;
         }
         if (b){
+            //修改订单状态为支付成功
+            order.setOrderFlag(OrderStatus.SUCCESS.getCode());
+            this.updateById(order);
             //调用卡充值api
             callCardTopApi(order);
         }

+ 18 - 3
src/main/java/com/usky/dxtop/service/listener/ChargeMqListener.java

@@ -1,7 +1,13 @@
 package com.usky.dxtop.service.listener;
 
+import com.alibaba.fastjson.JSONObject;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.model.Order;
+import com.usky.dxtop.service.OrderService;
+import com.usky.dxtop.service.emun.OrderStatus;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.core.Message;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.nio.charset.StandardCharsets;
@@ -14,6 +20,8 @@ import java.nio.charset.StandardCharsets;
 @Component
 public class ChargeMqListener {
 
+    @Autowired
+    private OrderService orderService;
 //    @RabbitListener(queues = ChargeProduceConfig.QUEUE, containerFactory = ChargeProduceConfig.CONNECTION)
     public void dealDeclareMessage(Message message) {
         try {
@@ -22,11 +30,18 @@ public class ChargeMqListener {
             log.info(routingKey);
             String s = new String(message.getBody(), StandardCharsets.UTF_8);
             log.info("charge_trans_produce:接受到的消息"+s);
-            //消息必答机制
+            JSONObject jsonObject = JSONObject.parseObject(s);
+            Order order = new Order();
+            order.setId(Long.parseLong(jsonObject.get("code").toString()));
+            if ("1".equals(jsonObject.get("code"))) {
+                order.setOrderFlag(OrderStatus.COMPLETE.getCode());
+            }else {
+                order.setOrderFlag(OrderStatus.PAYMENT_ERROR_DEBIT.getCode());
+            }
+            orderService.updateById(order);
         } catch (Exception e) {
             log.info("charge_trans_produce"+"异常信息:" + e.getMessage());
-        } finally {
-
+            throw new CustomException(e.getMessage());
         }
     }
 }

+ 0 - 28
src/main/java/com/usky/dxtop/service/production/ChargeMqProduce.java

@@ -1,28 +0,0 @@
-package com.usky.dxtop.service.production;
-
-import com.alibaba.fastjson.JSON;
-import com.usky.dxtop.service.config.rabbitmq.charge.ChargeConsumeConfig;
-import com.usky.dxtop.service.vo.PersonVO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-/**
- * @author yq
- * @date 2021/9/15 13:52
- */
-@Slf4j
-@Component
-public class ChargeMqProduce {
-    @Autowired
-    @Qualifier(ChargeConsumeConfig.TEMPLATE)
-    private RabbitTemplate rabbitTemplate;
-
-    public void send(Object object){
-        PersonVO personVO = new PersonVO();
-        personVO.setCard("!1111");
-        rabbitTemplate.convertAndSend(ChargeConsumeConfig.NAME, ChargeConsumeConfig.NAME, JSON.toJSON(object));
-    }
-}

+ 0 - 29
src/main/java/com/usky/dxtop/service/production/FaceMqProduce.java

@@ -1,29 +0,0 @@
-package com.usky.dxtop.service.production;
-
-import com.alibaba.fastjson.JSON;
-import com.usky.dxtop.service.config.rabbitmq.face.FaceConsumeConfig;
-import com.usky.dxtop.service.vo.PersonVO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-/**
- * @author yq
- * @date 2021/9/15 13:52
- */
-@Slf4j
-@Component
-public class FaceMqProduce {
-
-    @Autowired
-    @Qualifier(FaceConsumeConfig.TEMPLATE)
-    private RabbitTemplate rabbitTemplate;
-
-    public void send(Object object){
-        PersonVO personVO = new PersonVO();
-        personVO.setCard("!1111");
-        rabbitTemplate.convertAndSend(FaceConsumeConfig.NAME, FaceConsumeConfig.NAME, JSON.toJSON(object));
-    }
-}

+ 0 - 28
src/main/java/com/usky/dxtop/service/production/GroupMqProduce.java

@@ -1,28 +0,0 @@
-package com.usky.dxtop.service.production;
-
-import com.alibaba.fastjson.JSON;
-import com.usky.dxtop.service.config.rabbitmq.group.GroupConsumeConfig;
-import com.usky.dxtop.service.vo.PersonVO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-/**
- * @author yq
- * @date 2021/9/15 13:52
- */
-@Slf4j
-@Component
-public class GroupMqProduce {
-    @Autowired
-    @Qualifier(GroupConsumeConfig.TEMPLATE)
-    private RabbitTemplate rabbitTemplate;
-
-    public void send(Object object){
-        PersonVO personVO = new PersonVO();
-        personVO.setCard("!1111");
-        rabbitTemplate.convertAndSend(GroupConsumeConfig.NAME, GroupConsumeConfig.NAME, JSON.toJSON(object));
-    }
-}

+ 0 - 29
src/main/java/com/usky/dxtop/service/production/PersonMqProduce.java

@@ -1,29 +0,0 @@
-package com.usky.dxtop.service.production;
-
-import com.alibaba.fastjson.JSON;
-import com.usky.dxtop.service.config.rabbitmq.profile.ProfileConsumeConfig;
-import com.usky.dxtop.service.vo.PersonVO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-
-/**
- * @author yq
- * @date 2021/9/15 13:51
- */
-@Slf4j
-@Component
-public class PersonMqProduce {
-
-    @Autowired
-    @Qualifier(ProfileConsumeConfig.TEMPLATE)
-    private RabbitTemplate rabbitTemplate;
-
-    public void send(Object object){
-        PersonVO personVO = new PersonVO();
-        personVO.setCard("!1111");
-        rabbitTemplate.convertAndSend(ProfileConsumeConfig.NAME, ProfileConsumeConfig.NAME, JSON.toJSON(object));
-    }
-}