Sfoglia il codice sorgente

Merge remote-tracking branch 'upstream/feature/退款积分回退1201' into feature/积分分摊

# Conflicts:
#	kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java
#	kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeRecordService.java
#	kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java
lhm 3 anni fa
parent
commit
98048fd8c0
31 ha cambiato i file con 1262 aggiunte e 180 eliminazioni
  1. 12 11
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  2. 7 6
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderProcessRecordExternalController.java
  3. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java
  4. 3 2
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderProcessRecordDao.java
  5. 5 0
      kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java
  6. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/MngChangeEntity.java
  7. 12 0
      kmall-admin/src/main/java/com/kmall/admin/entity/OrderProcessRecordEntity.java
  8. 1 1
      kmall-admin/src/main/java/com/kmall/admin/entity/OrderProcessRecordHkEntity.java
  9. 757 0
      kmall-admin/src/main/java/com/kmall/admin/entity/OrderProcessRecordHkNewEntity.java
  10. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/StoreMngChangeEntity.java
  11. 30 0
      kmall-admin/src/main/java/com/kmall/admin/entity/haikong/IntegralGoBackEntity.java
  12. 22 0
      kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2PointsRulesEntity.java
  13. 17 0
      kmall-admin/src/main/java/com/kmall/admin/haikong/client/HaiKongMemberTemplate.java
  14. 26 26
      kmall-admin/src/main/java/com/kmall/admin/haikong/client/VmcShopTemplate.java
  15. 1 1
      kmall-admin/src/main/java/com/kmall/admin/haikong/config/HaiKongConfig.java
  16. 9 6
      kmall-admin/src/main/java/com/kmall/admin/haikong/utils/Message.java
  17. 2 1
      kmall-admin/src/main/java/com/kmall/admin/service/OrderProcessRecordService.java
  18. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java
  19. 4 0
      kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeRecordService.java
  20. 27 9
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderProcessRecordServiceImpl.java
  21. 97 43
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  22. 6 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java
  23. 4 2
      kmall-admin/src/main/resources/mybatis/mapper/MngChangeDao.xml
  24. 124 26
      kmall-admin/src/main/resources/mybatis/mapper/OrderProcessRecordDao.xml
  25. 4 2
      kmall-admin/src/main/resources/mybatis/mapper/StoreMngChangeDao.xml
  26. 11 0
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeRecordDao.xml
  27. 6 1
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  28. 20 13
      kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html
  29. 12 5
      kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2pointsrules.html
  30. 6 13
      kmall-admin/src/main/webapp/js/sale/sale.js
  31. 15 10
      kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js

+ 12 - 11
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -302,10 +302,17 @@ public class OrderController {
 
 
     @RequestMapping("/printMsgAndChangeCode")
     @RequestMapping("/printMsgAndChangeCode")
     public R printMsgAndChangeCode(@RequestBody Map param) {
     public R printMsgAndChangeCode(@RequestBody Map param) {
-        Integer id = (Integer) param.get("id");
-        String sessionId = (String) param.get("sessionId");
-        Ticket ticket = orderService.printMsg(id.longValue(),sessionId);
+        Ticket ticket = null;
+        try{
+            Integer id = (Integer) param.get("id");
+            String sessionId = (String) param.get("sessionId");
+             ticket = orderService.printMsg(id.longValue(),sessionId);
+            return R.ok().put("ticket", ticket);
+        }catch (Exception e){
+            logger.error("[printMsgAndChangeCode-----核销小票打印失败]",e);
+        }
         return R.ok().put("ticket", ticket);
         return R.ok().put("ticket", ticket);
+
     }
     }
 
 
     /**
     /**
@@ -333,11 +340,6 @@ public class OrderController {
         return R.ok().put("ticket", map);
         return R.ok().put("ticket", map);
     }
     }
 
 
-
-
-
-
-
     /**
     /**
      * 订单取消请求
      * 订单取消请求
      */
      */
@@ -1088,10 +1090,9 @@ public class OrderController {
             return orderService.orderRefund(orderInfo,sessionId,user);
             return orderService.orderRefund(orderInfo,sessionId,user);
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
-            logger.error("[海控退款异常]"+orderInfo.getOrderSn());
+            logger.error("[orderHkRefund-----海控退款异常]"+orderInfo.getOrderSn(),e);
+            return R.error(500,"退款失败");
         }
         }
-        return R.ok();
-
     }
     }
 
 
     @RequestMapping("/resendOrderToCCNET/{orderSn}/{resendType}")
     @RequestMapping("/resendOrderToCCNET/{orderSn}/{resendType}")

+ 7 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/OrderProcessRecordExternalController.java

@@ -3,6 +3,7 @@ package com.kmall.admin.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.kmall.admin.entity.OrderProcessRecordEntity;
 import com.kmall.admin.entity.OrderProcessRecordEntity;
 import com.kmall.admin.entity.OrderProcessRecordHkEntity;
 import com.kmall.admin.entity.OrderProcessRecordHkEntity;
+import com.kmall.admin.entity.OrderProcessRecordHkNewEntity;
 import com.kmall.admin.fromcomm.service.SysConfigService;
 import com.kmall.admin.fromcomm.service.SysConfigService;
 import com.kmall.admin.haikong.utils.Message;
 import com.kmall.admin.haikong.utils.Message;
 import com.kmall.admin.haikong.utils.OutRequestMessage;
 import com.kmall.admin.haikong.utils.OutRequestMessage;
@@ -50,14 +51,14 @@ public class OrderProcessRecordExternalController {
             String key = sysConfigService.getValueHk("HK_NOTICE_KEY");
             String key = sysConfigService.getValueHk("HK_NOTICE_KEY");
             Integer dataNum = Integer.valueOf(sysConfigService.getValueHk("HK_NOTICE_NUM"));
             Integer dataNum = Integer.valueOf(sysConfigService.getValueHk("HK_NOTICE_NUM"));
             if(strSign.equals("")||timestamp.equals("")){
             if(strSign.equals("")||timestamp.equals("")){
-                return Message.success(false,"参数错误");
+                return Message.error("参数错误");
             }
             }
             if(!strSign.equals(checkMsg(timestamp,key))){
             if(!strSign.equals(checkMsg(timestamp,key))){
-                return Message.success(false,"签名错误");
+                return Message.error("签名错误");
             }
             }
-            List<OrderProcessRecordEntity> orderProcessRecordList = orderProcessRecordHkEntity.getRecordHkList();
+            List<OrderProcessRecordHkNewEntity> orderProcessRecordList = orderProcessRecordHkEntity.getRecordHkList();
             if(orderProcessRecordList.size()>dataNum){
             if(orderProcessRecordList.size()>dataNum){
-                return Message.success(false,"通知数据最多"+dataNum+"条,请分批通知");
+                return Message.error("通知数据最多"+dataNum+"条,请分批通知");
             }
             }
             // 根据指定属性分组,并统计数量(key:指定属性,value:数量)
             // 根据指定属性分组,并统计数量(key:指定属性,value:数量)
             Map<Object, Long> mapGroup = orderProcessRecordList.stream().collect(Collectors.groupingBy(recordEntity -> recordEntity.getOrderSn(), Collectors.counting()));
             Map<Object, Long> mapGroup = orderProcessRecordList.stream().collect(Collectors.groupingBy(recordEntity -> recordEntity.getOrderSn(), Collectors.counting()));
@@ -65,12 +66,12 @@ public class OrderProcessRecordExternalController {
             Stream<Object> stringStream = mapGroup.entrySet().stream().filter(entry -> entry.getValue() > 1).map(entry -> entry.getKey());
             Stream<Object> stringStream = mapGroup.entrySet().stream().filter(entry -> entry.getValue() > 1).map(entry -> entry.getKey());
             Long num = stringStream.count();
             Long num = stringStream.count();
             if(num>0L){
             if(num>0L){
-                return Message.success(false,"订单数据存在重复");
+                return Message.error("订单数据存在重复");
             }
             }
             return orderProcessRecordService.saveHkNoticeMsg(orderProcessRecordList);
             return orderProcessRecordService.saveHkNoticeMsg(orderProcessRecordList);
         }catch (Exception e){
         }catch (Exception e){
             logger.error("hknoticeMsg---订单流转信息回调通知接口数据="+ JSON.toJSONString(outRequestMessage),e);
             logger.error("hknoticeMsg---订单流转信息回调通知接口数据="+ JSON.toJSONString(outRequestMessage),e);
-            return Message.success(false,"参数错误");
+            return Message.error("参数错误");
         }
         }
     }
     }
 
 

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java

@@ -60,7 +60,7 @@ public class Mall2PointsRulesController {
     @ResponseBody
     @ResponseBody
     public R info(@PathVariable("mprId") Integer mprId) {
     public R info(@PathVariable("mprId") Integer mprId) {
         Mall2PointsRulesEntity mall2PointsRules = mall2PointsRulesService.queryObject(mprId);
         Mall2PointsRulesEntity mall2PointsRules = mall2PointsRulesService.queryObject(mprId);
-
+        mall2PointsRules.setPointsTypeStr(mall2PointsRules.getPointsType()+"");
         return R.ok().put("mall2PointsRules", mall2PointsRules);
         return R.ok().put("mall2PointsRules", mall2PointsRules);
     }
     }
 
 

+ 3 - 2
kmall-admin/src/main/java/com/kmall/admin/dao/OrderProcessRecordDao.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.dao;
 package com.kmall.admin.dao;
 
 
 import com.kmall.admin.entity.OrderProcessRecordEntity;
 import com.kmall.admin.entity.OrderProcessRecordEntity;
+import com.kmall.admin.entity.OrderProcessRecordHkNewEntity;
 import com.kmall.manager.dao.BaseDao;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -19,7 +20,7 @@ public interface OrderProcessRecordDao extends BaseDao<OrderProcessRecordEntity>
 
 
     List<OrderProcessRecordEntity> queryListBySendSmsStatus(@Param("customsSendSmsStatus") String customsSendSmsStatus);
     List<OrderProcessRecordEntity> queryListBySendSmsStatus(@Param("customsSendSmsStatus") String customsSendSmsStatus);
 
 
-    void updateHkNoticeMsg(List<OrderProcessRecordEntity> orderProcessRecordList);
+    void updateHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
 
 
-    Integer queryHkOrderTotal(List<OrderProcessRecordEntity> orderProcessRecordList);
+    Integer queryHkOrderTotal(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
 }
 }

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

@@ -1,6 +1,7 @@
 package com.kmall.admin.dao.haikong;
 package com.kmall.admin.dao.haikong;
 
 
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
@@ -28,10 +29,14 @@ public interface HaiKongMemberScoreChangeRecordDao {
 
 
     void deleteBatchByOutBizNo(List<String> outBizNos);
     void deleteBatchByOutBizNo(List<String> outBizNos);
 
 
+    IntegralGoBackEntity queryIntegralGoBack(String orderSn);
+
+
     List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus();
     List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus();
 
 
     /**
     /**
      * 批量更新重发状态
      * 批量更新重发状态
      */
      */
     void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities);
     void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities);
+
 }
 }

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

+ 12 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderProcessRecordEntity.java

