nidapeng
2024-05-06 cab914c578ca850a0010864f0c10c7a7da916d45
最新版本
已添加6个文件
已删除1个文件
已修改6个文件
已重命名48个文件
1135 ■■■■ 文件已修改
admin/src/views/business/internalCompany.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/main.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/utils/http.api.js 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/CloudCarsController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveParamCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveTemplCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarEventCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarParksCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CategoryCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceEventCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ERPSyncCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/EmpowerCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/FormParamCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerLogCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/InterfaceLogCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCardCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberRoleCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParksCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformInterfaceLogCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformLogCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformQueueCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformShowParamCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ProblemLogCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ProblemsCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/RetentionCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TasksCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TrainTimeCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/UserActionCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitEventCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitParkCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitProblemLogCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitProblemsCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitReasonCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitorCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ApiController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/InternalWebController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/ProblemWebController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/UnitWebController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/VisitorWebController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/resources/application-dev.yml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/internalCompany.vue
@@ -18,18 +18,18 @@
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:company:create', 'business:company:sync']">
               <li><el-button type="primary" v-permissions="['business:company:create']" @click="$refs.OperaInternalCompanyWindow.open('新建企业',null,null)">新建</el-button></li>
              <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['business:company:sort']">上移</el-button></li>
              <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['business:company:sort']">下移</el-button></li>
              <li><el-button @click="sort('top')" :loading="sorting" icon="el-icon-sort-up" v-permissions="['business:company:sort']">上移</el-button></li>
              <li><el-button @click="sort('bottom')" :loading="sorting" icon="el-icon-sort-down" v-permissions="['business:company:sort']">下移</el-button></li>
              <!--<li><el-button type="primary"  v-permissions="['business:company:sync']" :loading="loading" @click="synchronous()">同步</el-button></li>-->
            </ul>
            <el-table
                v-loading="isWorking.search"
                :data="list"
                stripe
                :tree-props="{children: 'childList'}"
                :tree-props="{children: 'childList',hasChildren: 'hasChildren'}"
                row-key="id"
                :expand-row-keys="[list && list.length > 0 ? list[0].id.toString() : '']"
                @selection-change="handleSelectionChange"
                default-expand-all
            >
                <el-table-column type="selection" width="55"></el-table-column>
                <el-table-column prop="name" label="组织名称" min-width="100px"></el-table-column>
