¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function getServiceUrl (data) { |
| | | return request.post('/visitsAdmin/cloudService//business/hksync/getServiceUrl', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | |
| | | <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"> |
| | |
| | | <el-dialog |
| | | append-to-body |
| | | title="åæç³è¯·" |
| | | style="text-align: center" |
| | | class="dialogCl" |
| | | :visible.sync="isShowProblem" |
| | | width="480px" |
| | |
| | | <el-dialog |
| | | append-to-body |
| | | title="æç»ç³è¯·" |
| | | style="text-align: center" |
| | | class="dialogCl" |
| | | :visible.sync="isBackProblem" |
| | | width="600px" |
| | |
| | | height: 40px; |
| | | border-radius: 50%; |
| | | margin: 0 12px 0 16px; |
| | | border: 1px solid; |
| | | //border: 1px solid; |
| | | } |
| | | .content { |
| | | flex: 1; |
| | |
| | | <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"> |
| | |
| | | color: #53b76f; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .iconnew{ |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | .icon1 { |
| | | position: relative; |
| | | z-index: 11; |
| | |
| | | height: 40px; |
| | | border-radius: 50%; |
| | | margin: 0 12px 0 16px; |
| | | border: 1px solid; |
| | | //border: 1px solid; |
| | | } |
| | | .content { |
| | | flex: 1; |
| | |
| | | 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 |
| | |
| | | // é»è®¤å±å¼çèåindex |
| | | defaultOpeneds () { |
| | | // return this.menuData.list.map(menu => menu.index) |
| | | |
| | | |
| | | return [this.menuData.list[0].index] |
| | | } |
| | | }, |
| | |
| | | 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) { |
| | |
| | | :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)" |
| | | > |
| | |
| | | }, |
| | | $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) |
| | |
| | | } |
| | | } else { |
| | | // é£ä¹ï¼å¦æä¸é¢çæ¡ä»¶é½ä¸æç«ï¼æ²¡ælength=0.ä¹å°±æ¯è¯´ä½ è¿æå¥½å 个æ ç¾ï¼å¹¶ä¸ä½ å é¤çæ¯æåä¸ä½æ ç¾ï¼é£ä¹å°±å¾å·¦è¾¹æªä¸ä½è·³è½¬è·¯ç± |
| | | 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 { |
| | | // å¦æä½ ç¹å»ä¸æ¯æåä¸ä½æ ç¾ï¼ç¹çåé¢çï¼é£å°±å¾å³è¾¹è·³è½¬ |
| | | this.$router.push({ path: this.tags[index].url }) |
| | | this.$router.push({ path: this.tags[index].url ,query:{param: this.tags[index].params}}) |
| | | } |
| | | }, |
| | | // ç¹å»è·³è½¬è·¯ç± |
| | |
| | | // 夿ï¼å½åè·¯ç±ä¸çäºå½åéä¸é¡¹çurlï¼ä¹å°±ä»£è¡¨ä½ ç¹å»ç䏿¯ç°å¨éä¸çæ ç¾ï¼æ¯å¦ä¸ä¸ªæ ç¾å°±è·³è½¬è¿å»ï¼å¦æä½ ç¹å»çæ¯ç°å¨å·²ç»éä¸çæ ç¾å°±ä¸ç¨è·³è½¬äºï¼å ä¸ºä½ å·²ç»å¨è¿ä¸ªè·¯ç±äºè¿è·³ä»ä¹å¢ã |
| | | if (this.$route.path !== item.url) { |
| | | // ç¨pathçè·³è½¬æ¹æ³æå½å项ç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) |
| | |
| | | } |
| | | }, |
| | | // éè¿å¤æè·¯ç±ä¸è´è¿åå¸å°å¼æ·»å classï¼æ·»å é«äº®ææ |
| | | 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() { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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: 'æ£å¨åªåç»å½ç»ä»¶æå¡...' |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设å¤ç®¡otherLoginServiceçä¿¡æ¯è¡¨', |
| | | 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 = 'æ£å¨ååªåå è½½ç»ä»¶!' |
| | | this.url = res |
| | | }) |
| | | .catch(e => { |
| | | this.message = 'ç»å½ç»ä»¶æå¡å¤±è´¥,请è系系ç»ç®¡ç忣æ¥!' |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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: 'æ£å¨åªåç»å½ç»ä»¶æå¡...' |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设å¤ç®¡otherLoginServiceçä¿¡æ¯è¡¨', |
| | | 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 = 'æ£å¨ååªåå è½½ç»ä»¶!' |
| | | this.url = res |
| | | }) |
| | | .catch(e => { |
| | | this.message = 'ç»å½ç»ä»¶æå¡å¤±è´¥,请è系系ç»ç®¡ç忣æ¥!' |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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: 'æ£å¨åªåç»å½ç»ä»¶æå¡...' |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设å¤ç®¡otherLoginServiceçä¿¡æ¯è¡¨', |
| | | 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 = 'æ£å¨ååªåå è½½ç»ä»¶!' |
| | | this.url = res |
| | | }) |
| | | .catch(e => { |
| | | this.message = 'ç»å½ç»ä»¶æå¡å¤±è´¥,请è系系ç»ç®¡ç忣æ¥!' |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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: 'æ£å¨åªåç»å½ç»ä»¶æå¡...' |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设å¤ç®¡otherLoginServiceçä¿¡æ¯è¡¨', |
| | | 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 = 'æ£å¨ååªåå è½½ç»ä»¶!' |
| | | this.url = res |
| | | }) |
| | | .catch(e => { |
| | | this.message = 'ç»å½ç»ä»¶æå¡å¤±è´¥,请è系系ç»ç®¡ç忣æ¥!' |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
| | |
| | | lintOnSave: false, |
| | | devServer: { |
| | | host: '0.0.0.0', |
| | | port: 10012, |
| | | proxy: { |
| | | port: 10012 |
| | | /* proxy: { |
| | | [process.env.VUE_APP_API_PREFIX]: { |
| | | target: process.env.VUE_APP_API_URL, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | [`^${[process.env.VUE_APP_API_PREFIX]}`]: '' |
| | | } |
| | | } |
| | | } |
| | | } */ |
| | | }, |
| | | configureWebpack: { |
| | | resolve: { |
| | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | @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); |
| | | } |
| | |
| | | @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); |
| | | } |
| | | |
| | | |
| | |
| | | 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); |
| | |
| | | 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<>()); |
| | |
| | | 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 ; |
| | |
| | | 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; |
| | |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å·²å é¤", hidden = true) |
| | | private Boolean deleted; |
| | | @ApiModelProperty(value = "åæ°" ) |
| | | private String params; |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººä¿¡æ¯") |
| | | private SystemUser updateUserInfo; |
| | | @ApiModelProperty(value = "åæ°" ) |
| | | private String params; |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "åèå") |
| | | private List<SystemMenuNodeVO> children; |
| | | @ApiModelProperty(value = "åæ°" ) |
| | | private String params; |
| | | } |
| | |
| | | </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 |
| | |
| | | <!-- æ¥è¯¢èåæ --> |
| | | <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 |
| | |
| | | <!-- æ ¹æ®è§è²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> |
| | |
| | | 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; |
| | |
| | | private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService; |
| | | @Autowired |
| | | private HkSyncPushServiceImpl hkSyncPushService; |
| | | @Autowired |
| | | private HkSyncLoginAuthServiceImpl hkSyncLoginAuthService; |
| | | |
| | | @PreventRepeat |
| | | @ApiOperation("ãæµ·åº·ãå
¨é忥é¨ç¦è®¾å¤æ¥å£") |
| | |
| | | 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") |
| | |
| | | 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";//æ ¹æ®ç¨æ·æ è¯è·å客æ·ç«¯TGCæ¥å£ |
| | | String applyST= "/api/lsm/ssoService/v1/applyST";//æ ¹æ®ç»å½æ è¯TGCç³è¯·ç»å½åè¯STæ¥å£ |
| | | String tokenLoginUrl= "/lsm/ssoService/v1/tokenLogin?token=${st}&service=${service}";//ç»ä»¶ææç»å½æ¼æ¥å°å |
| | | } |
| | | |
| | | /** |
| | |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.tempCarInRecords,body); |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®ç¨æ·æ è¯è·å客æ·ç«¯TGCæ¥å£ |
| | | * @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); |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 è¯è¨æ è¯ |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.haikang.model.param.request; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ApplySTequest { |
| | | |
| | | private String ctgt;// string ctgtåè¯ |
| | | private String service;// string æå¡å°å |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.haikang.model.param.request; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class HKGetServiceLoginUrlRequest { |
| | | |
| | | private String label; //è·åå°ååå
¸label |
| | | private String username; //è·åå°ååå
¸label |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.haikang.model.param.respose; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ApplyCTGTResponse { |
| | | |
| | | private String CTGT ;//string False |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.haikang.model.param.respose; |
| | | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class ApplySTResponse { |
| | | |
| | | private String ST ;//string STåè¯ |
| | | } |
| | |
| | | } |
| | | return null; |
| | | } |
| | | /** |
| | | *æ ¹æ®ç¨æ·æ è¯è·å客æ·ç«¯TGCæ¥å£ |
| | | * @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,"æµ·åº·æ ¹æ®ç¨æ·æ è¯è·å客æ·ç«¯TGCæ¥å£"); |
| | | 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("ãæµ·åº·æ ¹æ®ç»å½æ è¯TGCç³è¯·ç»å½åè¯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("ãæµ·åº·æ ¹æ®ç»å½æ è¯TGCç³è¯·ç»å½åè¯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); |
| | |
| | | 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; |
| | |
| | | void syncMemberFailData(); |
| | | |
| | | void syncMemberDelData(); |
| | | String getServiceUrl(HKGetServiceLoginUrlRequest param); |
| | | } |
| | |
| | | } |
| | | @Override |
| | | // @Async |
| | | public String getServiceUrl(HKGetServiceLoginUrlRequest param){ |
| | | return null; |
| | | } |
| | | @Override |
| | | // @Async |
| | | public void syncParkRecords(Date date){ |
| | | } |
| | | @Override |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * 设å¤ä¿¡æ¯è¡¨Serviceå®ç° |
| | | * @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(),"对ä¸èµ·ï¼ç»å½ç»ä»¶å¤±è´¥ï¼è¯·ç¨åéè¯ï¼"); |
| | | } |
| | | } |
| | | } |