@@ -210,6 +210,10 @@ public class OrderProcessRecordEntity implements Serializable {
      * 海关清关类型 ,1:放行:2:查验;3:清关失败; 4:其他
      * 海关清关类型 ,1:放行:2:查验;3:清关失败; 4:其他
      */
      */
     private String clearType;
     private String clearType;
+    /**
+     *海关清关结果
+     */
+    private String clearMsg;
 
 
     public String getCustomsSendSmsStatus() {
     public String getCustomsSendSmsStatus() {
         return customsSendSmsStatus;
         return customsSendSmsStatus;
@@ -741,4 +745,12 @@ public class OrderProcessRecordEntity implements Serializable {
     public void setClearType(String clearType) {
     public void setClearType(String clearType) {
         this.clearType = clearType;
         this.clearType = clearType;
     }
     }
+
+    public String getClearMsg() {
+        return clearMsg;
+    }
+
+    public void setClearMsg(String clearMsg) {
+        this.clearMsg = clearMsg;
+    }
 }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/entity/OrderProcessRecordHkEntity.java

@@ -10,5 +10,5 @@ public class OrderProcessRecordHkEntity implements Serializable{
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
-    List<OrderProcessRecordEntity> recordHkList;
+    List<OrderProcessRecordHkNewEntity> recordHkList;
 }
 }

+ 757 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderProcessRecordHkNewEntity.java

@@ -0,0 +1,757 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 订单流转过程记录表实体
+ * 表名 mall_order_process_record
+ *
+ * @author huangyq
+ * @email admin@qhdswl.com
+ * @date 2018-10-30 17:05:03
+ */
+public class OrderProcessRecordHkNewEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 订单编号
+     */
+    private String orderSn;
+    /**
+     * 用户编号
+     */
+    private Integer userId;
+    /**
+     * 订单业务类型:00:保税备货, 02:保税展示补货,10:保税展示跨境,11:普通商品
+     */
+    private String orderBizType;
+    /**
+     * 下单开始时间
+     */
+    private Date addOrderStartTime;
+    /**
+     * 下单成功时间
+     */
+    private Date addOrderSuccTime;
+    /**
+     * 下单发送状态 0:失败;1:成功
+     */
+    private String isAddOrderSend;
+    /**
+     * 支付开始时间
+     */
+    private Date payStartTime;
+    /**
+     * 支付成功时间
+     */
+    private Date paySuccTime;
+    /**
+     * 支付单开始时间
+     */
+    private Date paymentStartTime;
+    /**
+     * 支付单成功时间
+     */
+    private Date paymentSuccTime;
+    /**
+     * 支付单状态 0:失败;1:成功;2:支付单单申报中
+     */
+    private String isPaymentSend;
+    /**
+     * 电子订单开始时间
+     */
+    private Date eleOrderStartTime;
+    /**
+     * 电子订单成功时间
+     */
+    private Date eleOrderSuccTime;
+    /**
+     * 电子订单状态 0:失败;1:成功;2:电子订单申报中
+     */
+    private String isEleOrderSend;
+    /**
+     * 运单开始时间
+     */
+    private Date waybillStartTime;
+    /**
+     * 运单成功时间
+     */
+    private Date waybillSuccTime;
+    /**
+     * 运单编号
+     */
+    private String logisticsNo;
+    /**
+     * 清单开始时间
+     */
+    private Date customsStartTime;
+
+    /**
+     * 清单成功时间string
+     */
+    private String customsSuccTime;
+    /**
+     * 清单编号
+     */
+    private String invtNo;
+    /**
+     * 清关状态 0:失败;1:成功;2:清关中
+     */
+    private String isCustomsSend;
+    /**
+     * 出货开始时间
+     */
+    private Date shipmentStartTime;
+    /**
+     * 出货成功时间
+     */
+    private Date shipmentSuccTime;
+    /**
+     * 订单流转信息
+     */
+    private String processContent;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    private String payTransactionId;
+
+    /**
+     * 下单开始时间
+     */
+    private String addOrderStartTimeStr;
+    /**
+     * 下单成功时间
+     */
+    private String addOrderSuccTimeStr;
+    /**
+     * 支付开始时间
+     */
+    private String payStartTimeStr;
+    /**
+     * 支付成功时间
+     */
+    private String paySuccTimeStr;
+    /**
+     * 支付单开始时间
+     */
+    private String paymentStartTimeStr;
+    /**
+     * 支付单成功时间
+     */
+    private String paymentSuccTimeStr;
+    /**
+     * 电子订单开始时间
+     */
+    private String eleOrderStartTimeStr;
+    /**
+     * 电子订单成功时间
+     */
+    private String eleOrderSuccTimeStr;
+    /**
+     * 运单开始时间
+     */
+    private String waybillStartTimeStr;
+    /**
+     * 运单成功时间
+     */
+    private String waybillSuccTimeStr;
+    /**
+     * 清单开始时间
+     */
+    private String customsStartTimeStr;
+    /**
+     * 清单成功时间
+     */
+    private String customsSuccTimeStr;
+    /**
+     * 出货开始时间
+     */
+    private String shipmentStartTimeStr;
+    /**
+     * 出货成功时间
+     */
+    private String shipmentSuccTimeStr;
+
+    private String payMobile;
+
+
+    private String customsSendSmsStatus;
+    /**
+     * 订单申报时间
+     */
+    private Date orderDeclarationTime;
+    /**
+     * 订单申报状态
+     */
+    private String orderDeclareStatus;
+    /**
+     * 快递公司简称
+     */
+    private String shippingCode;
+    /**
+     * 快递公司名称
+     */
+    private String shippingName;
+    /**
+     * 运单申报时间String
+     */
+    private String ewbStartTime;
+    /**
+     * 清单编号
+     */
+    private String clearNo;
+    /**
+     * 海关清关类型 ,1:放行:2:查验;3:清关失败; 4:其他
+     */
+    private String clearType;
+    /**
+     *海关清关结果
+     */
+    private String clearMsg;
+
+    public String getCustomsSendSmsStatus() {
+        return customsSendSmsStatus;
+    }
+
+    public void setCustomsSendSmsStatus(String customsSendSmsStatus) {
+        this.customsSendSmsStatus = customsSendSmsStatus;
+    }
+
+    public String getPayMobile() {
+        return payMobile;
+    }
+
+    public void setPayMobile(String payMobile) {
+        this.payMobile = payMobile;
+    }
+
+    public String getPayTransactionId() {
+        return payTransactionId;
+    }
+
+    public void setPayTransactionId(String payTransactionId) {
+        this.payTransactionId = payTransactionId;
+    }
+
+    public String getAddOrderStartTimeStr() {
+        return addOrderStartTimeStr;
+    }
+
+    public void setAddOrderStartTimeStr(String addOrderStartTimeStr) {
+        this.addOrderStartTimeStr = addOrderStartTimeStr;
+    }
+
+    public String getAddOrderSuccTimeStr() {
+        return addOrderSuccTimeStr;
+    }
+
+    public void setAddOrderSuccTimeStr(String addOrderSuccTimeStr) {
+        this.addOrderSuccTimeStr = addOrderSuccTimeStr;
+    }
+
+    public String getPayStartTimeStr() {
+        return payStartTimeStr;
+    }
+
+    public void setPayStartTimeStr(String payStartTimeStr) {
+        this.payStartTimeStr = payStartTimeStr;
+    }
+
+    public String getPaySuccTimeStr() {
+        return paySuccTimeStr;
+    }
+
+    public void setPaySuccTimeStr(String paySuccTimeStr) {
+        this.paySuccTimeStr = paySuccTimeStr;
+    }
+
+    public String getPaymentStartTimeStr() {
+        return paymentStartTimeStr;
+    }
+
+    public void setPaymentStartTimeStr(String paymentStartTimeStr) {
+        this.paymentStartTimeStr = paymentStartTimeStr;
+    }
+
+    public String getPaymentSuccTimeStr() {
+        return paymentSuccTimeStr;
+    }
+
+    public void setPaymentSuccTimeStr(String paymentSuccTimeStr) {
+        this.paymentSuccTimeStr = paymentSuccTimeStr;
+    }
+
+    public String getEleOrderStartTimeStr() {
+        return eleOrderStartTimeStr;
+    }
+
+    public void setEleOrderStartTimeStr(String eleOrderStartTimeStr) {
+        this.eleOrderStartTimeStr = eleOrderStartTimeStr;
+    }
+
+    public String getEleOrderSuccTimeStr() {
+        return eleOrderSuccTimeStr;
+    }
+
+    public void setEleOrderSuccTimeStr(String eleOrderSuccTimeStr) {
+        this.eleOrderSuccTimeStr = eleOrderSuccTimeStr;
+    }
+
+    public String getWaybillStartTimeStr() {
+        return waybillStartTimeStr;
+    }
+
+    public void setWaybillStartTimeStr(String waybillStartTimeStr) {
+        this.waybillStartTimeStr = waybillStartTimeStr;
+    }
+
+    public String getWaybillSuccTimeStr() {
+        return waybillSuccTimeStr;
+    }
+
+    public void setWaybillSuccTimeStr(String waybillSuccTimeStr) {
+        this.waybillSuccTimeStr = waybillSuccTimeStr;
+    }
+
+    public String getCustomsStartTimeStr() {
+        return customsStartTimeStr;
+    }
+
+    public void setCustomsStartTimeStr(String customsStartTimeStr) {
+        this.customsStartTimeStr = customsStartTimeStr;
+    }
+
+    public String getCustomsSuccTimeStr() {
+        return customsSuccTimeStr;
+    }
+
+    public void setCustomsSuccTimeStr(String customsSuccTimeStr) {
+        this.customsSuccTimeStr = customsSuccTimeStr;
+    }
+
+    public String getShipmentStartTimeStr() {
+        return shipmentStartTimeStr;
+    }
+
+    public void setShipmentStartTimeStr(String shipmentStartTimeStr) {
+        this.shipmentStartTimeStr = shipmentStartTimeStr;
+    }
+
+    public String getShipmentSuccTimeStr() {
+        return shipmentSuccTimeStr;
+    }
+
+    public void setShipmentSuccTimeStr(String shipmentSuccTimeStr) {
+        this.shipmentSuccTimeStr = shipmentSuccTimeStr;
+    }
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:订单编号
+     */
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    /**
+     * 获取:订单编号
+     */
+    public String getOrderSn() {
+        return orderSn;
+    }
+    /**
+     * 设置:用户编号
+     */
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    /**
+     * 获取:用户编号
+     */
+    public Integer getUserId() {
+        return userId;
+    }
+    /**
+     * 设置:订单业务类型:00:保税备货, 02:保税展示补货,10:保税展示跨境,11:普通商品
+     */
+    public void setOrderBizType(String orderBizType) {
+        this.orderBizType = orderBizType;
+    }
+
+    /**
+     * 获取:订单业务类型:00:保税备货, 02:保税展示补货,10:保税展示跨境,11:普通商品
+     */
+    public String getOrderBizType() {
+        return orderBizType;
+    }
+    /**
+     * 设置:下单开始时间
+     */
+    public void setAddOrderStartTime(Date addOrderStartTime) {
+        this.addOrderStartTime = addOrderStartTime;
+    }
+
+    /**
+     * 获取:下单开始时间
+     */
+    public Date getAddOrderStartTime() {
+        return addOrderStartTime;
+    }
+    /**
+     * 设置:下单成功时间
+     */
+    public void setAddOrderSuccTime(Date addOrderSuccTime) {
+        this.addOrderSuccTime = addOrderSuccTime;
+    }
+
+    /**
+     * 获取:下单成功时间
+     */
+    public Date getAddOrderSuccTime() {
+        return addOrderSuccTime;
+    }
+    /**
+     * 设置:下单发送状态 0:失败;1:成功
+     */
+    public void setIsAddOrderSend(String isAddOrderSend) {
+        this.isAddOrderSend = isAddOrderSend;
+    }
+
+    /**
+     * 获取:下单发送状态 0:失败;1:成功
+     */
+    public String getIsAddOrderSend() {
+        return isAddOrderSend;
+    }
+    /**
+     * 设置:支付开始时间
+     */
+    public void setPayStartTime(Date payStartTime) {
+        this.payStartTime = payStartTime;
+    }
+
+    /**
+     * 获取:支付开始时间
+     */
+    public Date getPayStartTime() {
+        return payStartTime;
+    }
+    /**
+     * 设置:支付成功时间
+     */
+    public void setPaySuccTime(Date paySuccTime) {
+        this.paySuccTime = paySuccTime;
+    }
+
+    /**
+     * 获取:支付成功时间
+     */
+    public Date getPaySuccTime() {
+        return paySuccTime;
+    }
+    /**
+     * 设置:支付单开始时间
+     */
+    public void setPaymentStartTime(Date paymentStartTime) {
+        this.paymentStartTime = paymentStartTime;
+    }
+
+    /**
+     * 获取:支付单开始时间
+     */
+    public Date getPaymentStartTime() {
+        return paymentStartTime;
+    }
+    /**
+     * 设置:支付单成功时间
+     */
+    public void setPaymentSuccTime(Date paymentSuccTime) {
+        this.paymentSuccTime = paymentSuccTime;
+    }
+
+    /**
+     * 获取:支付单成功时间
+     */
+    public Date getPaymentSuccTime() {
+        return paymentSuccTime;
+    }
+    /**
+     * 设置:支付单状态 0:失败;1:成功;2:支付单单申报中
+     */
+    public void setIsPaymentSend(String isPaymentSend) {
+        this.isPaymentSend = isPaymentSend;
+    }
+
+    /**
+     * 获取:支付单状态 0:失败;1:成功;2:支付单单申报中
+     */
+    public String getIsPaymentSend() {
+        return isPaymentSend;
+    }
+    /**
+     * 设置:电子订单开始时间
+     */
+    public void setEleOrderStartTime(Date eleOrderStartTime) {
+        this.eleOrderStartTime = eleOrderStartTime;
+    }
+
+    /**
+     * 获取:电子订单开始时间
+     */
+    public Date getEleOrderStartTime() {
+        return eleOrderStartTime;
+    }
+    /**
+     * 设置:电子订单成功时间
+     */
+    public void setEleOrderSuccTime(Date eleOrderSuccTime) {
+        this.eleOrderSuccTime = eleOrderSuccTime;
+    }
+
+    /**
+     * 获取:电子订单成功时间
+     */
+    public Date getEleOrderSuccTime() {
+        return eleOrderSuccTime;
+    }
+    /**
+     * 设置:电子订单状态 0:失败;1:成功;2:电子订单申报中
+     */
+    public void setIsEleOrderSend(String isEleOrderSend) {
+        this.isEleOrderSend = isEleOrderSend;
+    }
+
+    /**
+     * 获取:电子订单状态 0:失败;1:成功;2:电子订单申报中
+     */
+    public String getIsEleOrderSend() {
+        return isEleOrderSend;
+    }
+    /**
+     * 设置:运单开始时间
+     */
+    public void setWaybillStartTime(Date waybillStartTime) {
+        this.waybillStartTime = waybillStartTime;
+    }
+
+    /**
+     * 获取:运单开始时间
+     */
+    public Date getWaybillStartTime() {
+        return waybillStartTime;
+    }
+    /**
+     * 设置:运单成功时间
+     */
+    public void setWaybillSuccTime(Date waybillSuccTime) {
+        this.waybillSuccTime = waybillSuccTime;
+    }
+
+    /**
+     * 获取:运单成功时间
+     */
+    public Date getWaybillSuccTime() {
+        return waybillSuccTime;
+    }
+    /**
+     * 设置:运单编号
+     */
+    public void setLogisticsNo(String logisticsNo) {
+        this.logisticsNo = logisticsNo;
+    }
+
+    /**
+     * 获取:运单编号
+     */
+    public String getLogisticsNo() {
+        return logisticsNo;
+    }
+    /**
+     * 设置:清单开始时间
+     */
+    public void setCustomsStartTime(Date customsStartTime) {
+        this.customsStartTime = customsStartTime;
+    }
+
+    /**
+     * 获取:清单开始时间
+     */
+    public Date getCustomsStartTime() {
+        return customsStartTime;
+    }
+    /**
+     * 设置:清单成功时间
+     */
+    public void setCustomsSuccTime(String customsSuccTime) {
+        this.customsSuccTime = customsSuccTime;
+    }
+
+    /**
+     * 获取:清单成功时间
+     */
+    public String getCustomsSuccTime() {
+        return customsSuccTime;
+    }
+    /**
+     * 设置:清单编号
+     */
+    public void setInvtNo(String invtNo) {
+        this.invtNo = invtNo;
+    }
+
+    /**
+     * 获取:清单编号
+     */
+    public String getInvtNo() {
+        return invtNo;
+    }
+    /**
+     * 设置:清关状态 0:失败;1:成功;2:清关中
+     */
+    public void setIsCustomsSend(String isCustomsSend) {
+        this.isCustomsSend = isCustomsSend;
+    }
+
+    /**
+     * 获取:清关状态 0:失败;1:成功;2:清关中
+     */
+    public String getIsCustomsSend() {
+        return isCustomsSend;
+    }
+    /**
+     * 设置:出货开始时间
+     */
+    public void setShipmentStartTime(Date shipmentStartTime) {
+        this.shipmentStartTime = shipmentStartTime;
+    }
+
+    /**
+     * 获取:出货开始时间
+     */
+    public Date getShipmentStartTime() {
+        return shipmentStartTime;
+    }
+    /**
+     * 设置:出货成功时间
+     */
+    public void setShipmentSuccTime(Date shipmentSuccTime) {
+        this.shipmentSuccTime = shipmentSuccTime;
+    }
+
+    /**
+     * 获取:出货成功时间
+     */
+    public Date getShipmentSuccTime() {
+        return shipmentSuccTime;
+    }
+    /**
+     * 设置:订单流转信息
+     */
+    public void setProcessContent(String processContent) {
+        this.processContent = processContent;
+    }
+
+    /**
+     * 获取:订单流转信息
+     */
+    public String getProcessContent() {
+        return processContent;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+
+    public Date getOrderDeclarationTime() {
+        return orderDeclarationTime;
+    }
+
+    public void setOrderDeclarationTime(Date orderDeclarationTime) {
+        this.orderDeclarationTime = orderDeclarationTime;
+    }
+
+    public String getOrderDeclareStatus() {
+        return orderDeclareStatus;
+    }
+
+    public void setOrderDeclareStatus(String orderDeclareStatus) {
+        this.orderDeclareStatus = orderDeclareStatus;
+    }
+
+    public String getShippingCode() {
+        return shippingCode;
+    }
+
+    public void setShippingCode(String shippingCode) {
+        this.shippingCode = shippingCode;
+    }
+
+    public String getShippingName() {
+        return shippingName;
+    }
+
+    public void setShippingName(String shippingName) {
+        this.shippingName = shippingName;
+    }
+
+    public String getEwbStartTime() {
+        return ewbStartTime;
+    }
+
+    public void setEwbStartTime(String ewbStartTime) {
+        this.ewbStartTime = ewbStartTime;
+    }
+
+    public String getClearNo() {
+        return clearNo;
+    }
+
+    public void setClearNo(String clearNo) {
+        this.clearNo = clearNo;
+    }
+
+    public String getClearType() {
+        return clearType;
+    }
+
+    public void setClearType(String clearType) {
+        this.clearType = clearType;
+    }
+
+    public String getClearMsg() {
+        return clearMsg;
+    }
+
+    public void setClearMsg(String clearMsg) {
+        this.clearMsg = clearMsg;
+    }
+}

+ 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 merchName;
 
 
     private String storeName;
     private String storeName;
+    //订单编号
+    private String orderSn;
 
 
     public String getGoodsName() {
     public String getGoodsName() {
         return goodsName;
         return goodsName;
@@ -301,4 +303,12 @@ public class StoreMngChangeEntity implements Serializable {
     public Date getTstm() {
     public Date getTstm() {
         return tstm;
         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;
+}

+ 22 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2PointsRulesEntity.java

@@ -24,6 +24,10 @@ public class Mall2PointsRulesEntity implements Serializable {
      */
      */
     private Integer pointsType;
     private Integer pointsType;
     /**
     /**
+     * 积分类型 :0.门店 ,1.商品类别,2.门店商品'
+     */
+    private String pointsTypeStr;
+    /**
      * 积分规则适用开始时间
      * 积分规则适用开始时间
      */
      */
     private Date pointsBeginTime;
     private Date pointsBeginTime;
@@ -65,6 +69,8 @@ public class Mall2PointsRulesEntity implements Serializable {
     private String pointsRulesNum;
     private String pointsRulesNum;
     //赠送积分
     //赠送积分
     private String handselIntegral;
     private String handselIntegral;
+    //积分比例
+    private BigDecimal pointsProportion;
     /**
     /**
      * 设置:主键
      * 设置:主键
      */
      */
@@ -227,4 +233,20 @@ public class Mall2PointsRulesEntity implements Serializable {
     public void setHandselIntegral(String handselIntegral) {
     public void setHandselIntegral(String handselIntegral) {
         this.handselIntegral = handselIntegral;
         this.handselIntegral = handselIntegral;
     }
     }
+
+    public BigDecimal getPointsProportion() {
+        return pointsProportion;
+    }
+
+    public void setPointsProportion(BigDecimal pointsProportion) {
+        this.pointsProportion = pointsProportion;
+    }
+
+    public String getPointsTypeStr() {
+        return pointsTypeStr;
+    }
+
+    public void setPointsTypeStr(String pointsTypeStr) {
+        this.pointsTypeStr = pointsTypeStr;
+    }
 }
 }

+ 17 - 0
kmall-admin/src/main/java/com/kmall/admin/haikong/client/HaiKongMemberTemplate.java

@@ -223,6 +223,23 @@ public class HaiKongMemberTemplate {
         return response;
         return response;
     }
     }
 
 
+    /**
+     * 会员积分回退接口
+     * @param body  请求体
+     * @return  结果
+     */
+    public String rollbackMemberScore(String body) throws Exception {
+        log.info("请求会员积分回退接口......");
+        String url = haiKongProperties.getMemberUrl() + appendQueryParam(HaiKongMemberSystemUrlEnum.ROLLBACK_MEMBER_SCORE.getUrl(), getCacheAccessToken());
+        url = getSignUrl(url, body);
+        Request request = new Request.Builder()
+                .post(requestBody(body))
+                .url(url)
+                .build();
+        String response = OkHttpUtils.retry(request, haiKongProperties.getRetry());
+        log.info("请求会员积分回退接口......");
+        return response;
+    }
 
 
 
 
     public static void main(String[] args) throws Exception {
     public static void main(String[] args) throws Exception {

+ 26 - 26
kmall-admin/src/main/java/com/kmall/admin/haikong/client/VmcShopTemplate.java

@@ -31,15 +31,15 @@ public class VmcShopTemplate {
 
 
     /**
     /**
      * 获取免税MALL请求结果
      * 获取免税MALL请求结果
-     * @param methodParams
+     * @param json
      * @param method
      * @param method
      * @return
      * @return
      */
      */
-    public String vmcconnectSign(String methodParams,String method){
+    public String vmcconnectSign(String json,String method){
         Map<String,String> params = new HashMap<>();
         Map<String,String> params = new HashMap<>();
         params.put("appid",haiKongProperties.getVmcconnectAppId());
         params.put("appid",haiKongProperties.getVmcconnectAppId());
         params.put("method", method);
         params.put("method", method);
-        params.put("method_params",methodParams);
+        params.put("method_params",json);//json
         params.put("timestamp",String.valueOf(System.currentTimeMillis()/1000));
         params.put("timestamp",String.valueOf(System.currentTimeMillis()/1000));
         params.put("sign", VmcconnectSignUtils.createSign(params,haiKongProperties.getVmcconnectSecretKey()));
         params.put("sign", VmcconnectSignUtils.createSign(params,haiKongProperties.getVmcconnectSecretKey()));
         return JSON.toJSONString(params);
         return JSON.toJSONString(params);
@@ -52,7 +52,7 @@ public class VmcShopTemplate {
      */
      */
     public String sendOrder(String body) {
     public String sendOrder(String body) {
         Request request = new Request.Builder()
         Request request = new Request.Builder()
-                .post(requestBody(vmcconnectSign(body, VmcconnectUrlEnum.ORDERS_CREATE_ORDER.getMethod())))
+                .post(requestBody(vmcconnectSign(body, VmcconnectUrlEnum.ORDERS_CREATE_ORDER.getMode())))
                 .url(haiKongProperties.getVmcconnectUrl())
                 .url(haiKongProperties.getVmcconnectUrl())
                 .build();
                 .build();
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
@@ -65,7 +65,7 @@ public class VmcShopTemplate {
      */
      */
     public String resendOrder(String body) {
     public String resendOrder(String body) {
         Request request = new Request.Builder()
         Request request = new Request.Builder()
-                .post(requestBody(vmcconnectSign(body, VmcconnectUrlEnum.ORDERS_RETRY_ORDER.getMethod())))
+                .post(requestBody(vmcconnectSign(body, VmcconnectUrlEnum.ORDERS_RETRY_ORDER.getMode())))
                 .url(haiKongProperties.getVmcconnectUrl())
                 .url(haiKongProperties.getVmcconnectUrl())
                 .build();
                 .build();
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
@@ -78,7 +78,7 @@ public class VmcShopTemplate {
      */
      */
     public String refundOrder(String body) {
     public String refundOrder(String body) {
         Request request = new Request.Builder()
         Request request = new Request.Builder()
-                .post(requestBody(vmcconnectSign(body,VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMethod())))
+                .post(requestBody(vmcconnectSign(body,VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMode())))
                 .url(haiKongProperties.getVmcconnectUrl())
                 .url(haiKongProperties.getVmcconnectUrl())
                 .build();
                 .build();
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
@@ -89,31 +89,31 @@ public class VmcShopTemplate {
      */
      */
     public String ordersOuterStatus(String body){
     public String ordersOuterStatus(String body){
         Request request = new Request.Builder()
         Request request = new Request.Builder()
-                .post(requestBody(vmcconnectSign(body,VmcconnectUrlEnum.ORDERS_OUTER_STATUS.getMethod())))
+                .post(requestBody(vmcconnectSign(body,VmcconnectUrlEnum.ORDERS_OUTER_STATUS.getMode())))
                 .url(haiKongProperties.getVmcconnectUrl())
                 .url(haiKongProperties.getVmcconnectUrl())
                 .build();
                 .build();
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
         return OkHttpUtils.retry(request,haiKongProperties.getRequestRetry());
     }
     }
 
 
 
 
-//    public static void main(String[] args) {
-//        Map<String,String> params2 = new HashMap<>();
-//        params2.put("outer_order_no","HK57746599");
-//        //.replaceAll("\\\\","")
-//        Map<String,String> params = new HashMap<>();
-//        params.put("appid","5");
-//        params.put("method", "vmc.orders.retry.order");
-//        params.put("method_params", JSON.toJSONString(params2));
-//        params.put("timestamp",String.valueOf(System.currentTimeMillis()/1000));
-//        String sign = VmcconnectSignUtils.createSign(params,"GXfc6ZtDlnxHxmmAHvfRfqvrqgfwRiJX");
-//        params.put("sign",sign);
-//        Request request = new Request.Builder()
-//                .post(RequestBody.create(MediaType.parse(org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE), JSON.toJSONString(params)))
-//                .url("https://testmall.greedc.com/openapi/vmcconnect/json")
-//                .build();
-//        String s = OkHttpUtils.retry(request, 1);
-//        Map<String,String> res = JSON.parseObject(s,Map.class);
-//        System.out.println(res);
-//    }
+    public static void main(String[] args) {
+        Map<String,String> params2 = new HashMap<>();
+        params2.put("outer_order_no","HK57746599");
+        //.replaceAll("\\\\","")
+        Map<String,String> params = new HashMap<>();
+        params.put("appid","5");
+        params.put("method", "vmc.orders.cancel.order");
+        params.put("method_params", JSON.toJSONString(params2));
+        params.put("timestamp",String.valueOf(System.currentTimeMillis()/1000));
+        String sign = VmcconnectSignUtils.createSign(params,"GXfc6ZtDlnxHxmmAHvfRfqvrqgfwRiJX");
+        params.put("sign",sign);
+        Request request = new Request.Builder()
+                .post(RequestBody.create(MediaType.parse(org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE), JSON.toJSONString(params)))
+                .url("https://testmall.greedc.com/openapi/vmcconnect/json")
+                .build();
+        String s = OkHttpUtils.retry(request, 3);
+        Map<String,String> res = JSON.parseObject(s,Map.class);
+        System.out.println(res);
+    }
 
 
 }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/haikong/config/HaiKongConfig.java

@@ -30,7 +30,7 @@ public class HaiKongConfig {
         haiKongProperties.setVmcconnectUrl(environment.getProperty("haikong.vmcconnect.url"));
         haiKongProperties.setVmcconnectUrl(environment.getProperty("haikong.vmcconnect.url"));
         haiKongProperties.setVmcconnectAppId(environment.getProperty("haikong.vmcconnect.appId"));
         haiKongProperties.setVmcconnectAppId(environment.getProperty("haikong.vmcconnect.appId"));
         haiKongProperties.setVmcconnectSecretKey(environment.getProperty("haikong.vmcconnect.secretKey"));
         haiKongProperties.setVmcconnectSecretKey(environment.getProperty("haikong.vmcconnect.secretKey"));
-        haiKongProperties.setVmcconnectSecretKey(environment.getProperty("haikong.vmcconnect.requestRetry"));
+        haiKongProperties.setRequestRetry(Integer.parseInt(environment.getProperty("haikong.vmcconnect.requestRetry")));
         return haiKongProperties;
         return haiKongProperties;
     }
     }
 
 

+ 9 - 6
kmall-admin/src/main/java/com/kmall/admin/haikong/utils/Message.java

@@ -64,13 +64,12 @@ public class Message implements Serializable {
 		return new Builder().build();
 		return new Builder().build();
 	}
 	}
 
 
-	public static Message success(boolean Success, String Message) {
-		return new Builder(Success, Message).build();
+	public static Message error(String Message) {
+		return new Builder(Message).build();
 	}
 	}
 
 
-	//--- 错误----------
-	public static Message error(boolean Success, String Message) {
-		return new Builder(Success, Message).build();
+	public static Message success(boolean Success,String Message) {
+		return new Builder(Success,Message).build();
 	}
 	}
 
 
 
 
@@ -90,7 +89,11 @@ public class Message implements Serializable {
 			this.Message = MessageCode.SUCCESS_MSG;
 			this.Message = MessageCode.SUCCESS_MSG;
 		}
 		}
 
 
-		public Builder(boolean Success, String Message) {
+		public Builder(String Message) {
+			this.Success = false;
+			this.Message = Message;
+		}
+		public Builder(boolean Success,String Message) {
 			this.Success = Success;
 			this.Success = Success;
 			this.Message = Message;
 			this.Message = Message;
 		}
 		}

+ 2 - 1
kmall-admin/src/main/java/com/kmall/admin/service/OrderProcessRecordService.java

@@ -2,6 +2,7 @@ package com.kmall.admin.service;
 
 
 
 
 import com.kmall.admin.entity.OrderProcessRecordEntity;
 import com.kmall.admin.entity.OrderProcessRecordEntity;
+import com.kmall.admin.entity.OrderProcessRecordHkNewEntity;
 import com.kmall.admin.haikong.utils.Message;
 import com.kmall.admin.haikong.utils.Message;
 
 
 import java.util.List;
 import java.util.List;
@@ -81,5 +82,5 @@ public interface OrderProcessRecordService {
      * @param orderProcessRecordList
      * @param orderProcessRecordList
      * @return
      * @return
      */
      */
-    Message saveHkNoticeMsg(List<OrderProcessRecordEntity> orderProcessRecordList);
+    Message saveHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
 }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java

@@ -69,7 +69,7 @@ public interface OrderService {
      */
      */
     Ticket printMsg(Long id);
     Ticket printMsg(Long id);
 
 
-    Ticket printMsg(Long id,String sessionId);
+    Ticket printMsg(Long id,String sessionId) throws Exception;
 
 
     void refund(OrderEntity orderInfo);
     void refund(OrderEntity orderInfo);
     /**
     /**

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

@@ -1,6 +1,7 @@
 package com.kmall.admin.service.haikong;
 package com.kmall.admin.service.haikong;
 
 
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
@@ -27,10 +28,13 @@ public interface HaiKongMemberScoreChangeRecordService {
 
 
     void deleteBatchByOutBizNo(List<String> outBizNos);
     void deleteBatchByOutBizNo(List<String> outBizNos);
 
 
+    IntegralGoBackEntity queryIntegralGoBack(String orderSn);
+
     List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus();
     List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus();
 
 
     /**
     /**
      * 批量更新重发状态
      * 批量更新重发状态
      */
      */
     void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities);
     void updateResendStatusBatch(List<HaiKongMemberScoreChangeRecordEntity> entities);
+
 }
 }

+ 27 - 9
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderProcessRecordServiceImpl.java

@@ -1,13 +1,11 @@
 package com.kmall.admin.service.impl;
 package com.kmall.admin.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
+import com.kmall.admin.dao.MallVmcSendLogDao;
 import com.kmall.admin.dao.OrderDao;
 import com.kmall.admin.dao.OrderDao;
 import com.kmall.admin.dao.OrderProcessRecordDao;
 import com.kmall.admin.dao.OrderProcessRecordDao;
 import com.kmall.admin.dao.StoreSmsConfigDao;
 import com.kmall.admin.dao.StoreSmsConfigDao;
-import com.kmall.admin.entity.OrderEntity;
-import com.kmall.admin.entity.OrderProcessRecordEntity;
-import com.kmall.admin.entity.PickUpCodeEntity;
-import com.kmall.admin.entity.StoreSmsConfigEntity;
+import com.kmall.admin.entity.*;
 import com.kmall.admin.haikong.utils.Message;
 import com.kmall.admin.haikong.utils.Message;
 import com.kmall.admin.service.OrderProcessRecordService;
 import com.kmall.admin.service.OrderProcessRecordService;
 import com.kmall.admin.service.PickUpCodeService;
 import com.kmall.admin.service.PickUpCodeService;
@@ -42,7 +40,11 @@ public class OrderProcessRecordServiceImpl implements OrderProcessRecordService
 
 
     @Autowired
     @Autowired
     private OrderDao orderDao;
     private OrderDao orderDao;
-
+    /**
+     * 免税mall日志记录
+     */
+    @Autowired
+    private MallVmcSendLogDao mallVmcSendLogDao;
 
 
 
 
 
 
@@ -159,23 +161,39 @@ public class OrderProcessRecordServiceImpl implements OrderProcessRecordService
     }
     }
 
 
     /**
     /**
-     * 海控通知回调接口
+     * 免税MALL通知回调接口
      * @param orderProcessRecordList
      * @param orderProcessRecordList
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public Message saveHkNoticeMsg(List<OrderProcessRecordEntity> orderProcessRecordList) {
+    public Message saveHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList) {
        try{
        try{
+           saveVmcSend("hkNotice","hkNotice",JSON.toJSONString(orderProcessRecordList),"免税MALL通知回调接口");
            Integer count = orderProcessRecordDao.queryHkOrderTotal(orderProcessRecordList);
            Integer count = orderProcessRecordDao.queryHkOrderTotal(orderProcessRecordList);
            if(orderProcessRecordList.size()!=count){
            if(orderProcessRecordList.size()!=count){
-               return Message.success(false,"订单不存在");
+               return Message.error("订单不存在");
            }else{
            }else{
                orderProcessRecordDao.updateHkNoticeMsg(orderProcessRecordList);
                orderProcessRecordDao.updateHkNoticeMsg(orderProcessRecordList);
            }
            }
        }catch (Exception e){
        }catch (Exception e){
            logger.error("saveHkNoticeMsg---海控通知回调接口插入错误="+ JSON.toJSONString(orderProcessRecordList),e);
            logger.error("saveHkNoticeMsg---海控通知回调接口插入错误="+ JSON.toJSONString(orderProcessRecordList),e);
-           return Message.success(false,"参数错误");
+           return Message.error("参数错误");
        }
        }
         return Message.success(true,"成功");
         return Message.success(true,"成功");
     }
     }
+
+    /**
+     * 记录免税Mall通知日志
+     * @param orderSn
+     * @param requestMsg
+     * @param response
+     */
+    private void saveVmcSend(String orderSn,String urlType,String requestMsg,String response){
+        MallVmcSendlogEntity mallVmcSendlogEntity = new MallVmcSendlogEntity();
+        mallVmcSendlogEntity.setOrderSn(orderSn);
+        mallVmcSendlogEntity.setVmcType(urlType);
+        mallVmcSendlogEntity.setRequestMsg(requestMsg);
+        mallVmcSendlogEntity.setResponseMsg(response);
+        mallVmcSendLogDao.saveVmcSend(mallVmcSendlogEntity);
+    }
 }
 }

+ 97 - 43
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.biz.CustomsClearanceTimeliness;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.dao.alarm.Mall2LowPriceWarningDao;
 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.Mk2GoodsTopicPriceDao;
 import com.kmall.admin.dao.mk.Mk2MemberBirthdayDao;
 import com.kmall.admin.dao.mk.Mk2MemberBirthdayDao;
 import com.kmall.admin.dao.mk.store.MkStorePromOrderRealDao;
 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.*;
 import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberOrderSyncResendEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 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.MkActivitiesEntity;
 import com.kmall.admin.entity.mk.store.MkStorePromOrderRealEntity;
 import com.kmall.admin.entity.mk.store.MkStorePromOrderRealEntity;
 import com.kmall.admin.entity.record.NewRetailOrderRestoreStockRecordEntity;
 import com.kmall.admin.entity.record.NewRetailOrderRestoreStockRecordEntity;
@@ -270,7 +272,6 @@ public class OrderServiceImpl implements OrderService {
     @Autowired
     @Autowired
     private HaiKongMemberScoreChangeRecordService haiKongMemberScoreChangeRecordService;
     private HaiKongMemberScoreChangeRecordService haiKongMemberScoreChangeRecordService;
 
 
-
     @Override
     @Override
     public OrderEntity queryObject(Long id) {
     public OrderEntity queryObject(Long id) {
         return orderDao.queryObject(id);
         return orderDao.queryObject(id);
@@ -472,7 +473,7 @@ public class OrderServiceImpl implements OrderService {
     }
     }
 
 
     @Override
     @Override
-    public Ticket printMsg(Long id, String sessionId) {
+    public Ticket printMsg(Long id, String sessionId) throws Exception {
         OrderEntity orderEntity = queryInfos(id);
         OrderEntity orderEntity = queryInfos(id);
 
 
         List<OrderGoodsEntity> orderGoodsEntityList = orderEntity.getOrderGoodsEntityList();
         List<OrderGoodsEntity> orderGoodsEntityList = orderEntity.getOrderGoodsEntityList();
@@ -561,32 +562,30 @@ public class OrderServiceImpl implements OrderService {
         if (pickUpCodeEntity != null) {
         if (pickUpCodeEntity != null) {
             pickUpCodeEntity.setPickUpCodeStatus("1");
             pickUpCodeEntity.setPickUpCodeStatus("1");
             pickUpCodeService.update(pickUpCodeEntity);
             pickUpCodeService.update(pickUpCodeEntity);
-//            try {
-//                WebSocketServer.delete(sessionId,orderEntity.getStoreId(),pickUpCodeEntity);
-//            } catch (IOException e) {
-//                e.printStackTrace();
-//            }
         }
         }
         TicketMailInfo mailInfo = new TicketMailInfo();
         TicketMailInfo mailInfo = new TicketMailInfo();
         String exprNo = orderProcessRecordEntity.getLogisticsNo();
         String exprNo = orderProcessRecordEntity.getLogisticsNo();
-        if (StringUtils.isNullOrEmpty(exprNo)) {
-            throw new RRException("快递面单为空,请联系客服");
-        }
+//        if (StringUtils.isNullOrEmpty(exprNo)) {
+//            throw new RRException("快递面单为空,请联系客服");
+//        }
         //图片地址
         //图片地址
         mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
         mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
-        mailInfo.setExprNo(exprNo);
-        String logoUrl = "/statics/img/yto_logo.jpg";
+        if (!StringUtils.isNullOrEmpty(exprNo)) {
+            byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
+            String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
+            mailInfo.setExprNoBase64Img(exprNoBase64Img);
 
 
-        Map<String, String> logoMap = new HashMap<>();
-        logoMap.put("yto", "/statics/img/yto_logo.jpg");
-        logoMap.put("best", "/statics/img/bestex_logo3.png");
-        if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
-            logoUrl = logoMap.get(orderEntity.getShippingCode());
-        }
+            mailInfo.setExprNo(exprNo);
+            String logoUrl = "/statics/img/yto_logo.jpg";
 
 
-        mailInfo.setExprLogoUrl(logoUrl);
-        byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
-        String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
+            Map<String, String> logoMap = new HashMap<>();
+            logoMap.put("yto", "/statics/img/yto_logo.jpg");
+            logoMap.put("best", "/statics/img/bestex_logo3.png");
+            if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
+                logoUrl = logoMap.get(orderEntity.getShippingCode());
+            }
+            mailInfo.setExprLogoUrl(logoUrl);
+        }
         mailInfo.setShopTel(storeEntity.getTelephoneNumber()==null?"0752-2688660":storeEntity.getTelephoneNumber().trim());
         mailInfo.setShopTel(storeEntity.getTelephoneNumber()==null?"0752-2688660":storeEntity.getTelephoneNumber().trim());
 
 
         // 发货人
         // 发货人
@@ -606,7 +605,6 @@ public class OrderServiceImpl implements OrderService {
         mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
         mailInfo.setConsigneeDistrict(orderEntity.getDistrict());
         mailInfo.setConsigneeAddress(orderEntity.getAddress());
         mailInfo.setConsigneeAddress(orderEntity.getAddress());
 
 
-        mailInfo.setExprNoBase64Img(exprNoBase64Img);
         return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
         return TicketPrintUtil.print(head, goodsList, cashInfo, cusListing, mailInfo);
     }
     }
 
 
@@ -987,6 +985,45 @@ public class OrderServiceImpl implements OrderService {
     }
     }
 
 
     /**
     /**
+     * 还原商品总库存
+     * @param stockNum
+     * @param storeRelaEntity
+     * @param orderGoodsEntity
+     * @param user
+     */
+    private void resetGoodsStockHkMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
+                                 OrderGoodsEntity orderGoodsEntity,SysUserEntity user) {
+        GoodsEntity goodsEntity = goodsDao.queryObject(storeRelaEntity.getGoodsId());
+        if (goodsEntity != null) {
+            //商品数量 + 待退款数量
+            goodsEntity.setGoodsNumber(stockNum + orderGoodsEntity.getNumber());
+            //还原商品总库存
+            goodsDao.update(goodsEntity);
+            String username = "system";
+            if (user != null) {
+                username = user.getUsername();
+            }
+
+            MngChangeEntity mngChangeEntity = new MngChangeEntity();
+            mngChangeEntity.setOrderSn(order.getOrderSn());
+            mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goodsEntity.getId())));
+            mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
+            mngChangeEntity.setChangeReason("收银端退款");
+            mngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
+            mngChangeEntity.setChangeNum(orderGoodsEntity.getNumber());//变化数
+            mngChangeEntity.setOriginalNum(stockNum);//原库存数
+            mngChangeEntity.setValidNum(stockNum + orderGoodsEntity.getNumber());//可用数
+            mngChangeEntity.setCreateTime(new Date());
+            mngChangeEntity.setModTime(new Date());
+            mngChangeEntity.setCreaterSn(username);
+            mngChangeEntity.setModerSn(username);
+            mngChangeEntity.setIsValid(0);
+            mngChangeEntity.setMerchSn(goodsEntity.getMerchSn());
+            mngChangeDao.save(mngChangeEntity);
+        }
+    }
+
+    /**
      * 还原门店商品库存
      * 还原门店商品库存
      *
      *
      * @param stockNum
      * @param stockNum
@@ -1035,13 +1072,13 @@ public class OrderServiceImpl implements OrderService {
      * @param sellVolume
      * @param sellVolume
      * @param user
      * @param user
      */
      */
-    private void resetStoreGoodsStockMall(Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
+    private void resetStoreGoodsStockMall(OrderEntity order,Integer stockNum, ProductStoreRelaEntity storeRelaEntity,
                                       OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
                                       OrderGoodsEntity orderGoodsEntity, BigDecimal sellVolume,SysUserEntity user) {
         storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
         storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString())); // 减退库存
         //库存数量 + 商品数量
         //库存数量 + 商品数量
         storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
         storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
         //待退款数量 - 商品数量
         //待退款数量 - 商品数量
-        storeRelaEntity.setToBeRestored(storeRelaEntity.getToBeRestored() - orderGoodsEntity.getNumber());
+        //storeRelaEntity.setToBeRestored(storeRelaEntity.getToBeRestored() - orderGoodsEntity.getNumber());
         productStoreRelaDao.update(storeRelaEntity);
         productStoreRelaDao.update(storeRelaEntity);
 
 
         String username = "system";
         String username = "system";
@@ -1049,6 +1086,7 @@ public class OrderServiceImpl implements OrderService {
             username = user.getUsername();
             username = user.getUsername();
         }
         }
         StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
         StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+        storeMngChangeEntity.setOrderSn(order.getOrderSn());
         storeMngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
         storeMngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
         storeMngChangeEntity.setChangeReason("前端退款");
         storeMngChangeEntity.setChangeReason("前端退款");
         storeMngChangeEntity.setGoodsId(storeRelaEntity.getGoodsId().intValue());
         storeMngChangeEntity.setGoodsId(storeRelaEntity.getGoodsId().intValue());
@@ -3160,7 +3198,6 @@ public class OrderServiceImpl implements OrderService {
         if (null == orderInfo) {
         if (null == orderInfo) {
             return R.error("订单不存在");
             return R.error("订单不存在");
         }
         }
-
         if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_401.getItem()) ||
         if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_401.getItem()) ||
                 orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_402.getItem())) {
                 orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_402.getItem())) {
             return R.error("订单已退款");
             return R.error("订单已退款");
@@ -3168,13 +3205,10 @@ public class OrderServiceImpl implements OrderService {
         if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
         if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
             return R.error("订单正在准备,请稍等!");
             return R.error("订单正在准备,请稍等!");
         }
         }
-        if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_100.getItem())) {
-            return R.error("订单尚未支付完成,无法进行退款!");
-        }
-        if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_101.getItem())) {
-            return R.error("订单尚未支付完成,无法进行退款!");
-        }
-        if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_102.getItem())) {
+        if (orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_100.getItem()) ||
+                orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_101.getItem())||
+                orderInfo.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_102.getItem())
+        ) {
             return R.error("订单尚未支付完成,无法进行退款!");
             return R.error("订单尚未支付完成,无法进行退款!");
         }
         }
 
 