@@ -63,7 +63,7 @@
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import { companySync } from '@/api/business/company'
import { companySync, sort } from '@/api/business/company'
import OperaInternalCompanyWindow from '@/components/business/OperaInternalCompanyWindow'
export default {
  name: 'internalCompany',
@@ -72,7 +72,8 @@
  data () {
    return {
      // æœç´¢
      loading:false,
      loading: false,
      sorting: false,
      searchForm: {
        // type: 1
      },
@@ -123,7 +124,79 @@
            })
        })
        .catch(() => {})
    }
    },
    // æŽ’序
    sort (direction) {
      if (this.sorting) {
        return
      }
      if (this.tableData.selectedRows.length === 0) {
        this.$tip.warning('请选择一条数据')
        return
      }
      if (this.tableData.selectedRows.length > 1) {
        this.$tip.warning('排序时仅允许选择一条数据')
        return
      }
      const menuId = this.tableData.selectedRows[0].id
      // æ‰¾åˆ°èœå•范围
      let menuPool
      for (const rootMenu of this.list) {
        console.log(this.list)
        const parent = this.__findParent(menuId, rootMenu)
        if (parent != null) {
          menuPool = parent.children
        }
      }
      menuPool = menuPool || this.list
      const menuIndex = menuPool.findIndex(menu => menu.id === menuId)
      // ä¸Šç§»æ ¡éªŒ
      if (direction === 'top' && menuIndex === 0) {
        this.$tip.warning('菜单已到顶部')
        return
      }
      // ä¸‹ç§»æ ¡éªŒ
      if (direction === 'bottom' && menuIndex === menuPool.length - 1) {
        this.$tip.warning('菜单已到底部')
        return
      }
      this.sorting = true
      sort({
        id: this.tableData.selectedRows[0].id,
        direction
      })
        .then(() => {
          if (direction === 'top') {
            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
          } else {
            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
          }
        })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.sorting = false
        })
    },
    // æŸ¥è¯¢çˆ¶èŠ‚ç‚¹
    __findParent (id, parent) {
      if (parent.childList === 0) {
        return
      }
      for (const menu of parent.childList) {
        if (menu.id === id) {
          return parent
        }
        if (menu.childList.length > 0) {
          const m = this.__findParent(id, menu)
          if (m != null) {
            return m
          }
        }
      }
      return null
    },
  }
}
</script>
h5/main.js
@@ -7,10 +7,10 @@
Vue.config.productionTip = false
// Vue.prototype.$baseUrl = 'http://192.168.0.111:10027/';
Vue.prototype.$baseUrl = 'http://192.168.0.150:10010/';
// Vue.prototype.$baseUrl = 'https://dmtest.ahapp.net/h5_api/';
// Vue.prototype.$baseUrl = 'http://facepay.huasunsolar.com/web_interface/';
Vue.prototype.$baseUrl = 'http://218.23.218.228:8018/web_interface/'
// Vue.prototype.$baseUrl = 'http://218.23.218.228:8018/web_interface/'
Vue.prototype.$store = store;
App.mpType = 'app'
h5/utils/http.api.js
@@ -6,14 +6,14 @@
        return config;
    })
    
    let wxAuthorize = (params = {}) => vm.$u.http.get('web/visitor/wxAuthorize', { params });    // è®¿å®¢å¾®ä¿¡æŽˆæƒ
    let getSystemDictData = (params = {}) => vm.$u.http.get('web/unit/getSystemDictData', { params });    // æŸ¥è¯¢å­—典值数据
    let getProblemsVO = (params = {}) => vm.$u.http.get('web/problem/getProblemsVO', { params });    // èŽ·å–é¢˜ç›®æ•°æ®
    let finishAnswer = (data = {}) => vm.$u.http.post('web/problem/finishAnswer', data);    // ä¿®æ”¹å½“前登录的用户信息
    let deviceRoleList = (params = {}) => vm.$u.http.get('web/unit/deviceRoleList', { params });    // è®¾å¤‡ç»„列表
    let getVisitedMember = (data = {}) => vm.$u.http.post('web/visitor/getVisitedMember', data);    // æŸ¥è¯¢è¢«è®¿é—®äººä¿¡æ¯
    let createFk = (data = {}) => vm.$u.http.post('web/visitor/createFk', data);    // è®¿å®¢è®°å½•提交
    let detail = (params = {}) => vm.$u.http.get('web/visitor/detail', { params });    // è®¿å®¢è®°å½•详情
    let wxAuthorize = (params = {}) => vm.$u.http.get('visitsAdmin/cloudService/web/visit/visitor/wxAuthorize', { params });    // è®¿å®¢å¾®ä¿¡æŽˆæƒ
    let getSystemDictData = (params = {}) => vm.$u.http.get('visitsAdmin/cloudService/web/visit/other/getSystemDictData', { params });    // æŸ¥è¯¢å­—典值数据
    let getProblemsVO = (params = {}) => vm.$u.http.get('visitsAdmin/cloudService/web/visit/problem/getProblemsVO', { params });    // èŽ·å–é¢˜ç›®æ•°æ®
    let finishAnswer = (data = {}) => vm.$u.http.post('visitsAdmin/cloudService/web/visit/problem/finishAnswer', data);    // ä¿®æ”¹å½“前登录的用户信息
    let deviceRoleList = (params = {}) => vm.$u.http.get('visitsAdmin/cloudService/web/visit/other/deviceRoleList', { params });    // è®¾å¤‡ç»„列表
    let getVisitedMember = (data = {}) => vm.$u.http.post('visitsAdmin/cloudService/web/visit/visitor/getVisitedMember', data);    // æŸ¥è¯¢è¢«è®¿é—®äººä¿¡æ¯
    let createFk = (data = {}) => vm.$u.http.post('visitsAdmin/cloudService/web/visit/visitor/createFk', data);    // è®¿å®¢è®°å½•提交
    let detail = (params = {}) => vm.$u.http.get('visitsAdmin/cloudService/web/visit/visitor/detail', { params });    // è®¿å®¢è®°å½•详情
    
    vm.$u.api = {
        wxAuthorize,
server/visits/dmvisit_admin/src/main/java/com/doumee/api/CloudCarsController.java
ÎļþÒÑɾ³ý
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ApproveCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveParamCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ApproveParamCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ApproveTemplCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ApproveTemplCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarBookCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CarBookCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarDriverCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CarDriverCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarEventCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CarEventCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarParksCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CarParksCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarUseBookCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CarUseBookCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CarsCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CarsCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CategoryCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CategoryCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CompanyCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/CompanyCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.DataSyncConfig;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/DeviceCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceEventCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/DeviceEventCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/DeviceRoleCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/DeviceRoleCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ERPSyncCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ERPSyncCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/EmpowerCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/EmpowerCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/FormParamCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/FormParamCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/HiddenDangerCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerLogCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/HiddenDangerLogCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerParamCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/HiddenDangerParamCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/HkSyncCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/InterfaceLogCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/InterfaceLogCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCardCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/MemberCardCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/MemberCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.DataSyncConfig;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberRoleCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/MemberRoleCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ParkBookCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParksCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ParksCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformGroupCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformInterfaceLogCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformInterfaceLogCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformJobCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformLogCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformLogCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformQueueCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformQueueCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformShowParamCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/PlatformShowParamCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ProblemLogCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ProblemLogCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ProblemsCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/ProblemsCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/RetentionCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/RetentionCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/StagingCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TasksCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/TasksCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TrainTimeCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/TrainTimeCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/UserActionCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/UserActionCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitEventCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitEventCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitParkCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitParkCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitProblemLogCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitProblemLogCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitProblemsCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitProblemsCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitReasonCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitReasonCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitorCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitorCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/VisitsCloudController.java
ÎļþÃû´Ó server/visits/dmvisit_admin/src/main/java/com/doumee/api/cloud/VisitsCloudController.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.doumee.api.cloud;
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/ApiController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.doumee.cloud.web;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.dao.business.model.Member;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
 * Controller基类
 * @author Eva.Caesar Liu
 * @date 2022/03/15 09:54
 */
@Slf4j
public class ApiController {
    /**
     * å¾—到request对象
     *
     * @return
     */
    public HttpServletRequest getRequest() {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        return request;
    }
    /**
     * èŽ·å–ç”¨æˆ·ID
     *
     * @return
     */
    protected Integer getMemberId() {
        Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
        return obj != null ? Integer.valueOf( obj.toString() ): null;
    }
    /**
     * èŽ·å–ç”¨æˆ·
     *
     * @return
     */
    protected Member getMember() {
        Member member = (Member) this.getRequest().getAttribute(JwtTokenUtil.MEMBER);
        return member != null ? member : null;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/WebPublicController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,414 @@
package com.doumee.cloud.web;
import com.alibaba.fastjson.JSONObject;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.FtpUtil;
import com.doumee.core.utils.aliyun.ALiYunUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
/**
 * @author Eva.Caesar Liu
 * @date 2023/02/14 11:14
 */
@Api(tags = "【公众号】公共接口")
@Trace(exclude = true)
@RestController
@LoginNoRequired
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/visit/public")
@Slf4j
public class WebPublicController extends BaseController {
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @ApiOperation(value = "上传", notes = "上传", httpMethod = "POST", position = 6)
    @ApiImplicitParams({
        @ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
    })
    @PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
    public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        upload(multipartRequest, response, folder + "/",
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(),
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(),
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(),
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
    }
    @ApiOperation(value = "上传图片", notes = "上传图片", httpMethod = "POST", position = 6)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
    })
    @PostMapping(value = "/uploadPicture", headers = "content-type=multipart/form-data")
    public void uploadPicture(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Iterator<String> fileNames = multipartRequest.getFileNames();
        Map<String, Object> context = new HashMap<>();
        while (fileNames.hasNext()){
            MultipartFile file = multipartRequest.getFile(fileNames.next());
            String fileName = file.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            if ( !StringUtils.equalsIgnoreCase(suffix, ".jpg") || !StringUtils.equalsIgnoreCase(suffix, ".png")) {
                context.put("code", 0);
                context.put("message", "对不起,文件格式上传有误!");
            }
        }
        upload(multipartRequest, response, folder + "/",
                systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(),
                systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(),
                systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(),
                systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
                systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
    }
    public static  FtpUtil ftp  = null;
    @ApiOperation(value = "上传文件到FTP")
    @RequestMapping(method= RequestMethod.POST,value="api/uploadFtp.do",headers = "content-type=multipart/form-data")
    @ResponseBody
    public void uploadFtp(HttpServletRequest request, HttpServletResponse response, String folderCode) throws Exception {
        System.out.println("上传中");
        String folder = systemDictDataBiz.queryByCode(Constants.FTP,folderCode).getCode();
        String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
        InputStream is = null;
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        Map<String, Object> context = new HashMap<>();
        try {
            if(ftp == null){
                ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
                        Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
            }else{
                ftp.connect();
            }
            CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
            if (multipartResovler.isMultipart(request)) {
                MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
                Iterator<String> it = multipartRequest.getFileNames();
                while (it.hasNext()) {
                    MultipartFile file = multipartRequest.getFile(it.next());
                    is = file.getInputStream();
                    String date = DateUtil.getNowShortDate();
                    String fName =  date+"/"+ UUID.randomUUID()+".jpg";
                    String fileName = folder+fName;
//                    boolean r = ftp.uploadInputstream(compressImg(is),fileName);
                    boolean r = ftp.uploadInputstream(is,fileName);
                    if(r){
                        context.put("success", true);
                        context.put("code", 200);
                        context.put("errno",0);
                        JSONObject fileJSON = new JSONObject();
                        fileJSON.put("halfPath", fName);
                        fileJSON.put("prefixPath", prefixPath);
                        fileJSON.put("folder", folder);
                        fileJSON.put("addr", prefixPath+fileName);
                        context.put("data",fileJSON);
                        context.put("message","请求成功");
                        writerJson(response, context);
                        return;
                    }
                }
            }
        } catch (Exception e) {
            log.error("【上传FTP失败】======================"+e.getMessage());
        }
        context.put("code", 0);
        context.put("message", "上传失败");
        context.put("errno",0);
        writerJson(response, context);
        return;
    }
    public InputStream compressImg(InputStream is){
        try {
            long originalFileSize = is.available();
            BufferedImage originalImage = ImageIO.read(is);
            double compressionRatio = Math.sqrt((double)originalFileSize / (200 * 1024.0));
            if(compressionRatio >1){
                int compressedWidth = (int) (originalImage.getWidth() / compressionRatio);
                int compressedHeight = (int) (originalImage.getHeight() / compressionRatio);
                BufferedImage compressedImage = new BufferedImage(compressedWidth, compressedHeight, BufferedImage.TYPE_INT_RGB);
                Graphics2D graphics = compressedImage.createGraphics();
                graphics.drawImage(originalImage, 0, 0, compressedWidth, compressedHeight, null);
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                ImageOutputStream imOut = ImageIO.createImageOutputStream(byteArrayOutputStream);
                ImageIO.write(compressedImage, "jpg", imOut);
                InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
                graphics.dispose();
                return inputStream;
            }else{
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                ImageOutputStream imOut = ImageIO.createImageOutputStream(byteArrayOutputStream);
                ImageIO.write(originalImage, "jpg", imOut);
                InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
                return inputStream;
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return is;
    }
    public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName,
        String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        Map<String, Object> context = new HashMap<>();
        CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
        if (multipartResovler.isMultipart(request)) {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            Iterator<String> it = multipartRequest.getFileNames();
            while (it.hasNext()) {
                MultipartFile file = multipartRequest.getFile((String) it.next());// file
                // multipartRequest.getFile((String)
                // it.next());
                if (file != null) {
                    // 1、上传到服务器临时文件夹
                    String uploadFileName = file.getOriginalFilename();
                    String originname = uploadFileName;
                    if (originname.lastIndexOf("/") >= 0) {
                        originname = originname.substring(originname.lastIndexOf("/") + 1);
                    }
                    String nfix = "";// åŽç¼€å
                    if (StringUtils.isNotBlank(uploadFileName)) {
                        nfix = uploadFileName.substring(uploadFileName.lastIndexOf("."));
                    }
                    if (StringUtils.equalsIgnoreCase(nfix, ".exe")) {
                        context.put("code", 4000);
                        context.put("message", "对不起,文件格式\".exe\"上传有误!");
                        return;
                    }
                    if (StringUtils.equalsIgnoreCase(nfix, ".dll")) {
                        context.put("code", 4000);
                        context.put("message", "对不起,文件格式\".dll\"上传有误!");
                        return;
                    }
                    String nowDate = DateUtil.getNowShortDate();// å½“前时间(年月日)
                    String fileName = UUID.randomUUID().toString() + nfix;
                    String tempFileName = nowDate + "/" + fileName;
                    String key = folder + tempFileName;// æ–‡ä»¶å
                    ALiYunUtil obs = new ALiYunUtil(endpoint,access_id, access_key);
                    if (obs.uploadOnlineObject(file.getInputStream(),bucketName, key,null)) {
                        // ç§»åŠ¨æˆåŠŸ,返回文件名
                        // sendSuccessMessage(response, resourcePath+key);
                        context.put("success", true);
                        context.put("code", 200);
                        context.put("errno",0);
                        JSONObject fileJSON = new JSONObject();
                        fileJSON.put("url", resourcePath + key);
                        fileJSON.put("imgaddr", tempFileName);
                        fileJSON.put("imgname", fileName);
                        fileJSON.put("originname", originname);
                        context.put("data",fileJSON);
                        context.put("message","请求成功");
                        writerJson(response, context);
                        return;
                    } else {
                        // ç§»åŠ¨å¤±è´¥
                        context.put("code", 0);
                        context.put("message", "上传失败");
                        writerJson(response, context);
                        return;
                    }
                }
            }
        }
        context.put("code", 0);
        context.put("message", "上传失败");
        context.put("errno",0);
        writerJson(response, context);
        return;
    }
    public static void writerJson(HttpServletResponse response, Object object) {
        response.setContentType("application/json");
        writer(response, JSONObject.toJSONString(object));
    }
    private static void writer(HttpServletResponse response, String str) {
        try {
            StringBuffer result = new StringBuffer();
            //设置页面不缓存
            response.setHeader("Pragma", "No-cache");
            response.setHeader("Cache-Control", "no-cache");
            response.setCharacterEncoding("UTF-8");
            PrintWriter out = null;
            out = response.getWriter();
            out.print(str);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void uploadFileLocal(HttpServletRequest request, String folder, HttpServletResponse response, String rootPath,String dir) throws Exception {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
        Map<String, Object> context = new HashMap<>();
        if (multipartResovler.isMultipart(request)) {
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            Iterator<String> it = multipartRequest.getFileNames();
            while (it.hasNext()) {
                MultipartFile file = multipartRequest.getFile((String) it.next());// file
                // =
                // (CommonsMultipartFile)
                // multipartRequest.getFile((String)
                // it.next());
                if (file != null) {
                    if (file.getSize() > 200 * 1024 * 1024L) {
                        context.put("code", 4000);
                        context.put("message", "上传文件过大");
                        return;
                    }
                    System.out.println(file.getOriginalFilename());
                    if (file.getOriginalFilename() == null) {
                        context.put("code", 4000);
                        context.put("message", "文件名不可为空");
                        return;
                    }
                    /*
                     * if(file.getOriginalFilename().contains(",")||file.getOriginalFilename().
                     * contains(" ")){ sendFailureMessage(response,"文件名称有误,不可含有逗号等特殊字符"); }
                     */
                    String nowDate = DateUtil.getNowShortDate();
                    folder += nowDate + "/";
                    String strDirPath = rootPath + folder;
                    File dirPath = new File(strDirPath);
                    if (!dirPath.exists()) {
                        dirPath.mkdirs();
                    }
                    String uploadFileName = file.getOriginalFilename();
                    String x = UUID.randomUUID().toString().replace("-", "")
                            + uploadFileName.substring(uploadFileName.lastIndexOf("."));
                    String fileName = folder + x;
                    String fileNames = nowDate + "/" + x;
                    uploadFileName = uploadFileName.replace(" ", "");
                    uploadFileName = uploadFileName.replace(",", ",");
                    uploadFileName = uploadFileName.replaceAll(",", "-");
                    System.err.println("R:" + fileName);
                    String fileAndPath = dir + fileName;
                    System.err.println("A:" + fileAndPath);
                    // åˆ¤æ–­å¦‚果临时目录中存在相同名称的文件先删除,在上传
                    File tempFile = new File(rootPath + fileName);
                    if (tempFile.isFile() && tempFile.exists()) {
                        tempFile.getAbsoluteFile().delete();
                    }
                    // ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸´æ—¶æ–‡ä»¶å¤¹
                    file.transferTo(tempFile);
                    // è½¬ç§»åˆ°FTP服务器
                    String nfix = "";
                    if (null != uploadFileName) {
                        nfix = uploadFileName.substring(uploadFileName.lastIndexOf("."));
                    }
                    if (StringUtils.equalsIgnoreCase(nfix, ".exe")) {
                        context.put("code", 4000);
                        context.put("message", "对不起,文件格式\".exe\"上传有误!");
                        return;
                    }
                    if (StringUtils.equalsIgnoreCase(nfix, ".dll")) {
                        context.put("code", 4000);
                        context.put("message", "对不起,文件格式\".dll\"上传有误!");
                        return;
                    }
                    String remoteName = fileName;
                    String remoteFileName = fileAndPath;
             /*       Map map = new HashMap();
                    map.put("url", remoteFileName);
                    map.put("alt", uploadFileName);
                    map.put("href", remoteFileName);
                    List maps = Arrays.asList(remoteFileName);*/
                    if (true) {
                        // å…³é—­FTP流
                        // ç§»åŠ¨æˆåŠŸ,返回文件名
                        /*context.put("error", 0);
                        context.put("url", remoteFileName);
                        context.put("fullurl", remoteFileName);
                        context.put("fname", uploadFileName);
                        context.put("data", maps);
                        context.put("halfurl", fileNames);*/
                        context.put("success", true);
                        context.put("code", 200);
                        context.put("errno",0);
                        JSONObject fileJSON = new JSONObject();
                        fileJSON.put("url", remoteFileName);
                        fileJSON.put("imgaddr", fileNames);
                        fileJSON.put("imgname", uploadFileName);
                        fileJSON.put("originname", uploadFileName);
                        context.put("data",fileJSON);
                        context.put("message","请求成功");
                        writerJson(response, context);
                        return;
                    } else {
                        // ç§»åŠ¨å¤±è´¥
                        context.put("code", 0);
                        context.put("message", "上传失败");
                        writerJson(response, context);
                    }
                }
                context.put("code", 0);
                context.put("message", "上传失败");
                writerJson(response, context);
                return;
            }
        }
        context.put("code", 0);
        context.put("message", "上传失败");
        writerJson(response, context);
        return;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/InternalWebController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,118 @@
package com.doumee.cloud.web.visit;
import com.doumee.cloud.web.ApiController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.web.reqeust.AccountLoginDTO;
import com.doumee.dao.web.reqeust.AuditApproveDTO;
import com.doumee.dao.web.reqeust.VisitMemberDTO;
import com.doumee.dao.web.reqeust.VisitRecordDTO;
import com.doumee.dao.web.response.*;
import com.doumee.service.business.ApproveService;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.VisitsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/28 14:31
 */
@Api(tags = "【公众号】内部劳务人员")
@Trace(exclude = true)
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/visit/member")
@Slf4j
@LoginNoRequired
public class InternalWebController extends ApiController {
    @Autowired
    private MemberService memberService;
    @Autowired
    private VisitsService visitsService;
    @Autowired
    private ApproveService approveService;
    @ApiOperation(value = "人员登录", notes = "H5")
    @PostMapping("/accountLogin")
    public ApiResponse<WxAuthorizeVO> accountLogin(@RequestBody AccountLoginDTO accountLoginDTO) {
        WxAuthorizeVO wxAuthorizeVO = memberService.accountLogin(accountLoginDTO);
        return ApiResponse.success("登录成功",wxAuthorizeVO);
    }
    @ApiOperation(value = "内部人员首页", notes = "H5")
    @GetMapping("/internalHome")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<InternalHomeVO> internalHome() {
        return ApiResponse.success("查询成功",approveService.getHomeData(getMemberId()));
    }
    @ApiOperation("任务中心")
    @PostMapping("/taskCenter")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<PageData<VisitRecordVO>> taskCenter (@RequestBody PageWrap<VisitRecordDTO> pageWrap) {
        pageWrap.getModel().setMemberId(getMemberId());
        return ApiResponse.success(visitsService.taskCenter(pageWrap));
    }
    @ApiOperation("访客记录详情")
    @GetMapping("/visitDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "记录主键", required = true)
    })
    public ApiResponse<VisitDetailVO> visitDetail (@RequestParam Integer id) {
        return ApiResponse.success(visitsService.getVisitDetail(id));
    }
    @ApiOperation(value = "人员分页",notes = "可拜访内部人员")
    @PostMapping("/memberList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<PageData<MemberVO>> memberList (@RequestBody PageWrap<VisitMemberDTO> pageWrap) {
        return ApiResponse.success(memberService.getVisitedMemberList(pageWrap));
    }
    @ApiOperation(value = "访客记录提交", notes = "内部人员提交")
    @PostMapping("/createVisit")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse createVisit(@RequestBody Visits visits) {
        visits.setCreateMemberId(getMemberId());
        return ApiResponse.success("查询成功", visitsService.createFk(visits,false));
    }
    @ApiOperation(value = "审批流记录审批", notes = "内部人员")
    @PostMapping("/auditApprove")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse auditApprove(@RequestBody AuditApproveDTO auditApproveDTO) {
        visitsService.auditApprove(auditApproveDTO);
        return ApiResponse.success("操作成功");
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/ProblemWebController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,67 @@
package com.doumee.cloud.web.visit;
import com.doumee.cloud.web.ApiController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.wx.wxPlat.WxPlatNotice;
import com.doumee.dao.web.reqeust.FinishAnswerDTO;
import com.doumee.dao.web.response.ProblemsVO;
import com.doumee.service.business.ProblemLogService;
import com.doumee.service.business.ProblemsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/8 8:54
 */
@Api(tags = "【公众号】题目业务")
@Trace(exclude = true)
@RestController
@LoginNoRequired
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/visit/problem")
@Slf4j
public class ProblemWebController extends ApiController {
    @Autowired
    private ProblemsService problemsService;
    @Autowired
    private ProblemLogService problemLogService;
    @Autowired
    private WxPlatNotice wxPlatNotice;
    @ApiOperation(value = "获取题目数据", notes = "H5")
    @GetMapping("/getProblemsVO")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "useType", value = "使用场景 2劳务人员 1普通访客", required = true)
    })
    public ApiResponse<List<ProblemsVO>> getProblemsVO(@RequestParam Integer useType) {
        return ApiResponse.success("查询成功",problemsService.getProblemsVO(useType));
    }
    @ApiOperation(value = "保存答题记录", notes = "H5")
    @PostMapping("/finishAnswer")
    public ApiResponse<Integer> finishAnswer(@RequestBody FinishAnswerDTO finishAnswerDTO) {
        return ApiResponse.success("查询成功",problemLogService.finishAnswer(finishAnswerDTO));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/UnitWebController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.doumee.cloud.web.visit;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.web.response.DeviceRoleVO;
import com.doumee.service.business.DeviceRoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 10:40
 */
@Api(tags = "【公众号】其他")
@Trace(exclude = true)
@RestController
@LoginNoRequired
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/visit/other")
@Slf4j
public class UnitWebController {
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private DeviceRoleService deviceRoleService;
    @ApiOperation(value = "查询字典值数据", notes = "H5")
    @GetMapping("/getSystemDictData")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "label", value = "数据字典值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "dictCode", value = "系统字典值", required = true)
    })
    public ApiResponse<SystemDictData> getSystemDictData(@RequestParam String dictCode, @RequestParam String label) {
        return ApiResponse.success("查询成功",systemDictDataBiz.queryByCode(dictCode,label));
    }
    @ApiOperation(value = "设备组列表", notes = "H5")
    @GetMapping("/deviceRoleList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "类型 0劳务访客 1普通访客 2内部人员", required = true)
    })
    public ApiResponse<List<DeviceRoleVO>> deviceRoleList(@RequestParam Integer type) {
        return ApiResponse.success("查询成功",deviceRoleService.findListByType(type));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/visit/VisitorWebController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package com.doumee.cloud.web.visit;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.web.reqeust.CheckVisitedDTO;
import com.doumee.dao.web.response.MemberVO;
import com.doumee.dao.web.response.VisitDetailVO;
import com.doumee.dao.web.response.WxAuthorizeVO;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.VisitsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/7 10:40
 */
@Api(tags = "【公众号】访客业务")
@Trace(exclude = true)
@RestController
@LoginNoRequired
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/visit/visitor")
@Slf4j
public class VisitorWebController {
    @Autowired
    private MemberService memberService;
    @Autowired
    private VisitsService visitsService;
    @ApiOperation(value = "访客微信授权", notes = "访客微信授权获取openId")
    @GetMapping("/wxAuthorize")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "授权码", required = true)
    })
    public ApiResponse<WxAuthorizeVO> wxAuthorize(@RequestParam String code) {
        WxAuthorizeVO wxAuthorizeVO =  memberService.wxAuthorize(code);
        return ApiResponse.success("查询成功",wxAuthorizeVO);
    }
    @ApiOperation(value = "查询被访问人信息", notes = "查询被访问人信息")
    @PostMapping("/getVisitedMember")
    public ApiResponse<MemberVO> getVisitedMember(@Valid @RequestBody CheckVisitedDTO checkVisitedDTO) {
        return ApiResponse.success("查询成功", memberService.getVisitedMember(checkVisitedDTO));
    }
    @ApiOperation(value = "访客记录提交", notes = "访客提交")
    @PostMapping("/createFk")
    public ApiResponse createFk(@RequestBody Visits visits) {
        visits.setSourceType(Constants.ZERO);
        return ApiResponse.success("查询成功", visitsService.createFk(visits,false));
    }
    @ApiOperation(value = "访客记录详情", notes = "访客记录详情")
    @GetMapping("/detail")
    public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id) {
        return ApiResponse.success("查询成功", visitsService.getVisitDetail(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -52,7 +52,7 @@
                .apiInfo(this.getApiInfo()).groupName("default")
                .host(host)
                .select()
                .apis( basePackage("com.doumee.api.cloud,com.doumee.api.common"))
                .apis( basePackage("com.doumee.cloud;com.doumee.api.common"))
                // è®¾ç½®éœ€è¦è¢«æ‰«æçš„类,这里设置为添加了@Api注解的类
//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -104,6 +104,7 @@
        company.setIsdeleted(Constants.ZERO);
        company.setHkStatus(Constants.ONE);
        company.setStatus(Constants.ZERO);
        company.setSortnum(0);//默认最上面
        company.setHkDate(company.getCreateDate());
        company.setEditDate(company.getCreateDate());
        company.setEditor(company.getCreator());
@@ -550,6 +551,7 @@
        queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getEditor);
        queryWrapper.eq(Company::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(type!=null,Company::getType,type);
        queryWrapper.orderByAsc(Company::getSortnum );
        List<Company> companyList = companyJoinMapper.selectJoinList(Company.class,queryWrapper);
        //配置组员人员类型来源方式 0自建 1ERP
        CompanyTree treeBuild = new CompanyTree(companyList, dataSyncConfig.getOrgUserDataOrigin());
server/visits/dmvisit_service/src/main/resources/application-dev.yml
@@ -16,19 +16,6 @@
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
#rocketmq:
#  namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
#  groupId: GID-wakatest
#  topic: waka-test
#  username: 4derRb4Sw5EkqUMI
#  password: v50N97wf4av8Q8I4
#knife4j:
#  enable: true
#  basic:
#    enable: true
#    username: admin
#    password: 111111
debug_model: true
@@ -64,20 +51,4 @@
    remoteHost: https://apis.map.qq.com
    appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
des_pwd: 123456SDFKDJF
## MQTT##
mqtt:
  host: tcp://192.168.10.198:1883
  userName: root
  passWord: 123456
  qos: 1
  clientId: ClientId_local #ClientId_local必须唯一 æ¯”如你已经定了叫ABC  é‚£ä½ å°±ä¸€ç›´å«ABC  å…¶ä»–地方就不要使用ABC了
  timeout: 10
  keepalive: 20
  topic1: A/pick/warn/#  #符号是代表整个warn下面的全部子主题 æ²¡æœ‰ç†è§£çš„话 å¯ä»¥ç™¾åº¦ä»”细理解一下
  topic2: A/cmd/resp
  topic3: ABCF
  topic4: ABCH