1
0
فهرست منبع

微信支付、退款返回信息逻辑处理

hyq 6 سال پیش
والد
کامیت
3823462d6b
32فایلهای تغییر یافته به همراه383 افزوده شده و 182 حذف شده
  1. 0 3
      kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java
  2. 0 2
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java
  3. 0 2
      kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java
  4. 0 2
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  5. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/ExportExceptionDataController.java
  6. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java
  7. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java
  8. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java
  9. 1 2
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  10. 0 4
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java
  11. 0 3
      kmall-admin/src/main/java/com/kmall/admin/service/OrderService.java
  12. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CategoryServiceImpl.java
  13. 1 3
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  14. 0 2
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OfflineCartServiceImpl.java
  15. 1 6
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  16. 12 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  17. 1 1
      kmall-admin/src/main/java/com/kmall/admin/utils/ParamUtils.java
  18. 1 1
      kmall-api/src/main/java/com/kmall/api/api/ApiCartController.java
  19. 1 1
      kmall-api/src/main/java/com/kmall/api/api/ApiGoodsGroupController.java
  20. 6 6
      kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java
  21. 1 4
      kmall-api/src/main/java/com/kmall/api/api/ApiPayController.java
  22. 3 7
      kmall-api/src/main/java/com/kmall/api/api/wxGlobal/ApiWxGlobalPayController.java
  23. 62 1
      kmall-api/src/main/java/com/kmall/api/entity/OrderVo.java
  24. 1 1
      kmall-api/src/main/java/com/kmall/api/service/ApiCouponService.java
  25. 1 3
      kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java
  26. 7 5
      kmall-api/src/main/java/com/kmall/api/service/ApiPayService.java
  27. 1 1
      kmall-api/src/main/java/com/kmall/api/service/ApiUserCouponService.java
  28. 18 9
      kmall-api/src/main/java/com/kmall/api/service/wxGlobal/ApiWxGlobalPayService.java
  29. 31 0
      kmall-api/src/main/resources/mybatis/mapper/ApiOrderMapper.xml
  30. 54 5
      kmall-common/src/main/java/com/kmall/common/constant/Dict.java
  31. 9 0
      kmall-common/src/main/java/com/kmall/common/utils/wechat/WechatRefundApiResult.java
  32. 166 102
      kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java

+ 0 - 3
kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java

@@ -3,12 +3,9 @@ package com.kmall.admin.controller;
 import com.kmall.admin.entity.AdEntity;
 import com.kmall.admin.service.AdService;
 import com.kmall.admin.utils.ParamUtils;
-import com.kmall.api.contants.Dict;
-import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
-import com.kmall.common.utils.ShiroUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;

+ 0 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java

@@ -4,8 +4,6 @@ import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.AttributeEntity;
 import com.kmall.admin.service.AttributeService;
 import com.kmall.admin.utils.ParamUtils;
-import com.kmall.api.contants.Dict;
-import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;

+ 0 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java

@@ -4,8 +4,6 @@ import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.BrandEntity;
 import com.kmall.admin.service.BrandService;
 import com.kmall.admin.utils.ParamUtils;
-import com.kmall.api.contants.Dict;
-import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;

+ 0 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -3,8 +3,6 @@ package com.kmall.admin.controller;
 import com.kmall.admin.entity.CategoryEntity;
 import com.kmall.admin.service.CategoryService;
 import com.kmall.admin.utils.ParamUtils;
-import com.kmall.api.contants.Dict;
-import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;

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

@@ -5,7 +5,7 @@ import java.util.Map;
 
 import com.kmall.admin.entity.ExportExceptionDataEntity;
 import com.kmall.admin.service.ExportExceptionDataService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;

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

@@ -2,7 +2,7 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.FeedbackEntity;
 import com.kmall.admin.service.FeedbackService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;

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

@@ -3,7 +3,7 @@ package com.kmall.admin.controller;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.GoodsIssueEntity;
 import com.kmall.admin.service.GoodsIssueService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;

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

@@ -3,7 +3,7 @@ package com.kmall.admin.controller;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.HelpIssueEntity;
 import com.kmall.admin.service.HelpIssueService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;

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

@@ -6,7 +6,7 @@ import com.kmall.admin.service.OrderExceptionRecordService;
 import com.kmall.admin.service.OrderProcessRecordService;
 import com.kmall.admin.service.OrderService;
 import com.kmall.admin.utils.ParamUtils;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import com.kmall.common.utils.print.ticket.item.Ticket;
@@ -22,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;

+ 0 - 4
kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java

@@ -5,18 +5,14 @@ import com.kmall.admin.entity.StoreEntity;
 import com.kmall.admin.service.ProductStoreRelaService;
 import com.kmall.admin.service.StoreService;
 import com.kmall.admin.utils.ParamUtils;
-import com.kmall.api.contants.Dict;
-import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
-import com.kmall.common.utils.ShiroUtils;
 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.*;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 

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

@@ -3,14 +3,11 @@ package com.kmall.admin.service;
 import com.kmall.admin.entity.OfflineCartEntity;
 import com.kmall.admin.entity.OrderEntity;
 import com.kmall.admin.entity.OrderRefundEntity;
-import com.kmall.api.contants.Dict;
 import com.kmall.common.entity.SysUserEntity;
-import com.kmall.common.utils.R;
 import com.kmall.common.utils.print.ticket.item.Ticket;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
 
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 

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

@@ -6,7 +6,7 @@ import com.kmall.admin.dao.GoodsDao;
 import com.kmall.admin.entity.CategoryEntity;
 import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.service.CategoryService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.utils.MapBeanUtil;
 import com.kmall.common.utils.R;
 import com.kmall.common.utils.RRException;

+ 1 - 3
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -5,14 +5,12 @@ import com.kmall.admin.dao.*;
 import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.service.GoodsService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
-import com.kmall.common.utils.excel.ExcelImport;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.multipart.MultipartFile;
 
 import java.math.BigDecimal;
 import java.util.*;

+ 0 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/OfflineCartServiceImpl.java

@@ -1,11 +1,9 @@
 package com.kmall.admin.service.impl;
 
 import com.kmall.admin.dao.OfflineCartDao;
-import com.kmall.admin.entity.CartEntity;
 import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.entity.OfflineCartEntity;
 import com.kmall.admin.service.OfflineCartService;
-import com.kmall.api.contants.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.ShiroUtils;
 import org.springframework.beans.factory.annotation.Autowired;

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

@@ -1,17 +1,13 @@
 package com.kmall.admin.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.entity.OrderProcessRecordEntity;
 import com.kmall.admin.service.OrderService;