@@ -3214,12 +3248,11 @@ public class OrderServiceImpl implements OrderService {
                 PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
                 PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
                 pickUpCodeEntity.setPickUpCodeStatus("3");
                 pickUpCodeEntity.setPickUpCodeStatus("3");
                 pickUpCodeService.update(pickUpCodeEntity);
                 pickUpCodeService.update(pickUpCodeEntity);
-                //还原库存,调用免税mall接口退款
-                restoreInventoryMsMall(order);
                 //新增退款记录
                 //新增退款记录
                 OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
                 OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
                 orderRefundDao.save(orderRefund);
                 orderRefundDao.save(orderRefund);
-
+                //还原库存,调用免税mall接口退款和积分回退接口
+                restoreInventoryMsMall(order);
             }
             }
             // 支付宝的退款代码
             // 支付宝的退款代码
         } else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)) {
         } else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)) {
@@ -3244,13 +3277,13 @@ public class OrderServiceImpl implements OrderService {
             PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
             PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
             pickUpCodeEntity.setPickUpCodeStatus("3");
             pickUpCodeEntity.setPickUpCodeStatus("3");
             pickUpCodeService.update(pickUpCodeEntity);
             pickUpCodeService.update(pickUpCodeEntity);
-            //还原库存,调用免税mall接口退款
-            restoreInventoryMsMall(order);
             //新增退款记录
             //新增退款记录
             OrderRefundEntity orderRefund = orderRefundLog(userRefund.getTradeNo(),userRefund.getOutTradeNo(),userRefund.getRefundFee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
             OrderRefundEntity orderRefund = orderRefundLog(userRefund.getTradeNo(),userRefund.getOutTradeNo(),userRefund.getRefundFee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
             orderRefundDao.save(orderRefund);
             orderRefundDao.save(orderRefund);
+            //还原库存,调用免税mall接口退款和积分回退接口
+            restoreInventoryMsMall(order);
         }
         }
-
+        int ss = 1/0;
         return R.ok("退款成功");
         return R.ok("退款成功");
     }
     }
 
 
