From bc2cda03481cd62a1b04959d2653678053e60b18 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 31 五月 2024 18:23:35 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit

---
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java                   |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplySTequest.java               |   11 
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java                                          |   12 
 admin/src/views/system/menu.vue                                                                                          |    1 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/business/ProjectsMapper.java                                 |    1 
 server/meeting/meeting_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java                                  |    2 
 server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java                                          |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                               |    3 
 server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingDetailResponse.java                      |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplyCTGTRequest.java            |   12 
 admin/src/components/system/menu/OperaMenuWindow.vue                                                                     |    4 
 server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java                            |   10 
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java                                            |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java                   |   77 ++++
 server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/AccountResponse.java                            |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                      |   10 
 server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java                              |   11 
 admin/src/views/hk/frs.vue                                                                                               |   58 +++
 server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java                                    |    2 
 server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java                                              |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java                              |   20 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java           |    5 
 admin/src/components/common/tagsview.vue                                                                                 |   14 
 server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java                           |    6 
 server/system_service/src/main/resources/mappers/SystemMenuMapper.xml                                                    |    6 
 admin/src/views/hk/copas.vue                                                                                             |   58 +++
 server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java                                     |    4 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java                                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplySTResponse.java             |    9 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                                 |    3 
 admin/src/components/common/Menu.vue                                                                                     |   20 
 admin/src/api/other/other.js                                                                                             |    8 
 server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java                                       |    2 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java                            |   10 
 server/system_service/src/main/java/com/doumee/dao/system/vo/UserResponse.java                                           |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java                           |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java                     |   47 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/HKGetServiceLoginUrlRequest.java |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                               |   36 ++
 admin/src/components/business/OperaCarUseBookWindow.vue                                                                  |   82 +++--
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncLoginAuthServiceImpl.java      |   96 ++++++
 admin/src/store/index.js                                                                                                 |    4 
 admin/src/assets/icons/ic_grey.png                                                                                       |    0 
 admin/src/views/hk/hkservice.vue                                                                                         |   60 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplyCTGTResponse.java           |    9 
 admin/src/components/business/OperaHiddenDangerWindow.vue                                                                |   13 
 admin/src/views/hk/dfeform.vue                                                                                           |   58 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                   |   17 +
 server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java                                          |   25 +
 admin/src/views/operation/danger/record.vue                                                                              |    2 
 50 files changed, 743 insertions(+), 124 deletions(-)

diff --git a/admin/src/api/other/other.js b/admin/src/api/other/other.js
new file mode 100644
index 0000000..ed641c6
--- /dev/null
+++ b/admin/src/api/other/other.js
@@ -0,0 +1,8 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function getServiceUrl (data) {
+  return request.post('/visitsAdmin/cloudService//business/hksync/getServiceUrl', data, {
+    trim: true
+  })
+}
diff --git a/admin/src/assets/icons/ic_grey.png b/admin/src/assets/icons/ic_grey.png
index 077b42d..0f17902 100644
--- a/admin/src/assets/icons/ic_grey.png
+++ b/admin/src/assets/icons/ic_grey.png
Binary files differ
diff --git a/admin/src/components/business/OperaCarUseBookWindow.vue b/admin/src/components/business/OperaCarUseBookWindow.vue
index d4290bb..1a817a3 100644
--- a/admin/src/components/business/OperaCarUseBookWindow.vue
+++ b/admin/src/components/business/OperaCarUseBookWindow.vue
@@ -12,7 +12,7 @@
             <div class="time">鎻愪氦鏃堕棿锛歿{model.createDate}}</div>
           </div>
           <span class="right"  v-if="model.status === 0">鐢宠涓�</span>
-          <span class="right"  v-if="model.status === 1">寰呭鎵�</span>
+          <span class="right"  v-if="model.status === 1">瀹℃壒涓�</span>
           <span class="right" style="background:#53b76f " v-if="model.status === 2">瀹℃壒閫氳繃</span>
           <span class="right" style="background:#dc362e " v-if="model.status === 3">瀹℃壒涓嶉�氳繃</span>
           <span class="right" style="background:#dc362e " v-if="model.status === 4">宸插彇娑�</span>
@@ -67,41 +67,41 @@
           <div class="item" v-for="(item,index) in model.approveDateVO.approveList" :key="item.id">
             <div class="separate" v-if=" (index < model.approveDateVO.approveList.length-1)"></div>
             <div class="info">
-              <img src="@/assets/icons/ic_tongguo.png"   class="iconnew" v-if="(item.status ==2)"/>
-              <img src="@/assets/icons/ic_dangqian.png"   class="iconnew"  v-if="(item.status==1)"/>
-              <img src="@/assets/icons/ic_jujue.png"  class="iconnew"  v-if="(item.status==3)"></i>
-              <img src="@/assets/icons/ic_grep.png"  class="iconnew" v-if="(item.status==null || item.status==0 )"></i>
-              <div style="display: inline" v-if="item.approveType ===0">
+              <img src="@/assets/icons/ic_tongguo.png"   class="iconnew" v-if="(item.type !=1 &&item.status ==2)"/>
+              <img src="@/assets/icons/ic_dangqian.png"   class="iconnew"  v-if="(item.type !=1 &&item.status==1)"/>
+              <img src="@/assets/icons/ic_jujue.png"  class="iconnew"  v-if="(item.type !=1 &&item.status==3)"/>
+              <img src="@/assets/icons/ic_grey.png"  class="iconnew" v-if="item.type ==1 || (item.status==null || item.status==0 )"/>
+              <div style="display: inline" v-if="item.approveType !=1">
                 <img v-if="item.faceImg!=null && item.faceImg !=''" :src="item.faceImg" class="avatar" alt="" />
                 <img v-if="item.faceImg ==null ||item.faceImg ==''"  src="@/assets/avatar/man.png" class="avatar" alt="" />
               </div>
-              <div style="display: inline" v-if="item.approveType ===1">
-                <img v-if="item.status === 1"  src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
+              <div style="display: inline" v-if="item.approveType  ==1">
+                <img v-if="item.status == 1"  src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
                 <img  v-if="item.status != 1"  src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
               </div>
               <div class="content">
                 <div class="line">
                   <div class="name">{{ item.title}}</div>
-                  <div class="time">{{ item.createDate }}</div>
+                  <div class="time">{{ item.checkDate }}</div>
                 </div>
                 <div class="line">
                   <div class="company">
-                    {{ item.createUserName }} {{ item.companyName }}
+                    {{ item.memberName }}
                     <div style="display: inline" v-if="item.statusInfo!=null && item.statusInfo!=''">
-                       <span class="status-green">{{item.statusInfo||''}}</span>锛�
+                       锛�<span class="status-green">{{item.statusInfo ||''}}</span>锛�
                     </div>
                   </div>
                 </div>
               </div>
             </div>
-            <div v-if="item.approveType != 1 " class="remark">
-              {{ item.checkInfo ||'姘寸數璐瑰弽鍙嶅澶嶅弽鍙嶅澶嶆柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曟柟娉曞彂鍙戝彂' }}
+            <div v-if="item.approveType != 1 && item.checkInfo !=null && item.checkInfo !=''" class="remark">
+              {{ item.checkInfo || '' }}
             </div>
             <div v-if="item.approveType == 1 "  class="childList">
-              <div style="display: inline" v-for="item1 in item.approveList" :key="item1.id">
+              <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
                 <img v-if="item1.faceImg!=null && item1.faceImg !=''" :src="item1.faceImg" class="avatar" alt="" />
                 <img v-if="item1.faceImg ==null ||item1.faceImg ==''"  src="@/assets/avatar/man.png" class="avatar" alt="" />
-                <span style="display: inline-block"> {{item1.memberName}}</span>
+                <span > {{item1.memberName}}</span>
               </div>
             </div>
           </div>
@@ -117,6 +117,7 @@
     <el-dialog
         append-to-body
         title="鍚屾剰鐢宠"
+        style="text-align: center"
         class="dialogCl"
         :visible.sync="isShowProblem"
         width="480px"
@@ -149,6 +150,7 @@
     <el-dialog
         append-to-body
         title="鎷掔粷鐢宠"
+        style="text-align: center"
         class="dialogCl"
         :visible.sync="isBackProblem"
         width="600px"
@@ -438,8 +440,34 @@
           position: absolute;
           border-left: 2px dashed #cccccc;
           left: 31px;
-          height: calc(100% - 24px);
-          top: 34px;
+          height: calc(100% - 36px);
+          top: 49px;
+        }
+        .avatar {
+          width: 40px;
+          height: 40px;
+          border-radius: 50%;
+          margin: 0 12px 0 16px;
+          //border: 1px solid;
+        }
+        .childList{
+          display: flex;
+          flex-wrap: wrap;
+          margin-left: 100px;
+        }
+        .company {
+          font-size: 13px;
+          color: #888888;
+          .status {
+            color: #00ba67;
+          }
+        }
+        .m_content{
+          display: flex;
+          flex-direction: column;
+          align-items: center;
+          justify-content: center;
+          margin-bottom: 4px;
         }
         .info {
           display: flex;
@@ -473,13 +501,6 @@
             color:gray;
             font-size: 24px;
           }
