Explorar el Código

Merge branch 'master' of dq/kmall-pt into master

黄亚琴 hace 6 años
padre
commit
f946b6aabd
Se han modificado 28 ficheros con 274 adiciones y 172 borrados
  1. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  2. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  3. 3 1
      kmall-admin/src/main/resources/conf/common.properties
  4. 1 1
      kmall-admin/src/main/resources/conf/wx-mp.properties
  5. 2 2
      kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml
  6. 0 32
      kmall-admin/src/main/webapp/WEB-INF/page/shop/goods.html
  7. 34 2
      kmall-admin/src/main/webapp/WEB-INF/page/shop/storeProductStock.html
  8. 3 3
      kmall-admin/src/main/webapp/WEB-INF/page/sys/oss.html
  9. 2 2
      kmall-admin/src/main/webapp/WEB-INF/page/sys/schedule.html
  10. 0 42
      kmall-admin/src/main/webapp/js/shop/goods.js
  11. 42 0
      kmall-admin/src/main/webapp/js/shop/storeProductStock.js
  12. 2 2
      kmall-admin/src/main/webapp/js/sys/schedule.js
  13. 1 1
      kmall-api/src/main/java/com/kmall/api/api/ApiGoodsController.java
  14. 1 1
      kmall-api/src/main/java/com/kmall/api/api/ApiUserController.java
  15. 1 1
      kmall-api/src/main/java/com/kmall/api/service/ApiPayService.java
  16. 64 0
      kmall-common/src/main/java/com/kmall/common/utils/wechat/ReaderXmlForDOM4J.java
  17. 54 45
      kmall-common/src/main/java/com/kmall/common/utils/wechat/WechatRefundQueryResult.java
  18. 2 0
      kmall-common/src/main/java/com/kmall/common/utils/wechat/WechatUtil.java
  19. 2 2
      kmall-schedule/src/main/java/com/kmall/schedule/quartz/OrderTask.java
  20. 38 20
      kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java
  21. 2 3
      kmall-schedule/src/main/resources/mybatis/mapper/QzOrderMapper.xml
  22. 6 0
      kmall-schedule/src/main/resources/mybatis/mapper/ScheduleJobDao.xml
  23. 1 2
      wx-mall/config/api.js
  24. 1 6
      wx-mall/pages/auth/newuser/newuser.js
  25. 7 0
      wx-mall/pages/shopping/addressAdd/addressAdd.js
  26. 1 1
      wx-mall/pages/shopping/checkout/checkout.js
  27. 1 0
      wx-mall/pages/shopping/checkout/checkout.wxss
  28. 1 1
      wx-mall/pages/ucenter/order/order.wxml

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

@@ -240,7 +240,7 @@ public class OrderServiceImpl implements OrderService {
         orderRefund.setRefundId(result.getRefund_id());
         orderRefund.setOutRefundNo(result.getOut_refund_no());
         orderRefund.setRefundMoney(BigDecimal.valueOf(Long.valueOf(result.getRefund_fee())).divide(Constant.ONE_HUNDRED));
-        orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_2.getItem()));//退款成功
+        orderRefund.setRefundStatus(Integer.parseInt(Dict.RefundStatus.item_5.getItem()));//退款处理中
         orderRefund.setModTime(new Date());
 
         if(mallOrderRefund !=null){

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

@@ -153,7 +153,7 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         }
 
         Map<String, Object> map = new HashMap();
-        map.put("sku", goodsEntity.getSku());
+        map.put("goodsId", goodsEntity.getId());
         map.put("storeId", productStoreRela.getStoreId());
         map.put("id", productStoreRela.getId());
         List<ProductStoreRelaEntity> storeRelaList = querySameList(map);

+ 3 - 1
kmall-admin/src/main/resources/conf/common.properties

@@ -3,8 +3,10 @@
 
 #测试apikey
 #yunpian.sms.apikey=1dd75986321871d706334e60b89c4021
+#前海电商apikey
+#yunpian.sms.apikey=3084e52ffff6adb96a67995b43edfb93
 #生产apikey
-yunpian.sms.apikey=3084e52ffff6adb96a67995b43edfb93
+yunpian.sms.apikey=6968bd2d54ceaba25d6211301831059f
 
 #url
 yunpian.sms.url=https://sms.yunpian.com/v2/sms/single_send.json

+ 1 - 1
kmall-admin/src/main/resources/conf/wx-mp.properties

@@ -16,7 +16,7 @@ wx.dev.paySignKey=U5XYsGSLMhhNFDBUWfgPGLsF3rG7GTXq
 #交易类型
 wx.dev.tradeType=JSAPI
 #证书名称,对应不同的商户号