@@ -3291,7 +3324,7 @@ public class OrderServiceImpl implements OrderService {
      * 海控订单退款
      * 海控订单退款
      * @param order
      * @param order
      */
      */
-    private void restoreInventoryMsMall(OrderEntity order) {
+    private void restoreInventoryMsMall(OrderEntity order) throws Exception{
         Map<String, Object> map = new HashMap();
         Map<String, Object> map = new HashMap();
         SysUserEntity user = ShiroUtils.getUserEntity();
         SysUserEntity user = ShiroUtils.getUserEntity();
         map.put("orderId", order.getId());
         map.put("orderId", order.getId());
@@ -3309,13 +3342,21 @@ public class OrderServiceImpl implements OrderService {
                 sellVolume = Constant.ZERO;
                 sellVolume = Constant.ZERO;
             }
             }
 
 
+            GoodsEntity goodsEntity = goodsDao.queryObject(orderGoodsEntity.getGoodsId());
+            if (goodsEntity != null) {
+                //还原商户商品总库存
+                resetGoodsStockHkMall(order,goodsEntity.getGoodsNumber(), storeRelaEntity, orderGoodsEntity, user);
+            }
             //还原门店库存
             //还原门店库存
             if (null != storeRelaEntity.getStockNum()) {
             if (null != storeRelaEntity.getStockNum()) {
-                resetStoreGoodsStockMall(storeRelaEntity.getStockNum(), storeRelaEntity, orderGoodsEntity, sellVolume, user);
+                resetStoreGoodsStockMall(order,storeRelaEntity.getStockNum(), storeRelaEntity, orderGoodsEntity, sellVolume, user);
             }
             }
         }
         }
         //调用免税mall接口
         //调用免税mall接口
         vmcShopMall(order);
         vmcShopMall(order);
