소스 검색

Merge branch 'master' of http://git.ds-bay.com/project/kmall-haikong

lhm 3 년 전
부모
커밋
8e13d4573a
42개의 변경된 파일1280개의 추가작업 그리고 129개의 파일을 삭제
  1. 148 0
      kmall-admin/src/main/java/com/kmall/admin/aop/InterfaceExternalAspect.java
  2. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/InterfaceSendLogController.java
  3. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderProcessRecordExternalController.java
  4. 11 0
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java
  5. 16 0
      kmall-admin/src/main/java/com/kmall/admin/dao/InterfaceSendLogDao.java
  6. 3 0
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderProcessRecordDao.java
  7. 5 0
      kmall-admin/src/main/java/com/kmall/admin/dao/PickUpCodeDao.java
  8. 3 0
      kmall-admin/src/main/java/com/kmall/admin/dao/StoreDao.java
  9. 12 0
      kmall-admin/src/main/java/com/kmall/admin/dto/StoreGoodsDto.java
  10. 12 1
      kmall-admin/src/main/java/com/kmall/admin/entity/AddressEntity.java
  11. 166 0
      kmall-admin/src/main/java/com/kmall/admin/entity/InterfaceSendLogEntity.java
  12. 10 2
      kmall-admin/src/main/java/com/kmall/admin/entity/MallVmcSendlogEntity.java
  13. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/ProductStoreRelaEntity.java
  14. 1 1
      kmall-admin/src/main/java/com/kmall/admin/haikong/client/HaiKongVmcconnectTemplate.java
  15. 20 20
      kmall-admin/src/main/java/com/kmall/admin/haikong/client/VmcShopTemplate.java
  16. 19 10
      kmall-admin/src/main/java/com/kmall/admin/haikong/constant/HaiKongMemberSystemUrlEnum.java
  17. 11 2
      kmall-admin/src/main/java/com/kmall/admin/haikong/constant/HaiKongWareSystemUrlEnum.java
  18. 17 5
      kmall-admin/src/main/java/com/kmall/admin/haikong/constant/VmcconnectUrlEnum.java
  19. 73 0
      kmall-admin/src/main/java/com/kmall/admin/service/InterfaceSendLogService.java
  20. 2 1
      kmall-admin/src/main/java/com/kmall/admin/service/OrderProcessRecordService.java
  21. 3 0
      kmall-admin/src/main/java/com/kmall/admin/service/StoreService.java
  22. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/InterfaceSendLogServiceImpl.java
  23. 29 24
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderProcessRecordServiceImpl.java
  24. 21 27
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  25. 5 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/StoreServiceImpl.java
  26. 1 0
      kmall-admin/src/main/resources/XmlTemplate/StoreGoodsDtoList.xml
  27. 11 8
      kmall-admin/src/main/resources/mybatis/mapper/AddressDao.xml
  28. 11 5
      kmall-admin/src/main/resources/mybatis/mapper/MallVmcSendLogDao.xml
  29. 49 0
      kmall-admin/src/main/resources/mybatis/mapper/OrderProcessRecordDao.xml
  30. 37 0
      kmall-admin/src/main/resources/mybatis/mapper/PickUpCodeDao.xml
  31. 4 2
      kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml
  32. 8 0
      kmall-admin/src/main/resources/mybatis/mapper/StoreDao.xml
  33. 115 0
      kmall-admin/src/main/resources/mybatis/mapper/shop/InterfaceSendLogDao.xml
  34. 5 2
      kmall-admin/src/main/webapp/WEB-INF/page/shop/address.html
  35. 72 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/interfacesendlog.html
  36. 2 1
      kmall-admin/src/main/webapp/js/shop/address.js
  37. 8 8
      kmall-admin/src/main/webapp/js/shop/goods.js
  38. 149 0
      kmall-admin/src/main/webapp/js/shop/interfacesendlog.js
  39. 9 8
      kmall-admin/src/main/webapp/js/shop/storeProductStock.js
  40. BIN
      kmall-admin/src/main/webapp/statics/img/sf_img.jpg
  41. 34 0
      kmall-common/src/main/java/com/kmall/common/constant/Dict.java
  42. 1 1
      kmall-common/src/main/java/com/kmall/common/utils/Query.java

+ 148 - 0
kmall-admin/src/main/java/com/kmall/admin/aop/InterfaceExternalAspect.java