-import com.kmall.api.contants.Dict;
-import com.kmall.api.dto.IdCardMsgVo;
-import com.kmall.api.entity.*;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.service.merch.OmsMerchPropertiesBuilder;
 import com.kmall.api.util.CommonUtil;
-import com.kmall.api.util.IdCardUtil;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.service.print.ticket.PrintTicketPropertiesBuilder;
 import com.kmall.common.utils.Constant;
@@ -23,7 +19,6 @@ import com.kmall.common.utils.StringUtils;
 import com.kmall.common.utils.express.kdn.KdniaoUtil;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.wxglobal.dto.WechatGlobalRefundApiResult;
-import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

+ 12 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -4,7 +4,7 @@ import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.entity.*;
 import com.kmall.admin.service.ProductStoreRelaService;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.commons.lang.StringUtils;
@@ -103,6 +103,12 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         SysUserEntity user = ShiroUtils.getUserEntity();
         ProductEntity product = productDao.queryObjectBySn(goodsEntity.getGoodsSn());
         if (Dict.orderBizType.item_11.getItem().equals(goodsEntity.getGoodsBizType())) {
+            GoodsEntity goods = new GoodsEntity();
+            goods.setRetailPrice(productStoreRela.getRetailPrice());
+            goods.setMarketPrice(productStoreRela.getMarketPrice());
+            goods.setId(goodsEntity.getId());
+            goodsDao.update(goods);
+
             GoodsSpecificationEntity goodsSpecificationEntity = goodsSpecificationDao.queryByGoodsId(goodsEntity.getId());
             if(goodsSpecificationEntity != null){
                 goodsSpecificationDao.delete(goodsSpecificationEntity.getId());
@@ -175,6 +181,11 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
 
         SysUserEntity user = ShiroUtils.getUserEntity();
         if (Dict.orderBizType.item_11.getItem().equals(goodsEntity.getGoodsBizType())) {
+            GoodsEntity goods = new GoodsEntity();
+            goods.setRetailPrice(productStoreRela.getRetailPrice());
+            goods.setMarketPrice(productStoreRela.getMarketPrice());
+            goods.setId(goodsEntity.getId());
+            goodsDao.update(goods);
             // 添加商品规格
             GoodsSpecificationEntity goodsSpecification = goodsSpecificationDao.queryByGoodsId(goodsEntity.getId());
             goodsSpecification.setValue(productStoreRela.getSpecification());

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/utils/ParamUtils.java

@@ -1,6 +1,6 @@
 package com.kmall.admin.utils;
 
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.RRException;
 import com.kmall.common.utils.ShiroUtils;

+ 1 - 1
kmall-api/src/main/java/com/kmall/api/api/ApiCartController.java

@@ -2,7 +2,7 @@ package com.kmall.api.api;
 
 import com.alibaba.fastjson.JSONObject;
 import com.kmall.api.annotation.LoginUser;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.entity.*;
 import com.kmall.api.service.*;
 import com.kmall.api.util.ApiBaseAction;

+ 1 - 1
kmall-api/src/main/java/com/kmall/api/api/ApiGoodsGroupController.java

@@ -2,7 +2,7 @@ package com.kmall.api.api;
 
 import com.kmall.api.annotation.IgnoreAuth;
 import com.kmall.api.annotation.LoginUser;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.entity.*;
 import com.kmall.api.service.*;
 import com.kmall.api.util.ApiBaseAction;

+ 6 - 6
kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java

@@ -2,11 +2,9 @@ package com.kmall.api.api;
 
 import com.alibaba.druid.util.StringUtils;
 import com.alibaba.fastjson.JSONObject;
-import com.google.common.collect.Maps;
 import com.kmall.api.annotation.IgnoreAuth;
 import com.kmall.api.annotation.LoginUser;
-import com.kmall.api.contants.Dict;
-import com.kmall.api.dao.ApiOrderRefundMapper;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.entity.*;
 import com.kmall.api.service.*;
 import com.kmall.api.service.express.kdn.ApiKdniaoService;
@@ -14,11 +12,9 @@ import com.kmall.api.util.ApiBaseAction;
 import com.kmall.api.util.ApiPageUtils;
 import com.kmall.common.service.print.ticket.PrintTicketPropertiesBuilder;
 import com.kmall.common.utils.Constant;
-import com.kmall.common.utils.DateUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.WechatUtil;
-import io.swagger.models.auth.In;
 import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -81,7 +77,11 @@ public class ApiOrderController extends ApiBaseAction {
         params.put("sidx", "add_time");
         params.put("order", "desc");
         params.put("size", "desc");
-
+        if(order_status != null) {
+            if (order_status == Integer.parseInt(Dict.orderStatus.item_401.getItem())) {
+                params.put("pay_status", Dict.payStatus.item_4.getItem());
+            }
+        }
         //查询列表数据
         Query query = new Query(params);
         List<OrderVo> orderEntityList = orderService.queryList(query);

+ 1 - 4
kmall-api/src/main/java/com/kmall/api/api/ApiPayController.java

@@ -2,7 +2,7 @@ package com.kmall.api.api;
 
 import com.kmall.api.annotation.IgnoreAuth;
 import com.kmall.api.annotation.LoginUser;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.dao.ApiOrderRefundMapper;
 import com.kmall.api.entity.*;
 import com.kmall.api.service.*;
@@ -17,7 +17,6 @@ import com.kmall.common.utils.wechat.AESUtil;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.WechatRefundNotifyResult;
 import com.kmall.common.utils.wechat.WechatUtil;
-import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -27,7 +26,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -249,7 +247,6 @@ public class ApiPayController extends ApiBaseAction {
                 response.getWriter().close();
             } else if (result_code.equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
                 //验签
-                String sign = result.getSign();
                 String time_end = result.getTime_end();
                 String out_trade_no = result.getOut_trade_no();//商户订单号
                 String transaction_id = result.getTransaction_id();//微信支付订单号

+ 3 - 7
kmall-api/src/main/java/com/kmall/api/api/wxGlobal/ApiWxGlobalPayController.java

@@ -2,7 +2,7 @@ package com.kmall.api.api.wxGlobal;
 
 import com.kmall.api.annotation.IgnoreAuth;
 import com.kmall.api.annotation.LoginUser;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.entity.*;
 import com.kmall.api.service.*;
 import com.kmall.api.service.wxGlobal.ApiWxGlobalPayService;
@@ -207,19 +207,15 @@ public class ApiWxGlobalPayController extends ApiBaseAction {
             logger.error("reponseXml:" + reponseXml);
             WechatGlobalNotifyResult result = (WechatGlobalNotifyResult) XmlUtil.xmlStrToBean(reponseXml, WechatGlobalNotifyResult.class);
             String result_code = result.getResult_code();
+            String out_trade_no = result.getOut_trade_no();//订单编号
             if (result_code.equalsIgnoreCase("FAIL")) {
-                String out_trade_no = result.getOut_trade_no();//订单编号
                 logger.error("订单 " + out_trade_no + " 支付失败");
                 response.getWriter().write(setXml(WechatGlobalUtil.WXTradeState.SUCCESS.getCode(), "OK"));
                 response.getWriter().close();
             } else if (result_code.equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode())) {
-                String time_end = result.getTime_end();
-                String out_trade_no = result.getOut_trade_no();//商户订单号
-                String transaction_id = result.getTransaction_id();//微信支付订单号
-                String total_fee = result.getTotal_fee();//订单编号
                 logger.error("订单 " + out_trade_no + " 支付成功");
                 // 业务处理
-                apiWxGlobalPayService.notify(out_trade_no,total_fee,transaction_id,time_end);
+                apiWxGlobalPayService.notify(result);
                 response.getWriter().write(setXml(WechatGlobalUtil.WXTradeState.SUCCESS.getCode(), "OK"));
             }
         } catch (Exception e) {

+ 62 - 1
kmall-api/src/main/java/com/kmall/api/entity/OrderVo.java

@@ -29,11 +29,12 @@ public class OrderVo implements Serializable {
     2xx 表示订单支付状态 201订单已付款,等待发货
     3xx 表示订单物流相关状态 300订单已发货, 301用户确认收货
     4xx 表示订单退换货相关的状态 401 没有发货,退款 402 已收货,退款退货
+    500订单已关闭;501 支付失败
     */
     private Integer order_status;
     //发货状态 商品配送情况;0未配送,1已配送,2已收货,4退货
     private Integer shipping_status;
-    //付款状态 支付状态;0未付款;1付款中;2已付款;4退款
+    //付款状态 支付状态;0未付款;1付款中;2已付款;4退款;5:退款关闭;6:退款异常;7:订单关闭;8:支付失败;
     private Integer pay_status;
     //评价状态 1已评价 0未评价
     private Integer comment_count = 0;
@@ -71,6 +72,26 @@ public class OrderVo implements Serializable {
     private String pay_name;
     //实际需要支付的金额
     private BigDecimal actual_price;
+    /**
+     * 用户支付金额;微信国际支付返回数据
+     */
+    private Integer cashFee;
+    /**
+     * 用户支付币种;微信国际支付返回数据
+     */
+    private String cashFeeType;
+    /**
+     * 标价金额;微信国际支付返回数据
+     */
+    private Integer totalFee;
+    /**
+     * 标价币种;微信国际支付返回数据
+     */
+    private String feeType;
+    /**
+     * 汇率;微信国际支付返回数据
+     */
+    private String rate;
     // 积分
     private Integer integral;
     // 积分抵扣金额
@@ -178,6 +199,46 @@ public class OrderVo implements Serializable {
     private String merchName;
     private Long storeId;
 
+    public Integer getCashFee() {
+        return cashFee;
+    }
+
+    public void setCashFee(Integer cashFee) {
+        this.cashFee = cashFee;
+    }
+
+    public String getCashFeeType() {
+        return cashFeeType;
+    }
+
+    public void setCashFeeType(String cashFeeType) {
+        this.cashFeeType = cashFeeType;
+    }
+
+    public Integer getTotalFee() {
+        return totalFee;
+    }
+
+    public void setTotalFee(Integer totalFee) {
+        this.totalFee = totalFee;
+    }
+
+    public String getFeeType() {
+        return feeType;
+    }
+
+    public void setFeeType(String feeType) {
+        this.feeType = feeType;
+    }
+
+    public String getRate() {
+        return rate;
+    }
+
+    public void setRate(String rate) {
+        this.rate = rate;
+    }
+
     public String getMerchName() {
         return merchName;
     }

+ 1 - 1
kmall-api/src/main/java/com/kmall/api/service/ApiCouponService.java

@@ -1,6 +1,6 @@
 package com.kmall.api.service;
 
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.dao.ApiCouponMapper;
 import com.kmall.api.dao.ApiUserCouponMapper;
 import com.kmall.api.entity.CouponVo;

+ 1 - 3
kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java

@@ -2,7 +2,7 @@ package com.kmall.api.service;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.dao.*;
 import com.kmall.api.dto.IdCardMsgVo;
 import com.kmall.api.entity.*;
@@ -20,14 +20,12 @@ import com.kmall.common.utils.RRException;
 import com.kmall.common.utils.StringUtils;
 import com.kmall.common.utils.print.ticket.TicketPrintUtil;
 import com.kmall.common.utils.print.ticket.item.*;
-import com.kmall.common.utils.printer.FeiGeUtils;
 import com.kmall.common.utils.wxtemplate.TemplateData;
 import com.kmall.common.utils.wxtemplate.WxTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;

+ 7 - 5
kmall-api/src/main/java/com/kmall/api/service/ApiPayService.java

@@ -1,6 +1,6 @@
 package com.kmall.api.service;
 
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.dao.*;
 import com.kmall.api.entity.*;
 import com.kmall.api.service.pay.wxpay.WxPayPropertiesBuilder;
@@ -11,7 +11,6 @@ import com.kmall.common.utils.DateUtils;
 import com.kmall.common.utils.MapUtils;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.WechatUtil;
-import io.swagger.models.auth.In;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -120,7 +119,7 @@ public class ApiPayService {
 
     @Transactional
     public void notify(String out_trade_no,String total_fee,String transaction_id,String time_end) {
-        // 业务处理
+        // 支付成功业务处理
         List<OrderVo> orderVoList = orderService.queryObjectByMerchOrderSn(out_trade_no);
         List<OrderProcessRecordEntity> processRecordEntityList = new ArrayList<>();
         Date timeEnd = DateUtils.convertStringToDate(time_end,DateUtils.DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS);
@@ -274,6 +273,7 @@ public class ApiPayService {
         Date successTime = DateUtils.strToDate(success_time);
         if(orderVoList != null && orderVoList.size()>0) {
             for(OrderVo orderInfo:orderVoList) {
+                OrderVo orderVo = new OrderVo();
                 if(orderInfo.getOrder_status() == Integer.parseInt(Dict.orderStatus.item_201.getItem())
                         || orderInfo.getOrder_status() == Integer.parseInt(Dict.orderStatus.item_401.getItem())){
                     MallOrderRefund mallOrderRefund = mallOrderRefundMapper.queryObjectByOrderId(orderInfo.getId()+"");
@@ -284,15 +284,19 @@ public class ApiPayService {
                         orderRefund.setRefundId(refundApiResult.getRefund_id());
                         orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(refundApiResult.getRefund_fee())).divide(Constant.ONE_HUNDRED));
                         if (refundApiResult.getRefund_status().equalsIgnoreCase("SUCCESS")) {
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_4.getItem()));
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款成功");
                         } else if (refundApiResult.getRefund_status().equalsIgnoreCase("REFUNDCLOSE")) {
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_5.getItem()));
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款关闭");
                         } else if (refundApiResult.getRefund_status().equalsIgnoreCase("PROCESSING")) {
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_3.getItem()));
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_5.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款处理中");
                         } else if (refundApiResult.getRefund_status().equalsIgnoreCase("CHANGE")) {
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_6.getItem()));
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款异常");
                         }
@@ -300,8 +304,6 @@ public class ApiPayService {
                         orderRefund.setId(mallOrderRefund.getId());
                         mallOrderRefundMapper.update(orderRefund);//更新订单退款信息
 
-                        OrderVo orderVo = new OrderVo();
-                        orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_4.getItem()));
                         orderVo.setOrder_status(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
                         orderVo.setId(orderInfo.getId());
                         orderService.update(orderVo);

+ 1 - 1
kmall-api/src/main/java/com/kmall/api/service/ApiUserCouponService.java

@@ -1,6 +1,6 @@
 package com.kmall.api.service;
 
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.dao.ApiUserCouponMapper;
 import com.kmall.api.entity.UserCouponVo;
 import org.springframework.beans.factory.annotation.Autowired;

+ 18 - 9
kmall-api/src/main/java/com/kmall/api/service/wxGlobal/ApiWxGlobalPayService.java

@@ -1,10 +1,8 @@
 package com.kmall.api.service.wxGlobal;
 
-import com.kmall.api.contants.Dict;
+import com.kmall.common.constant.Dict;
 import com.kmall.api.dao.*;
 import com.kmall.api.entity.*;
-import com.kmall.api.service.ApiGoodsGroupOpenDetailService;
-import com.kmall.api.service.ApiGoodsGroupOpenService;
 import com.kmall.api.service.ApiOrderService;
 import com.kmall.api.service.PayerChildOrderRealService;
 import com.kmall.api.service.pay.wxpay.WxPayPropertiesBuilder;
@@ -12,10 +10,10 @@ import com.kmall.common.entity.FormIdsEntity;
 import com.kmall.common.service.FormIdsService;
 import com.kmall.common.utils.Constant;
 import com.kmall.common.utils.DateUtils;
-import com.kmall.common.utils.MapUtils;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.WechatUtil;
 import com.kmall.common.utils.wechat.wxglobal.WechatGlobalUtil;
+import com.kmall.common.utils.wechat.wxglobal.dto.WechatGlobalNotifyResult;
 import com.kmall.common.utils.wechat.wxglobal.dto.WechatGlobalQueryApiResult;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -105,8 +103,12 @@ public class ApiWxGlobalPayService {
     }
 
     @Transactional
-    public void notify(String out_trade_no,String total_fee,String transaction_id,String time_end) {
-        // 业务处理
+    public void notify(WechatGlobalNotifyResult result) {
+        String time_end = result.getTime_end();
+        String out_trade_no = result.getOut_trade_no();//商户订单号
+        String transaction_id = result.getTransaction_id();//微信支付订单号
+        String total_fee = result.getTotal_fee();//订单编号
+        // 支付成功业务处理
         List<OrderVo> orderVoList = orderService.queryObjectByMerchOrderSn(out_trade_no);
         List<OrderProcessRecordEntity> processRecordEntityList = new ArrayList<>();
         Date timeEnd = DateUtils.convertStringToDate(time_end,DateUtils.DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS);
@@ -125,7 +127,6 @@ public class ApiWxGlobalPayService {
                 }
                 if(Dict.orderStatus.item_100.getItem().equalsIgnoreCase(orderInfo.getOrder_status()+"")
                         && Dict.payStatus.item_1.getItem().equalsIgnoreCase(orderInfo.getPay_status()+"")){
-
                     OrderProcessRecordEntity processRecordEntity = orderProcessRecordMapper.queryObjectByOrderSn(orderInfo.getOrder_sn());
                     if(processRecordEntity != null){
                         OrderProcessRecordEntity entity = new OrderProcessRecordEntity();
@@ -143,6 +144,11 @@ public class ApiWxGlobalPayService {
                     if (orderInfo.getOrder_status() == Integer.parseInt(Dict.orderStatus.item_100.getItem())) {
                         orderInfo.setOrder_status(Integer.parseInt(Dict.orderStatus.item_201.getItem()));
                     }
+                    orderInfo.setTotalFee(Integer.parseInt(result.getTotal_fee()));//标价金额
+                    orderInfo.setFeeType(result.getFee_type());//标价币种
+                    orderInfo.setCashFee(Integer.parseInt(result.getCash_fee()));//用户支付金额
+                    orderInfo.setCashFeeType(result.getCash_fee_type());//用户支付金额币种
+                    orderInfo.setRate(result.getRate_value());//汇率
                     orderService.update(orderInfo);
                     orderProcessRecordMapper.updateBatch(processRecordEntityList);//更新订单流转信息
 
@@ -167,6 +173,7 @@ public class ApiWxGlobalPayService {
                         || orderInfo.getOrder_status() == Integer.parseInt(Dict.orderStatus.item_401.getItem())){
                     MallOrderRefund mallOrderRefund = mallOrderRefundMapper.queryObjectByOrderId(orderInfo.getId()+"");
                     MallOrderRefund orderRefund = new MallOrderRefund();
+                    OrderVo orderVo = new OrderVo();
                     if(mallOrderRefund != null){
                         orderRefund.setOutRefundNo(refundApiResult.getOut_refund_no());
                         orderRefund.setRefundTime(successTime);//退款成功时间
@@ -175,22 +182,24 @@ public class ApiWxGlobalPayService {
                         if (refundApiResult.getRefund_status().equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode())) {
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款成功");
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_4.getItem()));
                         } else if (refundApiResult.getRefund_status().equalsIgnoreCase("PROCESSING")) {
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_5.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款处理中");
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_3.getItem()));
                         } else if (refundApiResult.getRefund_status().equalsIgnoreCase("REFUNDCLOSE")) {
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款关闭");
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_5.getItem()));
                         } else if (refundApiResult.getRefund_status().equalsIgnoreCase("CHANGE")) {
                             orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_4.getItem()));
                             orderRefund.setWechatRefundStatusDes("退款异常");
+                            orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_6.getItem()));
                         }
                         orderRefund.setRefundRecvAccout(refundApiResult.getRefund_recv_accout());
                         orderRefund.setId(mallOrderRefund.getId());
                         mallOrderRefundMapper.update(orderRefund);//更新订单退款信息
 
-                        OrderVo orderVo = new OrderVo();
-                        orderVo.setPay_status(Integer.parseInt(Dict.payStatus.item_4.getItem()));
                         orderVo.setOrder_status(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
                         orderVo.setId(orderInfo.getId());
                         orderService.update(orderVo);

+ 31 - 0
kmall-api/src/main/resources/mybatis/mapper/ApiOrderMapper.xml

@@ -71,6 +71,12 @@
         <result property="isMergePay" column="is_merge_pay"/>
         <result property="isOnfflineOrder" column="is_onffline_order"/>
         <result column="merch_name" property="merchName" jdbcType="VARCHAR" />
+
+        <result property="cashFee" column="cash_fee"/>
+        <result property="cashFeeType" column="cash_fee_type"/>
+        <result property="totalFee" column="total_fee"/>
+        <result property="feeType" column="fee_type"/>
+        <result property="rate" column="rate"/>
     </resultMap>
 
     <select id="queryObject" resultMap="orderMap">
@@ -200,6 +206,11 @@
 			`pay_name`,
 			`shipping_fee`,
 			`actual_price`,
+            `cash_fee`,
+            `cash_fee_type`,
+            `total_fee`,
+            `fee_type`,
+            `rate`,
 			`integral`,
 			`integral_money`,
 			`order_price`,
@@ -284,6 +295,11 @@
 			#{pay_name},
 			#{shipping_fee},
 			#{actual_price},
+            #{cashFee},
+            #{cashFeeType},
+            #{totalFee},
+            #{feeType},
+            #{rate},
 			#{integral},
 			#{integral_money},
 			#{order_price},
@@ -379,6 +395,11 @@
         `pay_name`,
         `shipping_fee`,
         `actual_price`,
+        `cash_fee`,
+        `cash_fee_type`,
+        `total_fee`,
+        `fee_type`,
+        `rate`,
         `integral`,
         `integral_money`,
         `order_price`,
@@ -431,6 +452,11 @@
             #{orderInfo.pay_name},
             #{orderInfo.shipping_fee},
             #{orderInfo.actual_price},
+            #{orderInfo.cashFee},
+            #{orderInfo.cashFeeType},
+            #{orderInfo.totalFee},
+            #{orderInfo.feeType},
+            #{orderInfo.rate},
             #{orderInfo.integral},
             #{orderInfo.integral_money},
             #{orderInfo.order_price},
@@ -489,6 +515,11 @@
             <if test="pay_name != null">`pay_name` = #{pay_name},</if>
             <if test="pay_time != null">`pay_time` = #{pay_time},</if>
             <if test="actual_price != null">`actual_price` = #{actual_price},</if>
+            <if test="cashFee != null">`cash_fee` = #{cashFee}, </if>
+            <if test="cashFeeType != null">`cash_fee_type` = #{cashFeeType}, </if>
+            <if test="totalFee != null">`total_fee` = #{totalFee}, </if>
+            <if test="feeType != null">`fee_type` = #{feeType}, </if>
+            <if test="rate != null">`rate` = #{rate}, </if>
             <if test="integral != null">`integral` = #{integral},</if>
             <if test="integral_money != null">`integral_money` = #{integral_money},</if>
             <if test="order_price != null">`order_price` = #{order_price},</if>

+ 54 - 5
kmall-api/src/main/java/com/kmall/api/contants/Dict.java → kmall-common/src/main/java/com/kmall/common/constant/Dict.java

@@ -1,4 +1,4 @@
-package com.kmall.api.contants;
+package com.kmall.common.constant;
 
 /**
  * @author huangyq
@@ -338,7 +338,7 @@ public class Dict {
 
     /**
      * 订单状态: 0 订单创建成功等待付款,100订单付款中, 101 订单已取消, 102 订单已删除,201 订单已付款,等待发货,300 订单已发货, 301 用户确认收货,400 维权申请中
-     * 401 没有发货,退款 402 已收货,退款退货
+     * 401 没有发货,退款 402 已收货,退款退货 500 订单已关闭 501 支付失败
      */
     public enum orderStatus {
         item_0("0", "订单创建成功等待付款"),
@@ -350,7 +350,9 @@ public class Dict {
         item_301("301", "用户确认收货"),
 //        item_400("400", "维权申请中"),
         item_401("401", "没有发货,退款"),
-        item_402("402", "已收货,退款退货");
+        item_402("402", "已收货,退款退货"),
+        item_500("500", "订单已关闭"),
+        item_501("501", "支付失败");
 
         private String item;
         private String itemName;
@@ -378,14 +380,18 @@ public class Dict {
     }
 
     /**
-     * 付款状态 支付状态;0 未付款;1 付款中;2 已付款;3 退款中;4 退款
+     * 付款状态 支付状态;0 未付款;1 付款中;2 已付款;3 退款中;4 退款; 5:退款关闭;6:退款异常 7:订单关闭 8 支付失败
      */
     public enum payStatus {
         item_0("0", "未付款"),
         item_1("1", "付款中"),
         item_2("2", "已付款"),
         item_3("3", "退款中"),
-        item_4("4", "退款");
+        item_4("4", "退款"),
+        item_5("5", "退款关闭"),
+        item_6("6", "退款异常"),
+        item_7("7", "订单关闭"),
+        item_8("8", "支付失败");
 
         private String item;
         private String itemName;
@@ -699,4 +705,47 @@ public class Dict {
         }
     }
 
+    /**
+     * SUCCESS—支付成功
+     REFUND—转入退款
+     NOTPAY—未支付
+     CLOSED—已关闭
+     REVOKED—已撤销(刷卡支付)
+     USERPAYING--用户支付中
+     PAYERROR--支付失败(其他原因,如银行返回失败)
+     */
+    public enum tradeState {
+        item_SUCCESS("SUCCESS", "支付成功"),
+        item_REFUND("REFUND", "转入退款"),
+        item_NOTPAY("NOTPAY", "未支付"),
+        item_CLOSED("CLOSED", "已关闭"),
+        item_REVOKED("REVOKED", "已撤销(刷卡支付)"),
+        item_USERPAYING("USERPAYING", "用户支付中"),
+        item_PAYERROR("PAYERROR", "支付失败(其他原因,如银行返回失败)");
+
+        private String item;
+        private String itemName;
+
+        tradeState(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;
+        }
+    }
+
 }

+ 9 - 0
kmall-common/src/main/java/com/kmall/common/utils/wechat/WechatRefundApiResult.java

@@ -46,6 +46,15 @@ public class WechatRefundApiResult {
 	 PAYERROR--支付失败(其他原因,如银行返回失败)
 	 */
 	private String trade_state;//交易状态
+	private String trade_state_desc;//交易状态描述
+
+	public String getTrade_state_desc() {
+		return trade_state_desc;
+	}
+
+	public void setTrade_state_desc(String trade_state_desc) {
+		this.trade_state_desc = trade_state_desc;
+	}
 
 	public String getOpenid() {
 		return openid;

+ 166 - 102
kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java

@@ -1,5 +1,6 @@
 package com.kmall.schedule.service;
 
+import com.kmall.common.constant.Dict;
 import com.kmall.common.utils.*;
 import com.kmall.common.utils.wechat.*;
 import com.kmall.common.utils.wechat.wxglobal.WechatGlobalUtil;
@@ -265,47 +266,45 @@ public class QzOrderService {
                 for (int i = 0; i < msgCount; i++) {
                     WechatRefundQueryResult querySuccessResponseDto =
                             ReaderXmlForDOM4J.parse(result.getXmlStr(), i);
-                    if (result.getReturn_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-                        if (result.getResult_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-                            result.setRefund_success_time(querySuccessResponseDto.getRefund_success_time());
-                            result.setOut_refund_no(querySuccessResponseDto.getOut_refund_no());
-                            result.setRefund_account(querySuccessResponseDto.getRefund_account());
-                            result.setRefund_channel(querySuccessResponseDto.getRefund_channel());
-                            result.setRefund_fee(querySuccessResponseDto.getRefund_fee());
-                            result.setRefund_id(querySuccessResponseDto.getRefund_id());
-                            result.setRefund_recv_accout(querySuccessResponseDto.getRefund_recv_accout());
-                            result.setRefund_status(querySuccessResponseDto.getRefund_status());
-
-                            Date successTime = DateUtils.strToDate(result.getRefund_success_time());
-                            refundRaram.put("refundTime", successTime);
-                            refundRaram.put("outRefundNo", result.getOut_refund_no());
-                            refundRaram.put("refundId", result.getRefund_id());
-                            refundRaram.put("refundMoney",
-                                    BigDecimal.valueOf(Long.valueOf(result.getRefund_fee()))
-                                            .divide(Constant.ONE_HUNDRED));
-                            if (result.getRefund_status().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-                                refundRaram.put("refundStatus", 2);
-                                refundRaram.put("wechat_refund_status_des", "退款成功");
-                            } else if (result.getRefund_status().equalsIgnoreCase("REFUNDCLOSE")) {
-                                refundRaram.put("refundStatus", 4);
-                                refundRaram.put("wechat_refund_status_des", "退款关闭");
-                            } else if (result.getRefund_status().equalsIgnoreCase("CHANGE")) {
-                                refundRaram.put("refundStatus", 4);
-                                refundRaram.put("wechat_refund_status_des", "退款异常");
-                            } else if (result.getRefund_status().equalsIgnoreCase("PROCESSING")) {
-                                refundRaram.put("refundStatus", 5);
-                                refundRaram.put("wechat_refund_status_des", "退款处理中");
-                            }
-                            refundRaram.put("refundRecvAccout", result.getRefund_recv_accout());
-                            refundRaram.put("orderRefundId", result.getOut_refund_no());
-                            qzOrderMapper.updateOrderRefund(refundRaram);//更新订单退款信息
-                        }
-                    }
+                    result.setRefund_success_time(querySuccessResponseDto.getRefund_success_time());
+                    result.setOut_refund_no(querySuccessResponseDto.getOut_refund_no());
+                    result.setRefund_account(querySuccessResponseDto.getRefund_account());
+                    result.setRefund_channel(querySuccessResponseDto.getRefund_channel());
+                    result.setRefund_fee(querySuccessResponseDto.getRefund_fee());
+                    result.setRefund_id(querySuccessResponseDto.getRefund_id());
+                    result.setRefund_recv_accout(querySuccessResponseDto.getRefund_recv_accout());
+                    result.setRefund_status(querySuccessResponseDto.getRefund_status());
                 }
-
+                Date successTime = DateUtils.strToDate(result.getRefund_success_time());
+                refundRaram.put("refundTime", successTime);
+                refundRaram.put("outRefundNo", result.getOut_refund_no());
+                refundRaram.put("refundId", result.getRefund_id());
+                refundRaram.put("refundMoney",
+                        BigDecimal.valueOf(Long.valueOf(result.getRefund_fee()))
+                                .divide(Constant.ONE_HUNDRED));
                 Map orderRaram = new HashMap();
-                orderRaram.put("payStatus", 4);
-                orderRaram.put("orderStatus", 401);
+                if (result.getRefund_status().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
+                    refundRaram.put("refundStatus", Dict.RefundStatus.item_2.getItem());
+                    refundRaram.put("wechat_refund_status_des", "退款成功");
+                    orderRaram.put("payStatus", Dict.payStatus.item_4.getItem());
+                } else if (result.getRefund_status().equalsIgnoreCase("REFUNDCLOSE")) {
+                    refundRaram.put("refundStatus", Dict.RefundStatus.item_4.getItem());
+                    refundRaram.put("wechat_refund_status_des", "退款关闭");
+                    orderRaram.put("payStatus", Dict.payStatus.item_5.getItem());
+                } else if (result.getRefund_status().equalsIgnoreCase("CHANGE")) {
+                    refundRaram.put("refundStatus", Dict.RefundStatus.item_4.getItem());
+                    refundRaram.put("wechat_refund_status_des", "退款异常");
+                    orderRaram.put("payStatus", Dict.payStatus.item_6.getItem());
+                } else if (result.getRefund_status().equalsIgnoreCase("PROCESSING")) {
+                    refundRaram.put("refundStatus", Dict.RefundStatus.item_5.getItem());
+                    refundRaram.put("wechat_refund_status_des", "退款处理中");
+                    orderRaram.put("payStatus", Dict.payStatus.item_3.getItem());
+                }
+                refundRaram.put("refundRecvAccout", result.getRefund_recv_accout());
+                refundRaram.put("orderRefundId", result.getOut_refund_no());
+                qzOrderMapper.updateOrderRefund(refundRaram);//更新订单退款信息
+
+                orderRaram.put("orderStatus", Dict.orderStatus.item_401.getItem());
                 orderRaram.put("orderId", order_id);
                 orderRaram.put("payTransactionId", result.getTransaction_id());
                 qzOrderMapper.updateOrderInfo(orderRaram);
@@ -326,6 +325,7 @@ public class QzOrderService {
         logger.info(">>>>>>>>>>>>>>>>>>>>wxGlobalRefundQuery 微信国际退款查询接口调用");
         String out_trade_no = MapUtils.getString("merch_order_sn", map);
         String order_id = MapUtils.getString("order_id", map);
+        Map orderRaram = new HashMap();
         WechatGlobalRefundQueryResult result = WechatGlobalUtil.wxRefundquery(out_trade_no);
         if (result.getReturn_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
             if (result.getResult_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
@@ -364,17 +364,21 @@ public class QzOrderService {
                             refundRaram.put("cashFeeType", result.getCash_fee_type());//用户支付金额币种
                             refundRaram.put("rate", result.getRate());//汇率
                             if (result.getRefund_status().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-                                refundRaram.put("refundStatus", 2);
+                                refundRaram.put("refundStatus", Dict.RefundStatus.item_2.getItem());
                                 refundRaram.put("wechat_refund_status_des", "退款成功");
+                                orderRaram.put("payStatus", Dict.payStatus.item_4.getItem());
                             } else if (result.getRefund_status().equalsIgnoreCase("PROCESSING")) {
-                                refundRaram.put("refundStatus", 5);
+                                refundRaram.put("refundStatus", Dict.RefundStatus.item_5.getItem());
                                 refundRaram.put("wechat_refund_status_des", "退款处理中");
+                                orderRaram.put("payStatus", Dict.payStatus.item_3.getItem());
                             } else if (result.getRefund_status().equalsIgnoreCase("REFUNDCLOSE")) {
-                                refundRaram.put("refundStatus", 4);
+                                refundRaram.put("refundStatus", Dict.RefundStatus.item_4.getItem());
                                 refundRaram.put("wechat_refund_status_des", "退款关闭");
+                                orderRaram.put("payStatus", Dict.payStatus.item_5.getItem());
                             } else if (result.getRefund_status().equalsIgnoreCase("CHANGE")) {
-                                refundRaram.put("refundStatus", 4);
+                                refundRaram.put("refundStatus", Dict.RefundStatus.item_4.getItem());
                                 refundRaram.put("wechat_refund_status_des", "退款异常");
+                                orderRaram.put("payStatus", Dict.payStatus.item_6.getItem());
                             }
                             refundRaram.put("refundRecvAccout", result.getRefund_recv_accout());
                             refundRaram.put("orderRefundId", result.getOut_refund_no());
@@ -382,9 +386,7 @@ public class QzOrderService {
                         }
                     }
                 }
-                Map orderRaram = new HashMap();
-                orderRaram.put("payStatus", 4);
-                orderRaram.put("orderStatus", 401);
+                orderRaram.put("orderStatus", Dict.orderStatus.item_401.getItem());
                 orderRaram.put("orderId", order_id);
                 orderRaram.put("payTransactionId", result.getTransaction_id());
                 qzOrderMapper.updateOrderInfo(orderRaram);
@@ -444,34 +446,65 @@ public class QzOrderService {
 
         WechatRefundApiResult result = WechatUtil.wxOrderQuery(out_trade_no);
         if (result.getReturn_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-            if (result.getResult_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode()) &&
-                    result.getTrade_state().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode())) {
-                Date successTime = DateUtils.convertStringToDate(result.getTime_end(),
-                        DateUtils.DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS);
-                Map orderRaram = new HashMap();
-                orderRaram.put("payStatus", 2);//已支付
-                orderRaram.put("orderStatus", 201);//已支付
-                orderRaram.put("payTransactionId", result.getTransaction_id());
-                orderRaram.put("payTime", successTime);
-                orderRaram.put("orderId", orderId);
-                qzOrderMapper.updateOrderInfo(orderRaram);
-            } else if (result.getResult_code().equalsIgnoreCase("SUCCESS") &&
-                    result.getTrade_state().equalsIgnoreCase("NOTPAY")) {//订单未支付
-                Map orderRaram = new HashMap();
-                if (getDateBetween(addTime, nowDate) >= 15) {//订单下单时间超过15分钟直接取消订单
-                    orderRaram.put("payStatus", 0);//支付状态未支付
-                    orderRaram.put("orderStatus", 101);//订单状态已取消
+            if (result.getResult_code().equalsIgnoreCase(WechatUtil.WXTradeState.SUCCESS.getCode()) ){
+                if(result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_SUCCESS.getItem())) {
+                    Date successTime = DateUtils.convertStringToDate(result.getTime_end(),
+                            DateUtils.DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS);
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_2.getItem());//已支付
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_201.getItem());//已支付
+                    orderRaram.put("payTransactionId", result.getTransaction_id());
+                    orderRaram.put("payTime", successTime);
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_NOTPAY.getItem())) {//订单未支付
+                    Map orderRaram = new HashMap();
+                    if (getDateBetween(addTime, nowDate) >= 15) {//订单下单时间超过15分钟直接取消订单
+                        Map param = new HashMap();
+                        param.put("id", storeRelaId);
+                        param.put("stock_num", stock_num + number);
+                        qzOrderMapper.updateStockNum(param);//库存还原
+                        orderRaram.put("payStatus", Dict.payStatus.item_0.getItem());//支付状态未支付
+                        orderRaram.put("orderStatus", Dict.orderStatus.item_101.getItem());//订单状态已取消
+                    } else {
+                        orderRaram.put("payStatus", Dict.payStatus.item_0.getItem());//支付状态未支付
+                        orderRaram.put("orderStatus", Dict.orderStatus.item_0.getItem());//订单状态未支付
+                    }
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_CLOSED.getItem())) {
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_7.getItem());
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_500.getItem());
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
                     Map param = new HashMap();
                     param.put("id", storeRelaId);
                     param.put("stock_num", stock_num + number);
-                    qzOrderMapper.updateStockNum(param);
-                } else {
-                    orderRaram.put("payStatus", 0);//支付状态未支付
-                    orderRaram.put("orderStatus", 0);//订单状态未支付
+                    qzOrderMapper.updateStockNum(param);//库存还原
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + result.getTrade_state_desc() + "】");
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_PAYERROR.getItem())) {
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_8.getItem());
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_501.getItem());
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + result.getTrade_state_desc() + "】");
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_USERPAYING.getItem())) {
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_1.getItem());
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_100.getItem());
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + result.getTrade_state_desc() + "】");
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_REVOKED.getItem())) {
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + result.getTrade_state_desc() + "】");
                 }