+        //调用会员系统积分回退接口
+        IntegralGoBackEntity changeRecordEntity = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
+        haiKongMemberTemplate.rollbackMemberScore(JSON.toJSONString(changeRecordEntity));
     }
     }
 
 
     /**
     /**
@@ -3323,11 +3364,11 @@ public class OrderServiceImpl implements OrderService {
      * @param order
      * @param order
      */
      */
     private void vmcShopMall(OrderEntity order) {
     private void vmcShopMall(OrderEntity order) {
-        LOGGER.info("=======> [调用VMCShop接口开始发送退款订单数据]"+order.getOrderSn());
+        LOGGER.info("=======> [vmcShopMall-----调用VMCShop接口开始发送退款订单数据]"+order.getOrderSn());
         String body = JacksonUtil.toJson(order.getOrderSn());
         String body = JacksonUtil.toJson(order.getOrderSn());
         String response = vmcShopTemplate.refundOrder(body);
         String response = vmcShopTemplate.refundOrder(body);
         //解析响应数据
         //解析响应数据
-        LOGGER.info("=======> [发送退款订单数据成功,开始处理后续流程]"+response);
+        LOGGER.info("=======> [vmcShopMall------发送退款订单数据成功,开始处理后续流程]"+response);
         //Map<String,String> res = JSON.parseObject(response,Map.class);
         //Map<String,String> res = JSON.parseObject(response,Map.class);
 
 
         saveVmcSend(order.getOrderSn(),VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMethod(),body,response);
         saveVmcSend(order.getOrderSn(),VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMethod(),body,response);
@@ -4318,8 +4359,21 @@ public class OrderServiceImpl implements OrderService {
      */
      */
     @Override
     @Override
     public R resendOrderHkMall(String orderSn) {
     public R resendOrderHkMall(String orderSn) {
+        OrderEntity orderEntity = orderDao.queryObjectByOrderSn(orderSn);
+        if (orderEntity.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_100.getItem())||
+                orderEntity.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_101.getItem())||
+                orderEntity.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_500.getItem())||
+                orderEntity.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_401.getItem())||
+                orderEntity.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_402.getItem())||
+                orderEntity.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_0.getItem())
+        ) {
+            return R.error(500,"无法重发订单,请检查订单状态");
+        }
+
         LOGGER.info("=======> [调用VMCShop接口开始发送退款订单数据]"+orderSn);
         LOGGER.info("=======> [调用VMCShop接口开始发送退款订单数据]"+orderSn);