@@ -0,0 +1,148 @@
+package com.kmall.admin.aop;
+
+import com.alibaba.fastjson.JSON;
+import com.kmall.admin.dao.InterfaceSendLogDao;
+import com.kmall.admin.entity.InterfaceSendLogEntity;
+import com.kmall.admin.haikong.constant.HaiKongMemberSystemUrlEnum;
+import com.kmall.admin.haikong.constant.HaiKongWareSystemUrlEnum;
+import com.kmall.admin.haikong.constant.VmcconnectUrlEnum;
+import com.kmall.common.constant.Dict;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Aspect
+@Component
+public class InterfaceExternalAspect {
+    private final static Logger logger = LoggerFactory.getLogger(RepeatSubmitAspect.class);
+
+    /**
+     * 日志记录dao层
+     */
+    @Autowired
+    private InterfaceSendLogDao interfaceSendLogDao;
+
+    /**
+     * 接口日志记录
+     *
+     * @param proceedingJoinPoint
+     * @return
+     */
+    @Around("execution(public * com.kmall.admin.haikong.client.*.*(..))")
+    public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
+        Object result = null;
+        String exMsg = null;
+        String methd = null;
+        InterfaceSendLogEntity interfaceSendLogEntity = null;
+        StringBuilder requestLog = new StringBuilder();
+        try {
+            MethodSignature methodSignature = (MethodSignature) proceedingJoinPoint.getSignature();
+            methd = methodSignature.getMethod().getName();
+             interfaceSendLogEntity = getMethdMsg(methd);
+            Object[] args = proceedingJoinPoint.getArgs();
+            for (Object o : args) {
+                requestLog.append(String.format("参数:%s\r\n", JSON.toJSON(o)));
+            }
+            interfaceSendLogEntity.setRequestDate(new Date());
+            result = proceedingJoinPoint.proceed();
+
+            } catch (Exception e) {
+            exMsg = e.getMessage();
+            throw e;
+        } finally {
+            saveVmcSend(interfaceSendLogEntity,requestLog.toString(),JSON.toJSONString(result),exMsg);
+        }
+        return result;
+    }
+
+    /**
+     * 调用各外部系统日志组装
+     * @param methd
+     * @return
+     */
+    private InterfaceSendLogEntity getMethdMsg(String methd) {
+        InterfaceSendLogEntity interfaceSendLogEntity = new InterfaceSendLogEntity();
+        switch (methd){
+            case "sendOrder":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_mall.getItemName());
+                interfaceSendLogEntity.setInterfaceType(VmcconnectUrlEnum.ORDERS_CREATE_ORDER.getMethodName());
+                break;
+            case "refundOrder":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_mall.getItemName());
+                interfaceSendLogEntity.setInterfaceType(VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMethodName());
+                break;
+            case "ordersOuterStatus":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_mall.getItemName());
+                interfaceSendLogEntity.setInterfaceType(VmcconnectUrlEnum.ORDERS_OUTER_STATUS.getMethodName());
+                break;
+            case "resendOrder":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_mall.getItemName());
+                interfaceSendLogEntity.setInterfaceType(VmcconnectUrlEnum.ORDERS_RETRY_ORDER.getMethodName());
+                break;
+            case "queryWarehouseStock":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_warehouse.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongWareSystemUrlEnum.QUERY_INVENTORY.getMethodName());
+                break;
+                //会员系统
+            case "getAccessToken":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.QUERY_ACCESS_TOKEN.getMethodName());
+                break;
+            case "refreshAccessToken":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.REFRESH_ACCESS_TOKEN.getMethodName());
+                break;
+            case "getMemberInfoByPhone":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.QUERY_MEMBER_INFO_BY_PHONE.getMethodName());
+                break;
+            case "getMemberInfoByCode":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.QUERY_MEMBER_INFO_BY_CODE.getMethodName());
+                break;
+            case "getMemberCouponInfo":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.QUERY_MEMBER_COUPON.getMethodName());
+                break;
+            case "changeMemberScore":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.CHANGE_MEMBER_SCORE.getMethodName());
+                break;
+            case "memberOrderSync":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.MEMBER_ORDER_SYNC.getMethodName());
+                break;
+            case "rollbackMemberScore":
+                interfaceSendLogEntity.setSysType(Dict.sendLog.item_member.getItemName());
+                interfaceSendLogEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.ROLLBACK_MEMBER_SCORE.getMethodName());
+                break;
+            default:
+                break;
+        }
+            return interfaceSendLogEntity;
+    }
+
+
+    /**
+     * 插入日志记录
+     * @param interfaceSendLogEntity
+     * @param request
+     * @param response
+     * @param exMsg
+     */
+    private void saveVmcSend(InterfaceSendLogEntity interfaceSendLogEntity, String request, String response,String exMsg){
+        interfaceSendLogEntity.setRequestMsg(request);
+        interfaceSendLogEntity.setResponseMsg(response);
+        interfaceSendLogEntity.setResponseDate(new Date());
+        interfaceSendLogEntity.setExceptionMsg(exMsg);
+        interfaceSendLogDao.save(interfaceSendLogEntity);
+    }
+
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/InterfaceSendLogController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.InterfaceSendLogEntity;
+import com.kmall.admin.service.InterfaceSendLogService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 接口日志记录Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-03 16:41:35
+ */
+@Controller
+@RequestMapping("interfacesendlog")
+public class InterfaceSendLogController {
+    @Autowired
+    private InterfaceSendLogService interfaceSendLogService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("interfacesendlog:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<InterfaceSendLogEntity> interfaceSendLogList = interfaceSendLogService.queryList(query);
+        int total = interfaceSendLogService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(interfaceSendLogList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("interfacesendlog:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        InterfaceSendLogEntity interfaceSendLog = interfaceSendLogService.queryObject(id);
+
+        return R.ok().put("interfaceSendLog", interfaceSendLog);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("interfacesendlog:save")
+    @ResponseBody
+    public R save(@RequestBody InterfaceSendLogEntity interfaceSendLog) {
+        interfaceSendLogService.save(interfaceSendLog);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("interfacesendlog:update")
+    @ResponseBody
+    public R update(@RequestBody InterfaceSendLogEntity interfaceSendLog) {
+        interfaceSendLogService.update(interfaceSendLog);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("interfacesendlog:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        interfaceSendLogService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<InterfaceSendLogEntity> list = interfaceSendLogService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -68,7 +68,7 @@ public class OrderProcessRecordExternalController {
             if(num>0L){
                 return Message.error("订单数据存在重复");
             }
-            return orderProcessRecordService.saveHkNoticeMsg(orderProcessRecordList);
+            return orderProcessRecordService.saveHkNoticeMsg(orderProcessRecordList,outRequestMessage);
         }catch (Exception e){
             logger.error("hknoticeMsg---订单流转信息回调通知接口数据="+ JSON.toJSONString(outRequestMessage),e);
             return Message.error("参数错误");

+ 11 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java

@@ -3,6 +3,7 @@ package com.kmall.admin.controller;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dto.StoreDto;
 import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.entity.SysMacroEntity;
 import com.kmall.admin.service.StoreService;
 import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
@@ -279,4 +280,14 @@ public class StoreController {
         return R.ok();
     }
 
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAllDictionary")
+    @ResponseBody
+    public R queryAll() {
+        List<SysMacroEntity> list = storeService.queryListDictionary();
+        return R.ok().put("list", list);
+    }
+
 }

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/InterfaceSendLogDao.java

@@ -0,0 +1,16 @@
+package com.kmall.admin.dao;
+
+
+import com.kmall.admin.entity.InterfaceSendLogEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 接口日志记录Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-03 16:41:35
+ */
+public interface InterfaceSendLogDao extends BaseDao<InterfaceSendLogEntity> {
+
+}

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

@@ -23,4 +23,7 @@ public interface OrderProcessRecordDao extends BaseDao<OrderProcessRecordEntity>
     void updateHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
 
     Integer queryHkOrderTotal(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
+
+    void updateHkNoticeMsgMallOrder(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
+
 }

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

@@ -1,9 +1,12 @@
 package com.kmall.admin.dao;
 
+import com.kmall.admin.entity.OrderProcessRecordHkNewEntity;
 import com.kmall.admin.entity.PickUpCodeEntity;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 小票码信息表Dao
  *
@@ -28,4 +31,6 @@ public interface PickUpCodeDao extends BaseDao<PickUpCodeEntity> {
     String queryMaxPickUpCode(@Param("nowTime") String nowTime);
 
     String queryMaxPickUpCodeByStoreId(@Param("nowTime")String nowTime, @Param("storeId") String storeId);
+
+    void updateHkNoticeMsgPickUpCode(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
 }

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

@@ -2,6 +2,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.dto.Mall2RulesDto;
 import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.entity.SysMacroEntity;
 import com.kmall.admin.entity.vip.Mall2DetilEntity;
 import org.apache.ibatis.annotations.Param;
 import com.kmall.manager.dao.BaseDao;
@@ -34,4 +35,6 @@ public interface StoreDao extends BaseDao<StoreEntity> {
     void updateStoreRulesDetil(Integer[] mprIds);
 
     Long queryObjectRulesByName(String trim);
+
+    List<SysMacroEntity> queryListDictionary();
 }

+ 12 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/StoreGoodsDto.java

@@ -26,6 +26,10 @@ public class StoreGoodsDto implements Serializable {
     private String bottomLinePrice;//底线价
     private String batchSn;//批次编号
     private String uniqueIdentifier;
+    /**
+     * 出区数
+     */
+    private String exitRegionNumber;
 
     public String getBatchSn() {
         return batchSn;
@@ -146,4 +150,12 @@ public class StoreGoodsDto implements Serializable {
     public void setUniqueIdentifier(String uniqueIdentifier) {
         this.uniqueIdentifier = uniqueIdentifier;
     }
+
+    public String getExitRegionNumber() {
+        return exitRegionNumber;
+    }
+
+    public void setExitRegionNumber(String exitRegionNumber) {
+        this.exitRegionNumber = exitRegionNumber;
+    }
 }

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

@@ -65,7 +65,10 @@ public class AddressEntity implements Serializable {
      * 所属门店
      */
     private String storeName;
-
+    /**
+     * 发货人名称
+     */
+    private String senderName;
 
     /**
      * 翻译会员名
@@ -251,4 +254,12 @@ public class AddressEntity implements Serializable {
     public void setStoreName(String storeName) {
         this.storeName = storeName;
     }
+
+    public String getSenderName() {
+        return senderName;
+    }
+
+    public void setSenderName(String senderName) {
+        this.senderName = senderName;
+    }
 }

+ 166 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/InterfaceSendLogEntity.java

@@ -0,0 +1,166 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 接口日志记录实体
+ * 表名 mall_interface_send_log
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-03 16:41:35
+ */
+public class InterfaceSendLogEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Integer id;
+    /**
+     * 请求/响应系统类型
+     */
+    private String sysType;
+    /**
+     * 请求/响应接口类型
+     */
+    private String interfaceType;
+    /**
+     * 请求信息
+     */
+    private String requestMsg;
+    /**
+     * 响应状态码
+     */
+    private String msgStatus;
+    /**
+     * 响应结果
+     */
+    private String responseMsg;
+    /**
+     * 发送时间
+     */
+    private Date requestDate;
+    /**
+     * 响应时间
+     */
+    private Date responseDate;
+    /**
+     * 异常信息
+     */
+    private String exceptionMsg;
+
+    /**
+     * 设置:主键id
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:主键id
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:请求/响应系统类型
+     */
+    public void setSysType(String sysType) {
+        this.sysType = sysType;
+    }
+
+    /**
+     * 获取:请求/响应系统类型
+     */
+    public String getSysType() {
+        return sysType;
+    }
+    /**
+     * 设置:请求/响应接口类型
+     */
+    public void setInterfaceType(String interfaceType) {
+        this.interfaceType = interfaceType;
+    }
+
+    /**
+     * 获取:请求/响应接口类型
+     */
+    public String getInterfaceType() {
+        return interfaceType;
+    }
+    /**
+     * 设置:请求信息
+     */
+    public void setRequestMsg(String requestMsg) {
+        this.requestMsg = requestMsg;
+    }
+
+    /**
+     * 获取:请求信息
+     */
+    public String getRequestMsg() {
+        return requestMsg;
+    }
+    /**
+     * 设置:响应状态码
+     */
+    public void setMsgStatus(String msgStatus) {
+        this.msgStatus = msgStatus;
+    }
+
+    /**
+     * 获取:响应状态码
+     */
+    public String getMsgStatus() {
+        return msgStatus;
+    }
+    /**
+     * 设置:响应结果
+     */
+    public void setResponseMsg(String responseMsg) {
+        this.responseMsg = responseMsg;
+    }
+
+    /**
+     * 获取:响应结果
+     */
+    public String getResponseMsg() {
+        return responseMsg;
+    }
+    /**
+     * 设置:发送时间
+     */
+    public void setRequestDate(Date requestDate) {
+        this.requestDate = requestDate;
+    }
+
+    /**
+     * 获取:发送时间
+     */
+    public Date getRequestDate() {
+        return requestDate;
+    }
+    /**
+     * 设置:响应时间
+     */
+    public void setResponseDate(Date responseDate) {
+        this.responseDate = responseDate;
+    }
+
+    /**
+     * 获取:响应时间
+     */
+    public Date getResponseDate() {
+        return responseDate;
+    }
+
+    public String getExceptionMsg() {
+        return exceptionMsg;
+    }
+
+    public void setExceptionMsg(String exceptionMsg) {
+        this.exceptionMsg = exceptionMsg;
+    }
+}

+ 10 - 2
kmall-admin/src/main/java/com/kmall/admin/entity/MallVmcSendlogEntity.java

@@ -13,9 +13,13 @@ public class MallVmcSendlogEntity implements Serializable {
      */
     private Integer id;
     /**
-     * 请求类型
+     * 请求系统类型
      */
-    private String vmcType;
+    private String sysType;
+    /**
+     * 请求接口类型
+     */
+    private String interfaceType;
     /**
      * 订单编号
      */
@@ -32,4 +36,8 @@ public class MallVmcSendlogEntity implements Serializable {
      * 发送时间
      */
     private Data sendDate;
+    /**
+     * 状态码
+     */
+    private String msgStatus;
 }

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

@@ -147,6 +147,8 @@ public class ProductStoreRelaEntity implements Serializable {
     private Integer toBeRestored;
     //积分生成规则id
     private Long pointsRulesId;
+    //出区数
+    private Integer exitRegionNumber;
 
     public ProductStoreRelaEntity() {
     }
@@ -626,4 +628,12 @@ public class ProductStoreRelaEntity implements Serializable {
     public void setPointsRulesId(Long pointsRulesId) {
         this.pointsRulesId = pointsRulesId;
     }
+
+    public Integer getExitRegionNumber() {
+        return exitRegionNumber;
+    }
+
+    public void setExitRegionNumber(Integer exitRegionNumber) {
+        this.exitRegionNumber = exitRegionNumber;
+    }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/haikong/client/HaiKongVmcconnectTemplate.java

@@ -24,7 +24,7 @@ public class HaiKongVmcconnectTemplate {
      * @param method
      * @return
      */
-    public String vmcconnectSign(String methodParams,String method){
+    private String vmcconnectSign(String methodParams,String method){
         Map<String,String> params = new HashMap<>();
         params.put("appid",haiKongProperties.getVmcconnectAppId());
         params.put("method", method);

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

@@ -35,7 +35,7 @@ public class VmcShopTemplate {
      * @param method
      * @return
      */
-    public String vmcconnectSign(String json,String method){
+    private String vmcconnectSign(String json,String method){
         Map<String,String> params = new HashMap<>();
         params.put("appid",haiKongProperties.getVmcconnectAppId());
         params.put("method", method);
@@ -96,24 +96,24 @@ public class VmcShopTemplate {
     }
 
 
-    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);
-    }
+//    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);
+//    }
 
 }

+ 19 - 10
kmall-admin/src/main/java/com/kmall/admin/haikong/constant/HaiKongMemberSystemUrlEnum.java

@@ -12,39 +12,39 @@ public enum HaiKongMemberSystemUrlEnum {
     /**
      * 获取accessToken
      */
-    QUERY_ACCESS_TOKEN("POST", "/gw/gateway/dss.auth.token.query/v1"),
+    QUERY_ACCESS_TOKEN("POST", "/gw/gateway/dss.auth.token.query/v1","获取accessToken接口"),
     /**
      * 刷新token
      */
-    REFRESH_ACCESS_TOKEN("POST", "/gw/gateway/dss.auth.token.refresh/v1"),
+    REFRESH_ACCESS_TOKEN("POST", "/gw/gateway/dss.auth.token.refresh/v1","刷新token接口"),
     /**
      * 查询会员信息,根据手机号
      */
-    QUERY_MEMBER_INFO_BY_PHONE("POST", "/gw/gateway/wk.user.info.query/v1"),
+    QUERY_MEMBER_INFO_BY_PHONE("POST", "/gw/gateway/wk.user.info.query/v1","查询会员信息(根据手机号)接口"),
     /**
      * 查询会员信息,根据会员码
      */
-    QUERY_MEMBER_INFO_BY_CODE("POST", "/gw/gateway/wk.user.code.parsing/v1"),
+    QUERY_MEMBER_INFO_BY_CODE("POST", "/gw/gateway/wk.user.code.parsing/v1","查询会员信息(根据会员码)接口"),
     /**
      * 更新会员积分
      */
-    CHANGE_MEMBER_SCORE("POST", "/gw/gateway/wk.user.event.score.change/v1"),
+    CHANGE_MEMBER_SCORE("POST", "/gw/gateway/wk.user.event.score.change/v1","更新会员积分接口"),
     /**
      * 会员积分回退
      */
-    ROLLBACK_MEMBER_SCORE("POST", "/gw/gateway/wk.user.event.score.rollback/v1"),
+    ROLLBACK_MEMBER_SCORE("POST", "/gw/gateway/wk.user.event.score.rollback/v1","会员积分回退接口"),
     /**
      * 会员积分部分回退
      */
-    ROLLBACK_PART_MEMBER_SCORE("POST", "/gw/gateway/wk.user.event.score.rollback.part/v1"),
+    ROLLBACK_PART_MEMBER_SCORE("POST", "/gw/gateway/wk.user.event.score.rollback.part/v1","会员积分部分回退接口"),
     /**
      * 查询会员优惠券,不用对接
      */
-    QUERY_MEMBER_COUPON("GET", "/gateway/wk.coupon.user.list/v1"),
+    QUERY_MEMBER_COUPON("GET", "/gateway/wk.coupon.user.list/v1","查询会员优惠券接口"),
     /**
      * 会员消费订单同步接口
      */
-    MEMBER_ORDER_SYNC("POST", "/gateway/wk.user.order.add/v1"),
+    MEMBER_ORDER_SYNC("POST", "/gateway/wk.user.order.add/v1","会员消费订单同步接口"),
 
     ;
 
@@ -56,10 +56,15 @@ public enum HaiKongMemberSystemUrlEnum {
      * 请求地址
      */
     private final String url;
+    /**
+     * 请求名称
+     */
+    private final String methodName;
 
-    HaiKongMemberSystemUrlEnum(String method, String url) {
+    HaiKongMemberSystemUrlEnum(String method, String url, String methodName) {
         this.method = method;
         this.url = url;
+        this.methodName = methodName;
     }
 
     public String getMethod() {
@@ -69,4 +74,8 @@ public enum HaiKongMemberSystemUrlEnum {
     public String getUrl() {
         return url;
     }
+
+    public String getMethodName() {
+        return methodName;
+    }
 }

+ 11 - 2
kmall-admin/src/main/java/com/kmall/admin/haikong/constant/HaiKongWareSystemUrlEnum.java

@@ -11,7 +11,7 @@ public enum HaiKongWareSystemUrlEnum {
     /**
      * 查询库存,多商品
      */
-    QUERY_INVENTORY("POST", ""),
+    QUERY_INVENTORY("POST", "","查询库存接口"),
     ;
 
 
@@ -24,10 +24,15 @@ public enum HaiKongWareSystemUrlEnum {
      * 请求地址
      */
     private final String url;
+    /**
+     * 请求名称
+     */
+    private final String methodName;
 
-    HaiKongWareSystemUrlEnum(String method, String url) {
+    HaiKongWareSystemUrlEnum(String method, String url, String methodName) {
         this.method = method;
         this.url = url;
+        this.methodName = methodName;
     }
 
     public String getMethod() {
@@ -37,4 +42,8 @@ public enum HaiKongWareSystemUrlEnum {
     public String getUrl() {
         return url;
     }
+
+    public String getMethodName() {
+        return methodName;
+    }
 }

+ 17 - 5
kmall-admin/src/main/java/com/kmall/admin/haikong/constant/VmcconnectUrlEnum.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.haikong.constant;
 
+import com.kmall.common.constant.Dict;
+
 /**
  * 免税mall接口方法名
  */
@@ -8,19 +10,19 @@ public enum VmcconnectUrlEnum {
     /**
      * 订单创建接口
      */
-    ORDERS_CREATE_ORDER("POST", "vmc.orders.create.order"),
+    ORDERS_CREATE_ORDER("POST", "vmc.orders.create.order","订单创建接口"),
     /**
      * 订单取消接口
      */
-    ORDERS_CANCEL_ORDER("POST", "vmc.orders.cancel.order"),
+    ORDERS_CANCEL_ORDER("POST", "vmc.orders.cancel.order","订单取消接口"),
     /**
      * 订单通关查询接口
      */
-    ORDERS_OUTER_STATUS("POST", "vmc.orders.read.outer_status"),
+    ORDERS_OUTER_STATUS("POST", "vmc.orders.read.outer_status","订单通关查询接口"),
     /**
      * 重试订单接口
      */
-    ORDERS_RETRY_ORDER("POST", "vmc.orders.retry.order"),
+    ORDERS_RETRY_ORDER("POST", "vmc.orders.retry.order","重试订单接口"),
     ;
 
 
@@ -32,10 +34,15 @@ public enum VmcconnectUrlEnum {
      * 请求地址
      */
     private final String method;
+    /**
+     * 请求名称
+     */
+    private final String methodName;
 
-    VmcconnectUrlEnum(String method, String mode) {
+    VmcconnectUrlEnum(String method, String mode,String methodName) {
         this.mode = mode;
         this.method = method;
+        this.methodName = methodName;
     }
 
     public String getMethod() {
@@ -45,4 +52,9 @@ public enum VmcconnectUrlEnum {
     public String getMode() {
         return mode;
     }
+
+    public String getMethodName() {
+        return methodName;
+    }
+
 }

+ 73 - 0
kmall-admin/src/main/java/com/kmall/admin/service/InterfaceSendLogService.java

@@ -0,0 +1,73 @@
+package com.kmall.admin.service;
+
+
+import com.kmall.admin.entity.InterfaceSendLogEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 接口日志记录Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-03 16:41:35
+ */
+public interface InterfaceSendLogService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    InterfaceSendLogEntity queryObject(Integer id);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<InterfaceSendLogEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param interfaceSendLog 实体
+     * @return 保存条数
+     */
+    int save(InterfaceSendLogEntity interfaceSendLog);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param interfaceSendLog 实体
+     * @return 更新条数
+     */
+    int update(InterfaceSendLogEntity interfaceSendLog);
+
+    /**
+     * 根据主键删除
+     *
+     * @param id
+     * @return 删除条数
+     */
+    int delete(Integer id);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param ids
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[]ids);
+}

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

@@ -4,6 +4,7 @@ package com.kmall.admin.service;
 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.OutRequestMessage;
 
 import java.util.List;
 import java.util.Map;
@@ -82,5 +83,5 @@ public interface OrderProcessRecordService {
      * @param orderProcessRecordList
      * @return
      */
-    Message saveHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList);
+    Message saveHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList,OutRequestMessage outRequestMessage) throws Exception;
 }

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

@@ -3,6 +3,7 @@ package com.kmall.admin.service;
 import com.kmall.admin.dto.StoreDto;
 import com.kmall.admin.dto.StoreIdDto;
 import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.entity.SysMacroEntity;
 
 import java.util.List;
 import java.util.Map;
@@ -89,4 +90,6 @@ public interface StoreService {
      * @return
      */
     List<StoreEntity> queryStoreByAll();
+
+    List<SysMacroEntity> queryListDictionary();
 }

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/InterfaceSendLogServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl;
+
+import com.kmall.admin.dao.InterfaceSendLogDao;
+import com.kmall.admin.entity.InterfaceSendLogEntity;
+import com.kmall.admin.service.InterfaceSendLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 接口日志记录Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2021-12-03 16:41:35
+ */
+@Service("interfaceSendLogService")
+public class InterfaceSendLogServiceImpl implements InterfaceSendLogService {
+    @Autowired
+    private InterfaceSendLogDao interfaceSendLogDao;
+
+    @Override
+    public InterfaceSendLogEntity queryObject(Integer id) {
+        return interfaceSendLogDao.queryObject(id);
+    }
+
+    @Override
+    public List<InterfaceSendLogEntity> queryList(Map<String, Object> map) {
+        return interfaceSendLogDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return interfaceSendLogDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(InterfaceSendLogEntity interfaceSendLog) {
+        return interfaceSendLogDao.save(interfaceSendLog);
+    }
+
+    @Override
+    public int update(InterfaceSendLogEntity interfaceSendLog) {
+        return interfaceSendLogDao.update(interfaceSendLog);
+    }
+
+    @Override
+    public int delete(Integer id) {
+        return interfaceSendLogDao.delete(id);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]ids) {
+        return interfaceSendLogDao.deleteBatch(ids);
+    }
+}

+ 29 - 24
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderProcessRecordServiceImpl.java

@@ -1,19 +1,19 @@
 package com.kmall.admin.service.impl;
 
 import com.alibaba.fastjson.JSON;
-import com.kmall.admin.dao.MallVmcSendLogDao;
-import com.kmall.admin.dao.OrderDao;
-import com.kmall.admin.dao.OrderProcessRecordDao;
-import com.kmall.admin.dao.StoreSmsConfigDao;
+import com.kmall.admin.dao.*;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.haikong.utils.Message;
+import com.kmall.admin.haikong.utils.OutRequestMessage;
 import com.kmall.admin.service.OrderProcessRecordService;
 import com.kmall.admin.service.PickUpCodeService;
 import com.kmall.api.util.SendMsgUtil;
+import com.kmall.common.constant.Dict;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -44,8 +44,12 @@ public class OrderProcessRecordServiceImpl implements OrderProcessRecordService
      * 免税mall日志记录
      */
     @Autowired
-    private MallVmcSendLogDao mallVmcSendLogDao;
-
+    private InterfaceSendLogDao interfaceSendLogDao;
+    /**
+     * 更新订单清关状态
+     */
+    @Autowired
+    private PickUpCodeDao pickUpCodeDao;
 
 
     @Override
@@ -166,34 +170,35 @@ public class OrderProcessRecordServiceImpl implements OrderProcessRecordService
      * @return
      */
     @Override
-    public Message saveHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList) {
-       try{
-           saveVmcSend("hkNotice","hkNotice",JSON.toJSONString(orderProcessRecordList),"免税MALL通知回调接口");
+    @Transactional
+    public Message saveHkNoticeMsg(List<OrderProcessRecordHkNewEntity> orderProcessRecordList, OutRequestMessage outRequestMessage) throws Exception{
+           Date dateTime = new Date();
            Integer count = orderProcessRecordDao.queryHkOrderTotal(orderProcessRecordList);
            if(orderProcessRecordList.size()!=count){
                return Message.error("订单不存在");
            }else{
                orderProcessRecordDao.updateHkNoticeMsg(orderProcessRecordList);
+               orderProcessRecordDao.updateHkNoticeMsgMallOrder(orderProcessRecordList);
+               pickUpCodeDao.updateHkNoticeMsgPickUpCode(orderProcessRecordList);
            }
-       }catch (Exception e){
-           logger.error("saveHkNoticeMsg---海控通知回调接口插入错误="+ JSON.toJSONString(orderProcessRecordList),e);
-           return Message.error("参数错误");
-       }
-        return Message.success(true,"成功");
+
+           saveVmcSend(dateTime, Dict.sendLog.item_mall.getItemName(),"免税MALL通知回调接口",JSON.toJSONString(orderProcessRecordList),JSON.toJSONString(outRequestMessage));
+           return Message.success(true,"成功");
     }
 
     /**
-     * 记录免税Mall通知日志
-     * @param orderSn
-     * @param requestMsg
+     * 记录免税Mall日志发送至KMALL门店端
+     * @param request
      * @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);
+    private void saveVmcSend(Date date,String sendLog,String urlType,String request,String response){
+        InterfaceSendLogEntity interfaceSendLogEntity = new InterfaceSendLogEntity();
+        interfaceSendLogEntity.setRequestDate(date);
+        interfaceSendLogEntity.setSysType(sendLog);
+        interfaceSendLogEntity.setInterfaceType(urlType);
+        interfaceSendLogEntity.setRequestMsg(request);
+        interfaceSendLogEntity.setResponseMsg(response);
+        interfaceSendLogEntity.setResponseDate(new Date());
+        interfaceSendLogDao.save(interfaceSendLogEntity);
     }
 }

+ 21 - 27
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -253,10 +253,10 @@ public class OrderServiceImpl implements OrderService {
     @Autowired
     private MkActivitiesPromotionService mkActivitiesPromotionService;
     /**
-     * 免税mall日志记录
+     * 日志记录
      */
     @Autowired
-    private MallVmcSendLogDao mallVmcSendLogDao;
+    private InterfaceSendLogDao interfaceSendLogDao;
 
     /**
      * 同步订单消费信息,重发业务
@@ -602,11 +602,12 @@ public class OrderServiceImpl implements OrderService {
             mailInfo.setExprNoBase64Img(exprNoBase64Img);
 
             mailInfo.setExprNo(exprNo);
-            String logoUrl = "/statics/img/yto_logo.jpg";
+            String logoUrl = "/statics/img/sf_img.jpg";
 
             Map<String, String> logoMap = new HashMap<>();
             logoMap.put("yto", "/statics/img/yto_logo.jpg");
             logoMap.put("best", "/statics/img/bestex_logo3.png");
+            logoMap.put("sf", "/statics/img/sf_img.jpg");
             if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
                 logoUrl = logoMap.get(orderEntity.getShippingCode());
             }
@@ -616,7 +617,7 @@ public class OrderServiceImpl implements OrderService {
         AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
         // 发货人
         mailInfo.setSenderTel(addressEntity.getTelNumber());
-        mailInfo.setSenderName("CW澳洲大药房1");
+        mailInfo.setSenderName(addressEntity.getSenderName());
         mailInfo.setSenderProvince(addressEntity.getProvinceName());
         mailInfo.setSenderCity(addressEntity.getCityName());
         mailInfo.setSenderDistrict(addressEntity.getCountyName());
@@ -3607,14 +3608,18 @@ public class OrderServiceImpl implements OrderService {
     private void vipIntegralGoBack(OrderEntity order) throws Exception{
         List<IntegralGoBackEntity> changeRecordEntityList = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
         for(IntegralGoBackEntity integralGoBackEntity:changeRecordEntityList) {
-            String responseMsg = haiKongMemberTemplate.rollbackMemberScore(JSON.toJSONString(integralGoBackEntity));
+           String integralGoBackEntityMsg = JSON.toJSONString(integralGoBackEntity);
+            Date dateResend = new Date();
+            String responseMsg = haiKongMemberTemplate.rollbackMemberScore(integralGoBackEntityMsg);
             Map<String, Object> res = JSON.parseObject(responseMsg, Map.class);
+            LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
+
+            //解析数据
             if ("true".equals(res.get("success"))) {
                 LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
             } else {
                 LOGGER.error("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口异常数据]" + responseMsg);
                 HaiKongResendMsgEntity haiKongResendMsgEntity = new HaiKongResendMsgEntity();
-                //haiKongResendMsgEntity.setOpenId(changeRecordEntity.getOpen_id());
                 haiKongResendMsgEntity.setOpenId(integralGoBackEntity.getOpen_id());
                 haiKongResendMsgEntity.setOrderSn(order.getOrderSn());
                 haiKongResendMsgEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.ROLLBACK_MEMBER_SCORE.getUrl());
@@ -3623,6 +3628,7 @@ public class OrderServiceImpl implements OrderService {
                 haiKongResendMsgEntity.setIsValid(1);
                 haiKongResendMsgDao.saveResendMsg(haiKongResendMsgEntity);
             }
+
         }
     }
 
@@ -3633,12 +3639,16 @@ public class OrderServiceImpl implements OrderService {
     private void vmcShopMall(OrderEntity order) {
         LOGGER.info("=======> [vmcShopMall-----调用VMCShop接口开始发送退款订单数据]"+order.getOrderSn());
         String body = JacksonUtil.toJson(order.getOrderSn());
+        InterfaceSendLogEntity interfaceSendLogEntity = new InterfaceSendLogEntity();
+        interfaceSendLogEntity.setRequestDate(new Date());
+        interfaceSendLogEntity.setSysType(Dict.sendLog.item_mall.getItemName());
         String response = vmcShopTemplate.refundOrder(body);
+        Date dateResend = new Date();
         //解析响应数据
         LOGGER.info("=======> [vmcShopMall------发送退款订单数据成功,开始处理后续流程]"+response);
-        //Map<String,String> res = JSON.parseObject(response,Map.class);
+        Map<String,String> res = JSON.parseObject(response,Map.class);
+        interfaceSendLogEntity.setMsgStatus(res.get("code"));
 
-        saveVmcSend(order.getOrderSn(),VmcconnectUrlEnum.ORDERS_CANCEL_ORDER.getMethod(),body,response);
         LOGGER.info(order.getOrderSn()+"[发送退款订单数据]"+JSON.toJSONString(order));
 
     }
@@ -4171,11 +4181,12 @@ public class OrderServiceImpl implements OrderService {
             //图片地址
             mailInfo.setStoreImgUrl(storeEntity.getStoreImgUrl()==null?"/statics/img/cw_qrcode.png":storeEntity.getStoreImgUrl().trim());
             mailInfo.setExprNo(exprNo);
-            String logoUrl = "/statics/img/yto_logo.jpg";
+            String logoUrl = "/statics/img/sf_img.jpg";
 
             Map<String, String> logoMap = new HashMap<>();
             logoMap.put("yto", "/statics/img/yto_logo.jpg");
             logoMap.put("best", "/statics/img/bestex_logo3.png");
+            logoMap.put("sf", "/statics/img/sf_img.jpg");
             if (StringUtils.isNotEmpty(orderEntity.getShippingCode()) && logoMap.containsKey(orderEntity.getShippingCode())) {
                 logoUrl = logoMap.get(orderEntity.getShippingCode());
             }
@@ -4739,8 +4750,6 @@ public class OrderServiceImpl implements OrderService {
         String response = vmcShopTemplate.resendOrder(body);
         //解析响应数据
         LOGGER.info("=======> [resendOrderHkMall---重发订单数据成功,开始处理后续流程]"+response);
-        //记录发送至免税Mall日志
-        saveVmcSend(orderSn,VmcconnectUrlEnum.ORDERS_RETRY_ORDER.getMethod(),body,response);
         Map<String,String> res = JSON.parseObject(response,Map.class);
         if("0".equals(res.get("code"))){
             return R.ok();
@@ -4750,21 +4759,6 @@ public class OrderServiceImpl implements OrderService {
     }
 
     /**
-     * 记录发送至免税Mall日志
-     * @param orderSn
-     * @param body
-     * @param response
-     */
-    private void saveVmcSend(String orderSn,String urlType,String body,String response){
-        MallVmcSendlogEntity mallVmcSendlogEntity = new MallVmcSendlogEntity();
-        mallVmcSendlogEntity.setOrderSn(orderSn);
-        mallVmcSendlogEntity.setVmcType(urlType);
-        mallVmcSendlogEntity.setRequestMsg(body);
-        mallVmcSendlogEntity.setResponseMsg(response);
-        mallVmcSendLogDao.saveVmcSend(mallVmcSendlogEntity);
-    }
-
-    /**
      * 设置订单数据
      *
      * @return
@@ -4899,7 +4893,7 @@ public class OrderServiceImpl implements OrderService {
         actualPrice = actualPrice.subtract(couponPrice);
 
         //StoreEntity storeEntity = storeDao.queryObject(storeId);
-        //获取收货人地址
+        //随机获取收货人地址
         AddressEntity addressEntity = addressDao.queryStoreAddress(storeId,Dict.addressStatus.item_2.getItem());
         if(null==addressEntity){
             LOGGER.error("setOrderVo---门店未配置收货人地址:"+storeId);

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/StoreServiceImpl.java

@@ -288,4 +288,9 @@ public class StoreServiceImpl implements StoreService {
     public List<StoreEntity> queryStoreByAll() {
         return storeDao.queryStoreByAll();
     }
+
+    @Override
+    public List<SysMacroEntity> queryListDictionary() {
+        return storeDao.queryListDictionary();
+    }
 }

+ 1 - 0
kmall-admin/src/main/resources/XmlTemplate/StoreGoodsDtoList.xml

@@ -16,6 +16,7 @@
                 <mapping row="1" col="7">StoreGoodsDto.retailPrice</mapping>
                 <mapping row="1" col="8">StoreGoodsDto.marketPrice</mapping>
                 <mapping row="1" col="9">StoreGoodsDto.bottomLinePrice</mapping>
+                <mapping row="1" col="10">StoreGoodsDto.exitRegionNumber</mapping>
 <!--                <mapping row="1" col="9">StoreGoodsDto.batchSn</mapping>-->
             </section>
             <loopbreakcondition>

+ 11 - 8
kmall-admin/src/main/resources/mybatis/mapper/AddressDao.xml

@@ -33,6 +33,7 @@
         mall_address.address_type,
         mall_address.address_store,
         mall_store.store_name,
+        mall_address.sender_name,
         mall_user.nickname shop_user_name
         from mall_address LEFT JOIN mall_store ON mall_address.address_store = mall_store.id LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
         where mall_address.id = #{id}
@@ -54,6 +55,7 @@
         mall_address.address_type,
         mall_address.address_store,
         mall_store.store_name,
+        mall_address.sender_name,
         mall_user.nickname shop_user_name
         from mall_address LEFT JOIN mall_store ON mall_address.address_store = mall_store.id
         LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
@@ -130,7 +132,8 @@
         `detail_Info`,
         `is_default`,
          address_type,
-         address_store)
+         address_store,
+         sender_name)
         values(
         #{userId},
         #{userName},
@@ -143,7 +146,8 @@
         #{detailInfo},
         #{isDefault},
         #{addressType},
-        #{addressStore}
+        #{addressStore},
+        #{senderName}
         )
     </insert>
 
@@ -161,7 +165,8 @@
             <if test="detailInfo != null">`detail_Info` = #{detailInfo}, </if>
             <if test="isDefault != null">`is_default` = #{isDefault},</if>
             <if test="addressType != null">`address_type` = #{addressType},</if>
-            <if test="addressStore != null">`address_store` = #{addressStore}</if>
+            <if test="addressStore != null">`address_store` = #{addressStore},</if>
+            <if test="senderName != null">`sender_name` = #{senderName}</if>
         </set>
         where id = #{id}
     </update>
@@ -192,12 +197,10 @@
         mall_address.is_default,
         mall_address.address_type,
         mall_address.address_store,
-        mall_store.store_name,
-        mall_user.nickname shop_user_name
-        from mall_address LEFT JOIN mall_store ON mall_address.address_store = mall_store.id LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
+        mall_address.sender_name
+        from mall_address
         where mall_address.address_store = #{id}
-        and mall_address.address_type= #{type}
-        limit 1
+        and mall_address.address_type= #{type} Order By rand() Limit  1
     </select>
 
 </mapper>

+ 11 - 5
kmall-admin/src/main/resources/mybatis/mapper/MallVmcSendLogDao.xml

@@ -4,21 +4,27 @@
 <mapper namespace="com.kmall.admin.dao.MallVmcSendLogDao">
 
 	<insert id="saveVmcSend" parameterType="com.kmall.admin.entity.MallVmcSendlogEntity" >
-		insert into mall_vmc_send_log
+		insert into mall_interface_send_log
 		(
-			vmc_type,
+			sys_type,
+			interface_type,
 			order_sn,
 			request_msg,
+			msg_type,
 			response_msg,
-			send_date
+			request_date,
+			response_date
 		)
 		values
 		(
-			#{vmcType},
+			#{sysType},
+			#{interfaceType},
 			#{orderSn},
 			#{requestMsg},
 			#{responseMsg},
-			SYSDATE()
+			#{responseMsg},
+			SYSDATE(),
+			#{responseMsg}
 		)
 	</insert>
 	 

+ 49 - 0
kmall-admin/src/main/resources/mybatis/mapper/OrderProcessRecordDao.xml

@@ -431,4 +431,53 @@ select
 <!--		</foreach>-->
 <!--	</update>-->
 
+	<update id="updateHkNoticeMsgMallOrder" parameterType="java.util.List">
+		update mall_order
+		<trim prefix="set" suffixOverrides=",">
+			<trim prefix="shipping_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.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.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.shipping_name
+					</if>
+				</foreach>
+			</trim>
+
+		</trim>
+		where order_sn in
+		<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
+			#{item.orderSn}
+		</foreach>
+	</update>
+
 </mapper>

+ 37 - 0
kmall-admin/src/main/resources/mybatis/mapper/PickUpCodeDao.xml

@@ -155,4 +155,41 @@
 	</select>
 
 
+	<update id="updateHkNoticeMsgPickUpCode" parameterType="java.util.List">
+		update mall_pick_up_code
+		<trim prefix="set" suffixOverrides=",">
+
+			<trim prefix="pick_up_code_status =case" suffix="end,">
+				<foreach collection="list" item="item" index="index">
+					<if test="item.clearType!=null and item.clearType=1">
+						when #{item.orderSn}=1
+						then 2
+					</if>
+					<if test="item.clearType!=null and item.clearType=2">
+						when #{item.orderSn}=2
+						then 4
+					</if>
+					<if test="item.clearType!=null and item.clearType=3">
+						when #{item.orderSn}=3
+						then 4
+					</if>
+					<if test="item.clearType!=null and item.clearType=4">
+						when #{item.orderSn}=4
+						then 4
+					</if>
+					<if test="item.clearType==null">
+						when order_sn=#{item.orderSn}
+						then mall_pick_up_code.pick_up_code_status
+					</if>
+				</foreach>
+			</trim>
+
+		</trim>
+		where order_sn in
+		<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
+			#{item.orderSn}
+		</foreach>
+	</update>
+
+
 </mapper>

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

@@ -86,7 +86,8 @@
             a.attribute_category,
             a.brand_id,
             a.freight_id,
-            supplier_third_id, a.hot_sort_num
+            supplier_third_id, a.hot_sort_num,
+            a.exit_region_number as exitRegionNumber
         FROM
             mall_product_store_rela a
             LEFT JOIN mall_store s ON a.store_id = s.id
@@ -192,7 +193,8 @@
             b.third_party_merch_code thirdPartyMerchCode,
             mb.is_stock_share isStockShare,
             supplier_third_id,
-             a.hot_sort_num
+            a.hot_sort_num,
+            a.exit_region_number as exitRegionNumber
             from mall_product_store_rela a
             left join mall_goods b on a.goods_id = b.id
             left join third_merchant_biz mb on mb.third_party_merch_code = b.third_party_merch_code and mb.merch_sn=b.merch_sn

+ 8 - 0
kmall-admin/src/main/resources/mybatis/mapper/StoreDao.xml

@@ -396,4 +396,12 @@
 		</foreach>
 	</update>
 
+	<select id="queryListDictionary" resultType="com.kmall.admin.entity.SysMacroEntity">
+		select
+		id as value,
+		store_name as name
+		from mall_store
+		where is_valid = 0
+	</select>
+
 </mapper>

+ 115 - 0
kmall-admin/src/main/resources/mybatis/mapper/shop/InterfaceSendLogDao.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.InterfaceSendLogDao">
+
+    <resultMap type="com.kmall.admin.entity.InterfaceSendLogEntity" id="interfaceSendLogMap">
+        <result property="id" column="id"/>
+        <result property="sysType" column="sys_type"/>
+        <result property="interfaceType" column="interface_type"/>
+        <result property="requestMsg" column="request_msg"/>
+        <result property="msgStatus" column="msg_status"/>
+        <result property="responseMsg" column="response_msg"/>
+        <result property="requestDate" column="request_date"/>
+        <result property="responseDate" column="response_date"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.InterfaceSendLogEntity">
+		select
+			`id`,
+			`sys_type`,
+			`interface_type`,
+			`request_msg`,
+			`msg_status`,
+			`response_msg`,
+			`request_date`,
+			`response_date`
+		from mall_interface_send_log
+		where id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.InterfaceSendLogEntity">
+		select
+    		`id`,
+    		`sys_type`,
+    		`interface_type`,
+    		`request_msg`,
+    		`msg_status`,
+    		`response_msg`,
+    		`request_date`,
+    		`response_date`
+		from mall_interface_send_log
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND interface_type LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_interface_send_log
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND interface_type LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.admin.entity.InterfaceSendLogEntity" useGeneratedKeys="true" keyProperty="id">
+		insert into mall_interface_send_log(
+			`sys_type`,
+			`interface_type`,
+			`request_msg`,
+			`msg_status`,
+			`response_msg`,
+			`request_date`,
+			`response_date`,
+			`exception_msg`
+			)
+		values(
+			#{sysType},
+			#{interfaceType},
+			#{requestMsg},
+			#{msgStatus},
+			#{responseMsg},
+			#{requestDate},
+			#{responseDate},
+			#{exceptionMsg}
+			)
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.admin.entity.InterfaceSendLogEntity">
+		update mall_interface_send_log 
+		<set>
+			<if test="sysType != null">`sys_type` = #{sysType}, </if>
+			<if test="interfaceType != null">`interface_type` = #{interfaceType}, </if>
+			<if test="requestMsg != null">`request_msg` = #{requestMsg}, </if>
+			<if test="msgStatus != null">`msg_status` = #{msgStatus}, </if>
+			<if test="responseMsg != null">`response_msg` = #{responseMsg}, </if>
+			<if test="requestDate != null">`request_date` = #{requestDate}, </if>
+			<if test="responseDate != null">`response_date` = #{responseDate}</if>
+		</set>
+		where id = #{id}
+	</update>
+	
+	<delete id="delete">
+		delete from mall_interface_send_log where id = #{value}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall_interface_send_log where id in 
+		<foreach item="id" collection="array" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 5 - 2
kmall-admin/src/main/webapp/WEB-INF/page/shop/address.html

@@ -36,8 +36,8 @@
 		<i-form ref="formValidate" :model="address" :rules="ruleValidate" :label-width="80">
             <Form-item  label="所属门店" prop="addressStore" style="height: 30px;">
                 <i-select v-model="address.addressStore" placeholder="所属门店" label-in-value>
-                    <i-option v-for="store in categoriesStore" :value="store.id"
-                              :key="store.id">{{store.storeName}}
+                    <i-option v-for="store in categoriesStore" :value="store.value"
+                              :key="store.value">{{store.name}}
                     </i-option>
                 </i-select>
             </Form-item>
@@ -48,6 +48,9 @@
                     </i-option>
                 </i-select>
             </Form-item>
+            <Form-item label="发货人名称" prop="senderName">
+                <i-input v-model="address.senderName" placeholder="发货人名称"/>
+            </Form-item>
             <Form-item label="手机号" prop="telNumber">
                 <i-input v-model="address.telNumber" placeholder="手机号"/>
             </Form-item>

+ 72 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/interfacesendlog.html

@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>接口日志记录</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="接口名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+<!--            <div class="buttons-group">-->
+<!--                #if($shiro.hasPermission("interfacesendlog:save"))-->
+<!--                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>-->
+<!--                #end-->
+<!--                #if($shiro.hasPermission("interfacesendlog:update"))-->
+<!--                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>-->
+<!--                #end-->
+<!--                #if($shiro.hasPermission("interfacesendlog:delete"))-->
+<!--                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>-->
+<!--                #end-->
+<!--            </div>-->
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="interfaceSendLog" :rules="ruleValidate" :label-width="80">
+            <Form-item label="请求/响应系统类型" prop="sysType">
+                <i-input v-model="interfaceSendLog.sysType" placeholder="请求/响应系统类型"/>
+            </Form-item>
+            <Form-item label="请求/响应接口类型" prop="interfaceType">
+                <i-input v-model="interfaceSendLog.interfaceType" placeholder="请求/响应接口类型"/>
+            </Form-item>
+            <Form-item label="订单编号" prop="orderSn">
+                <i-input v-model="interfaceSendLog.orderSn" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="请求信息" prop="requestMsg">
+                <i-input v-model="interfaceSendLog.requestMsg" placeholder="请求信息"/>
+            </Form-item>
+            <Form-item label="响应状态码" prop="msgStatus">
+                <i-input v-model="interfaceSendLog.msgStatus" placeholder="响应状态码"/>
+            </Form-item>
+            <Form-item label="响应结果" prop="responseMsg">
+                <i-input v-model="interfaceSendLog.responseMsg" placeholder="响应结果"/>
+            </Form-item>
+            <Form-item label="发送时间" prop="requestDate">
+                <i-input v-model="interfaceSendLog.requestDate" placeholder="发送时间"/>
+            </Form-item>
+            <Form-item label="响应时间" prop="responseDate">
+                <i-input v-model="interfaceSendLog.responseDate" placeholder="响应时间"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/shop/interfacesendlog.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 2 - 1
kmall-admin/src/main/webapp/js/shop/address.js

@@ -16,6 +16,7 @@ $(function () {
 					}
 				}
 			},
+			{label: '发货人名称', name: 'senderName', index: 'sender_name', width: 60},
 			{label: '手机号', name: 'telNumber', index: 'tel_number', width: 60},
 			{label: '邮政编码', name: 'postalCode', index: 'postal_Code', width: 60},
 			{label: '省', name: 'provinceName', index: 'province_Name', width: 60},
@@ -150,7 +151,7 @@ let vm = new Vue({
 			});
 		},
 		getCategoriesStore: function () {
-			$.get("../store/queryAll", function (r) {
+			$.get("../store/queryAllDictionary", function (r) {
 				vm.categoriesStore = r.list;
 			});
 		},

+ 8 - 8
kmall-admin/src/main/webapp/js/shop/goods.js

@@ -38,14 +38,14 @@ $(function () {
             //         return '-';
             //     }},
             {label: '商品库存', name: 'goodsNumber', index: 'goodsNumber', width: 100, align: 'right'},
-            {label: '待恢复数量', name: 'toBeRestored', index: 'toBeRestored', width: 100, align: 'right',formatter:function(value){
-                if(value){
-                    return value;
-                }else{
-                    return "0";
-                }
-
-                }},
+            // {label: '待恢复数量', name: 'toBeRestored', index: 'toBeRestored', width: 100, align: 'right',formatter:function(value){
+            //     if(value){
+            //         return value;
+            //     }else{
+            //         return "0";
+            //     }
+            //
+            //     }},
             {label: '日常价', name: 'dailyPrice', index: 'dailyPrice', width: 100, align: 'right'},
             {label: '成本价', name: 'costPrice', index: 'costPrice', width: 100, align: 'right'},
             // {label: '零售价格', name: 'retailPrice', index: 'retail_price', width: 80, align: 'center'},

+ 149 - 0
kmall-admin/src/main/webapp/js/shop/interfacesendlog.js

@@ -0,0 +1,149 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../interfacesendlog/list',
+        datatype: "json",
+        colModel: [
+			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+			{label: '请求/响应系统类型', name: 'sysType', index: 'sys_type', width: 80},
+			{label: '请求/响应接口类型', name: 'interfaceType', index: 'interface_type', width: 80},
+			{label: '请求信息', name: 'requestMsg', index: 'request_msg', width: 100},
+			{label: '响应结果', name: 'responseMsg', index: 'response_msg', width: 100},
+			{label: '发送时间', name: 'requestDate', index: 'request_date',align: 'center', width: 70,formatter:function(value){
+					return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+				}},
+			{label: '响应时间', name: 'responseDate', index: 'response_date',align: 'center', width: 70,formatter:function(value){
+					return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+				}},
+			{label: '异常信息', name: 'exceptionMsg', index: 'exception_msg', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [20, 50, 80],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		interfaceSendLog: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.interfaceSendLog = {};
+		},
+		update: function (event) {
+            let id = getSelectedRow();
+			if (id == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(id)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.interfaceSendLog.id == null ? "../interfacesendlog/save" : "../interfacesendlog/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.interfaceSendLog),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let ids = getSelectedRows();
+			if (ids == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../interfacesendlog/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(ids),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(id){
+			$.get("../interfacesendlog/info/"+id, function (r) {
+                vm.interfaceSendLog = r.interfaceSendLog;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 9 - 8
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -52,14 +52,14 @@ $(function () {
                 }},
             {label: '门店库存', name: 'stockNum', index: 'stockNum', width: 80, align: 'center'},
             {label: '园区库存', name: 'parkStock', index: 'parkStock', width: 80, align: 'center'},
-            {label: '待恢复数量', name: 'toBeRestored', index: 'toBeRestored', width: 100, align: 'right',formatter:function(value){
-                    if(value){
-                        return value;
-                    }else{
-                        return "0";
-                    }
-
-                }},
+            // {label: '待恢复数量', name: 'toBeRestored', index: 'toBeRestored', width: 100, align: 'right',formatter:function(value){
+            //         if(value){
+            //             return value;
+            //         }else{
+            //             return "0";
+            //         }
+            //
+            //     }},
             {label: '零售价格', name: 'retailPrice', index: 'retailPrice', width: 80, align: 'right'},
             {label: '市场价', name: 'marketPrice', index: 'marketPrice', width: 80, align: 'right'},
             {label: '底线价格', name: 'bottomLinePrice', index: 'bottomLinePrice', width: 80, align: 'right',formatter: function (value) {
@@ -69,6 +69,7 @@ $(function () {
                     return '-';
                 }},
             // {label: '库存价格', name: 'stockPrice', index: 'stockPrice', width: 80},
+            {label: '出区数', name: 'exitRegionNumber', index: 'exit_region_number', width: 80, align: 'right'},
             {
                 label: '销售量',
                 name: 'sellVolume',

BIN
kmall-admin/src/main/webapp/statics/img/sf_img.jpg


+ 34 - 0
kmall-common/src/main/java/com/kmall/common/constant/Dict.java

@@ -1979,4 +1979,38 @@ public class Dict {
         }
     }
 
+    /**
+     * 地址类型
+     */
+    public enum sendLog {
+        item_mall("1", "免税MALL"),
+        item_member("2", "会员系统"),
+        item_warehouse("3", "仓库系统"),
+        item_smg("4", "短信");
+
+        private String item;
+        private String itemName;
+
+        sendLog(String item, String itemName) {
+            this.item = item;
+            this.itemName = itemName;
+        }
+
+        public String getItem() {
+            return item;
+        }
+
+        public void setItem(String item) {
+            this.item = item;
+        }
+
+        public String getItemName() {
+            return itemName;
+        }
+
+        public void setItemName(String itemName) {
+            this.itemName = itemName;
+        }
+    }
+
 }

+ 1 - 1
kmall-common/src/main/java/com/kmall/common/utils/Query.java

@@ -17,7 +17,7 @@ public class Query extends LinkedHashMap<String, Object> {
     //当前页码
     private int page;
     //每页条数
-    private int limit = 10;
+    private int limit = 20;
 
     public Query(Map<String, Object> params) {
         this.putAll(params);