-                orderRaram.put("orderId", orderId);
-                qzOrderMapper.updateOrderInfo(orderRaram);
-            } else {
+            }else {
                 logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回失败信息:code 【" + result.getErr_code() +
                         "】,des【" + result.getErr_code_des() + "】");
             }
@@ -497,40 +530,71 @@ public class QzOrderService {
 
         WechatGlobalQueryApiResult result = WechatGlobalUtil.wxOrderQuery(out_trade_no);
         if (result.getReturn_code().equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode())) {
-            if (result.getResult_code().equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode()) &&
-                    result.getTrade_state().equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode())) {
-                Date successTime = DateUtils.convertStringToDate(result.getTime_end(),
-                        DateUtils.DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS);
-                Map orderRaram = new HashMap();
-                orderRaram.put("payStatus", 2);//已支付
-                orderRaram.put("orderStatus", 201);//已支付
-                orderRaram.put("payTransactionId", result.getTransaction_id());
-                orderRaram.put("payTime", successTime);
-                orderRaram.put("orderId", orderId);
-
-                orderRaram.put("totalFee", result.getTotal_fee());//标价金额
-                orderRaram.put("feeType", result.getFee_type());//标价币种
-                orderRaram.put("cashFee", result.getCash_fee());//用户支付金额
-                orderRaram.put("cashFeeType", result.getCash_fee_type());//用户支付金额币种
-                orderRaram.put("rate", result.getRate());//汇率
-                qzOrderMapper.updateOrderInfo(orderRaram);
-            } else if (result.getResult_code().equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode()) &&
-                    result.getTrade_state().equalsIgnoreCase("NOTPAY")) {//订单未支付
-                Map orderRaram = new HashMap();
-                if (getDateBetween(addTime, nowDate) >= 15) {//订单下单时间超过15分钟直接取消订单
+            if (result.getResult_code().equalsIgnoreCase(WechatGlobalUtil.WXTradeState.SUCCESS.getCode())) {
+                if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_SUCCESS.getItem())) {
+                    Date successTime = DateUtils.convertStringToDate(result.getTime_end(),
+                            DateUtils.DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS);
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_2.getItem());//已支付
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_201.getItem());//已支付
+                    orderRaram.put("payTransactionId", result.getTransaction_id());
+                    orderRaram.put("payTime", successTime);
+                    orderRaram.put("orderId", orderId);
+
+                    orderRaram.put("totalFee", result.getTotal_fee());//标价金额
+                    orderRaram.put("feeType", result.getFee_type());//标价币种
+                    orderRaram.put("cashFee", result.getCash_fee());//用户支付金额
+                    orderRaram.put("cashFeeType", result.getCash_fee_type());//用户支付金额币种
+                    orderRaram.put("rate", result.getRate());//汇率
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_NOTPAY.getItem())) {//订单未支付
+                    Map orderRaram = new HashMap();
+                    if (getDateBetween(addTime, nowDate) >= 15) {//订单下单时间超过15分钟直接取消订单
+                        orderRaram.put("payStatus", Dict.payStatus.item_0.getItem());//支付状态未支付
+                        orderRaram.put("orderStatus", Dict.orderStatus.item_101.getItem());//订单状态已取消
+                        Map param = new HashMap();
+                        param.put("id", storeRelaId);
+                        param.put("stock_num", stock_num + number);
+                        qzOrderMapper.updateStockNum(param);
+                    } else {
+                        orderRaram.put("payStatus", Dict.payStatus.item_0.getItem());//支付状态未支付
+                        orderRaram.put("orderStatus", Dict.orderStatus.item_0.getItem());//订单状态未支付
+                    }
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_PAYERROR.getItem())) {
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_501.getItem());
+                    orderRaram.put("payStatus", Dict.payStatus.item_8.getItem());
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + Dict.tradeState.item_PAYERROR.getItemName() + "】");
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_CLOSED.getItem())) {
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_7.getItem());
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_500.getItem());
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
                     Map param = new HashMap();
                     param.put("id", storeRelaId);
                     param.put("stock_num", stock_num + number);
