浏览代码

重发其他系统判断

lhm 3 年之前
父节点
当前提交
b70bdf174d

+ 66 - 0
kmall-admin/src/main/java/com/kmall/admin/haikong/constant/ErrorCodeConstants.java

@@ -0,0 +1,66 @@
+package com.kmall.admin.haikong.constant;
+
+/**
+ * 海控对接,错误码枚举
+ * @author lhm
+ * @createDate 2021-12-21
+ */
+public class ErrorCodeConstants {
+
+    /**
+     * 会员系统异常返回码
+     */
+    public enum MemberSysErrorCodeEnum {
+        CODE_0(0, "成功"),
+        CODE_500(500, "系统繁忙"),
+        CODE_1001(1001, "参数不合法"),
+        CODE_150007(150007, "退款积分超出上线"),
+        CODE_150008(150008, "积分不够扣除"),
+        CODE_150009(150009, "积分余额不足以回退"),
+        CODE_150010(150010, "仅支持全额回退")
+        ;
+
+        private final Integer code;
+
+        private final String desc;
+
+        MemberSysErrorCodeEnum(Integer code, String desc) {
+            this.code = code;
+            this.desc = desc;
+        }
+
+        public Integer getCode() {
+            return code;
+        }
+
+        public String getDesc() {
+            return desc;
+        }
+    }
+
+    /**
+     * 免税mall异常返回码
+     */
+    public enum VmcShopSysErrorCodeEnum {
+        CODE_0(0, "成功"),
+        CODE_10500(10500, "参数不合法"),
+        ;
+
+        private final Integer code;
+
+        private final String desc;
+
+        VmcShopSysErrorCodeEnum(Integer code, String desc) {
+            this.code = code;
+            this.desc = desc;
+        }
+
+        public Integer getCode() {
+            return code;
+        }
+
+        public String getDesc() {
+            return desc;
+        }
+    }
+}

+ 8 - 3
kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberOrderSyncResendTask.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 import com.kmall.admin.haikong.client.HaiKongMemberTemplate;
+import com.kmall.admin.haikong.constant.ErrorCodeConstants;
 import com.kmall.admin.haikong.constant.HaiKongMemberOrderResendStatusEnum;
 import com.kmall.admin.haikong.dto.MemberOrderInfoSyncDTO;
 import com.kmall.admin.haikong.dto.MemberScoreChangeDTO;
@@ -58,18 +59,22 @@ public class MemberOrderSyncResendTask {
             try {
                 String responseJson = haiKongMemberTemplate.changeMemberScore(body);
                 Response<String> response = JacksonUtil.fromListJson(responseJson, new TypeReference<Response<String>>() {});
-                if (Objects.nonNull(response) && response.getSuccess()) {
+                if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
                     haiKongMemberOrderSyncResendEntity.setMemberSysOrderId(response.getData());
                     haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
                     successList.add(haiKongMemberOrderSyncResendEntity);
                     log.info("【重发】请求会员消费订单同步接口成功!响应数据:{}", responseJson);
-                } else {
+                } else if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_500.getCode().equals(response.getCode())) {
                     haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
                     failedList.add(haiKongMemberOrderSyncResendEntity);
                     log.error("【重发】请求会员消费订单同步接口失败!响应:{}", responseJson);
+                } else {
+                    haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                    failedList.add(haiKongMemberOrderSyncResendEntity);
+                    log.error("【重发】请求会员消费订单同步接口失败!响应:{}", responseJson);
                 }
             } catch (Exception e) {
-                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
+                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
                 failedList.add(haiKongMemberOrderSyncResendEntity);
                 log.error("【重发】请求会员消费订单同步接口失败!异常:", e);
             }

+ 10 - 4
kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberScoreChangeResendTask.java

@@ -3,6 +3,7 @@ package com.kmall.admin.haikong.task;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 import com.kmall.admin.haikong.client.HaiKongMemberTemplate;
+import com.kmall.admin.haikong.constant.ErrorCodeConstants;
 import com.kmall.admin.haikong.constant.HaiKongMemberOrderResendStatusEnum;
 import com.kmall.admin.haikong.constant.HaiKongMemberScoreChangeEventEnum;
 import com.kmall.admin.haikong.dto.MemberScoreChangeDTO;