-        String body = JacksonUtil.toJson(orderSn);
+        Map<String,String> map = new HashMap<>();
+        map.put("outer_order_no",orderSn);
+        String body = JacksonUtil.toJson(map);
         String response = vmcShopTemplate.resendOrder(body);
         String response = vmcShopTemplate.resendOrder(body);
         //解析响应数据
         //解析响应数据
         LOGGER.info("=======> [resendOrderHkMall---重发订单数据成功,开始处理后续流程]"+response);
         LOGGER.info("=======> [resendOrderHkMall---重发订单数据成功,开始处理后续流程]"+response);

+ 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.dao.haikong.HaiKongMemberScoreChangeRecordDao;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
 import com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity;
+import com.kmall.admin.entity.haikong.IntegralGoBackEntity;
 import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeRecordService;
 import com.kmall.admin.service.haikong.HaiKongMemberScoreChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -60,6 +61,11 @@ public class HaiKongMemberScoreChangeRecordServiceImpl implements HaiKongMemberS
     }
     }
 
 
     @Override
     @Override
+    public IntegralGoBackEntity queryIntegralGoBack(String orderSn) {
+        return haiKongMemberScoreChangeRecordDao.queryIntegralGoBack(orderSn);
+    }
+
+    @Override
     public List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus() {
     public List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus() {
         return haiKongMemberScoreChangeRecordDao.queryListByResendStatus();
         return haiKongMemberScoreChangeRecordDao.queryListByResendStatus();
     }
     }

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

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

+ 124 - 26
kmall-admin/src/main/resources/mybatis/mapper/OrderProcessRecordDao.xml

@@ -292,25 +292,122 @@ select
 	</delete>
 	</delete>
 
 
 
 
+	<select id="queryHkOrderTotal" parameterType="java.util.List" resultType="java.lang.Integer">
+		select
+		 count(*)
+		from mall_order_process_record
+		where
+		<if test="list != null">
+			 order_sn in
+			<foreach collection="list" item="item" open="(" separator="," close=")">
+				#{item.orderSn}
+			</foreach>
+		</if>
+	</select>
 
 
-	<!--批量修改-->
-	<update id="updateHkNoticeMsg" parameterType="list">
+	<update id="updateHkNoticeMsg" parameterType="java.util.List">
 		update mall_order_process_record
 		update mall_order_process_record
 		<trim prefix="set" suffixOverrides=",">
 		<trim prefix="set" suffixOverrides=",">
