修复了修改密码、用户信息、主题页面404的问题
diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java b/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
index c928620..b5af832 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
@@ -46,6 +46,4 @@
         assertThat("get version error " + version.getException(),
                 version.getVersion(), notNullValue());
     }
-
-    //TODO:刷新TOKEN
 }
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
index 73a42b8..91651f9 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
@@ -205,7 +205,11 @@
         // 1. 根据 cobillno 查询 collectdtl , 并加锁
         val querycodtl = collectdtlService.queryTrans(param.cobillno)
                 ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "采集流水号未找到"))
+                        .fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "采集流水号"+param.cobillno+"未找到"))
+        if (param.deviceno != querycodtl.deviceno) {
+            return ResponseEntity.ok(ResponseBodyBuilder.create()
+                    .fail(WaterErrorCode.REQUEST_DATA_ERROR, "设备号"+param.deviceno+"与采集流水号"+param.cobillno+"不匹配"))
+        }
         //  流水是否重复上传
         if (!querycodtl.uploadStatus) {
             val dtl = collectdtlService.saveDeviceDtlData(param)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt b/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
index affc99e..8f1ffe6 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.water
 
 import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper
 import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy
 import com.supwisdom.dlpay.water.pay.WaterPayAsyncTask
 import com.supwisdom.dlpay.water.service.CollectdtlService
@@ -59,9 +60,7 @@
     @Scheduled(cron = "0 */20 * * * ?")
     @SchedulerLock(name = "refreshJwt", lockAtMostForString = "PT10M")
     fun refreshJwt() {
-        val response = apiLoginProxy.refresh()
-        if (response.retcode != 0) {
-            logger.error { "刷新jwt失败!状态码:"+response.retcode+" 错误信息:"+response.retmsg}
-        }
+        val loginHelper = ApiLoginHelper(apiLoginProxy)
+        loginHelper.refresh()
     }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
index bf1480d..fe2fbd7 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
@@ -23,6 +23,7 @@
 import org.springframework.data.domain.PageRequest
 import org.springframework.data.jpa.domain.Specification
 import org.springframework.stereotype.Service
+import java.lang.IllegalStateException
 import java.lang.RuntimeException
 import java.math.BigInteger
 import java.util.ArrayList
@@ -66,8 +67,12 @@
         return dtl
     }
 
-    override fun queryTrans(cobillno: Int?): TCollectdtl {
-        return collectdtlDao.findByCobillnoForUpdate(cobillno)
+    override fun queryTrans(cobillno: Int?): TCollectdtl? {
+        return try {
+            collectdtlDao.findByCobillnoForUpdate(cobillno)
+        } catch (ex: IllegalStateException) {
+            null
+        }
     }
 
     override fun userAuth(param: UserAuthRequest): TCollectdtl {
diff --git a/src/main/resources/static/custom/module/admin.js b/src/main/resources/static/custom/module/admin.js
index cbdbc36..bcb348d 100644
--- a/src/main/resources/static/custom/module/admin.js
+++ b/src/main/resources/static/custom/module/admin.js
@@ -145,6 +145,16 @@
                         layer.msg(jsonRs.msg, {icon: 2});
                     }
                 }
+                if (result.indexOf("<title>用户登录</title>") != -1) {
+                    layer.msg("登录过期,请重新登录!", {icon: 2, time: 1500}, function () {
+                        location.replace(baseUrl + 'login');
+                    }, 500);
+                    return;
+                }else if (result.indexOf("<title>403 无权限</title>") != -1) {
+                    layer.close(popupCenterIndex);
+                    layer.msg("无资源权限",{icon:2, time: 2000})
+                    return;
+                }
                 successCallback(result, status, xhr);
             };
             param.error = function (xhr) {
diff --git a/src/main/resources/templates/home/theme.html b/src/main/resources/templates/home/theme.html
index 67cb12a..392a02a 100755
--- a/src/main/resources/templates/home/theme.html
+++ b/src/main/resources/templates/home/theme.html
@@ -7,8 +7,8 @@
 

 <div class="layui-card-header"><h2 class="header-title">设置主题:</h2></div>

 <div class="layui-card-body layui-text">

-    <a href="/home/setTheme" class="layui-btn" style="background-color: #009688;">默认主题</a>

-    <a href="/home/setTheme?themeName=blue" class="layui-btn layui-btn-normal">蓝色主题</a>

+    <a th:href="@{/home/setTheme}" class="layui-btn" style="background-color: #009688;">默认主题</a>

+    <a th:href="@{/home/setTheme?themeName=blue}" class="layui-btn layui-btn-normal">蓝色主题</a>

     <br><br><br>

   

 </div>

diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index bf8f12c..c0ae0bf 100755
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -157,6 +157,27 @@
         var dictpool = DictPoolToolkit();

         dictpool.initAll("/dictpool"); //加载字典

     });