-                    qzOrderMapper.updateStockNum(param);
-                    orderRaram.put("payStatus", 0);//支付状态未支付
-                    orderRaram.put("orderStatus", 101);//订单状态已取消
-                } else {
-                    orderRaram.put("payStatus", 0);//支付状态未支付
-                    orderRaram.put("orderStatus", 0);//订单状态未支付
+                    qzOrderMapper.updateStockNum(param);//库存还原
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + Dict.tradeState.item_CLOSED.getItemName() + "】");
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_USERPAYING.getItem())) {
+                    Map orderRaram = new HashMap();
+                    orderRaram.put("payStatus", Dict.payStatus.item_1.getItem());
+                    orderRaram.put("orderStatus", Dict.orderStatus.item_100.getItem());
+                    orderRaram.put("orderId", orderId);
+                    qzOrderMapper.updateOrderInfo(orderRaram);
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + Dict.tradeState.item_USERPAYING.getItemName() + "】");
+                } else if (result.getTrade_state().equalsIgnoreCase(Dict.tradeState.item_REVOKED.getItem())) {
+                    logger.info(">>>>>>>>>>>>>>>>>>>>wxOrderQuery 微信查询接口返回信息:state 【" + result.getTrade_state() +
+                            "】,des【" + Dict.tradeState.item_REVOKED.getItemName() + "】");
                 }