-			<trim prefix="points_rules_id =case" suffix="end,">
+			<trim prefix="logistics_no =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.logisticsNo!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.logisticsNo}
+					</if>
+					<if test="item.logisticsNo==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.logistics_no
+					</if>
+				</foreach>
+			</trim>
+
+			<trim prefix="shipping_code =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.shippingCode!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.shippingCode}
+					</if>
+					<if test="item.shippingCode==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.shipping_code
+					</if>
+				</foreach>
+			</trim>
+
+			<trim prefix="shipping_name =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.shippingName!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.shippingName}
+					</if>
+					<if test="item.shippingName==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.shipping_name
+					</if>
+				</foreach>
+			</trim>
+
+			<trim prefix="waybill_succ_time =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.ewbStartTime!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.ewbStartTime}
+					</if>
+					<if test="item.ewbStartTime==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.waybill_succ_time
+					</if>
+				</foreach>
+			</trim>
+
+			<trim prefix="invt_no =case" suffix="end,">
 				<foreach collection="list" item="item" index="index">
 				<foreach collection="list" item="item" index="index">
+					<if test="item.clearNo!=null">
 						when order_sn=#{item.orderSn}
 						when order_sn=#{item.orderSn}
-						then
-							<if test="eleOrderStartTime != null">`ele_order_start_time` = #{item.eleOrderStartTime}, </if>
-							<if test="eleOrderSuccTime != null">`ele_order_succ_time` = #{item.eleOrderSuccTime}, </if>
-							<if test="isEleOrderSend != null">`is_ele_order_send` = #{item.isEleOrderSend}, </if>
-							<if test="waybillStartTime != null">`waybill_start_time` = #{item.waybillStartTime}, </if>
-							<if test="waybillSuccTime != null">`waybill_succ_time` = #{item.waybillSuccTime}, </if>
-							<if test="logisticsNo != null">`logistics_no` = #{item.logisticsNo}, </if>
-							<if test="customsStartTime != null">`customs_start_time` = #{item.customsStartTime}, </if>
-							<if test="customsSuccTime != null">`customs_succ_time` = #{item.customsSuccTime}, </if>
-							<if test="invtNo != null">`invt_no` = #{item.invtNo}, </if>
-							<if test="isCustomsSend != null">`is_customs_send` = #{item.isCustomsSend}, </if>
+						then #{item.clearNo}
+					</if>
+					<if test="item.clearNo==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.invt_no
+					</if>
+				</foreach>
+			</trim>
+
+			<trim prefix="is_customs_send =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.clearType!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.clearType}
+					</if>
+					<if test="item.clearType==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.is_customs_send
+					</if>
+				</foreach>
+			</trim>
+			<trim prefix="customs_succ_time =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.customsSuccTime!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.customsSuccTime}
+					</if>
+					<if test="item.customsSuccTime==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.customs_succ_time
+					</if>
+				</foreach>
+			</trim>
+
+			<trim prefix="customs_msg =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.clearMsg!=null">
+						when order_sn=#{item.orderSn}
+						then #{item.clearMsg}
+					</if>
+					<if test="item.clearMsg==null">
+						when order_sn=#{item.orderSn}
+						then mall_order_process_record.customs_msg
+					</if>
 				</foreach>
 				</foreach>
 			</trim>
 			</trim>
 		</trim>
 		</trim>
@@ -320,17 +417,18 @@ select
 		</foreach>
 		</foreach>
 	</update>
 	</update>
 
 
-	<select id="queryHkOrderTotal" parameterType="java.util.List" resultType="java.lang.Integer">
-		select
-		 count(*)
-		from mall_order_process_record
-		where
-		<if test="list != null">
-			 order_sn in
-			<foreach collection="list" item="item" open="(" separator="," close=")">
-				#{item.orderSn}
-			</foreach>
-		</if>
-	</select>
+<!--	<update id="updateHkNoticeMsg"  parameterType="java.util.List">-->
+<!--		<foreach collection="list" item="item" index="index" open="" close="" separator=";">-->
+<!--			update mall_order_process_record-->
+<!--			<set>-->
+<!--			<if test="item.ewbStartTime != null">`waybill_succ_time` = #{item.ewbStartTime}, </if>-->
+<!--			<if test="item.logisticsNo != null">`logistics_no` = #{item.logisticsNo}, </if>-->
+<!--			<if test="item.customsSuccTime != null">`customs_succ_time` = #{item.customsSuccTime}, </if>-->
+<!--			<if test="item.invtNo != null">`invt_no` = #{item.invtNo}, </if>-->
+<!--			<if test="item.clearType != null">`is_customs_send` = #{item.clearType}, </if>-->
+<!--			</set>-->
+<!--			where order_sn = ${item.orderSn}-->
+<!--		</foreach>-->
+<!--	</update>-->
 
 
 </mapper>
 </mapper>

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

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

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

@@ -118,4 +118,15 @@
         </foreach>
         </foreach>
     </delete>
     </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>
 </mapper>

+ 6 - 1
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml

@@ -19,11 +19,12 @@
 	<select id="queryObject" resultType="com.kmall.admin.entity.vip.Mall2PointsRulesEntity">
 	<select id="queryObject" resultType="com.kmall.admin.entity.vip.Mall2PointsRulesEntity">
 		select
 		select
 			`mpr_id`,
 			`mpr_id`,
-			`points_type`,
+			 points_type as pointsType,
 			 points_rules_money as pointsRulesMoney,
 			 points_rules_money as pointsRulesMoney,
 			 points_rules_num as pointsRulesNum,
 			 points_rules_num as pointsRulesNum,
 			`points_begin_time`,
 			`points_begin_time`,
 			`points_end_time`,
 			`points_end_time`,
+			 points_proportion as pointsProportion,
 			`is_valid`,
 			`is_valid`,
 			`creater_sn`,
 			`creater_sn`,
 			`create_time`,
 			`create_time`,
@@ -42,6 +43,7 @@
 			 points_rules_num as pointsRulesNum,
 			 points_rules_num as pointsRulesNum,
     		`points_begin_time`,
     		`points_begin_time`,
     		`points_end_time`,
     		`points_end_time`,
+		     points_proportion as pointsProportion,
     		`is_valid`,
     		`is_valid`,
     		`creater_sn`,
     		`creater_sn`,
     		`create_time`,
     		`create_time`,
@@ -82,6 +84,7 @@
 			 points_rules_num,
 			 points_rules_num,
 			`points_begin_time`,
 			`points_begin_time`,
 			`points_end_time`,
 			`points_end_time`,
+			 points_proportion,
 			`is_valid`,
 			`is_valid`,
 			`creater_sn`,
 			`creater_sn`,
 			`create_time`,
 			`create_time`,
@@ -95,6 +98,7 @@
 			#{pointsRulesNum},
 			#{pointsRulesNum},
 			#{pointsBeginTime},
 			#{pointsBeginTime},
 			#{pointsEndTime},
 			#{pointsEndTime},
+			#{pointsProportion},
 			#{isValid},
 			#{isValid},
 			#{createrSn},
 			#{createrSn},
 			#{createTime},
 			#{createTime},
@@ -111,6 +115,7 @@
 			<if test="pointsRulesNum != null">`points_rules_num` = #{pointsRulesNum}, </if>
 			<if test="pointsRulesNum != null">`points_rules_num` = #{pointsRulesNum}, </if>
 			<if test="pointsBeginTime != null">`points_begin_time` = #{pointsBeginTime}, </if>
 			<if test="pointsBeginTime != null">`points_begin_time` = #{pointsBeginTime}, </if>
 			<if test="pointsEndTime != null">`points_end_time` = #{pointsEndTime}, </if>
 			<if test="pointsEndTime != null">`points_end_time` = #{pointsEndTime}, </if>
+			<if test="pointsProportion != null">`points_proportion` = #{pointsProportion}, </if>
 			<if test="isValid != null">`is_valid` = #{isValid}, </if>
 			<if test="isValid != null">`is_valid` = #{isValid}, </if>
 			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
 			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
 			<if test="createTime != null">`create_time` = #{createTime}, </if>
 			<if test="createTime != null">`create_time` = #{createTime}, </if>

+ 20 - 13
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -376,29 +376,24 @@
                                     <div class="col-md-3" id="inventoryNo">清单编号: {{orderProcessRecord.invtNo}}</div>
                                     <div class="col-md-3" id="inventoryNo">清单编号: {{orderProcessRecord.invtNo}}</div>
                                 </div>
                                 </div>
                                 <div class="row" style="border:0">
                                 <div class="row" style="border:0">
-                                    <div class="col-md-3" id="orderDeclarationTime">订单申报时间: {{orderProcessRecord.eleOrderStartTime}}</div>
+<!--                                    <div class="col-md-3" id="orderDeclarationTime">订单申报时间: {{orderProcessRecord.eleOrderStartTime}}</div>-->
                                     <div class="col-md-3" id="payDeclarationTime">支付单申报时间: {{orderProcessRecord.paymentStartTime}}</div>
                                     <div class="col-md-3" id="payDeclarationTime">支付单申报时间: {{orderProcessRecord.paymentStartTime}}</div>
                                     <div class="col-md-3" id="waybillDeclarationTime">运单申报时间: {{orderProcessRecord.waybillStartTime}}</div>
                                     <div class="col-md-3" id="waybillDeclarationTime">运单申报时间: {{orderProcessRecord.waybillStartTime}}</div>
                                     <div class="col-md-3" id="inventoryDeclarationTime">清单放行时间: {{orderProcessRecord.customsSuccTime}}</div>
                                     <div class="col-md-3" id="inventoryDeclarationTime">清单放行时间: {{orderProcessRecord.customsSuccTime}}</div>
+                                    <div class="col-md-3" id="orderSubmitTime">订单提交时间: {{orderProcessRecord.addOrderStartTime}}</div>
                                 </div>
                                 </div>
                             <div class="row" style="border:0">
                             <div class="row" style="border:0">
-                                <div class="col-md-3" id="orderSubmitTime">订单提交时间: {{orderProcessRecord.addOrderStartTime}}</div>
+<!--                                <div class="col-md-3" id="orderSubmitTime">订单提交时间: {{orderProcessRecord.addOrderStartTime}}</div>-->
                                 <div class="col-md-3" id="payStatus">支付状态:
                                 <div class="col-md-3" id="payStatus">支付状态:
                                     <span v-if="orderEntity.payStatus == 0">未付款</span>
                                     <span v-if="orderEntity.payStatus == 0">未付款</span>
                                     <span v-if="orderEntity.payStatus == 1">付款中</span>
                                     <span v-if="orderEntity.payStatus == 1">付款中</span>
                                     <span v-if="orderEntity.payStatus == 2">已付款</span>
                                     <span v-if="orderEntity.payStatus == 2">已付款</span>
                                 </div>
                                 </div>
                                 <div class="col-md-3" id="inventoryStatus">清关状态:
                                 <div class="col-md-3" id="inventoryStatus">清关状态:
