1
0
qng преди 3 години
родител
ревизия
489c2ec558

+ 1 - 7
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -340,11 +340,6 @@ public class OrderController {
         return R.ok().put("ticket", map);
     }
 
-
-
-
-
-
     /**
      * 订单取消请求
      */
@@ -1096,9 +1091,8 @@ public class OrderController {
         } catch (Exception e) {
             e.printStackTrace();
             logger.error("[orderHkRefund-----海控退款异常]"+orderInfo.getOrderSn(),e);
+            return R.error(500,"退款失败");
         }
-        return R.ok();
-
     }
 
     @RequestMapping("/resendOrderToCCNET/{orderSn}/{resendType}")

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.dao.haikong;
 
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -27,4 +28,6 @@ public interface HaiKongMemberScoreChangeRecordDao {
     void deleteByOutBizNo(@Param("outBizNo") String outBizNo);
 
     void deleteBatchByOutBizNo(List<String> outBizNos);
+
+    IntegralGoBackEntity queryIntegralGoBack(String orderSn);
 }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/MngChangeEntity.java

@@ -80,6 +80,8 @@ public class MngChangeEntity implements Serializable {
     private String merchName;
 
     private String thirdPartyMerchName;
+    //订单编号
+    private String orderSn;
 
     public String getGoodsName() {
         return goodsName;
@@ -300,4 +302,12 @@ public class MngChangeEntity implements Serializable {
     public Date getTstm() {
         return tstm;
     }
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
 }

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/StoreMngChangeEntity.java

@@ -81,6 +81,8 @@ public class StoreMngChangeEntity implements Serializable {
     private String merchName;
 
     private String storeName;
+    //订单编号
+    private String orderSn;
 
     public String getGoodsName() {
         return goodsName;
@@ -301,4 +303,12 @@ public class StoreMngChangeEntity implements Serializable {
     public Date getTstm() {
         return tstm;
     }
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
 }

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/haikong/IntegralGoBackEntity.java

@@ -0,0 +1,30 @@
+package com.kmall.admin.entity.haikong;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 积分全量回退实体类
+ */
+@Data
+public class IntegralGoBackEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 会员唯一标识或者电话
+     */
+    private String open_id;
+    /**
+     * 积分变动流水Id
+     */
+    private String statement_id;
+    /**
+     * 回退积分数量
+     */
+    private String rollback_score;
+    /**
+     * 渠道自定义积分变动唯一标识,用于平台幂等性保证
+     */
+    private String change_id;
+}

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeRecordService.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.service.haikong;
 
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -26,4 +27,6 @@ public interface HaiKongMemberScoreChangeRecordService {
     void deleteByOutBizNo(String outBizNo);
 
     void deleteBatchByOutBizNo(List<String> outBizNos);
+
+    IntegralGoBackEntity queryIntegralGoBack(String orderSn);
 }

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

@@ -11,6 +11,7 @@ import com.google.gson.internal.LinkedTreeMap;
 import com.kmall.admin.biz.CustomsClearanceTimeliness;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.dao.alarm.Mall2LowPriceWarningDao;
+import com.kmall.admin.dao.haikong.HaiKongMemberScoreChangeRecordDao;
 import com.kmall.admin.dao.mk.Mk2GoodsTopicPriceDao;
 import com.kmall.admin.dao.mk.Mk2MemberBirthdayDao;
 import com.kmall.admin.dao.mk.store.MkStorePromOrderRealDao;
@@ -23,6 +24,7 @@ import com.kmall.admin.dto.*;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import com.kmall.admin.entity.mk.MkActivitiesEntity;
 import com.kmall.admin.entity.mk.store.MkStorePromOrderRealEntity;
 import com.kmall.admin.entity.record.NewRetailOrderRestoreStockRecordEntity;
@@ -989,7 +991,7 @@ public class OrderServiceImpl implements OrderService {
      * @param orderGoodsEntity
      * @param user
      */
-    private void resetGoodsStockHkMall(Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
+    private void resetGoodsStockHkMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
                                  OrderGoodsEntity orderGoodsEntity,SysUserEntity user) {
         GoodsEntity goodsEntity = goodsDao.queryObject(storeRelaEntity.getGoodsId());
         if (goodsEntity != null) {
@@ -1003,6 +1005,7 @@ public class OrderServiceImpl implements OrderService {
             }
 
             MngChangeEntity mngChangeEntity = new MngChangeEntity();
+            mngChangeEntity.setOrderSn(order.getOrderSn());
             mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goodsEntity.getId())));
             mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
             mngChangeEntity.setChangeReason("收银端退款");
@@ -1069,13 +1072,13 @@ public class OrderServiceImpl implements OrderService {
      * @param sellVolume
      * @param user
      */
-    private void resetStoreGoodsStockMall(Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
+    private void resetStoreGoodsStockMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
                                       OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
         storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
         //库存数量 + 商品数量
         storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
         //待退款数量 - 商品数量
-        storeRelaEntity.setToBeRestored(storeRelaEntity.getToBeRestored() - orderGoodsEntity.getNumber());
+        //storeRelaEntity.setToBeRestored(storeRelaEntity.getToBeRestored() - orderGoodsEntity.getNumber());
         productStoreRelaDao.update(storeRelaEntity);
 
         String username = "system";
@@ -1083,6 +1086,7 @@ public class OrderServiceImpl implements OrderService {
             username = user.getUsername();
         }
         StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+        storeMngChangeEntity.setOrderSn(order.getOrderSn());
         storeMngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
         storeMngChangeEntity.setChangeReason("前端退款");
         storeMngChangeEntity.setGoodsId(storeRelaEntity.getGoodsId().intValue());
@@ -3265,6 +3269,7 @@ public class OrderServiceImpl implements OrderService {
             //还原库存,调用免税mall接口退款和积分回退接口
             restoreInventoryMsMall(order);
         }
+        int ss = 1/0;
         return R.ok("退款成功");
     }
 
@@ -3326,17 +3331,18 @@ public class OrderServiceImpl implements OrderService {
             GoodsEntity goodsEntity = goodsDao.queryObject(orderGoodsEntity.getGoodsId());
             if (goodsEntity != null) {
                 //还原商户商品总库存
-                resetGoodsStockHkMall(goodsEntity.getGoodsNumber(), storeRelaEntity, orderGoodsEntity, user);
+                resetGoodsStockHkMall(order,goodsEntity.getGoodsNumber(), storeRelaEntity, orderGoodsEntity, user);
             }
             //还原门店库存
             if (null != storeRelaEntity.getStockNum()) {
-                resetStoreGoodsStockMall(storeRelaEntity.getStockNum(), storeRelaEntity, orderGoodsEntity, sellVolume, user);
+                resetStoreGoodsStockMall(order,storeRelaEntity.getStockNum(), storeRelaEntity, orderGoodsEntity, sellVolume, user);
             }
         }
         //调用免税mall接口
         vmcShopMall(order);
         //调用会员系统积分回退接口
-        haiKongMemberTemplate.rollbackMemberScore(JSON.toJSONString(order));
+        IntegralGoBackEntity changeRecordEntity = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
+        haiKongMemberTemplate.rollbackMemberScore(JSON.toJSONString(changeRecordEntity));
     }
 
     /**

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java

@@ -2,6 +2,7 @@ package com.kmall.admin.service.impl.haikong;
 
 import com.kmall.admin.dao.haikong.HaiKongMemberScoreChangeRecordDao;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -58,4 +59,9 @@ public class HaiKongMemberScoreChangeRecordServiceImpl implements HaiKongMemberS
     public void deleteBatchByOutBizNo(List<String> outBizNos) {
         haiKongMemberScoreChangeRecordDao.deleteBatchByOutBizNo(outBizNos);
     }
+
+    @Override
+    public IntegralGoBackEntity queryIntegralGoBack(String orderSn) {
+        return haiKongMemberScoreChangeRecordDao.queryIntegralGoBack(orderSn);
+    }
 }

+ 4 - 2
kmall-admin/src/main/resources/mybatis/mapper/MngChangeDao.xml

@@ -152,7 +152,8 @@
 			`create_time`,
 			`moder_sn`,
 			`mod_time`,
-			`tstm`)
+			`tstm`,
+			order_sn)
 		values(
 			#{changeNum},
 			#{originalNum},
@@ -167,7 +168,8 @@
 			#{createTime},
 			#{moderSn},
 			#{modTime},
-			#{tstm})
+			#{tstm},
+			#{orderSn})
 	</insert>
 
 	<update id="update" parameterType="com.kmall.admin.entity.MngChangeEntity">

+ 4 - 2
kmall-admin/src/main/resources/mybatis/mapper/StoreMngChangeDao.xml

@@ -151,7 +151,8 @@
 			`create_time`,
 			`moder_sn`,
 			`mod_time`,
-			`tstm`)
+			`tstm`,
+			order_sn))
 		values(
 			#{storeChangeNum},
 			#{storeOriginalNum},
@@ -166,7 +167,8 @@
 			#{createTime},
 			#{moderSn},
 			#{modTime},
-			#{tstm})
+			#{tstm},
+			#{orderSn})
 	</insert>
 
 	<update id="update" parameterType="com.kmall.admin.entity.StoreMngChangeEntity">

+ 11 - 0
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeRecordDao.xml

@@ -86,4 +86,15 @@
         </foreach>
     </delete>
 
+    <select id="queryIntegralGoBack" resultType="com.kmall.admin.entity.haikong.IntegralGoBackEntity">
+        SELECT
+            open_id,
+            score as rollback_score,
+            statement_id,
+            change_id
+        FROM
+	        haikong_member_score_change_record
+        where out_biz_no = #{orderSn}
+    </select>
+
 </mapper>