-wx.dev.certName=/cert/apiclient_cert.p12
+wx.dev.certName=D:/cert/apiclient_cert.p12
 #支付回调地址
 wx.dev.notifyUrl=http://qhdswl.f3322.net:9001/platform-framework/api/pay/notify
 #获取code的请求地址

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

@@ -126,7 +126,7 @@
         <if test="productId != null">
             AND a.product_id = #{productId}
         </if>
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND s.id = #{storeId}
         </if>
         <choose>
@@ -210,7 +210,7 @@
         <if test="productId != null">
             AND a.product_id = #{productId}
         </if>
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND s.id = #{storeId}
         </if>
     </select>

+ 0 - 32
kmall-admin/src/main/webapp/WEB-INF/page/shop/goods.html

@@ -396,38 +396,6 @@
     <ul id="categoryTree" class="ztree"></ul>
 </div>
 
-<div id="qrcode" style="display: none;padding: 10px;">
-    <div id="qrcodeCanvas" style="margin: 53px 0 0 93px"></div>
-</div>
-
-
-<div id="qrcImg" style="display:none">
-    <img class="qrcImg align-center" src="">
-    <img class="upLogo align-center-middle" src="" >
-</div>
-
 <script src="${rc.contextPath}/js/shop/goods.js?_${date.systemTime}"></script>
 </body>
-
-<style>
-    .align-center {
-        position:absolute;
-        margin: auto;
-        top:0px;
-        bottom: 0px;
-        right: 0px;
-        left: 0px;
-    }
-
-    .align-center-middle {
-        position:absolute;
-        height: 30px;
-        width: 30px;
-        margin: auto;
-        top:0px;
-        bottom: 0px;
-        right: 0px;
-        left: 0px;
-    }
-</style>
 </html>

+ 34 - 2
kmall-admin/src/main/webapp/WEB-INF/page/shop/storeProductStock.html

@@ -64,9 +64,9 @@
                 <i-col span="4">
                     <i-input v-model="q.goodsSn" @on-enter="query" placeholder="商品编码"/>
                 </i-col>
-                <i-col span="4">
+                <!--<i-col span="4">
                     <i-input v-model="q.productSn" @on-enter="query" placeholder="规格编码"/>
-                </i-col>
+                </i-col>-->
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
@@ -140,6 +140,38 @@
     <ul id="categoryTree" class="ztree"></ul>
 </div>
 
+<div id="qrcode" style="display: none;padding: 10px;">
+    <div id="qrcodeCanvas" style="margin: 53px 0 0 93px"></div>
+</div>
+
+
+<div id="qrcImg" style="display:none">
+    <img class="qrcImg align-center" src="">
+    <img class="upLogo align-center-middle" src="" >
+</div>
+
 <script src="${rc.contextPath}/js/shop/storeProductStock.js?_${date.systemTime}"></script>
 </body>
+
+<style>
+    .align-center {
+        position:absolute;
+        margin: auto;
+        top:0px;
+        bottom: 0px;
+        right: 0px;
+        left: 0px;
+    }
+
+    .align-center-middle {
+        position:absolute;
+        height: 30px;
+        width: 30px;
+        margin: auto;
+        top:0px;
+        bottom: 0px;
+        right: 0px;
+        left: 0px;
+    }
+</style>
 </html>

+ 3 - 3
kmall-admin/src/main/webapp/WEB-INF/page/sys/oss.html

@@ -9,12 +9,12 @@
 <div id="rrapp" v-cloak>
     <div v-show="showList">
         <Row :gutter="16">
-            <div class="search-group">
+            <!--<div class="search-group">
                 <i-button type="success" @click="addConfig"><i class="fa fa-sun-o"></i>&nbsp;云存储配置</i-button>
                 <i-button type="primary" id="upload"><i class="fa fa-plus"></i>&nbsp;上传文件</i-button>
-            </div>
+            </div>-->
             <div class="buttons-group">
-                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                <!--<i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>-->
                 <i-button type="success" @click="lookImg"><i class="fa fa-eye"></i>&nbsp;预览</i-button>
             </div>
         </Row>

+ 2 - 2
kmall-admin/src/main/webapp/WEB-INF/page/sys/schedule.html

@@ -9,7 +9,7 @@
     <div v-show="showList">
         <Row :gutter="16">
             <i-col span="4">
