Forráskód Böngészése

Merge branch 'master' of zyh/kmall-haikong into master

张永豪 3 éve
szülő
commit
06ca188b47

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderGoodsEntity.java

@@ -81,6 +81,21 @@ public class OrderGoodsEntity implements Serializable {
 	 */
 	private Integer deductionScore;
 
+
+	/**
+	 * 积分抵扣金额
+	 */
+	private BigDecimal deductionPrice;
+
+
+	public BigDecimal getDeductionPrice() {
+		return deductionPrice;
+	}
+
+	public void setDeductionPrice(BigDecimal deductionPrice) {
+		this.deductionPrice = deductionPrice;
+	}
+
 	public String getPlu() {
 		return plu;
 	}

+ 14 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/haikong/HaiKongMemberOrderSyncResendEntity.java

@@ -62,6 +62,20 @@ public class HaiKongMemberOrderSyncResendEntity {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
     private Date createTime;
 
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    public Long getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Long orderId) {
+        this.orderId = orderId;
+    }
+
     public Integer getId() {
         return id;
     }

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/haikong/dto/MemberOrderInfoSyncDTO.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 会员消费订单同步接口
@@ -63,6 +64,20 @@ public class MemberOrderInfoSyncDTO implements Serializable {
     @JsonProperty("order_score")
     private Integer orderScore;
 
+    /**
+     * 订单中的商品明细集合
+     */
+    @JsonProperty("item_info_list")
+    private List itemInfoList;
+
+    public List getItemInfoList() {
+        return itemInfoList;
+    }
+
+    public void setItemInfoList(List itemInfoList) {
+        this.itemInfoList = itemInfoList;
+    }
+
     public Long getStoreId() {
         return storeId;
     }

+ 30 - 5
kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberOrderSyncResendTask.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.haikong.task;
 
 import com.fasterxml.jackson.core.type.TypeReference;
+import com.kmall.admin.entity.OrderGoodsEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 import com.kmall.admin.haikong.client.HaiKongMemberTemplate;
@@ -10,6 +11,7 @@ import com.kmall.admin.haikong.dto.MemberOrderInfoSyncDTO;
 import com.kmall.admin.haikong.dto.MemberScoreChangeDTO;
 import com.kmall.admin.haikong.dto.MemberScoreChangeResponseDTO;
 import com.kmall.admin.haikong.utils.Response;
+import com.kmall.admin.service.OrderGoodsService;
 import com.kmall.admin.service.haikong.HaiKongMemberOrderSyncResendService;
 import com.kmall.admin.utils.jackson.JacksonUtil;
 import org.slf4j.Logger;
@@ -20,10 +22,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * 重发会员消费订单同步定时任务
@@ -39,6 +38,9 @@ public class MemberOrderSyncResendTask {
     private HaiKongMemberTemplate haiKongMemberTemplate;
 
     @Autowired
+    private OrderGoodsService orderGoodsService;
+
+    @Autowired
     private HaiKongMemberOrderSyncResendService haiKongMemberOrderSyncResendService;
 
     @Scheduled(cron = "0 0/2 * * * ?")
@@ -52,6 +54,27 @@ public class MemberOrderSyncResendTask {
         List<HaiKongMemberOrderSyncResendEntity> failedList = new ArrayList<>();
         haiKongMemberOrderSyncResendEntities.forEach(haiKongMemberOrderSyncResendEntity -> {
             MemberOrderInfoSyncDTO memberOrderInfoSyncDTO = new MemberOrderInfoSyncDTO();
+            //新增传给海控会员系统添加商品明细
+            HashMap<String, Object> orderIdMap = new HashMap<>();
+            orderIdMap.put("orderId",haiKongMemberOrderSyncResendEntity.getOrderId());
+            List<OrderGoodsEntity> orderGoodsEntities = orderGoodsService.queryList(orderIdMap);
+            List list = new ArrayList<Map>();
+            for (OrderGoodsEntity orderGoodsEntity : orderGoodsEntities) {
+                HashMap<Object, Object> map = new HashMap<>();
+                map.put("item_no",orderGoodsEntity.getSku());//商品编码
+                map.put("item_name",orderGoodsEntity.getGoodsName());//名称
+                map.put("item_price",orderGoodsEntity.getActualPaymentAmount());//商品实际支付金额
+                //会员系统那边开发可不传这两个字段
+//            map.put("add_score");//商品基础积分
+//            map.put("active_score",);//商品活动积分
+                map.put("use_score",orderGoodsEntity.getDeductionScore());//商品使用积分抵扣
+                map.put("deduction_money",orderGoodsEntity.getDeductionPrice());//商品积分抵扣金额
+                map.put("item_num",orderGoodsEntity.getNumber());//商品数量
+                list.add(map);
+            }
+            memberOrderInfoSyncDTO.setItemInfoList(list);
+
+
             BeanUtils.copyProperties(haiKongMemberOrderSyncResendEntity, memberOrderInfoSyncDTO);
             String body = JacksonUtil.toJson(memberOrderInfoSyncDTO);
             haiKongMemberOrderSyncResendEntity.setLastResendTime(new Date());
@@ -74,7 +97,9 @@ public class MemberOrderSyncResendTask {
                     log.error("【重发】请求会员消费订单同步接口失败!响应:{}", responseJson);
                 }
             } catch (Exception e) {
-                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+//                lhm 重发状态是修改成无需重发应修改为重发失败供定时器去重发
+//                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+                haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.RESEND_FAILED.getStatus());
                 failedList.add(haiKongMemberOrderSyncResendEntity);
                 log.error("【重发】请求会员消费订单同步接口失败!异常:", e);
             }

+ 23 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -3343,11 +3343,31 @@ public class OrderServiceImpl implements OrderService {
         memberOrderInfoSyncDTO.setConsumeDate(new Date());
         memberOrderInfoSyncDTO.setOrderAmount(order.getActual_price());
         memberOrderInfoSyncDTO.setOrderScore(deductionScore);
+
+        //新增传给海控会员系统添加商品明细
+        List<OrderGoodsEntity> orderGoodsEntities = orderGoodsDao.queryList(order.getId());
+        List list = new ArrayList<Map>();
+        for (OrderGoodsEntity orderGoodsEntity : orderGoodsEntities) {
+            HashMap<Object, Object> map = new HashMap<>();
+            map.put("item_no",orderGoodsEntity.getSku());//商品编码
+            map.put("item_name",orderGoodsEntity.getGoodsName());//名称
+            map.put("item_price",orderGoodsEntity.getActualPaymentAmount());//商品实际支付金额
+            //会员系统那边开发可不传这两个字段
+//            map.put("add_score");//商品基础积分
+//            map.put("active_score",);//商品活动积分
+            map.put("use_score",orderGoodsEntity.getDeductionScore());//商品使用积分抵扣
+            map.put("deduction_money",orderGoodsEntity.getDeductionPrice());//商品积分抵扣金额
+            map.put("item_num",orderGoodsEntity.getNumber());//商品数量
+            list.add(map);
+        }
+        memberOrderInfoSyncDTO.setItemInfoList(list);
+
         BeanUtils.copyProperties(memberOrderInfoSyncDTO, haiKongMemberOrderSyncResendEntity);
         Date date = new Date();
         haiKongMemberOrderSyncResendEntity.setCreateTime(date);
         haiKongMemberOrderSyncResendEntity.setLastResendTime(date);
         haiKongMemberOrderSyncResendEntity.setPhone(memberPhone);
+        haiKongMemberOrderSyncResendEntity.setOrderId(order.getId());
         try {
             String body = JacksonUtil.toJson(memberOrderInfoSyncDTO);
             LOGGER.info("请求会员系统同步消费订单接口!请求体:{}", body);
@@ -3368,7 +3388,9 @@ public class OrderServiceImpl implements OrderService {
         } catch (Exception e) {
             LOGGER.error("请求会员系统同步消费订单接口出现异常!准备新增发送失败记录,等待重发!异常信息:", e);
             // 没有请求成功,写表,重发
-            haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+            //lhm 重发状态是修改成无需重发应修改为等待重发供定时器去重发
+//            haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.NON_RESEND.getStatus());
+            haiKongMemberOrderSyncResendEntity.setResendStatus(HaiKongMemberOrderResendStatusEnum.WAIT_RESEND.getStatus());
             haiKongMemberOrderSyncResendService.save(haiKongMemberOrderSyncResendEntity);
         }
     }