-                                    <span v-if="orderProcessRecord.isCustomsSend == 0">失败</span>
-                                    <span v-if="orderProcessRecord.isCustomsSend == 1">成功</span>
-                                    <span v-if="orderProcessRecord.isCustomsSend == 2">清关中</span>
-                                </div>
-                            </div>
-                            <div class="row" style="border:0">
-                                <div class="col-md-3" id="orderDeclareStatus">订单申报状态:
-                                    <span v-if="orderProcessRecord.isEleOrderSend == 0">失败</span>
-                                    <span v-if="orderProcessRecord.isEleOrderSend == 1">成功</span>
-                                    <span v-if="orderProcessRecord.isEleOrderSend == 2">申报中</span>
+                                    <span v-if="orderProcessRecord.isCustomsSend == 1">放行</span>
+                                    <span v-if="orderProcessRecord.isCustomsSend == 2">查验</span>
+                                    <span v-if="orderProcessRecord.isCustomsSend == 3">清关失败</span>
+                                    <span v-if="orderProcessRecord.isCustomsSend == 4">其他</span>
                                 </div>
                                 </div>
                                 <div class="col-md-3" id="payOrderDeclareStatus">支付单申报状态:
                                 <div class="col-md-3" id="payOrderDeclareStatus">支付单申报状态:
                                     <span v-if="orderProcessRecord.isPaymentSend == 0">失败</span>
                                     <span v-if="orderProcessRecord.isPaymentSend == 0">失败</span>
@@ -406,6 +401,18 @@
                                     <span v-if="orderProcessRecord.isPaymentSend == 2">申报中</span>
                                     <span v-if="orderProcessRecord.isPaymentSend == 2">申报中</span>
                                 </div>
                                 </div>
                             </div>
                             </div>
+<!--                            <div class="row" style="border:0">-->
+<!--                                <div class="col-md-3" id="orderDeclareStatus">订单申报状态:-->
+<!--                                    <span v-if="orderProcessRecord.isEleOrderSend == 0">失败</span>-->
+<!--                                    <span v-if="orderProcessRecord.isEleOrderSend == 1">成功</span>-->
+<!--                                    <span v-if="orderProcessRecord.isEleOrderSend == 2">申报中</span>-->
+<!--                                </div>-->
+<!--                                <div class="col-md-3" id="payOrderDeclareStatus">支付单申报状态:-->
+<!--                                    <span v-if="orderProcessRecord.isPaymentSend == 0">失败</span>-->
+<!--                                    <span v-if="orderProcessRecord.isPaymentSend == 1">成功</span>-->
+<!--                                    <span v-if="orderProcessRecord.isPaymentSend == 2">申报中</span>-->
+<!--                                </div>-->
+<!--                            </div>-->
                             <div class="row" style="border:0">
                             <div class="row" style="border:0">
                                 <div class="col-md-3" id="orderTotal">订单总金额: {{orderEntity.orderPrice}}</div>
                                 <div class="col-md-3" id="orderTotal">订单总金额: {{orderEntity.orderPrice}}</div>
                                 <div class="col-md-3" id="actualPrice">订单实际支付金额: {{orderEntity.actualPrice}}</div>
                                 <div class="col-md-3" id="actualPrice">订单实际支付金额: {{orderEntity.actualPrice}}</div>
@@ -449,7 +456,7 @@
                         <div class="modal-footer">
                         <div class="modal-footer">
                             <button v-if="canRefund" type="button" style="margin:0 30px 0 20px;font-size: 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()" id="refundOrder" data-dismiss="modal">退款</button>
                             <button v-if="canRefund" type="button" style="margin:0 30px 0 20px;font-size: 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()" id="refundOrder" data-dismiss="modal">退款</button>
                             <button v-else disabled type="button" style="margin:0 30px 0 25px;font-size: 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()"  data-dismiss="modal">退款</button>
                             <button v-else disabled type="button" style="margin:0 30px 0 25px;font-size: 20px;float: left" class="btn ivu-btn-error" @click="refundOrder()"  data-dismiss="modal">退款</button>
-                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-warning" @click="confirmDelivery" id="confirmDelivery" data-dismiss="modal">确定提货</button>
+<!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-warning" @click="confirmDelivery" id="confirmDelivery" data-dismiss="modal">确定提货</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendNotice" id="resendNotice" data-dismiss="modal">重发通知</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendNotice" id="resendNotice" data-dismiss="modal">重发通知</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendWaybill" id="resendWaybill" data-dismiss="modal">重发运单</button>-->
 <!--                            <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendWaybill" id="resendWaybill" data-dismiss="modal">重发运单</button>-->
                             <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendorder" id="resendorder" data-dismiss="modal">重发订单</button>
                             <button type="button" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="resendorder" id="resendorder" data-dismiss="modal">重发订单</button>

+ 12 - 5
kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2pointsrules.html

@@ -34,10 +34,8 @@
     <Card v-show="!showList">
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
         <p slot="title">{{title}}</p>
 		<i-form ref="formValidate" :model="mall2PointsRules" :rules="ruleValidate" :label-width="80">
 		<i-form ref="formValidate" :model="mall2PointsRules" :rules="ruleValidate" :label-width="80">
-
-            <Form-item  label="积分类型" prop="pointsRulesId" style="height: 30px;">
-                <i-select v-model="mall2PointsRules.pointsType" placeholder="积分类型" @on-change="changeCategories"
-                          label-in-value style="width: 268px;height: 30px;">
+            <Form-item  label="积分类型" prop="pointsTypeStr" style="height: 30px;">
+                <i-select v-model="mall2PointsRules.pointsTypeStr" placeholder="积分类型" label-in-value>
                     <i-option v-for="category in categories" :value="category.value"
                     <i-option v-for="category in categories" :value="category.value"
                               :key="category.value">{{category.name}}
                               :key="category.value">{{category.name}}
                     </i-option>
                     </i-option>
@@ -55,8 +53,17 @@
             <Form-item label="适用结束时间" prop="pointsEndTime">
             <Form-item label="适用结束时间" prop="pointsEndTime">
                 <i-input type="date"  v-model="mall2PointsRules.pointsEndTime" placeholder="积分规则适用结束时间"/>
                 <i-input type="date"  v-model="mall2PointsRules.pointsEndTime" placeholder="积分规则适用结束时间"/>
             </Form-item>
             </Form-item>
+            <Form-item label="积分比例" prop="pointsProportion">
+                <i-input v-model="mall2PointsRules.pointsProportion" placeholder="积分比例" />
+            </Form-item>
             <Form-item label="是否有效" prop="isValid">
             <Form-item label="是否有效" prop="isValid">
-                <i-input v-model="mall2PointsRules.isValid" placeholder="积分规则是否有效"/>
+                <i-select v-model="mall2PointsRules.isValid" placeholder="是否有效"
+                          label-in-value style="width: 268px;height: 30px;">
+                    <i-option v-for="categoryValid in isValidMsgCategories" :value="categoryValid.value"
+                              :key="categoryValid.value">{{categoryValid.name}}
+                    </i-option>
+                </i-select>
+<!--                <i-input v-model="mall2PointsRules.isValid" placeholder="积分规则是否有效"/>-->
             </Form-item>
             </Form-item>
             <Form-item>
             <Form-item>
                 <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
                 <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>

+ 6 - 13
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -1194,17 +1194,6 @@ let vm = new Vue({
                 });
                 });
             })
             })
         },
         },
-        resendOrder:function(){
-            confirm('确认重发订单吗?', function () {
-                $.get("../order/resendOrderHkMall/"+vm.orderEntity.orderSn, function (r) {
-                    if(r.code == "0"){
-                        alert(r.msg);
-                    } else {
-                        alert(r.msg);
-                    }
-                });
-            })
-        },
         forceSendToOms:function(){
         forceSendToOms:function(){
             confirm('确认强制推送清关吗?', function () {
             confirm('确认强制推送清关吗?', function () {
                 $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/forceSend", function (r) {
                 $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/forceSend", function (r) {
@@ -1214,8 +1203,12 @@ let vm = new Vue({
         },
         },
         resendorder:function(){
         resendorder:function(){
             confirm('确认重发订单吗?', function () {
             confirm('确认重发订单吗?', function () {
-                $.get("../order/resendOrderToCCNET/"+vm.orderEntity.orderSn+"/resendOrder", function (r) {
-                    alert(r.msg);
+                $.get("../order/resendOrderHkMall/"+vm.orderEntity.orderSn, function (r) {
+                    if(r.code == "0"){
+                        alert(r.msg);
+                    } else {
+                        alert(r.msg);
+                    }
                 });
                 });
             })
             })
         },
         },

+ 15 - 10
kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js

@@ -30,6 +30,7 @@ $(function () {
 					return transDate(value, 'yyyy-MM-dd');
 					return transDate(value, 'yyyy-MM-dd');
 				}
 				}
 			},
 			},
+			{label: '积分比例', name: 'pointsProportion', index: 'points_proportion', width: 80},
 			{
 			{
 				label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, formatter: function (value) {
 				label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, formatter: function (value) {
 					if (value === '0' || value === 0) {
 					if (value === '0' || value === 0) {
@@ -81,7 +82,11 @@ let vm = new Vue({
         showList: true,
         showList: true,
         title: null,
         title: null,
 		categories: [],//一级分类
 		categories: [],//一级分类
+		isValidMsgCategories: [],//是否一致
+		brands: [],
+		brandsIsValid:[],
 		categoriesTwo: [],
 		categoriesTwo: [],
+		isValidMsgCategoriesTwo:[],
 		mall2PointsRules: {},
 		mall2PointsRules: {},
 		ruleValidate: {
 		ruleValidate: {
 			name: [
 			name: [
@@ -100,7 +105,10 @@ let vm = new Vue({
 			vm.showList = false;
 			vm.showList = false;
 			vm.title = "新增";
 			vm.title = "新增";
 			vm.mall2PointsRules = {};
 			vm.mall2PointsRules = {};
+			vm.isValidMsgCategories=[],
+			vm.brands=[],
 			vm.getCategories();
 			vm.getCategories();
+			vm.getIsValiDCategories();
 		},
 		},
 		update: function (event) {
 		update: function (event) {
             let mprId = getSelectedRow();
             let mprId = getSelectedRow();
@@ -110,6 +118,7 @@ let vm = new Vue({
 			vm.showList = false;
 			vm.showList = false;
             vm.title = "修改";
             vm.title = "修改";
 			vm.getCategories();
 			vm.getCategories();
+			vm.getIsValiDCategories();
             vm.getInfo(mprId)
             vm.getInfo(mprId)
 		},
 		},
 		saveOrUpdate: function (event) {
 		saveOrUpdate: function (event) {
@@ -172,16 +181,6 @@ let vm = new Vue({
             }
             }
             vm.reload();
             vm.reload();
 		},
 		},
-		changeCategories: function (opt) {
-			var value = opt.value;
-			vm.brands = [];
-			if(value){
-				vm.getBrand(value);
-				$.get("./sys/macro/getPointRulesDetil?parentId=" + value, function (r) {
-					vm.categoriesTwo = r.list;
-				});
-			}
-		},
 		getCategories: function () {
 		getCategories: function () {
 			$.get("../sys/macro/queryMacrosByValueRuRules?id=70", function (r) {
 			$.get("../sys/macro/queryMacrosByValueRuRules?id=70", function (r) {
 				vm.categories = r.list;
 				vm.categories = r.list;
@@ -192,6 +191,12 @@ let vm = new Vue({
 				vm.brands = r.list;
 				vm.brands = r.list;
 			});
 			});
 		},
 		},
+		getIsValiDCategories: function () {
+			$.get("../sys/macro/queryMacrosByValueRuRules?id=79", function (r) {
+				vm.isValidMsgCategories = r.list;
+			});
+		},
+
 		reload: function (event) {
 		reload: function (event) {
 			vm.showList = true;
 			vm.showList = true;
 			let page = event;
 			let page = event;