-          .avatar {
-            width: 40px;
-            height: 40px;
-            border-radius: 50%;
-            margin: 0 12px 0 16px;
-            border: 1px solid;
-          }
           .content {
             flex: 1;
             .line {
@@ -495,13 +516,6 @@
               .time {
                 color: #888888;
               }
-              .company {
-                font-size: 13px;
-                color: #888888;
-                .status {
-                  color: #00ba67;
-                }
-              }
             }
           }
         }
@@ -510,11 +524,9 @@
           border-radius: 4px;
           padding: 13px 15px;
           color: #666666;
-          margin-left: 120px;
+          margin-left: 100px;
         }
-        .childList {
-          margin-left: 120px;
-        }
+
       }
     }
   }
diff --git a/admin/src/components/business/OperaHiddenDangerWindow.vue b/admin/src/components/business/OperaHiddenDangerWindow.vue
index 39d03c6..8281999 100644
--- a/admin/src/components/business/OperaHiddenDangerWindow.vue
+++ b/admin/src/components/business/OperaHiddenDangerWindow.vue
@@ -116,9 +116,9 @@
           <div class="item" v-for="(item,index) in logList" :key="item.id">
             <div class="separate" v-if="index < logList.length-1"></div>
             <div class="info">
-              <i class="el-icon-success icon" v-if="(model.status ==1) || index < logList.length-1"></i>
-              <i class="el-icon-question icon1" v-if="(model.status==0)  && index == logList.length-1"></i>
-              <i class="el-icon-error icon2" v-if="(model.status==2)  && index == logList.length-1"></i>
+              <img src="@/assets/icons/ic_tongguo.png"   class="iconnew" v-if="(model.status ==1) || index < logList.length-1"/>
+              <img src="@/assets/icons/ic_dangqian.png"   class="iconnew"   v-if="(model.status==0)  && index == logList.length-1"/>
+              <img src="@/assets/icons/ic_jujue.png"  class="iconnew"   v-if="(model.status==2)  && index == logList.length-1"/>
               <img v-if="item.avatar!=null && item.avatar !=''" :src="item.avatar" class="avatar" alt="" />
               <img v-if="item.avatar ==null ||item.avatar ==''"  src="@/assets/avatar/man.png" class="avatar" alt="" />
               <div class="content">
@@ -683,6 +683,11 @@
             color: #53b76f;
             font-size: 24px;
           }
+
+          .iconnew{
+            width: 24px;
+            height: 24px;
+          }
           .icon1 {
             position: relative;
             z-index: 11;
@@ -700,7 +705,7 @@
             height: 40px;
             border-radius: 50%;
             margin: 0 12px 0 16px;
-            border: 1px solid;
+            //border: 1px solid;
           }
           .content {
             flex: 1;
diff --git a/admin/src/components/common/Menu.vue b/admin/src/components/common/Menu.vue
index b928666..0a5b41e 100644
--- a/admin/src/components/common/Menu.vue
+++ b/admin/src/components/common/Menu.vue
@@ -33,11 +33,11 @@
       if (path.endsWith('/')) {
         path = path.substring(0, path.length - 1)
       }
-      const menuConfig = this.__getMenuConfig(path, 'url', this.menuData.list)
+      const menuConfig = this.__getMenuConfig(path, 'index', this.menuData.list)
       if (menuConfig == null) {
         return null
       } else {
-        this.$store.commit("pushtags", menuConfig)
+        this.$store.commit('pushtags', menuConfig)
       }
       // console.log(menuConfig.index);
       return menuConfig.index
@@ -45,7 +45,7 @@
     // 榛樿灞曞紑鐨勮彍鍗昳ndex
     defaultOpeneds () {
       // return this.menuData.list.map(menu => menu.index)
-      
+
       return [this.menuData.list[0].index]
     }
   },
@@ -55,20 +55,24 @@
       const menuConfig = this.__getMenuConfig(menuIndex, 'index', this.menuData.list)
       // 鎵句笉鍒伴〉闈�
       try {
-        require('@/views' + menuConfig.url)
+          require('@/views' + menuConfig.url)
       } catch (e) {
         this.$tip.error('鏈壘鍒伴〉闈㈡枃浠禓/views' + menuConfig.url + '.vue锛岃妫�鏌ヨ彍鍗曡矾寰勬槸鍚︽纭�')
+        return
       }
       // 鐐瑰嚮褰撳墠鑿滃崟涓嶅仛澶勭悊