-                <i-input v-model="q.beanName" @on-enter="query" placeholder="bean名称"/>
+                <i-input v-model="q.methodName" @on-enter="query" placeholder="方法名称"/>
             </i-col>
             <i-button @click="query">查询</i-button>
             #if($shiro.hasPermission("sys:schedule:save"))
@@ -41,7 +41,7 @@
         <i-col span="12">
             <Card>
                 <p slot="title">{{title}}</p>
-                <i-form ref="formValidate" :model="schedule" :rules="ruleValidate" :label-width="80">
+                <i-form ref="formValidate" :model="schedule" :rules="ruleValidate" :label-width="100">
                     <Form-item label="bean名称" prop="beanName">
                         <i-input v-model="schedule.beanName" placeholder="spring bean名称,如:testTask"/>
                     </Form-item>

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

@@ -49,15 +49,6 @@ $(function () {
                 formatter: function (value) {
                     return transDate(value, 'yyyy-MM-dd hh:mm:ss');
                 }
-            },
-            {
-                label: '操作', width: 60, align: 'center', sortable: false, formatter: function (value, col, row) {
-                    let htmlStr = '';
-                    if (row.goodsBizType == '02' || row.goodsBizType == '10') {
-                        htmlStr = '<button class="btn btn-outline btn-primary" onclick="vm.qrcodeCanvas(' + row.id + ')"><i class="fa fa-qrcode"></i>二维码</button>';
-                    }
-                    return htmlStr;
-                }
             }
         ],
         viewrecords: true,
@@ -536,39 +527,6 @@ var vm = new Vue({
         },
         eyeImage: function (e) {
             eyeImage($(e.target).attr('src'));
-        },
-        qrcodeCanvas: function(id) {
-            $("#qrcodeCanvas").html("");
-            $("#qrcodeCanvas").qrcode({
-                render : "canvas",    //设置渲染方式,有table和canvas,使用canvas方式渲染性能相对来说比较好
-                text : "emato../goods/goods?id=" + id,    //扫描二维码后显示的内容,可以直接填一个网址,扫描二维码后自动跳向该链接
-                width : "100",               //二维码的宽度
-                height : "100",              //二维码的高度
-                background : "#ffffff",       //二维码的后景色
-                foreground : "#000000",        //二维码的前景色
-                src: '../../statics/img/logo.jpg'             //二维码中间的图片
-            });
-
-            var qrcSrc = $("canvas")[0].toDataURL();
-            $("#qrcImg .qrcImg").attr("src", qrcSrc);
-            var upLogSrc = "../../statics/img/logo.jpg";
-            $("#qrcImg .upLogo").attr("src", upLogSrc);
-            $("#qrcImg").show();//隐藏canvas部分
-
-            openWindow({
-                title: "二维码",
-                area: ['400px', '400px'],
-                content: jQuery("#qrcode"),
-                btn: ["打印"],
-                btn1: function (index) {
-                    $("#qrcImg").show();
-                    $("#qrcImg").print({});
-                    $("#qrcImg").hide();
-                    layer.close(index);
-                }
-            });
-
-            $("#qrcImg").hide();
         }
     },
     mounted() {

+ 42 - 0
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -37,6 +37,15 @@ $(function () {
                     jQuery("#jqGrid").jqGrid('setGridParam', {page: $('#XtoPage').val()});
                 }
             },
+            {
+                label: '操作', width: 60, align: 'center', sortable: false, formatter: function (value, col, row) {
+                let htmlStr = '';
+                if (row.goodsBizType == '02' || row.goodsBizType == '10') {
+                    htmlStr = '<button class="btn btn-outline btn-primary" onclick="vm.qrcodeCanvas(' + row.goodsId + ')"><i class="fa fa-qrcode"></i>二维码</button>';
+                }
+                return htmlStr;
+            }
+            }
         ],
         viewrecords: true,
         height: 385,