@@ -56,20 +57,25 @@ public class MemberScoreChangeResendTask {
             log.info("【重发】请求会员系统积分变动接口!请求体:{}", body);
             try {
                 String responseJson = haiKongMemberTemplate.changeMemberScore(body);
-                Response<String> response = JacksonUtil.fromListJson(responseJson, new TypeReference<Response<String>>() {});
-                if (Objects.nonNull(response) && response.getSuccess()) {
+                Response<String> response = JacksonUtil.fromListJson(responseJson, new TypeReference<Response<String>>() {
+                });
+                if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
                     MemberScoreChangeResponseDTO responseData = JacksonUtil.fromStringJson(response.getData(), MemberScoreChangeResponseDTO.class);
                     haiKongMemberScoreChangeRecordEntity.setStatementId(responseData.getStatementId());
                     haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
                     successList.add(haiKongMemberScoreChangeRecordEntity);
                     log.info("【重发】请求会员系统积分变动接口成功!响应数据:{}", responseJson);
-                } else {
+                } else if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_500.getCode().equals(response.getCode())) {
                     haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
+                    successList.add(haiKongMemberScoreChangeRecordEntity);
+                    log.info("【重发】请求会员系统积分变动接口失败!响应:{}", responseJson);
+                } else {
+                    haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
                     failedList.add(haiKongMemberScoreChangeRecordEntity);
                     log.error("【重发】请求会员系统积分变动接口失败!响应:{}", responseJson);
                 }
             } catch (Exception e) {
-                haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
+                haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
                 failedList.add(haiKongMemberScoreChangeRecordEntity);
                 log.error("【重发】请求会员系统积分变动接口失败!异常:", e);
             }

+ 14 - 5
kmall-admin/src/main/java/com/kmall/admin/haikong/task/SendOrderInfoTask.java

@@ -5,6 +5,7 @@ import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
 import com.kmall.admin.entity.haikong.HaiKongSendOrderInfoDetailRecordEntity;
 import com.kmall.admin.entity.haikong.HaiKongSendOrderInfoRecordEntity;
 import com.kmall.admin.haikong.client.VmcShopTemplate;
+import com.kmall.admin.haikong.constant.ErrorCodeConstants;
 import com.kmall.admin.haikong.constant.HaiKongMemberOrderResendStatusEnum;
 import com.kmall.admin.haikong.dto.*;
 import com.kmall.admin.haikong.utils.Response;