-      if (menuConfig.url === this.$route.path) {
+      if (menuConfig.url === this.$route.path && menuConfig.params === this.$route.query.param) {
         return
       }
       if (menuConfig.url == null || menuConfig.url.trim().length === 0) {
         return
       }
-      
-      this.$router.push(menuConfig.url)
-      this.$store.commit("pushtags", menuConfig)
+      if(menuConfig.params!=null && menuConfig.params!=''){
+        this.$router.push({path:menuConfig.url,query:{index:menuConfig.index,param:menuConfig.params}})
+      }else{
+        this.$router.push(menuConfig.url)
+      }
+      this.$store.commit('pushtags', menuConfig)
     },
     // 鑾峰彇鑿滃崟閰嶇疆
     __getMenuConfig (value, key, menus) {
diff --git a/admin/src/components/common/tagsview.vue b/admin/src/components/common/tagsview.vue
index 8d654bc..6f66b69 100644
--- a/admin/src/components/common/tagsview.vue
+++ b/admin/src/components/common/tagsview.vue
@@ -12,7 +12,7 @@
         :key="index"
         :id="'tags-box-' + index"
         @contextmenu.prevent="openMenu(item, $event)"
-        :class="isActive(item.url, index) ? 'active' : ''"
+        :class="isActive(item.url, item.params,index) ? 'active' : ''"
         class="tagsview"
         @click="tagsmenu(item, index)"
       >
@@ -68,7 +68,7 @@
     },
     $route(to, from) {
       this.tags.forEach((item, index) => {
-        if (item.url === to.path) {
+        if (item.url === to.path && item.index === to.query.index) {
           const tagsDiv = document.getElementById('tags-box')
           if (index) {
             tagsDiv.scrollTo(index * 110, 0)
@@ -129,11 +129,11 @@
           }
         } else {
           // 閭d箞锛屽鏋滀笂闈㈢殑鏉′欢閮戒笉鎴愮珛锛屾病鏈塴ength=0.涔熷氨鏄浣犺繕鏈夊ソ鍑犱釜鏍囩锛屽苟涓斾綘鍒犻櫎鐨勬槸鏈�鍚庝竴浣嶆爣绛撅紝閭d箞灏卞線宸﹁竟鎸竴浣嶈烦杞矾鐢�
-          this.$router.push({ path: this.tags[index - 1].url })
+          this.$router.push({ path: this.tags[index - 1].url,query:{param: this.tags[index - 1].params} })
         }
       } else {
         // 濡傛灉浣犵偣鍑讳笉鏄渶鍚庝竴浣嶆爣绛撅紝鐐圭殑鍓嶉潰鐨勶紝閭e氨寰�鍙宠竟璺宠浆
-        this.$router.push({ path: this.tags[index].url })
+        this.$router.push({ path: this.tags[index].url ,query:{param: this.tags[index].params}})
       }
     },
     // 鐐瑰嚮璺宠浆璺敱
@@ -142,7 +142,7 @@
       // 鍒ゆ柇锛氬綋鍓嶈矾鐢变笉绛変簬褰撳墠閫変腑椤圭殑url锛屼篃灏变唬琛ㄤ綘鐐瑰嚮鐨勪笉鏄幇鍦ㄩ�変腑鐨勬爣绛撅紝鏄彟涓�涓爣绛惧氨璺宠浆杩囧幓锛屽鏋滀綘鐐瑰嚮鐨勬槸鐜板湪宸茬粡閫変腑鐨勬爣绛惧氨涓嶇敤璺宠浆浜嗭紝鍥犱负浣犲凡缁忓湪杩欎釜璺敱浜嗚繕璺充粈涔堝憿銆�
       if (this.$route.path !== item.url) {
         // 鐢╬ath鐨勮烦杞柟娉曟妸褰撳墠椤圭殑url褰撲綔鍦板潃璺宠浆銆�
-        this.$router.push({ path: item.url })
+        this.$router.push({ path: item.url ,query:{param: this.tags[index].params}})
         const tagsDiv = document.getElementById('tags-box')
         if (index) {
           tagsDiv.scrollTo(index * 110, 0)
@@ -150,8 +150,8 @@
       }
     },
     // 閫氳繃鍒ゆ柇璺敱涓�鑷磋繑鍥炲竷灏斿�兼坊鍔燾lass锛屾坊鍔犻珮浜晥鏋�
-    isActive(route, index) {
-      const res = route === this.$route.path
+    isActive(route,params, index) {
+      const res =(route === this.$route.path && params== this.$route.query.param)
       return res
     },
     scrollToStart() {
diff --git a/admin/src/components/system/menu/OperaMenuWindow.vue b/admin/src/components/system/menu/OperaMenuWindow.vue
index 872bde2..a367642 100644
--- a/admin/src/components/system/menu/OperaMenuWindow.vue
+++ b/admin/src/components/system/menu/OperaMenuWindow.vue
@@ -17,6 +17,9 @@
       <el-form-item label="璁块棶璺緞" prop="path">
         <el-input v-model="form.path" placeholder="璇疯緭鍏ヨ闂矾寰�" v-trim maxlength="200"/>
       </el-form-item>
+      <el-form-item label="鎼哄甫鍙傛暟" prop="params">
+        <el-input v-model="form.params" placeholder="璇疯緭鍏ユ惡甯﹀弬鏁�" v-trim maxlength="200"/>
+      </el-form-item>
       <el-form-item label="鍥炬爣" prop="icon" class="form-item-icon">
         <el-radio-group v-model="form.icon">
           <el-radio :label="icon" v-for="icon in icons" :key="icon">
@@ -52,6 +55,7 @@
         id: null,
         parentId: null,
         name: '',
+        params:'',
         path: '',
         icon: '',
         remark: ''
diff --git a/admin/src/store/index.js b/admin/src/store/index.js
index 0782641..c97ca53 100644
--- a/admin/src/store/index.js
+++ b/admin/src/store/index.js
@@ -54,7 +54,7 @@
   pushtags(state,val){
     //濡傛灉绛変簬-1璇存槑tabs涓嶅瓨鍦ㄩ偅涔堟彃鍏ワ紝鍚﹀垯浠�涔堥兘涓嶅仛
     //findindex鎵捐鏍囷紝寰幆鍒ゆ柇涓�涓嬶紝濡傛灉绛変簬閭d箞灏变唬琛ㄦ湁鐩稿悓鐨勶紝灏变笉蹇呮坊鍔狅紝濡傛灉鎵句笉鍒伴偅灏辨槸-1.灏辨坊鍔�
-    let result = state.tags.findIndex(item => item.label === val.label)
+    let result = state.tags.findIndex(item => item.index === val.index)
     if (result === -1) {
       state.tags.push({...val, keepAlive: false})
     } else {
@@ -65,7 +65,7 @@
   //鍏抽棴鏍囩
   closeTab(state, val) {
     //鍚屼笂锛屾壘瑙掓爣锛岀劧鍚庣敤瑙掓爣鐨勪綅缃搴斿垹闄や竴浣嶃�俿plice锛氳繖鏄暟缁勭殑鍒犻櫎鏂规硶
-    let result = state.tags.findIndex(item => item.label === val.label)
+    let result = state.tags.findIndex(item => item.index === val.index)
     state.tags.splice(result, 1)
   },
   //鍏抽棴鎵�鏈塼agsview鏍囩
diff --git a/admin/src/views/hk/copas.vue b/admin/src/views/hk/copas.vue
new file mode 100644
index 0000000..d8ee255
--- /dev/null
+++ b/admin/src/views/hk/copas.vue
@@ -0,0 +1,58 @@
+<template>
+  <div   style="text-align: center;background: white;width: 100%;height: 100%;">
+    <div v-if="url!=null"  >
+      <iframe :src="url" width="100%"  style="border:none"  height="600"></iframe>
+    </div>
+    <div  v-else >
+      <div style="padding-top: 200px;font-size: 28px;color: #3C77DA">{{message}}</div>
+    </div>
+    <template v-if="1===2">
+      <div style="bottom: 20px;position: fixed;text-align: center;width: 90%;height: 60px">
+        {{url}}<br>
+        <el-button type="primary" :loading="loading" @click="getUrl()">閲嶆柊鍔犺浇椤甸潰</el-button>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import BaseTable from '@/components/base/BaseTable'
+export default {
+  name: 'otherLoginService',
+  extends: BaseTable,
+  data () {
+    return {
+      url: null,
+      loading: false,
+      message: '姝e湪鍔姏鐧诲綍缁勪欢鏈嶅姟...'
+    }
+  },
+  created () {
+    this.config({
+      module: '璁惧绠therLoginService鐞嗕俊鎭〃',
+      api: '/other/other',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.getUrl()
+  },
+  methods: {
+    getUrl () {
+      this.loading = true
+      this.api.getServiceUrl({ label: 'HK_SERVICE_COPAS_URL' })
+        .then(res => {
+          this.message = '姝e湪鍋氬姫鍔涘姞杞界粍浠�!'
+          this.url = res
+        })
+        .catch(e => {
+          this.message = '鐧诲綍缁勪欢鏈嶅姟澶辫触,璇疯仈绯荤郴缁熺鐞嗗憳妫�鏌�!'
+        })
+        .finally(() => {
+          this.loading = false
+        })
+    }
+  }
+}
+</script>
+
+<style>
+</style>
diff --git a/admin/src/views/hk/dfeform.vue b/admin/src/views/hk/dfeform.vue
new file mode 100644
index 0000000..a488a3b
--- /dev/null
+++ b/admin/src/views/hk/dfeform.vue
@@ -0,0 +1,58 @@
+<template>
+  <div   style="text-align: center;background: white;width: 100%;height: 100%;">
+    <div v-if="url!=null"  >
+      <iframe :src="url" width="100%" style="border:none" height="600"></iframe>
+    </div>
+    <div  v-else >
+      <div style="padding-top: 200px;font-size: 28px;color: #3C77DA">{{message}}</div>
+    </div>
+    <template v-if="1==2">
+      <div style="bottom: 20px;position: fixed;text-align: center;width: 90%;height: 60px">
+        {{url}}<br>
+        <el-button type="primary" :loading="loading" @click="getUrl()">閲嶆柊鍔犺浇椤甸潰</el-button>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import BaseTable from '@/components/base/BaseTable'
+export default {
+  name: 'otherLoginService',
+  extends: BaseTable,
+  data () {
+    return {
+      url: null,
+      loading: false,
+      message: '姝e湪鍔姏鐧诲綍缁勪欢鏈嶅姟...'
+    }
+  },
+  created () {
+    this.config({
+      module: '璁惧绠therLoginService鐞嗕俊鎭〃',
+      api: '/other/other',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.getUrl()
+  },
+  methods: {
+    getUrl () {
+      this.loading = true
+      this.api.getServiceUrl({ label: 'HK_SERVICE_DFEFORM_URL' })
+        .then(res => {
+          this.message = '姝e湪鍋氬姫鍔涘姞杞界粍浠�!'
+        this.url = res
+        })
+        .catch(e => {
+          this.message = '鐧诲綍缁勪欢鏈嶅姟澶辫触,璇疯仈绯荤郴缁熺鐞嗗憳妫�鏌�!'
+        })
+        .finally(() => {
+          this.loading = false
+        })
+    }
+  }
+}
+</script>
+
+<style>
+</style>
diff --git a/admin/src/views/hk/frs.vue b/admin/src/views/hk/frs.vue
new file mode 100644
index 0000000..4496588
--- /dev/null
+++ b/admin/src/views/hk/frs.vue
@@ -0,0 +1,58 @@
+<template>
+  <div   style="text-align: center;background: white;width: 100%;height: 100%;">
+    <div v-if="url!=null"  >
+      <iframe :src="url" width="100%" style="border:none"  height="600"></iframe>
+    </div>
+    <div  v-else >
+      <div style="padding-top: 200px;font-size: 28px;color: #3C77DA">{{message}}</div>
+    </div>
+    <template v-if="1==2">
+      <div style="bottom: 20px;position: fixed;text-align: center;width: 90%;height: 60px">
+        {{url}}<br>
+        <el-button type="primary" :loading="loading" @click="getUrl()">閲嶆柊鍔犺浇椤甸潰</el-button>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import BaseTable from '@/components/base/BaseTable'
+export default {
+  name: 'otherLoginService',
+  extends: BaseTable,
+  data () {
+    return {
+      url: null,
+      loading: false,
+      message: '姝e湪鍔姏鐧诲綍缁勪欢鏈嶅姟...'
+    }
+  },
+  created () {
+    this.config({
+      module: '璁惧绠therLoginService鐞嗕俊鎭〃',
+      api: '/other/other',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.getUrl()
+  },
+  methods: {
+    getUrl () {
+      this.loading = true
+      this.api.getServiceUrl({ label: 'HK_SERVICE_FRS_URL' })
+        .then(res => {
+          this.message = '姝e湪鍋氬姫鍔涘姞杞界粍浠�!'
+          this.url = res
+        })
+        .catch(e => {
+          this.message = '鐧诲綍缁勪欢鏈嶅姟澶辫触,璇疯仈绯荤郴缁熺鐞嗗憳妫�鏌�!'
+        })
+        .finally(() => {
+          this.loading = false
+        })
+    }
+  }
+}
+</script>
+
+<style>
+</style>
diff --git a/admin/src/views/hk/hkservice.vue b/admin/src/views/hk/hkservice.vue
new file mode 100644
index 0000000..28924d0
--- /dev/null
+++ b/admin/src/views/hk/hkservice.vue
@@ -0,0 +1,60 @@
+<template>
+  <div   style="text-align: center;background: white;width: 100%;height: 100%;">
+    <div v-if="url!=null"  >
+      <iframe :src="url" width="100%"  style="border:none"  height="600"></iframe>
+    </div>
+    <div  v-else >
+      <div style="padding-top: 200px;font-size: 28px;color: #3C77DA">{{message}}</div>
+    </div>
+    <template v-if="1===2">
+      <div style="bottom: 20px;position: fixed;text-align: center;width: 90%;height: 60px">
+        {{url}}<br>
+        <el-button type="primary" :loading="loading" @click="getUrl()">閲嶆柊鍔犺浇椤甸潰</el-button>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import BaseTable from '@/components/base/BaseTable'
+export default {
+  name: 'otherLoginService',
+  extends: BaseTable,
+  data () {
+    return {
+      url: null,
+      loading: false,
+      paramUrl:'',
+      message: '姝e湪鍔姏鐧诲綍缁勪欢鏈嶅姟...'
+    }
+  },
+  created () {
+    this.config({
+      module: '璁惧绠therLoginService鐞嗕俊鎭〃',
+      api: '/other/other',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.paramUrl = this.$route.query.param
+    this.getUrl()
+  },
+  methods: {
+    getUrl () {
+      this.loading = true
+      this.api.getServiceUrl({ label: this.paramUrl})
+        .then(res => {
+          this.message = '姝e湪鍋氬姫鍔涘姞杞界粍浠�!'
+          this.url = res
+        })
+        .catch(e => {
+          this.message = '鐧诲綍缁勪欢鏈嶅姟澶辫触,璇疯仈绯荤郴缁熺鐞嗗憳妫�鏌�!'
+        })
+        .finally(() => {
+          this.loading = false
+        })
+    }
+  }
+}
+</script>
+
+<style>
+</style>
diff --git a/admin/src/views/operation/danger/record.vue b/admin/src/views/operation/danger/record.vue
index f7bca4b..b59dedd 100644
--- a/admin/src/views/operation/danger/record.vue
+++ b/admin/src/views/operation/danger/record.vue
@@ -32,7 +32,7 @@
         <el-select v-model="searchForm.status"  @change="search" clearable placeholder="鐘舵��">
           <el-option label="寰呭鐞�" value="0"></el-option>
           <el-option label="宸插鐞�" value="1"></el-option>
-          <el-option label="宸查��鍑�" value="2"></el-option>
+          <el-option label="宸查��鍥�" value="2"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="鎻愭姤鏃堕棿" prop="startTime">
diff --git a/admin/src/views/system/menu.vue b/admin/src/views/system/menu.vue
index 2e98085..27b05ad 100644
--- a/admin/src/views/system/menu.vue
+++ b/admin/src/views/system/menu.vue
@@ -27,6 +27,7 @@
           </template>
         </el-table-column>
         <el-table-column prop="path" label="璁块棶璺緞" min-width="140px"></el-table-column>
+        <el-table-column prop="params" label="鍙傛暟" min-width="120px"></el-table-column>
         <el-table-column prop="remark" label="澶囨敞" min-width="120px"></el-table-column>
         <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
           <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java
index 146954b..1c9b466 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/admin/BookingsCloudController.java
@@ -115,6 +115,12 @@
         return ApiResponse.success(bookingsService.getMeetingDetail(id));
     }
 
+    @ApiOperation("鏍规嵁鏃ユ湡鍜屼細璁涓婚敭鏌ヨ鍗犵敤淇℃伅")
+    @PostMapping("/getMeetingDetailByDate")
+    @CloudRequiredPermission("business:bookings:query")
+    public ApiResponse<MeetingDetailResponse> getMeetingDetailByDate(@RequestBody Bookings bookings,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        return ApiResponse.success(bookingsService.getMeetingDetailByDate(bookings));
+    }
 
     @ApiOperation("鍙栨秷")
     @PostMapping("/cancelById")
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
index 6fbef3f..629e321 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
@@ -2,17 +2,17 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.doumee.api.BaseController;
-import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.QrCodeUtils;
 import com.doumee.dao.business.model.Bookings;
+import com.doumee.dao.system.vo.UserResponse;
 import com.doumee.dao.web.request.BookingsRequest;
 import com.doumee.dao.web.request.MeetingPageRequest;
+import com.doumee.dao.web.request.UserPageRequest;
 import com.doumee.dao.web.response.MeetingDetailResponse;
 import com.doumee.dao.web.response.MeetingListResponse;
 import com.doumee.dao.web.response.MonthDataResponse;
@@ -26,7 +26,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -50,6 +49,7 @@
 
     @Autowired
     private SystemUserService systemUserService;
+
 
 
     @ApiOperation(value = "褰撴湀浼氳琛�", notes = "褰撴湀浼氳琛�")
@@ -120,18 +120,16 @@
         QrCodeUtils.encode(content,null, response.getOutputStream(), true);
     }*/
 
-/*
-    @LoginRequired
+
     @ApiOperation("鍙備細浜哄憳鍒嗛〉")
     @PostMapping("/userPage")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
     })
     public ApiResponse<IPage<UserResponse>> userPage(@RequestBody PageWrap<UserPageRequest> pageWrap) {
-        IPage<UserResponse> page = systemUserService.getUserPage(pageWrap);
+        IPage<UserResponse> page = bookingsService.getUserPage(pageWrap);
         return ApiResponse.success("鏌ヨ鎴愬姛", page);
     }
-*/
 
 
     @ApiOperation("浼氳棰勭害")
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
index e98eae7..2146546 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
@@ -87,7 +87,7 @@
     @PostMapping("/myRoomsPage")
     public ApiResponse<IPage<RoomsResponse>> myRoomsPage(@RequestBody PageWrap<RoomsRequest> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         LoginUserInfo user = getLoginUser(token);
-        pageWrap.getModel().setUserId(user.getId());
+        pageWrap.getModel().setUserId(user.getMemberId());
         IPage<RoomsResponse> page = roomsService.getRoomsPage(pageWrap);
         return ApiResponse.success("鏌ヨ鎴愬姛",page);
     }
diff --git a/server/meeting/meeting_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java b/server/meeting/meeting_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
index 472e826..1fac801 100644
--- a/server/meeting/meeting_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
+++ b/server/meeting/meeting_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -65,7 +65,7 @@
                 .apiInfo(this.getApiInfo()).groupName("default")
                 .host(host)
                 .select()
-                .apis( basePackage("com.doumee.api.cloud"))
+                .apis( basePackage("com.doumee.cloud;com.doumee.api.common"))
                 // 璁剧疆闇�瑕佽鎵弿鐨勭被锛岃繖閲岃缃负娣诲姞浜咢Api娉ㄨВ鐨勭被
 //                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                 .paths(PathSelectors.any())
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/ProjectsMapper.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/ProjectsMapper.java
index 6df40b8..ac02473 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/ProjectsMapper.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/business/ProjectsMapper.java
@@ -5,7 +5,6 @@
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.doumee.dao.business.model.Projects;
 import com.doumee.dao.web.response.ProjectsResponse;
-import com.doumee.dao.web.response.UserResponse;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/AccountResponse.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
index 110d9c6..db0de1a 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.web.response;
 
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.system.vo.UserResponse;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingDetailResponse.java b/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingDetailResponse.java
index 41d2f7a..46178bd 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingDetailResponse.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingDetailResponse.java
@@ -3,6 +3,7 @@
 import com.doumee.dao.business.model.BookingTime;
 import com.doumee.dao.system.model.Multifile;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.system.vo.UserResponse;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -38,8 +39,7 @@
     private String meetingTime;
 
     @ApiModelProperty(value = "鍙備細浜哄憳")
-//    private List<UserResponse> userResponseList;
-    private List<SystemUser> userResponseList;
+    private List<UserResponse> userResponseList;
 
     @ApiModelProperty(value = "浼氳鍐呭")
     private String meetingContent;
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java
index fec87ee..40450f7 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/BookingsService.java
@@ -8,9 +8,11 @@
 import com.doumee.dao.business.model.Bookings;
 import com.doumee.dao.business.vo.RoomStatisticsVo;
 import com.doumee.dao.system.dto.UserStatisticsDTO;
+import com.doumee.dao.system.vo.UserResponse;
 import com.doumee.dao.system.vo.UserStatisticsVo;
 import com.doumee.dao.web.request.BookingsRequest;
 import com.doumee.dao.web.request.MeetingPageRequest;
+import com.doumee.dao.web.request.UserPageRequest;
 import com.doumee.dao.web.response.DateTimeResourceDate;
 import com.doumee.dao.web.response.MeetingDetailResponse;
 import com.doumee.dao.web.response.MeetingListResponse;
@@ -142,6 +144,12 @@
     MeetingDetailResponse getMeetingDetail(Integer id);
 
     /**
+     * 鏍规嵁鏃ユ湡鍜屼細璁涓婚敭鏌ヨ鍗犵敤淇℃伅
+     * @param bean
+     * @return
+     */
+    MeetingDetailResponse getMeetingDetailByDate(Bookings bean);
+    /**
      * 鑾峰彇浼氳浜岀淮鐮�
      * @param id
      * @param userId
@@ -197,4 +205,6 @@
     PageData<UserStatisticsVo> getUserStatistics(PageWrap<UserStatisticsDTO> pageWrap);
 
     void sendBookingsNotice();
+
+    IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap);
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 5c5873f..5c94572 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -27,9 +27,11 @@
 import com.doumee.dao.system.dto.UserStatisticsDTO;
 import com.doumee.dao.system.join.NoticesJoinMapper;
 import com.doumee.dao.system.model.*;
+import com.doumee.dao.system.vo.UserResponse;
 import com.doumee.dao.system.vo.UserStatisticsVo;
 import com.doumee.dao.web.request.BookingsRequest;
 import com.doumee.dao.web.request.MeetingPageRequest;
+import com.doumee.dao.web.request.UserPageRequest;
 import com.doumee.dao.web.response.*;
 import com.doumee.service.business.BookingsService;
 import com.doumee.service.business.DevicesService;
@@ -46,6 +48,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.awt.print.Book;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -71,6 +74,7 @@
     private SystemUserMapper systemUserMapper;
     @Autowired
     private RoomRecordMapper roomRecordMapper;
+
 
     @Autowired
     private BookingsJoinMapper bookingsJoinMapper;
@@ -794,6 +798,34 @@
         return page;
     }
 
+
+    @Override
+    public MeetingDetailResponse getMeetingDetailByDate(Bookings bean){
+        try {
+            if(Objects.isNull(bean)
+            || Objects.isNull(bean.getRoomId())
+                    || Objects.isNull(bean.getStartTime())
+                    || Objects.isNull(bean.getEndTime())){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            }
+            Bookings bookings = bookingsMapper.selectOne(new QueryWrapper<Bookings>().lambda()
+                    .eq(Bookings::getRoomId,bean.getRoomId())
+                    .ge(Bookings::getEndTime,DateUtil.getPlusTime(bean.getEndTime()))
+                    .le(Bookings::getStartTime,DateUtil.getPlusTime(bean.getStartTime()))
+            );
+            if(Objects.isNull(bookings)){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY);
+            }
+            return getMeetingDetail(bookings.getId());
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+
+
     /**
      * 浼氳璇︽儏
      *
@@ -815,9 +847,10 @@
         ));
 
         //鍙備細浜哄憳鍒楄〃
-        SystemUser param = new SystemUser();
-        List<SystemUser> userResponseList = systemUserService.findList(param);
-        String avatarPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.MEMBER_IMG).getCode();
+
+        List<UserResponse> userResponseList = systemUserService.getUserList(id);
+        String avatarPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
         userResponseList.forEach(i -> {
             if(StringUtils.isNotBlank(i.getAvatar())){
                 i.setAvatar(avatarPath+i.getAvatar());
@@ -825,7 +858,8 @@
         });
         meetingDetailResponse.setUserResponseList(userResponseList);
         //鏈嶅姟椤�
-        String projectsPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
+        String projectsPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode()
+                + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
         List<ProjectsResponse> projectsResponseList = projectsService.getProjectsList(id, MeetConstants.ONE);
         projectsResponseList.forEach(i -> {
             i.setPrefixUrl(projectsPath);
@@ -1090,5 +1124,40 @@
         return PageData.from(userStatistics);
     }
 
+    /**
+     * 鏌ヨ鍙備細浜哄憳鍒嗛〉
+     * @param pageWrap
+     * @return
+     */
+    @Override
+    public IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap) {
+        IPage<UserResponse> page = systemUserMapper.getUserPage(pageWrap.toPage(),new QueryWrapper<UserResponse>()
+                .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()), i -> i.like("c.realName", pageWrap.getModel().getKeyword())
+                        .or().like("e.name", pageWrap.getModel().getKeyword())
+                )
+                .eq("c.DELETED",0)
+                .eq("c.status",0)
+                .orderByAsc("c.id")
+        );
+        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+        //鏌ヨ鏄惁澶勪簬浼氳涓�
+        page.getRecords().forEach(j->{
+            j.setPrefixUrl(path);
+            if(bookingsMapper.selectCount(new QueryWrapper<Bookings>()
+                    .exists(" select 1 from meeting_user_rel u where u.OBJ_ID = bookings.id and  u.USER_ID = '"+j.getId()+"' and u.OBJ_TYPE = 1    ")
+                    .and(i -> i.between("START_TIME", pageWrap.getModel().getStartTime()+":00",pageWrap.getModel().getEndTime()+":00")
+                            .or().between("END_TIME", pageWrap.getModel().getStartTime()+":00",pageWrap.getModel().getEndTime()+":00")
+                    )
+            )>Constants.ZERO){
+                j.setStatus(Constants.ONE);
+            }else{
+                j.setStatus(Constants.ZERO);
+            }
+        });
+        return page;
+    }
+
+
 
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
index 73988e0..3e90f10 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/ProjectsServiceImpl.java
@@ -3,13 +3,11 @@
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.MeetConstants;
 import com.doumee.dao.business.ProjectsMapper;
 import com.doumee.dao.business.model.Projects;
 import com.doumee.dao.web.response.ProjectsResponse;
-import com.doumee.dao.web.response.UserResponse;
 import com.doumee.service.business.ProjectsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
diff --git a/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
index e76f0a1..9198e09 100644
--- a/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
+++ b/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -76,7 +76,8 @@
     public Boolean isTokenExpired(String token) {
         try {
             LoginUserInfo claims = getClaimsFromToken(token);
-            Date expiration = claims.getLoginDate();
+            Date expiration = //claims.getLoginDate();
+            new Date(claims.getLoginDate().getTime() + jwtProperties.getExpiration());
             return expiration.before(new Date());
         } catch (Exception e) {
             //楠岃瘉JWT绛惧悕澶辫触绛夊悓浜庝护鐗岃繃鏈�
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
index 5d21cfe..ffdaee2 100644
--- a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataCloudController.java
@@ -46,6 +46,7 @@
     @CloudRequiredPermission("system:dict:update")
     public ApiResponse create(@Validated(OperaType.Create.class) @RequestBody SystemDictData systemDictData,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         systemDictData.setLoginUserInfo(this.getLoginUser(token));
+        systemDictData.setCreateUser(systemDictData.getLoginUserInfo().getId());
         return ApiResponse.success(systemDictDataBiz.create(systemDictData));
     }
 
@@ -75,6 +76,7 @@
     @CloudRequiredPermission("system:dict:update")
     public ApiResponse updateById(@Validated(OperaType.Update.class) @RequestBody SystemDictData systemDictData,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         systemDictData.setLoginUserInfo(this.getLoginUser(token));
+        systemDictData.setUpdateUser(systemDictData.getLoginUserInfo().getId());
         systemDictDataBiz.updateById(systemDictData);
         return ApiResponse.success(null);
     }
@@ -84,15 +86,6 @@
     @CloudRequiredPermission("system:dict:update")
     public ApiResponse<PageData<SystemDictDataListVO>> findPage (@RequestBody PageWrap<QuerySystemDictDataDTO> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(systemDictDataService.findPage(pageWrap));
-    }
-
-
-    @ApiOperation("鏌ヨ鍜栬眴浠诲姟瑙勫垯")
-    @PostMapping("/findAllList")
-    @CloudRequiredPermission("system:dict:update")
-    public ApiResponse findAllList (@RequestBody PageWrap<QuerySystemDictDataDTO> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
-        List<SystemDictData> list= systemDictDataBiz.queryListByCode(Constants.COFFEE_BEAN_TASK,null);
-        return ApiResponse.success(list);
     }
 
 
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
index 2b5f6e2..958a24f 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemMenuBizImpl.java
@@ -126,6 +126,7 @@
                 nodeVO.setIndex("menu_" + menu.getId());
                 nodeVO.setLabel(menu.getName());
                 nodeVO.setUrl(menu.getPath());
+                nodeVO.setParams(menu.getParams());
                 nodeVO.setIcon(menu.getIcon());
                 nodeVO.setChildren(new ArrayList<>());
                 rootNodes.add(nodeVO);
@@ -210,6 +211,7 @@
                 child.setId(menu.getId());
                 child.setLabel(menu.getName());
                 child.setUrl(menu.getPath());
+                child.setParams(menu.getParams());
                 child.setIcon(menu.getIcon());
                 child.setIndex("menu_" + menu.getId());
                 child.setChildren(new ArrayList<>());
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index 6d88b2c..6ba808c 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -25,6 +25,7 @@
 public class Constants {
     public static final String HEADER_USER_TOKEN = "dm_user_token";
     public static final String REDIS_TOKEN_KEY = "token_";
+    public static final String REDIS_HK_TOKEN_KEY = "hk_token_";
     public static final String[]  ALL_SPELL_LIST_FIRST = new String[]{"A", "B", "C", "D", "E", "F", "G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
     public static final int ZERO = 0 ;
     public static final int ONE = 1 ;
@@ -102,7 +103,7 @@
     public static final String HIDDEN_DANGER_FILE = "HIDDEN_DANGER_FILE";
     public static final String LOG_DEL_DAYS_LIMIT ="LOG_DEL_DAYS_LIMIT" ;
     public static final String HK_LOG_DEL_DAYS_LIMIT ="HK_LOG_DEL_DAYS_LIMIT" ;
-
+    public static final String HK_NGINX_URL = "HK_NGINX_URL";
     public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
     public static  boolean DEALING_HK_SYNCDEVICE = false;
     public static  boolean DEALING_HK_SYNCDEVICE_STATUS = false;
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
index 4fadb8e..f0ba404 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/SystemUserMapper.java
@@ -7,6 +7,7 @@
 import com.doumee.dao.system.dto.QuerySystemUserDTO;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.vo.SystemUserListVO;
+import com.doumee.dao.system.vo.UserResponse;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -26,4 +27,28 @@
 
 
     void insertBatchSomeColumn(List<SystemUser> userList);
+
+
+
+    @Select(" select c.id , c.type , c.REALNAME as realName , c.userName as userName , c.avatar ," +
+            " c.wechat_name as wechatName , c.mobile , c.sex , c.birthday  , c.avatar   ,  d.COMPANY_NAME_PATH as departmentName  " +
+            " from system_user c   " +
+            " INNER JOIN company d on c.COMPANY_ID = d.id  " +
+            " ${ew.customSqlSegment} ")
+    IPage<UserResponse> getUserPage(IPage<UserResponse> page, @Param(Constants.WRAPPER) Wrapper wrapper);
+
+    @Select(" select c.id , c.type , c.REALNAME as realName , c.userName as userName , c.avatar ," +
+            " c.wechat_name as wechatName , c.mobile , c.sex , c.birthday  , c.avatar   ,  d.COMPANY_NAME_PATH as departmentName  " +
+            " from system_user c   " +
+            " INNER JOIN company d on c.COMPANY_ID = d.id  " +
+            " ${ew.customSqlSegment} ")
+    List<UserResponse> getUserList(@Param(Constants.WRAPPER) Wrapper wrapper);
+
+
+    @Select(" select c.id , c.type , c.REALNAME as realName , c.userName as userName , c.avatar ," +
+            " c.wechat_name as wechatName , c.mobile , c.sex , c.birthday  , c.avatar   ,  d.COMPANY_NAME_PATH as departmentName  " +
+            " from system_user c   " +
+            " INNER JOIN company d on c.COMPANY_ID = d.id  " +
+            "  where c.id = #{id} ")
+    UserResponse getUserInfo(@Param("id") Integer id);
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java
index 44edb71..5f59869 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemMenu.java
@@ -70,5 +70,7 @@
 
     @ApiModelProperty(value = "鏄惁宸插垹闄�", hidden = true)
     private Boolean deleted;
+    @ApiModelProperty(value = "鍙傛暟" )
+    private String params;
 
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java
index 6f269d9..9e9b1d5 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuListVO.java
@@ -27,4 +27,6 @@
 
     @ApiModelProperty(value = "鏇存柊浜轰俊鎭�")
     private SystemUser updateUserInfo;
+    @ApiModelProperty(value = "鍙傛暟" )
+    private String params;
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java
index 47b6262..c2f2483 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/SystemMenuNodeVO.java
@@ -32,4 +32,6 @@
 
     @ApiModelProperty(value = "瀛愯彍鍗�")
     private List<SystemMenuNodeVO> children;
+    @ApiModelProperty(value = "鍙傛暟" )
+    private String params;
 }
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/UserResponse.java b/server/system_service/src/main/java/com/doumee/dao/system/vo/UserResponse.java
similarity index 88%
rename from server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/UserResponse.java
rename to server/system_service/src/main/java/com/doumee/dao/system/vo/UserResponse.java
index f835bdb..d8a657c 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/UserResponse.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/vo/UserResponse.java
@@ -1,12 +1,8 @@
-package com.doumee.dao.web.response;
+package com.doumee.dao.system.vo;
 
-import com.doumee.core.utils.Date;
-import com.doumee.dao.system.model.SystemUser;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-
-import java.io.Serializable;
 
 /**
  * Created by IntelliJ IDEA.
diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java
index 7f4f04e..37d9ee7 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/SystemUserService.java
@@ -5,6 +5,7 @@
 import com.doumee.dao.system.dto.QuerySystemUserDTO;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.vo.SystemUserListVO;
+import com.doumee.dao.system.vo.UserResponse;
 
 import java.util.List;
 
@@ -70,7 +71,8 @@
      * @date 2023/03/21 14:49
      */
     List<SystemUser> findList(SystemUser systemUser);
-  
+
+    List<UserResponse> getUserList(Integer bookingsId);
     /**
      * 鍒嗛〉鏌ヨ
      * @author Eva.Caesar Liu
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
index 087530c..31d410b 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -14,6 +14,7 @@
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.system.vo.SystemDepartmentListVO;
 import com.doumee.dao.system.vo.SystemUserListVO;
+import com.doumee.dao.system.vo.UserResponse;
 import com.doumee.service.aware.DepartmentDataPermissionAware;
 import com.doumee.service.system.SystemDepartmentService;
 import com.doumee.service.system.SystemPositionService;
@@ -120,6 +121,13 @@
         Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
         return systemUserMapper.selectList(wrapper);
     }
+
+    @Override
+    public List<UserResponse> getUserList(Integer bookingsId) {
+        return systemUserMapper.getUserList(new QueryWrapper<UserResponse>()
+                .exists(" select 1 from meeting_user_rel u where u.USER_ID = c.id and u.ISDELETED = 0  and u.OBJ_ID = "+bookingsId+" and u.OBJ_TYPE = 1  ")
+        );
+    }
   
     @Override
     public PageData<SystemUserListVO> findPage(PageWrap<QuerySystemUserDTO> pageWrap) {
@@ -209,8 +217,6 @@
                 .or().like(SystemUser::getRealname,pageWrap.getUsername())
         );
         queryWrapper.orderByDesc(SystemUser::getCreateTime);
-
-
 
         List<SystemUser> result = systemUserJoinMapper.selectJoinList( SystemUser.class, queryWrapper);
 
diff --git a/server/system_service/src/main/resources/mappers/SystemMenuMapper.xml b/server/system_service/src/main/resources/mappers/SystemMenuMapper.xml
index 0ec9ada..9aad846 100644
--- a/server/system_service/src/main/resources/mappers/SystemMenuMapper.xml
+++ b/server/system_service/src/main/resources/mappers/SystemMenuMapper.xml
@@ -16,7 +16,7 @@
   </resultMap>
   <select id="selectManageList" resultMap="SystemMenuListVO">
     SELECT
-      menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`FIXED`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`,
+      menu.`ID`, menu.`PARENT_ID`,menu.params, menu.`NAME`, menu.`PATH`, menu.`FIXED`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`,
       create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME,
       update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME
     FROM SYSTEM_MENU menu
@@ -31,7 +31,7 @@
   <!-- 鏌ヨ鑿滃崟鏍� -->
   <select id="selectByUserId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemMenu">
     SELECT
-      DISTINCT menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`
+      DISTINCT menu.`ID`, menu.`PARENT_ID`,menu.params, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`
     FROM `SYSTEM_MENU` menu
     INNER JOIN SYSTEM_ROLE_MENU role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0
     INNER JOIN SYSTEM_USER_ROLE user_role ON user_role.ROLE_ID = role_menu.ROLE_ID AND user_role.DELETED = 0
@@ -46,7 +46,7 @@
   <!-- 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鍒楄〃 -->
   <select id="selectByRoleId" parameterType="java.lang.Integer" resultType="com.doumee.dao.system.model.SystemMenu">
     SELECT
-      menu.`ID`, menu.`PARENT_ID`, menu.`NAME`, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`
+      menu.`ID`, menu.`PARENT_ID`, menu.`NAME`,menu.params, menu.`PATH`, menu.`REMARK`, menu.`DISABLED`, menu.SORT, menu.`ICON`, menu.`CREATE_TIME`, menu.`UPDATE_TIME`, menu.`CREATE_USER`, menu.`UPDATE_USER`, menu.`DELETED`
     FROM `SYSTEM_MENU` menu
     INNER JOIN `SYSTEM_ROLE_MENU` role_menu ON role_menu.MENU_ID = menu.ID AND role_menu.DELETED = 0
     <where>
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 7bb21a8..fa30516 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -3,19 +3,13 @@
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.CloudRequiredPermission;
 import com.doumee.core.annotation.pr.PreventRepeat;
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
-import com.doumee.core.haikang.model.param.request.EventSubRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
-import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
+import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
-import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncPrivilegeServiceImpl;
-import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
+import com.doumee.service.business.impl.hksync.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +34,8 @@
     private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService;
     @Autowired
     private HkSyncPushServiceImpl hkSyncPushService;
+    @Autowired
+    private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService;
 
     @PreventRepeat
     @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ラ棬绂佽澶囨帴鍙�")
@@ -50,6 +46,14 @@
         return ApiResponse.success(result);
     }
     @PreventRepeat
+    @ApiOperation("銆愭捣搴枫�戣幏鍙栫粍浠舵巿鏉冪櫥褰曞湴鍧�鎺ュ彛")
+    @PostMapping("/getServiceUrl")
+    public ApiResponse getServiceUrl(@RequestBody HKGetServiceLoginUrlRequest param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+        param.setUsername(this.getLoginUser(token).getUsername());
+        String result = hkSyncLoginAuthService.getServiceUrl(param);
+        return ApiResponse.success(result);
+    }
+    @PreventRepeat
     @ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ュ仠杞﹀簱鎺ュ彛")
     @PostMapping("/syncParks")
     @CloudRequiredPermission("business:hksync:park")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index d84b7de..6b8f7d4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -88,6 +88,9 @@
         String facePictureCheck= "/api/frs/v1/face/picture/check";//浜鸿劯璇勫垎
         String acsDeviceStatus= "/api/nms/v1/online/acs_device/get";//鑾峰彇闂ㄧ璁惧鍦ㄧ嚎鐘舵��
         String tempCarInRecords= "/api/pms/v1/tempCarInRecords/page";//鏌ヨ鍦哄唴杞﹀仠杞︿俊鎭�
+        String applyCTGT= "/api/lsm/ssoService/v1/applyCTGT";//鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
+        String applyST= "/api/lsm/ssoService/v1/applyST";//鏍规嵁鐧诲綍鏍囪瘑TGC鐢宠鐧诲綍鍑瘉ST鎺ュ彛
+        String tokenLoginUrl= "/lsm/ssoService/v1/tokenLogin?token=${st}&service=${service}";//缁勪欢鎺堟潈鐧诲綍鎷兼帴鍦板潃
     }
 
     /**
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index 298e6b2..6992fdc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -593,4 +593,21 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.tempCarInRecords,body);
 	}
 
+	/**
+	 * 鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
+	 * @param body
+	 * @return
+	 */
+	public static String applyCTGT(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.applyCTGT,body);
+	}
+	/**
+	 * 鏍规嵁鐧诲綍鏍囪瘑TGC鐢宠鐧诲綍鍑瘉ST鎺ュ彛
+	 * @param body
+	 * @return
+	 */
+	public static String applyST(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.applyST,body);
+	}
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplyCTGTRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplyCTGTRequest.java
new file mode 100644
index 0000000..4ce94a4
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplyCTGTRequest.java
@@ -0,0 +1,12 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class ApplyCTGTRequest {
+
+    private String loginType;//	string	False	鐧诲綍绫诲瀷
+    private String userCode;//	string	False鐧诲綍鐢ㄦ埛鍚�
+    private String language;//	string	False	璇█鏍囪瘑
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplySTequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplySTequest.java
new file mode 100644
index 0000000..5165121
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ApplySTequest.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class ApplySTequest {
+
+    private String ctgt;//	string	ctgt鍑瘉
+    private String service;//	string	鏈嶅姟鍦板潃
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/HKGetServiceLoginUrlRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/HKGetServiceLoginUrlRequest.java
new file mode 100644
index 0000000..d60bc36
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/HKGetServiceLoginUrlRequest.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class HKGetServiceLoginUrlRequest {
+
+   private String   label; //鑾峰彇鍦板潃瀛楀吀label
+   private String username; //鑾峰彇鍦板潃瀛楀吀label
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplyCTGTResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplyCTGTResponse.java
new file mode 100644
index 0000000..301b90b
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplyCTGTResponse.java
@@ -0,0 +1,9 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class ApplyCTGTResponse {
+
+private String   CTGT	;//string	False
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplySTResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplySTResponse.java
new file mode 100644
index 0000000..3ec2964
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ApplySTResponse.java
@@ -0,0 +1,9 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class ApplySTResponse {
+
+private String   ST	;//string	ST鍑瘉
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 438bab3..bdbe7c6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1035,6 +1035,42 @@
         }
         return  null;
     }
+    /**
+     *鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
+     * @return
+     */
+    public  static  BaseResponse<ApplyCTGTResponse>   applyCTGT(ApplyCTGTRequest param){
+        log.info("銆愭捣搴锋牴鎹敤鎴锋爣璇嗚幏鍙栧鎴风TGC鎺ュ彛銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.applyCTGT(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<ApplyCTGTResponse>>(){};
+            BaseResponse<ApplyCTGTResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋牴鎹敤鎴锋爣璇嗚幏鍙栧鎴风TGC鎺ュ彛鎭��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     *鏍规嵁鐧诲綍鏍囪瘑TGC鐢宠鐧诲綍鍑瘉ST鎺ュ彛
+     * @return
+     */
+    public  static  BaseResponse<ApplySTResponse>   applyST(ApplySTequest param){
+        log.info("銆愭捣搴锋牴鎹櫥褰曟爣璇員GC鐢宠鐧诲綍鍑瘉ST鎺ュ彛銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.applyST(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<ApplySTResponse>>(){};
+            BaseResponse<ApplySTResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鏍规嵁鐧诲綍鏍囪瘑TGC鐢宠鐧诲綍鍑瘉ST鎺ュ彛鍙�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴锋牴鎹櫥褰曟爣璇員GC鐢宠鐧诲綍鍑瘉ST鎺ュ彛鎭��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
     private static void logResult(BaseResponse res,String name) {
         if(StringUtils.equals(res.getCode(),HKConstants.RESPONSE_SUCCEE)){
             log.info("銆�"+name+"銆�================鎴愬姛====\n"+res);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index 7af1926..6779db0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -1,9 +1,6 @@
 package com.doumee.service.business.ext;
 
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
-import com.doumee.core.haikang.model.param.request.DoorsListRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
-import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
+import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
@@ -83,4 +80,5 @@
     void syncMemberFailData();
 
     void syncMemberDelData();
+    String getServiceUrl(HKGetServiceLoginUrlRequest param);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index 43286ff..09b02ab 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -550,6 +550,7 @@
                         .leftJoin(Member.class,Member::getId,Approve::getChekorId)
                         .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                         .eq(Approve::getIsdeleted,Constants.ZERO)
+                        .ne(Approve::getStatus,Constants.approveStatus.cancel)
                         .eq(Approve::getObjId,businessId)
                         .eq(Approve::getObjType,businessType)
                         .orderByAsc(Approve::getLevel)
@@ -573,8 +574,8 @@
         if (CollectionUtils.isNotEmpty(copyList)) {
             Approve waitModel = new Approve();
             waitModel.setApproveType(Constants.ONE);
-            waitModel.setStatusInfo("鎶勯��");
-            waitModel.setStatus(Constants.ONE);
+            waitModel.setTitle("鎶勯�佷汉");
+            waitModel.setStatus(copyList.get(Constants.ZERO).getStatus());
             waitModel.setType(Constants.ONE);
             waitModel.setApproveList(copyList);
             approveDateVO.getApproveList().add(waitModel);
@@ -594,6 +595,7 @@
     private List<Approve> getLevelInfoFromList(Approve level,List<Approve> approveGroupList) {
         List<Approve> list = new ArrayList<>();
         if(Constants.equalsInteger(level.getApproveType(),Constants.TWO)){
+            level.setApproveType(Constants.ZERO);
             //濡傛灉鏄崟浜哄鎵�
             list.add(level);
             return list;
@@ -603,36 +605,56 @@
         Approve  refuseModel = new Approve();//宸叉嫆缁濈殑璁板綍
         List<Approve> waitList = new ArrayList<>();  //鏌ヨ鍏ㄩ儴鏈鐞嗙殑闆嗗悎
         List<Approve> otherPassList = new ArrayList<>();//浠栦汉宸插鐞嗙殑璁板綍闆�
-        List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList());
-        dealGroupListBiz(level,levelApprove,approveGroupList,passList,refuseModel,waitList,otherPassList);
+        int appType = Constants.formatIntegerNum(level.getApproveType());//褰撳墠瀹℃壒绫诲瀷
+        dealGroupListBiz(level,approveGroupList,passList,refuseModel,waitList,otherPassList);
         if(Objects.nonNull(refuseModel) && Objects.nonNull(refuseModel.getId())){
             //瀛樺湪鎷掔粷鐨勶紝鍙渶瑕佽繑鍥炰竴鏉″鐞嗘暟鎹紝鍚庣画涓嶉渶瑕佸洖鏄�
+            refuseModel.setApproveType(Constants.ZERO);
             list.add(refuseModel);
             return list;
         }
         list.addAll(sortByCreateTime(passList));
-        if(Constants.equalsInteger(level.getApproveType(),Constants.ONE)){
+        if(Constants.equalsInteger(appType,Constants.ONE)){
             //濡傛灉鏄細绛�
-            if(waitList.size()>0){
+            if(waitList.size()>1){
                 Approve waitModel = new Approve();
                 waitModel.setApproveType(Constants.ONE);
-                waitModel.setStatusInfo(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�")+"澶勭悊涓�");
+                waitModel.setType(Constants.ZERO);
+                waitModel.setTitle(StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"));
                 waitModel.setStatus(Constants.equalsInteger(waitList.get(Constants.ZERO).getStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO);
+                waitModel.setStatusInfo("澶勭悊涓�");
+                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.auditIng)
+                        ||Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
+                    waitModel.setMemberName(waitList.size() +"浜轰細绛�");
+                }
                 waitModel.setApproveList(waitList);
                 list.add(waitModel);
+            }else if(waitList.size()>0){
+                Approve approve = waitList.get(Constants.ZERO);
+                approve.setApproveType(Constants.ZERO);
+                approve.setType(Constants.ZERO);
+                list.add(approve);
             }
         }else {
             if((waitList.size()> 0 || otherPassList.size()>0)){
                 Approve waitModel = new Approve();
                 waitModel.setApproveType(Constants.ONE);
-                waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
-                waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
+                if(Constants.equalsInteger(level.getStatus(),Constants.approveStatus.pass)){
+                    waitModel.setStatus(Constants.approveStatus.pass);
+                    waitModel.setType(Constants.ONE);
+                    waitModel.setTitle("瀹℃壒浜猴紙鎶勯�佹垨绛惧鎵逛汉锛�");
+                }else{
+                    waitModel.setType(Constants.ZERO);
+                    waitModel.setStatusInfo(passList.size()<=0?StringUtils.defaultString(level.getTitle(),"瀹℃壒浜�"):"鎶勯�佹垨绛惧鎵逛汉");
+                    waitModel.setStatus(passList.size()>0?Constants.ONE:Constants.ZERO);
+                }
                 List<Approve> approveList = new ArrayList<>();
                 approveList.addAll(waitList);
                 //濡傛灉鏄垨绛�
                 if(passList.size()>0){
                     approveList.addAll(otherPassList);
                 }
+                waitModel.setMemberName("宸叉妱閫�"+ approveList.size() +"浜�");
                 waitModel.setApproveList(approveList);
                 list.add(waitModel);
             }
@@ -652,10 +674,15 @@
 
     }
 
-    private void dealGroupListBiz(Approve level, List<Approve> levelApprove,List<Approve> approveGroupList, List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) {
+    private void dealGroupListBiz(Approve level, List<Approve> approveGroupList,  List<Approve> passList, Approve refuseModel, List<Approve> waitList, List<Approve> otherPassList) {
         //鏌ヨ鏄惁瀛樺湪鎷掔粷鏁版嵁
+        List<Approve> levelApprove = approveGroupList.stream().filter(i->Constants.equalsInteger(i.getLevel(),level.getLevel())).collect(Collectors.toList());
         for (Approve approve:levelApprove) {
+            if(!Constants.equalsInteger(level.getLevel(),approve.getLevel())){
+                continue;
+            }
             if(Constants.equalsInteger(Constants.approveStatus.pass,approve.getStatus())){
+                approve.setApproveType(Constants.ZERO);
                 passList.add(approve);
             }else if(Constants.equalsInteger(Constants.approveStatus.otherDeal,approve.getStatus())){
                 otherPassList.add(approve);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 7f6b533..c17b755 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1098,11 +1098,11 @@
         }
         queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
         List<Member> list =  memberJoinMapper.selectJoinList(Member.class,queryWrapper);
-        if(list!=null){
-            for(Member m : list){
-                m.setName(StringUtils.defaultString(m.getName(),"")+"-"+StringUtils.defaultString(m.getCompanyName(),""));
-            }
-        }
+//        if(list!=null){
+//            for(Member m : list){
+//                m.setName(StringUtils.defaultString(m.getName(),"")+"-"+StringUtils.defaultString(m.getCompanyName(),""));
+//            }
+//        }
         return  list;
     }
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 9ed642b..eee6192 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -42,6 +42,11 @@
     }
     @Override
 //    @Async
+    public   String getServiceUrl(HKGetServiceLoginUrlRequest param){
+        return null;
+    }
+    @Override
+//    @Async
     public  void syncParkRecords(Date date){
     }
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncLoginAuthServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncLoginAuthServiceImpl.java
new file mode 100644
index 0000000..de74b82
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncLoginAuthServiceImpl.java
@@ -0,0 +1,96 @@
+package com.doumee.service.business.impl.hksync;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.respose.*;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.model.Device;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 璁惧淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+public class HkSyncLoginAuthServiceImpl extends HkSyncBaseServiceImpl {
+
+    @Autowired
+    private DeviceMapper deviceMapper;
+
+    @Autowired
+    private RedisTemplate<String, Object> redisTemplate;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    /**
+     * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
+     * @param param
+     * @return
+     */
+    @Override
+    public   String getServiceUrl(HKGetServiceLoginUrlRequest param){
+        if(StringUtils.isBlank(param.getLabel())||StringUtils.isBlank(param.getUsername())){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鐧诲綍缁勪欢澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+        //浼樺厛浠庣紦瀛樺彇鏁版嵁锛屽鏋滄湁缂撳瓨锛岀洿鎺ヨ繑鍥炵紦瀛樺湴鍧�
+        /*String cacheUrl = (String) redisTemplate.opsForValue().get(Constants.REDIS_HK_TOKEN_KEY+param.getUsername()+param.getLabel());
+        if(StringUtils.isNotBlank(cacheUrl)){
+            return cacheUrl;
+        }*/
+        String url = systemDictDataBiz.queryByCode(Constants.HK_PARAM,param.getLabel()).getCode();
+        if(StringUtils.isBlank(url)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        ApplyCTGTRequest ctgtParam = new ApplyCTGTRequest();
+        ctgtParam.setLanguage("zh_CN");
+        ctgtParam.setUserCode(param.getUsername());
+        ctgtParam.setLoginType("2");
+        BaseResponse<ApplyCTGTResponse> response = HKService.applyCTGT(ctgtParam);
+        if(response !=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) &&response.getData()!=null &&StringUtils.isNotBlank(response.getData().getCTGT())){
+            //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
+            String ctgt = response.getData().getCTGT();
+            ApplySTequest stParam = new ApplySTequest();
+            stParam.setCtgt(ctgt);
+            stParam.setService(url);
+            BaseResponse<ApplySTResponse> result = HKService.applyST(stParam);
+            if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)
+                    &&result.getData()!=null &&StringUtils.isNotBlank(result.getData().getST())){
+                //澶勭悊鏂板鎴愬姛鐨勬暟鎹紝淇敼娴峰悍鍚屾鐘舵��
+                String st = result.getData().getST();
+                try {
+                    String serviceUrl =   systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.HK_NGINX_URL).getCode()
+                            +(HKConstants.InterfacePath.tokenLoginUrl.replace("${st}", st).replace("${service}", URLEncoder.encode(url, "UTF-8")));
+//                    redisTemplate.opsForValue().set(Constants.REDIS_HK_TOKEN_KEY+param.getUsername()+param.getLabel(),serviceUrl,1, TimeUnit.HOURS);
+                    return serviceUrl;
+                }catch (Exception e){
+                    throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐧诲綍缁勪欢澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+                }
+               
+            }else{
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐧诲綍缁勪欢澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+            }
+        }else{
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐧诲綍缁勪欢澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+        }
+    }
+}

--
Gitblit v1.9.3