+    //  处理登录过期ajax跳转问题

+    $.ajaxSetup({

+        asycn: false,

+        xhrFields: {

+            withCredentials: true

+        },

+        error: function (XMLHttpRequest, textStatus, errorThrown){

+            if(XMLHttpRequest.status==403){

+                alert('您没有权限访问此资源或进行此操作');

+                return false;

+            }

+        },

+        contentType:"application/x-www-form-urlencoded;charset=utf-8",

+        complete: function (xhr,status) {

+            if (xhr.responseText.indexOf("<title>用户登录</title>") != -1) {

+                layer.msg("登录过期,请重新登录!", {icon: 2, time: 1500}, function () {

+                    location.replace(window.location.pathname + 'login');

+                }, 500);

+            }

+        }

+    });

 </script>

 </body>

 

diff --git a/src/main/resources/templates/system/operator/setpwd.html b/src/main/resources/templates/system/operator/setpwd.html
index d549946..53f4fef 100644
--- a/src/main/resources/templates/system/operator/setpwd.html
+++ b/src/main/resources/templates/system/operator/setpwd.html
@@ -42,7 +42,7 @@
             admin.closeThisTabs()
         });
         form.render('select');
-        let url = '/operator/dosetpwd';
+        let url = '[[@{/operator/dosetpwd}]]';
         // 表单提交事件
         form.on('submit(setmypass)', function (data) {
             layer.load(2);
@@ -58,11 +58,11 @@
                     layer.closeAll('loading');
                     if (result.code == 200) {
                         layer.msg(result.msg, {icon: 1, time: 1500}, function () {
-                            location.replace('/login');
+                            location.replace('[[@{/login}]]');
                         }, 1000);
                     } else if (data.code == 401) {
                         layer.msg(result.msg, {icon: 2, time: 1500}, function () {
-                            location.replace('/login');
+                            location.replace('[[@{/login}]]');
                         }, 1000);
                         return;
                     } else {
diff --git a/src/main/resources/templates/system/operator/userinfor.html b/src/main/resources/templates/system/operator/userinfor.html
index 8ca3c10..a7d8652 100644
--- a/src/main/resources/templates/system/operator/userinfor.html
+++ b/src/main/resources/templates/system/operator/userinfor.html
@@ -34,7 +34,7 @@
                 <div class="layui-form-item">
                     <label class="layui-form-label">邮箱</label>
                     <div class="layui-input-inline">
-                        <input type="text" name="email" th:value="${user.mobile}" autocomplete="off"
+                        <input type="text" name="email" th:value="${user.email}" autocomplete="off"
                                class="layui-input">
                     </div>
                 </div>
@@ -55,8 +55,8 @@
         $('#cancelBtn').click(function () {
             admin.closeThisTabs()
         });
-        form.render('select');
-        let url = '/operator/updateinfor';
+        form.render('radio');
+        let url = '[[@{/operator/updateinfor}]]';
         // 表单提交事件
         form.on('submit(infor-form-submit)', function (data) {
             layer.load(2);
@@ -79,7 +79,7 @@
                         layer.msg(result.msg, {icon: 1});
                     } else if (data.code == 401) {
                         layer.msg(result.msg, {icon: 2, time: 1500}, function () {
-                            location.replace('/login');
+                            location.replace('[[@{/login}]]');
                         }, 1000);
                         return;
                     } else {