@@ -63,11 +64,11 @@ public class SendOrderInfoTask {
             SeaportInfoDTO seaportInfoDTO = new SeaportInfoDTO();
             PayInfoDTO payInfoDTO = new PayInfoDTO();
             OrderInfoDTO orderInfoDTO = new OrderInfoDTO();
+            BeanUtils.copyProperties(haiKongSendOrderInfoRecordEntity, orderInfoDTO);
+            BeanUtils.copyProperties(haiKongSendOrderInfoRecordEntity, payInfoDTO);
             String response1 = payInfoDTO.getResponse();
             response1 = response1.replaceAll("\r|\n", "");
             payInfoDTO.setResponse(response1);
-            BeanUtils.copyProperties(haiKongSendOrderInfoRecordEntity, orderInfoDTO);
-            BeanUtils.copyProperties(haiKongSendOrderInfoRecordEntity, payInfoDTO);
             seaportInfoDTO.setSeaportCode(haiKongSendOrderInfoRecordEntity.getSeaportCode());
             seaportInfoDTO.setPlatform(haiKongSendOrderInfoRecordEntity.getPlatform());
             seaportInfoDTO.setIdentityCard(haiKongSendOrderInfoRecordEntity.getIdentityCard());
@@ -93,17 +94,25 @@ public class SendOrderInfoTask {
                 log.info("【重发】请求免税mall创建订单接口!请求体:{}", body);
                 String responseJson = vmcShopTemplate.sendOrder(body);
                 Response<String> response = JacksonUtil.fromListJson(responseJson, new TypeReference<Response<String>>() {});
-                if (Objects.nonNull(response) && !"failure".equals(response.getResult())) {
+                if (Objects.nonNull(response) && ErrorCodeConstants.VmcShopSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
                     haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
                     successList.add(haiKongSendOrderInfoRecordEntity);
                     log.info("【重发】请求免税mall创建订单接口成功!响应数据:{}", responseJson);
-                } else {
+                } else if (Objects.nonNull(response) && ErrorCodeConstants.VmcShopSysErrorCodeEnum.CODE_10500.getCode().equals(response.getCode())) {
+                    haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                    failedList.add(haiKongSendOrderInfoRecordEntity);
+                    log.error("【重发】请求免税mall创建订单接口失败!响应:{}", responseJson);
+                } else if (Objects.isNull(response)) {
                     haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
                     failedList.add(haiKongSendOrderInfoRecordEntity);
                     log.error("【重发】请求免税mall创建订单接口失败!响应:{}", responseJson);
+                } else {
+                    haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                    failedList.add(haiKongSendOrderInfoRecordEntity);
+                    log.error("【重发】请求免税mall创建订单接口失败!响应:{}", responseJson);
                 }
             } catch (Exception e) {
-                haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
+                haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
                 failedList.add(haiKongSendOrderInfoRecordEntity);
                 log.error("【重发】请求免税mall创建订单接口失败!异常:", e);
             }

+ 24 - 12
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -2824,18 +2824,26 @@ public class OrderServiceImpl implements OrderService {
 
             Response<String> r = JacksonUtil.fromListJson(response, new TypeReference<Response<String>>() {});
 
-            if (Objects.nonNull(r) && !"failure".equals(r.getResult())) {
+            if (Objects.nonNull(r) && ErrorCodeConstants.VmcShopSysErrorCodeEnum.CODE_0.getCode().equals(r.getCode())) {
                 pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_0.getStatus());
-                haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
                 LOGGER.info("推送订单到免税mall成功!响应结果:{}", response);
-            } else {
+            } else if (Objects.nonNull(r) && ErrorCodeConstants.VmcShopSysErrorCodeEnum.CODE_10500.getCode().equals(r.getCode())) {
+                pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
+                haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
+            } else if (Objects.isNull(r)) {
                 pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
                 haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
                 LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
+            } else {
+                pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
+                haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                LOGGER.error("推送订单到免税mall失败!响应结果:{}", response);
             }
         } catch (Exception e) {
             pickUpCodeService.updatePickUpCodeStatusByOrderSn(orderSn, Dict.PickUpCodeStatusEnum.item_6.getStatus());
-            haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
+            haiKongSendOrderInfoRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
             LOGGER.error("推送订单到免税mall失败!出现异常!", e);
         }
 
@@ -3255,18 +3263,20 @@ public class OrderServiceImpl implements OrderService {
             String memberOrderSyncResponseJson = haiKongMemberTemplate.memberOrderSync(body);
             LOGGER.info("请求会员系统同步消费订单接口!响应:{}", memberOrderSyncResponseJson);
             Response<String> response = JacksonUtil.fromListJson(memberOrderSyncResponseJson, new TypeReference<Response<String>>() {});
-            if (Objects.nonNull(response) && response.getSuccess()) {
+            if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
                 haiKongMemberOrderSyncResendEntity.setMemberSysOrderId(response.getData());
-                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
-            } else {
+                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
+            } else if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_500.getCode().equals(response.getCode())) {
                 haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
+            } else {
+                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
             }
             haiKongMemberOrderSyncResendService.save(haiKongMemberOrderSyncResendEntity);
             LOGGER.info("请求会员系统同步消费订单接口成功!");
         } catch (Exception e) {
             LOGGER.error("请求会员系统同步消费订单接口出现异常!准备新增发送失败记录,等待重发!异常信息:", e);
             // 没有请求成功,写表,重发
-            haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
+            haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
             haiKongMemberOrderSyncResendService.save(haiKongMemberOrderSyncResendEntity);
         }
     }
@@ -3307,19 +3317,21 @@ public class OrderServiceImpl implements OrderService {
             String changeMemberScoreResponseJson = haiKongMemberTemplate.changeMemberScore(body);
             LOGGER.info("请求会员系统积分变动接口!响应数据:{}", changeMemberScoreResponseJson);
             Response<MemberScoreChangeResponseDTO> response = JacksonUtil.fromListJson(changeMemberScoreResponseJson, new TypeReference<Response<MemberScoreChangeResponseDTO>>() {});
-            if (Objects.nonNull(response) && response.getSuccess()) {
+            if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_0.getCode().equals(response.getCode())) {
                 MemberScoreChangeResponseDTO responseData = response.getData();
                 haiKongMemberScoreChangeRecordEntity.setStatementId(responseData.getStatementId());
-                haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
-            } else {
+                haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_SUCCESS.getStatus());
+            } else if (Objects.nonNull(response) && ErrorCodeConstants.MemberSysErrorCodeEnum.CODE_500.getCode().equals(response.getCode())) {
                 haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
+            } else {
+                haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
             }
             haiKongMemberScoreChangeRecordService.save(haiKongMemberScoreChangeRecordEntity);
             LOGGER.info("请求会员系统积分变动接口成功!");
         } catch (Exception e) {
             LOGGER.error("请求会员系统积分变动接口出现异常!准备新增发送失败记录,等待重发!异常信息:", e);
             // 失败重发
-            haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
+            haiKongMemberScoreChangeRecordEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
             haiKongMemberScoreChangeRecordService.save(haiKongMemberScoreChangeRecordEntity);
         }
         LOGGER.info("保存会员系统积分变动详情记录中......");