@@ -294,6 +303,39 @@ var vm = new Vue({
         },
         handleReset: function (name) {
             handleResetForm(this, name);
+        },
+        qrcodeCanvas: function(id) {
+            $("#qrcodeCanvas").html("");
+            $("#qrcodeCanvas").qrcode({
+                render : "canvas",    //设置渲染方式,有table和canvas,使用canvas方式渲染性能相对来说比较好
+                text : "emato../goods/goods?id=" + id,    //扫描二维码后显示的内容,可以直接填一个网址,扫描二维码后自动跳向该链接
+                width : "100",               //二维码的宽度
+                height : "100",              //二维码的高度
+                background : "#ffffff",       //二维码的后景色
+                foreground : "#000000",        //二维码的前景色
+                src: '../../statics/img/logo.jpg'             //二维码中间的图片
+            });
+
+            var qrcSrc = $("canvas")[0].toDataURL();
+            $("#qrcImg .qrcImg").attr("src", qrcSrc);
+            var upLogSrc = "../../statics/img/logo.jpg";
+            $("#qrcImg .upLogo").attr("src", upLogSrc);
+            $("#qrcImg").show();//隐藏canvas部分
+
+            openWindow({
+                title: "二维码",
+                area: ['400px', '400px'],
+                content: jQuery("#qrcode"),
+                btn: ["打印"],
+                btn1: function (index) {
+                    $("#qrcImg").show();
+                    $("#qrcImg").print({});
+                    $("#qrcImg").hide();
+                    layer.close(index);
+                }
+            });
+
+            $("#qrcImg").hide();
         }
     },
     mounted() {

+ 2 - 2
kmall-admin/src/main/webapp/js/sys/schedule.js

@@ -48,7 +48,7 @@ var vm = new Vue({
     el: '#rrapp',
     data: {
         q: {
-            beanName: null
+            methodName: null
         },
         showList: true,
         title: null,
@@ -204,7 +204,7 @@ var vm = new Vue({
             vm.showList = true;
             var page = $("#jqGrid").jqGrid('getGridParam', 'page');
             $("#jqGrid").jqGrid('setGridParam', {
-                postData: {'beanName': vm.q.beanName},
+                postData: {'methodName': vm.q.methodName},
                 page: page
             }).trigger("reloadGrid");
         },

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

@@ -129,7 +129,7 @@ public class ApiGoodsController extends ApiBaseAction {
         Long storeId = getStoreId();
         GoodsVo info = goodsService.queryObjectByStoreId(id, storeId);
         if(info == null){
-
+            return toResponsFail("此商品不存在");
         }
         BrandVo brand = apiBrandService.queryObject(info.getBrand_id());
         resultObj.put("brand", brand);

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

@@ -58,7 +58,7 @@ public class ApiUserController extends ApiBaseAction {
         String sms_code = SendMsgUtil.createRandomVcode();
         String phone = jsonParams.getString("phone");
 //        String msgContent = "【前海电商】手机验证码为:"+sms_code;
-        String msgContent = "【中网小程序】亲爱的"+loginUser.getNickname()+",您的验证码是"+sms_code+"。有效期为5分钟,请尽快验证";
+        String msgContent = "【中网小程序】亲爱的,您的验证码是"+sms_code+"。有效期为5分钟,请尽快验证";
 
         System.out.println("msgContent:"+msgContent);
         // 一分钟之内不能重复发送短信

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

@@ -310,7 +310,7 @@ public class ApiPayService {
                             logger.error("转换异常:",e);
                         }
                         orderRefund.setRefundRecvAccout(account);
-                        orderRefund.setId(mallOrderRefund.getId());
+                        orderRefund.setOutRefundNo(refundApiResult.getOut_trade_no());
                         mallOrderRefundMapper.update(orderRefund);//更新订单退款信息
 
                         OrderVo orderVo = new OrderVo();

+ 64 - 0
kmall-common/src/main/java/com/kmall/common/utils/wechat/ReaderXmlForDOM4J.java

@@ -0,0 +1,64 @@
+package com.kmall.common.utils.wechat;
+
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
+import java.util.Iterator;
+
+/**
+ * 获取请求微信订单查询接口返回xml中的state
+ * @author huangyq
+ * @version 1.0
+ * 2018-05-24 15:53
+ */
+public class ReaderXmlForDOM4J {
+
+    public static WechatRefundQueryResult parse(String protocolXML, int count) {
+        WechatRefundQueryResult querySuccessResponseDto = new WechatRefundQueryResult();
+        try {
+            Document doc=(Document) DocumentHelper.parseText(protocolXML);
+            Element books = doc.getRootElement();
+            // Iterator users_subElements = books.elementIterator("UID");//指定获取那个元素
+            Iterator Elements = books.elementIterator();
+            while(Elements.hasNext()){
+                Element element = (Element)Elements.next();
+                String out_refund_no ="out_refund_no_"+(count);
+                String refund_account ="refund_account_"+(count);
+                String refund_channel ="refund_channel_"+(count);
+                String refund_fee ="refund_fee_"+(count);
+                String refund_id ="refund_id_"+(count);
+                String refund_recv_accout ="refund_recv_accout_"+(count);
+                String refund_status ="refund_status_"+(count);
+                String refund_success_time ="refund_success_time_"+(count);
+                if(out_refund_no.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setOut_refund_no(element.getText());
+                }
+                if(refund_account.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_account(element.getText());
+                }
+                if(refund_channel.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_channel(element.getText());
+                }
+                if(refund_fee.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_fee(element.getText());
+                }
+                if(refund_id.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_id(element.getText());
+                }
+                if(refund_recv_accout.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_recv_accout(element.getText());
+                }
+                if(refund_status.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_status(element.getText());
+                }
+                if(refund_success_time.equalsIgnoreCase(element.getName())){
+                    querySuccessResponseDto.setRefund_success_time(element.getText());
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return querySuccessResponseDto;
+    }
+}

+ 54 - 45
kmall-common/src/main/java/com/kmall/common/utils/wechat/WechatRefundQueryResult.java

@@ -7,6 +7,7 @@ package com.kmall.common.utils.wechat;
  * 2018-11-02 10:22
  */
 public class WechatRefundQueryResult {
+    private String xmlStr;
     private String return_code;
     private String return_msg;
 
@@ -26,23 +27,23 @@ public class WechatRefundQueryResult {
     private String fee_type;//货币种类 默认人民币:CNY
     private String cash_fee;//现金支付金额	现金支付金额,单位为分,只能为整数
     private String refund_count;//退款笔数
-    private String out_refund_no_0;//商户退款单号
-    private String refund_id_0;//微信退款单号
-    private String refund_channel_0;//退款渠道 ORIGINAL—原路退款 BALANCE—退回到余额 OTHER_BALANCE—原账户异常退到其他余额账户 OTHER_BANKCARD—原银行卡异常退到其他银行卡
-    private String refund_fee_0;//申请退款金额	 退款总金额,单位为分,可以做部分退款
-    private String settlement_refund_fee_0;//退款金额
+    private String out_refund_no;//商户退款单号
+    private String refund_id;//微信退款单号
+    private String refund_channel;//退款渠道 ORIGINAL—原路退款 BALANCE—退回到余额 OTHER_BALANCE—原账户异常退到其他余额账户 OTHER_BANKCARD—原银行卡异常退到其他银行卡
+    private String refund_fee;//申请退款金额	 退款总金额,单位为分,可以做部分退款
+    private String settlement_refund_fee;//退款金额
     /**
      * SUCCESS—退款成功
      REFUNDCLOSE—退款关闭。
      PROCESSING—退款处理中
      CHANGE—退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败
      */
-    private String refund_status_0;//退款状态
+    private String refund_status;//退款状态
     /**
      * REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户
      REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
      */
-    private String refund_account_0;//退款资金来源
+    private String refund_account;//退款资金来源
     /**
      * 取当前退款单的退款入账方
      1)退回银行卡:
@@ -55,8 +56,16 @@ public class WechatRefundQueryResult {
      4)退回支付用户零钱通:
      支付用户零钱通
      */
-    private String refund_recv_accout_0;
-    private String refund_success_time_0;//退款成功时间
+    private String refund_recv_accout;
+    private String refund_success_time;//退款成功时间
+
+    public String getXmlStr() {
+        return xmlStr;
+    }
+
+    public void setXmlStr(String xmlStr) {
+        this.xmlStr = xmlStr;
+    }
 
     public String getReturn_code() {
         return return_code;
@@ -202,75 +211,75 @@ public class WechatRefundQueryResult {
         this.refund_count = refund_count;
     }
 
-    public String getOut_refund_no_0() {
-        return out_refund_no_0;
+    public String getOut_refund_no() {
+        return out_refund_no;
     }
 
-    public void setOut_refund_no_0(String out_refund_no_0) {
-        this.out_refund_no_0 = out_refund_no_0;
+    public void setOut_refund_no(String out_refund_no) {
+        this.out_refund_no = out_refund_no;
     }
 
-    public String getRefund_id_0() {
-        return refund_id_0;
+    public String getRefund_id() {
+        return refund_id;
     }
 
-    public void setRefund_id_0(String refund_id_0) {
-        this.refund_id_0 = refund_id_0;
+    public void setRefund_id(String refund_id) {
+        this.refund_id = refund_id;
     }
 
-    public String getRefund_channel_0() {
-        return refund_channel_0;
+    public String getRefund_channel() {
+        return refund_channel;
     }
 
-    public void setRefund_channel_0(String refund_channel_0) {
-        this.refund_channel_0 = refund_channel_0;
+    public void setRefund_channel(String refund_channel) {
+        this.refund_channel = refund_channel;
     }
 
-    public String getRefund_fee_0() {
-        return refund_fee_0;
+    public String getRefund_fee() {
+        return refund_fee;
     }
 
-    public void setRefund_fee_0(String refund_fee_0) {
-        this.refund_fee_0 = refund_fee_0;
+    public void setRefund_fee(String refund_fee) {
+        this.refund_fee = refund_fee;
     }
 
-    public String getSettlement_refund_fee_0() {
-        return settlement_refund_fee_0;
+    public String getSettlement_refund_fee() {
+        return settlement_refund_fee;
     }
 
-    public void setSettlement_refund_fee_0(String settlement_refund_fee_0) {
-        this.settlement_refund_fee_0 = settlement_refund_fee_0;
+    public void setSettlement_refund_fee(String settlement_refund_fee) {
+        this.settlement_refund_fee = settlement_refund_fee;
     }
 
-    public String getRefund_status_0() {
-        return refund_status_0;
+    public String getRefund_status() {
+        return refund_status;
     }
 
-    public void setRefund_status_0(String refund_status_0) {
-        this.refund_status_0 = refund_status_0;
+    public void setRefund_status(String refund_status) {
+        this.refund_status = refund_status;
     }
 
-    public String getRefund_account_0() {
-        return refund_account_0;
+    public String getRefund_account() {
+        return refund_account;
     }
 
-    public void setRefund_account_0(String refund_account_0) {
-        this.refund_account_0 = refund_account_0;
+    public void setRefund_account(String refund_account) {
+        this.refund_account = refund_account;
     }
 
-    public String getRefund_recv_accout_0() {
-        return refund_recv_accout_0;
+    public String getRefund_recv_accout() {
+        return refund_recv_accout;
     }
 
-    public void setRefund_recv_accout_0(String refund_recv_accout_0) {
-        this.refund_recv_accout_0 = refund_recv_accout_0;
+    public void setRefund_recv_accout(String refund_recv_accout) {
+        this.refund_recv_accout = refund_recv_accout;
     }
 
-    public String getRefund_success_time_0() {
-        return refund_success_time_0;
+    public String getRefund_success_time() {
+        return refund_success_time;
     }
 
-    public void setRefund_success_time_0(String refund_success_time_0) {
-        this.refund_success_time_0 = refund_success_time_0;
+    public void setRefund_success_time(String refund_success_time) {
+        this.refund_success_time = refund_success_time;
     }
 }

+ 2 - 0
kmall-common/src/main/java/com/kmall/common/utils/wechat/WechatUtil.java

@@ -71,6 +71,7 @@ public class WechatUtil {
         //请求微信
         String reponseXml = sendSSLPostToWx(mapToXml, WechatConfig.getSslcsf());
         WechatRefundApiResult result = (WechatRefundApiResult) XmlUtil.xmlStrToBean(reponseXml, WechatRefundApiResult.class);
+        result.setOut_refund_no((String)params.get("out_refund_no"));
         return result;
     }
 
@@ -171,6 +172,7 @@ public class WechatUtil {
             String xmlStr = EntityUtils.toString(entity, "UTF-8");
             System.out.println(xmlStr);
             WechatRefundQueryResult result = (WechatRefundQueryResult) XmlUtil.xmlStrToBean(xmlStr, WechatRefundQueryResult.class);
+            result.setXmlStr(xmlStr);
 //            Map<String, Object> result = XmlUtil.xmlStrToMap(xmlStr);//.xmlStrToBean(xmlStr, WechatRefundApiResult.class);
             return result;
             //将信息保存到数据库

+ 2 - 2
kmall-schedule/src/main/java/com/kmall/schedule/quartz/OrderTask.java

@@ -50,7 +50,7 @@ public class OrderTask {
      * 方法描述:查询已申请退款订单以及退款中订单,查询微信退款更新订单状态
      * 二分钟更新订单
      */
-    @Scheduled(fixedRate = 1000 * 60 * 2)
+    @Scheduled(fixedRate = 1000 * 60 * 1)
     public void refundUpdate() {
         logger.info(">>>>>>>>>>>>>>>>>>>>refundUpdate is start ");
         qzOrderService.refundUpdate();
@@ -61,7 +61,7 @@ public class OrderTask {
      * 方法描述:查询支付中的订单以及小程序更新支付信息异常订单,查询微信订单更新订单状态
      * 二分钟更新订单
      */
-    @Scheduled(fixedRate = 1000 * 60 * 2)
+    @Scheduled(fixedRate = 1000 * 60 * 1)
     public void orderQueryUpdate() {
         logger.info(">>>>>>>>>>>>>>>>>>>>orderQueryUpdate is start ");
         qzOrderService.orderQueryUpdate();

+ 38 - 20
kmall-schedule/src/main/java/com/kmall/schedule/service/QzOrderService.java

@@ -1,5 +1,6 @@
 package com.kmall.schedule.service;
 
+import com.kmall.common.utils.wechat.ReaderXmlForDOM4J;
 import com.kmall.common.utils.wechat.WechatRefundApiResult;
 import com.kmall.common.utils.wechat.WechatRefundQueryResult;
 import com.kmall.common.utils.wechat.WechatUtil;
@@ -222,27 +223,44 @@ public class QzOrderService {
                 if (result.getReturn_code().equalsIgnoreCase("SUCCESS")) {
                     if(result.getResult_code().equalsIgnoreCase("SUCCESS")) {
                         Map refundRaram = new HashMap();
-                        Date successTime = DateUtils.strToDate(result.getRefund_success_time_0());
-                        refundRaram.put("refundTime", successTime);
-                        refundRaram.put("outRefundNo", result.getOut_refund_no_0());
-                        refundRaram.put("refundId", result.getRefund_id_0());
-                        refundRaram.put("refundMoney", result.getRefund_fee_0());
-                        if (result.getRefund_status_0().equalsIgnoreCase("SUCCESS")) {
-                            refundRaram.put("refundStatus", 2);
-                            refundRaram.put("wechat_refund_status_des", "退款成功");
-                        } else if (result.getRefund_status_0().equalsIgnoreCase("REFUNDCLOSE")) {
-                            refundRaram.put("refundStatus", 4);
-                            refundRaram.put("wechat_refund_status_des", "退款关闭");
-                        } else if (result.getRefund_status_0().equalsIgnoreCase("PROCESSING")) {
-                            refundRaram.put("refundStatus", 5);
-                            refundRaram.put("wechat_refund_status_des", "退款处理中");
-                        } else if (result.getRefund_status_0().equalsIgnoreCase("CHANGE")) {
-                            refundRaram.put("refundStatus", 4);
-                            refundRaram.put("wechat_refund_status_des", "退款异常");
+                        int msgCount = Integer.parseInt(result.getRefund_count());
+                        for (int i = 0; i < msgCount; i++) {
+                            WechatRefundQueryResult querySuccessResponseDto = ReaderXmlForDOM4J.parse(result.getXmlStr(), i);
+                            if (result.getReturn_code().equalsIgnoreCase("SUCCESS")) {
+                                if (result.getResult_code().equalsIgnoreCase("SUCCESS")) {
+                                    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", result.getRefund_fee());
+                                    if (result.getRefund_status().equalsIgnoreCase("SUCCESS")) {
+                                        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("PROCESSING")) {
+                                        refundRaram.put("refundStatus", 5);
+                                        refundRaram.put("wechat_refund_status_des", "退款处理中");
+                                    } else if (result.getRefund_status().equalsIgnoreCase("CHANGE")) {
+                                        refundRaram.put("refundStatus", 4);
+                                        refundRaram.put("wechat_refund_status_des", "退款异常");
+                                    }
+                                    refundRaram.put("refundRecvAccout", result.getRefund_recv_accout());
+                                    refundRaram.put("orderRefundId", result.getOut_refund_no());
+                                    qzOrderMapper.updateOrderRefund(refundRaram);//更新订单退款信息
+                                }
+                            }
                         }
-                        refundRaram.put("refundRecvAccout", result.getRefund_recv_accout_0());
-                        refundRaram.put("orderRefundId", result.getOut_refund_no_0());
-                        qzOrderMapper.updateOrderRefund(refundRaram);//更新订单退款信息
 
                         Map orderRaram = new HashMap();
                         orderRaram.put("payStatus", 4);

+ 2 - 3
kmall-schedule/src/main/resources/mybatis/mapper/QzOrderMapper.xml

@@ -50,7 +50,7 @@
     <select id="queryRefundOrderList" resultType="map">
         select a.pay_transaction_id,a.merch_order_sn,a.order_sn,a.order_status,a.pay_status,f.out_refund_no,f.refund_id,f.order_id,f.id 'orderRefundId'
         from mall_order a
-        inner join mall_order_refund f on a.id = f.order_id	where (f.out_refund_no is null or f.refund_id is null) and a.order_status != '101' and f.refund_status
+        inner join mall_order_refund f on a.id = f.order_id	where (f.out_refund_no is null or f.refund_id is null) and a.order_status = '401' and f.refund_status
         not in (1,3,4)
     </select>
 
@@ -76,7 +76,6 @@
     <update id="updateOrderRefund" parameterType="map">
         UPDATE mall_order_refund a
         <set>
-            <if test="outRefundNo != null">a.out_refund_no = #{outRefundNo},</if>
             <if test="refundId != null">a.refund_id = #{refundId},</if>
             <if test="refundMoney != null">a.refund_money = #{refundMoney},</if>
             <if test="refundStatus != null">a.refund_status = #{refundStatus},</if>
@@ -84,6 +83,6 @@
             <if test="refundTime != null">a.refund_time = #{refundTime},</if>
         </set>
         WHERE 1 = 1
-        AND a.id = #{orderRefundId}
+        AND a.out_refund_no = #{orderRefundId}
     </update>
 </mapper>

+ 6 - 0
kmall-schedule/src/main/resources/mybatis/mapper/ScheduleJobDao.xml

@@ -12,6 +12,9 @@
 			<if test="beanName != null and beanName.trim() != ''">
 				bean_name like concat('%', #{beanName}, '%') 
 			</if>
+			<if test="methodName != null and methodName.trim() != ''">
+				method_name like concat('%', #{methodName}, '%')
+			</if>
 		</where>
 		<if test="offset != null and limit != null ">
 		limit #{offset}, #{limit}
@@ -24,6 +27,9 @@
 			<if test="beanName != null and beanName.trim() != ''">
 				bean_name like concat('%', #{beanName}, '%') 
 			</if>
+			<if test="methodName != null and methodName.trim() != ''">
+				method_name like concat('%', #{methodName}, '%')
+			</if>
 		</where>
 	</select>
 	 

+ 1 - 2
wx-mall/config/api.js

@@ -1,9 +1,8 @@
-
 //开发环境
 //var NewApiRootUrl = 'http://localhost:8080/api/';
 //var NewApiRootUrl = 'http://192.168.1.138:8080/api/';
 // var NewApiRootUrl = 'http://qhdswl.f3322.net:9001/platform-framework/api/';//hyq
-var NewApiRootUrl = 'http://qhdswl.f3322.net:9000/api/';
+var NewApiRootUrl = 'http://qhdswl.f3322.net:9002/api/';
 
 //测试环境
 //var NewApiRootUrl = 'https://mp-test.k1net.cn/api/';

+ 1 - 6
wx-mall/pages/auth/newuser/newuser.js

@@ -101,12 +101,7 @@ Page({
           title: '短信发送成功'
         })
       } else{
-        // util.showErrorToast(res.errmsg);
-        wx.showModal({
-          title: '',
-          content: res.errmsg,
-          showCancel: false
-        });
+        util.showErrorToast('发送失败');
         clearInterval(timer);
         that.setData({
           second: '发送验证码',

+ 7 - 0
wx-mall/pages/shopping/addressAdd/addressAdd.js

@@ -301,6 +301,11 @@ Page({
       return false;
     }
 
+    let regular = /^1[3|4|5|7|8]\d{9}$/;
+    if (!regular.test(address.telNumber)) {
+      util.showErrorToast('手机格式不正确')
+      return false;
+    }
 
     let that = this;
     util.request(api.AddressSave, {
@@ -320,6 +325,8 @@ Page({
         var currPage = pages[pages.length - 1];  //当前页面
         var prevPage = pages[pages.length - 2]; //上一个页面
         wx.navigateBack();
+      } else {
+        util.showErrorToast(res.errmsg);
       }
     });
 

+ 1 - 1
wx-mall/pages/shopping/checkout/checkout.js

@@ -119,7 +119,7 @@ Page({
           idNo: res.data.idNo
         });
 
-        if (that.data.addressVo != null && null == that.data.addressVo.id){
+        if (res.data.addressVo){
           that.setData({
             addressVo: res.data.addressVo
           });

+ 1 - 0
wx-mall/pages/shopping/checkout/checkout.wxss

@@ -173,6 +173,7 @@ page {
   height: 100rpx;
   width: 100%;
   display: flex;
+  z-index: 999;
 }
 
 .order-total .l {

+ 1 - 1
wx-mall/pages/ucenter/order/order.wxml

@@ -23,7 +23,7 @@
             <text class="biz-type" wx:if="{{item.orderBizType==11}}">{{item.storeName}} - 普通商品</text> 
             
             <!-- <text class="add_time">{{item.add_time}}{{orderList[0].id}}</text> -->
-            <text class="add_time" wx:if="{{tabIndex!=5}}">{{item.order_status_text}}</text>
+            <text class="add_time" wx:if="{{tabIndex!=5}}">{{item.pay_status==3?'退款中':item.order_status_text}}</text>
           </view>
         </view>
         <view class="list-cell-ft router">