-                orderRaram.put("orderId", orderId);
-                qzOrderMapper.updateOrderInfo(orderRaram);
-            } else {
+            }else {
                 logger.info(">>>>>>>>>>>>>>>>>>>>wxGlobalOrderQuery 微信查询接口返回失败信息:code 【" + result.getErr_code() +
                         "】,des【" + result.getErr_code_des() + "】");
             }
@@ -651,7 +715,7 @@ public class QzOrderService {
     public void shipmentOrderAutoTakeGoods() {
         logger.info(">>>>>>>>>>>>>>>>>>>>shipmentOrderAutoTakeGoods is start ");
         logger.info(">>>>>>>>>>>>>>>>>>>>商品发货后7天自动确认收货 ");
-        // 查询门店业务发货后7天的订单
+        // 查询门店业务发货后7天的订单,门店业务根据清关完成时间后7天
         List<Map> shipmentOrderList = qzOrderMapper.queryShipmentOrderList();
         if (null != shipmentOrderList && shipmentOrderList.size() > 0) {
             for (Map map : shipmentOrderList) {
@@ -660,7 +724,7 @@ public class QzOrderService {
                 qzOrderMapper.updateShipmentOrder(orderMap);
             }
         }
-        //查询保税备货发货后7天的订单
+        //查询保税备货发货后7天的订单,保税备货根据发货完成时间后7天
         List<Map> shipmentBondedOrderList = qzOrderMapper.queryShipmentBondedOrderList();
         if (null != shipmentBondedOrderList && shipmentBondedOrderList.size() > 0) {
             for (Map map : shipmentBondedOrderList) {