From a5845873604f6d038c1cf2441b20173c3a4dfcb5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 18 七月 2024 14:36:42 +0800
Subject: [PATCH] 提交

---
 server/service/src/main/java/com/doumee/service/business/impl/CategorySegServiceImpl.java          |    3 
 admin/src/components/business/OperaShopWindow.vue                                                  |  334 +++++++++++++++++++++------------
 server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java                      |    4 
 admin/src/views/business/departments.vue                                                           |  134 +++++++++++++
 server/admin/src/main/java/com/doumee/api/business/PushController.java                             |    4 
 admin/public/index.html                                                                            |    6 
 admin/src/api/business/shop.js                                                                     |    5 
 server/admin/src/main/java/com/doumee/api/business/ZhongTaiController.java                         |   48 ++++
 server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java |   36 +-
 9 files changed, 429 insertions(+), 145 deletions(-)

diff --git a/admin/public/index.html b/admin/public/index.html
index c5c6673..9cba38a 100644
--- a/admin/public/index.html
+++ b/admin/public/index.html
@@ -5,7 +5,11 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" href="<%= BASE_URL %>faviconzb.ico">
-    <title>蹇楅偊浼樺淇℃伅绠$悊绯荤粺</title>
+      <script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ"></script>
+<!--      <script type="text/javascript" src="https://mapapi.qq.com/web/mapComponents/geoLocation/v/geolocation.min.js"></script>
+      <script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ"></script>
+      <script type="text/javascript" src="https://map.qq.com/api/gljs?v=1.exp&key=HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ"></script>-->
+      <title>蹇楅偊浼樺淇℃伅绠$悊绯荤粺</title>
   </head>
   <body>
     <noscript>
diff --git a/admin/src/api/business/shop.js b/admin/src/api/business/shop.js
index 4110833..5f25f0c 100644
--- a/admin/src/api/business/shop.js
+++ b/admin/src/api/business/shop.js
@@ -12,6 +12,11 @@
     trim: true
   })
 }
+export function areaList (data) {
+  return request.post('/business/zhongtai/areaList',data, {
+    trim: true
+  })
+}
 // 鏌ヨ
 export function fetchList3 (data) {
   return request.get(`/business/shop/tree`, {
diff --git a/admin/src/components/business/OperaShopWindow.vue b/admin/src/components/business/OperaShopWindow.vue
index 33fe966..aacc499 100644
--- a/admin/src/components/business/OperaShopWindow.vue
+++ b/admin/src/components/business/OperaShopWindow.vue
@@ -1,114 +1,65 @@
 <template>
   <GlobalWindow
     :title="title"
+    width="70%"
     :visible.sync="visible"
     :confirm-working="isWorking"
     @confirm="confirm"
   >
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
-        <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+      <div>
+        <el-form-item label="鎵�灞炲尯鍩�" prop="provinceCode" label-width="100px">
+          <div class="address-plus">
+            <el-select v-model="form.provinceCode" placeholder="璇烽�夋嫨鐪佷唤"  @change="selectProvince" style="width:150px; margin-right: 25px" >
+              <el-option
+                  v-for="item in provinces"
+                  :key="item.id"
+                  :value="item.id"
+                  :label="item.name"
+              ></el-option>
+            </el-select>
+            <el-select v-model="form.cityCode" placeholder="璇烽�夋嫨鍩庡競" @change="selectCity"  style="width:150px; margin-right: 25px">
+              <el-option
+                  v-for="item in cities"
+                  :key="item.id"
+                  :value="item.id"
+                  :label="item.name"
+              ></el-option>
+            </el-select>
+            <el-select v-model="form.areaCode" placeholder="璇烽�夋嫨鍘垮尯" @change="selectArea" style="width:150px; margin-right: 22px">
+              <el-option
+                  v-for="item in areas"
+                  :key="item.id"
+                  :value="item.id"
+                  :label="item.name"
+              ></el-option>
+            </el-select>
+          </div>
+        </el-form-item>
+      </div>
+      <el-form-item label="鑱旂郴浜�" prop="linkerName" label-width="100px">
+        <el-input v-model="form.linkerName" placeholder="璇疯緭鍏ヨ仈绯讳汉" v-trim style="width:500px; "/>
       </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
-        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+      <el-form-item label="鑱旂郴鐢佃瘽" prop="linkPhone"  label-width="100px">
+        <el-input v-model="form.linkPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-trim style="width:500px; "/>
       </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
-        <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+      <el-form-item label="璇︾粏鍦板潃" prop="address"  label-width="100px">
+        <el-input v-model="form.address" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�" v-trim style="width:500px; " @blur="changeMapCenter"/>
       </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
-        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
-        <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬id" prop="orgId">
-        <el-input v-model="form.orgId" placeholder="璇疯緭鍏ラ儴闂╥d" v-trim/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬鍚嶇О" prop="name">
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬U瀹㈢粍缁噄d" prop="orgOldId">
-        <el-input v-model="form.orgOldId" placeholder="璇疯緭鍏ラ儴闂║瀹㈢粍缁噄d" v-trim/>
-      </el-form-item>
-      <el-form-item label="涓婄骇缁勭粐Id" prop="parentId">
-        <el-input v-model="form.parentId" placeholder="璇疯緭鍏ヤ笂绾х粍缁嘔d" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鎺掑簭鐮�" prop="orderNum">
-        <el-input v-model="form.orderNum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="缁勭粐SF瀛樻斁鐮�" prop="sourceCode">
-        <el-input v-model="form.sourceCode" placeholder="璇疯緭鍏ョ粍缁嘢F瀛樻斁鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="缁勭粐缂栫爜" prop="code">
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ョ粍缁囩紪鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="缁勭粐绫诲瀷1:涓�浣撳晢 ,2:鍔犵洘鍟�,3:搴楅潰锛�4:閮ㄩ棬(HR/鍔�)锛�5:铏氭嫙搴楅潰(鍔�/铏�)" prop="type">
-        <el-input v-model="form.type" placeholder="璇疯緭鍏ョ粍缁囩被鍨�1:涓�浣撳晢 ,2:鍔犵洘鍟�,3:搴楅潰锛�4:閮ㄩ棬(HR/鍔�)锛�5:铏氭嫙搴楅潰(鍔�/铏�)" v-trim/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬灞炴�э紙1:瀹炰綋搴楅潰銆�2:铏氭嫙搴楅潰銆�3:鐢靛晢閮ㄣ��4:娓犻亾閮ㄣ��5:璐㈠姟閮級" prop="attribute">
-        <el-input v-model="form.attribute" placeholder="璇疯緭鍏ラ儴闂ㄥ睘鎬э紙1:瀹炰綋搴楅潰銆�2:铏氭嫙搴楅潰銆�3:鐢靛晢閮ㄣ��4:娓犻亾閮ㄣ��5:璐㈠姟閮級" v-trim/>
-      </el-form-item>
-      <el-form-item label="浼佷笟寰俊缁勭粐ID" prop="weixinId">
-        <el-input v-model="form.weixinId" placeholder="璇疯緭鍏ヤ紒涓氬井淇$粍缁嘔D" v-trim/>
-      </el-form-item>
-      <el-form-item label="閽夐拤閮ㄩ棬ID" prop="dingdingId">
-        <el-input v-model="form.dingdingId" placeholder="璇疯緭鍏ラ拤閽夐儴闂↖D" v-trim/>
-      </el-form-item>
-      <el-form-item label="鏈�杩戝悓姝ユ椂闂�" prop="syncDate">
-        <el-date-picker v-model="form.syncDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戝悓姝ユ椂闂�"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="鏈�杩戝悓姝ュ娉�" prop="syncInfo">
-        <el-input v-model="form.syncInfo" placeholder="璇疯緭鍏ユ渶杩戝悓姝ュ娉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鎵�灞炲叧鑱擣鐮�" prop="fcode">
-        <el-input v-model="form.fcode" placeholder="璇疯緭鍏ユ墍灞炲叧鑱擣鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鎵�灞炲叧鑱擲鐮�" prop="scode">
-        <el-input v-model="form.scode" placeholder="璇疯緭鍏ユ墍灞炲叧鑱擲鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="ZCODE" prop="zcode">
-        <el-input v-model="form.zcode" placeholder="璇疯緭鍏CODE" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍏宠仈S鐮�" prop="glCode">
-        <el-input v-model="form.glCode" placeholder="璇疯緭鍏ュ叧鑱擲鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍏宠仈S鐮佸悕绉�" prop="glName">
-        <el-input v-model="form.glName" placeholder="璇疯緭鍏ュ叧鑱擲鐮佸悕绉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍥藉" prop="country">
-        <el-input v-model="form.country" placeholder="璇疯緭鍏ュ浗瀹�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐪佷唤缂栫爜" prop="provinceCode">
-        <el-input v-model="form.provinceCode" placeholder="璇疯緭鍏ョ渷浠界紪鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐪佷唤鍚嶇О" prop="provinceName">
-        <el-input v-model="form.provinceName" placeholder="璇疯緭鍏ョ渷浠藉悕绉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍩庡競鐮�" prop="cityCode">
-        <el-input v-model="form.cityCode" placeholder="璇疯緭鍏ュ煄甯傜爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍩庡競鍚嶇О" prop="cityName">
-        <el-input v-model="form.cityName" placeholder="璇疯緭鍏ュ煄甯傚悕绉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍖哄幙缂栫爜" prop="areaCode">
-        <el-input v-model="form.areaCode" placeholder="璇疯緭鍏ュ尯鍘跨紪鐮�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍖哄幙鍚嶇О" prop="areaName">
-        <el-input v-model="form.areaName" placeholder="璇疯緭鍏ュ尯鍘垮悕绉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍝佺被缂栫爜" prop="unitCode">
-        <el-input v-model="form.unitCode" placeholder="璇疯緭鍏ュ搧绫荤紪鐮�" v-trim/>
+      <el-form-item label="缁忕含搴�" prop="posInfo"  label-width="100px">
+        <el-input v-model="form.longitude"  clearable  placeholder="鐐瑰嚮鍦板浘鑾峰彇缁忓害" v-trim style="width:245px; "/>-
+        <el-input v-model="form.latitude"  clearable  placeholder="鐐瑰嚮鍦板浘鑾峰彇缁村害" v-trim style="width:245px; "/>
       </el-form-item>
     </el-form>
+    <div class="map-box">
+      <div id="mapContainer" ref="mapContainer" style="width:80%;margin-left:10%;height:400px;overflow: hidden;" ></div>
+      <div class="map-search">
+        <el-input v-model="searchValue" placeholder="璇疯緭鍏ヨ妫�绱㈢殑浣嶇疆淇℃伅" />
+        <el-button @click="searchAddress(searchValue)" type="primary">鎼滅储</el-button>
+      </div>
+    </div>
   </GlobalWindow>
 </template>
-
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
@@ -118,43 +69,33 @@
   components: { GlobalWindow },
   data () {
     return {
+      geocoder: null,
+      map: [],
+      searchValue:'',
+      marker:null,
       // 琛ㄥ崟鏁版嵁
+      provinces: [],
+      cities: [],
+      areas: [],
       form: {
         id: null,
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
-        remark: '',
-        orgId: '',
-        name: '',
-        orgOldId: '',
-        parentId: '',
-        status: '',
-        orderNum: '',
-        sourceCode: '',
-        code: '',
-        type: '',
-        attribute: '',
-        weixinId: '',
-        dingdingId: '',
-        syncDate: '',
-        syncInfo: '',
-        fcode: '',
-        scode: '',
-        zcode: '',
-        glCode: '',
-        glName: '',
-        country: '',
+        provinceId: '',
         provinceCode: '',
         provinceName: '',
         cityCode: '',
+        cityId: '',
         cityName: '',
+        areaId: '',
         areaCode: '',
         areaName: '',
-        unitCode: ''
+        longitude: '',
+        latitude: '',
+        address: '',
+        linkPhone: '',
+        posInfo: '',
+        linkerName: ''
       },
+      geolocation: null,
       // 楠岃瘉瑙勫垯
       rules: {
       }
@@ -165,6 +106,153 @@
       api: '/business/shop',
       'field.id': 'id'
     })
+  },
+  methods: {
+    searchAddress( ){
+      if(this.geocoder && this.searchValue){
+        this.geocoder.getLocation(this.searchValue)
+      }
+    },
+    initMap (lat, long) {
+      const that = this
+      var center = new qq.maps.LatLng(lat || 39.916527, long || 116.397128)// 榛樿鍖椾含澶╁畨闂�
+      this.map = new qq.maps.Map(document.getElementById('mapContainer'), {
+        center: center,
+        zoom: 17
+      })
+      this.changePostion(long,lat)
+      qq.maps.event.addListener(this.map, 'click',
+        function (event) {
+          that.changePostion(event.latLng.lng, event.latLng.lat)
+        }
+      )
+      this.geocoder = new qq.maps.Geocoder()
+      this.geocoder.setComplete(function (result) {
+        that.changePostion(result.detail.location.lng,result.detail.location.lat)
+      })
+      // 鑻ユ湇鍔¤姹傚け璐ワ紝鍒欒繍琛屼互涓嬪嚱鏁�
+      this.geocoder.setError(function () {
+        console.log('閫嗚В鏋愬け璐�')
+      })
+    },
+    open (title, target) {
+      this.title = title
+      this.visible = true
+      this.form.provinceId = ''
+      this.form.cityId = ''
+      this.searchValue = ''
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+          this.loadProvince(this.form.provinceId, true)
+        })
+        return
+      }
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        this.loadProvince(this.form.provinceId, true)
+        const mapContainer = this.$refs.mapContainer // 鑾峰彇鍦板浘瀹瑰櫒
+        if (mapContainer) {
+          // 鍒濆鍖栧湴鍥句箣鍓嶆鏌ュ鍣ㄦ槸鍚﹀瓨鍦�
+          this.initMap(this.form.latitude,this.form.longitude)
+          // 鍒濆鍖栬吘璁湴鍥�
+        }
+      })
+    },
+    loadProvince () {
+      this.api.areaList({ pid: '1' })
+        .then(res => {
+          this.provinces = res
+        })
+    },
+    // 閫夋嫨鐪佷唤
+    selectProvince (val) {
+      this.provinces.forEach(item => {
+        if (item.id == val) {
+          this.form.provinceName = item.name
+        }
+      })
+      this.cities = []
+      this.areas = []
+      this.form.cityName = ''
+      this.form.areaCode = ''
+      this.form.cityCode = ''
+      this.form.areaName = ''
+      if(!val || val ==''){
+        return
+      }
+      this.api.areaList({ pid: val })
+        .then(res => {
+          this.cities = res
+          this.selectCity(this.form.cityId)
+        })
+    },
+    // 閫夋嫨鍩庡競
+    selectCity (val) {
+      this.cities.forEach(item => {
+        if (item.id == val) {
+          this.form.cityName = item.name
+        }
+      })
+      this.areas = []
+      this.form.areaCode = ''
+      this.form.areaName = ''
+      if(!val || val ==''){
+        return
+      }
+      this.api.areaList({ pid: val })
+        .then(res => {
+          this.areas = res
+        })
+    },
+    selectArea (val) {
+      this.areas.forEach(item => {
+        if (item.id == val) {
+          this.form.areaName = item.name
+        }
+      })
+    },
+    changeMapCenter(){
+       this.searchValue = (this.form.provinceName||'')+(this.form.cityName||'')+(this.form.areaName||'')+(this.form.address||'')
+      this.searchAddress()
+    },
+    changePostion (lng, lat) {
+      if (lng || lat) {
+        this.form.longitude = lng
+        this.form.latitude = lat
+        if(this.map){
+          if(this.marker){
+            this.marker.setMap(null)
+          }
+          var pos =new qq.maps.LatLng(lat,lng);
+          this.map.setCenter(pos)
+          this.marker= new qq.maps.Marker({
+            position: pos,
+            animation:qq.maps.MarkerAnimation.DROP,
+            map:this.map
+          })
+        }
+      }
+    }
   }
 }
 </script>
+<style scoped>
+.map-box {
+  position: relative;
+}
+.map-search {
+  z-index: 1000;
+  display: flex;
+  position: absolute;
+  top: 20px;
+  left: 120px;
+  width: 350px;
+}
+button {
+  border-radius: 0;
+}
+</style>
diff --git a/admin/src/views/business/departments.vue b/admin/src/views/business/departments.vue
new file mode 100644
index 0000000..b9c6288
--- /dev/null
+++ b/admin/src/views/business/departments.vue
@@ -0,0 +1,134 @@
+<template>
+  <TableLayout :permissions="['business:shop:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="" prop="name">
+        <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="" prop="parentId">
+        <el-input v-model="searchForm.parentName" placeholder="璇疯緭鍏ヤ笂绾х粍缁囧悕绉�/缂栫爜" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="" prop="code">
+        <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ョ粍缁囩紪鐮�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="" prop="provinceName">
+        <el-input v-model="searchForm.provinceName" placeholder="璇疯緭鍏ョ渷浠藉悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="" prop="cityName">
+        <el-input v-model="searchForm.cityName" placeholder="璇疯緭鍏ュ煄甯傚悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <el-form-item label="" prop="areaName">
+        <el-input v-model="searchForm.areaName" placeholder="璇疯緭鍏ュ尯鍘垮悕绉�" @keypress.enter.native="search"></el-input>
+      </el-form-item>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:shop:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+<!--      <ul class="toolbar" v-permissions="['business:shop:create', 'business:shop:delete']">
+        <li><el-button type="primary" @click="$refs.operaShopWindow.open('鏂板缓蹇楅偊缁勭粐淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:shop:create']">鏂板缓</el-button></li>
+        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:shop:delete']">鍒犻櫎</el-button></li>
+      </ul>-->
+      <el-table
+        v-loading="isWorking.search"
+        :data="tableData.list"
+        stripe
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column prop="搴忓彿"  width="55"><template slot-scope="scope">{{scope.$index+1}}</template></el-table-column>
+        <el-table-column prop="name" label="闂ㄥ簵鍚嶇О" min-width="150px" align="center"></el-table-column>
+        <el-table-column prop="code" label="缂栫爜" min-width="120px" align="center"></el-table-column>
+        <el-table-column prop="status" label="鐘舵��" min-width="80px">
+          <template scope="{row}">
+            <span v-if="row.status == 0" style="color: red">鍋滅敤</span>
+            <span v-if="row.status == 1" style="color: green">姝e父</span>
+            <span v-if="row.status == -1" style="color: grey">宸插垹闄�</span>
+          </template>
+        </el-table-column>
+         <el-table-column prop="namePath" label="缁勭粐璺緞" min-width="200px" align="center"></el-table-column>
+         <el-table-column prop="provinceName" label="鐪佸競鍖�" min-width="200px" align="center">
+           <template slot-scope="{row}">
+             {{row.country}}
+             {{row.provinceName}}
+             {{row.cityName}}
+             {{row.areaName}}
+             {{row.town}}
+           </template>
+         </el-table-column>
+
+        <el-table-column prop="linkerName" label="鑱旂郴浜�" min-width="100px" align="center"></el-table-column>
+        <el-table-column prop="linkPhone" label="鑱旂郴鐢佃瘽" min-width="100px" align="center"></el-table-column>
+        <el-table-column prop="address" label="璇︾粏鍦板潃" min-width="200px" align="center"></el-table-column>
+        <el-table-column prop="longitude" label="缁忕含搴�" min-width="150px"   align="center">
+          <template slot-scope="{row}">
+            [{{row.longitude}},{{row.latitude}}]
+          </template>
+        </el-table-column>
+        <!--
+                <el-table-column prop="syncDate" label="鏈�鍚庡悓姝ユ椂闂�" min-width="120px"></el-table-column>
+        -->
+        <el-table-column prop="editDate" label="鏈�鍚庢洿鏂版椂闂�" min-width="130px"
+                         align="center"></el-table-column>
+        <el-table-column
+            v-if="containPermissions(['business:member:update', 'business:member:delete'])"
+            label="鎿嶄綔"
+            min-width="100"
+            align="center"
+            fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaShopWindow.open('缂栬緫闂ㄥ簵淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">缂栬緫</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        @size-change="handleSizeChange"
+        @current-change="handlePageChange"
+        :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaShopWindow ref="operaShopWindow" @success="handlePageChange"/>
+  </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaShopWindow from '@/components/business/OperaShopWindow'
+export default {
+  name: 'Shop',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaShopWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        name: '',
+        parentName: '',
+        status: '',
+        code: '',
+        secondType: 3,
+        type: 2,
+        provinceName: '',
+        cityName: '',
+        areaName: ''
+      }
+    }
+  },
+  created () {
+    this.config({
+      module: '蹇楅偊闂ㄥ簵淇℃伅琛�',
+      api: '/business/shop',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+  }
+}
+</script>
diff --git a/server/admin/src/main/java/com/doumee/api/business/PushController.java b/server/admin/src/main/java/com/doumee/api/business/PushController.java
index 3190d34..9ee9794 100644
--- a/server/admin/src/main/java/com/doumee/api/business/PushController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/PushController.java
@@ -38,7 +38,7 @@
         ApiResponse<String> r = null;
         try {
             zbomIAMService.updateShopInfo(token,uuid,timestamp,shopList);
-            r  = ApiResponse.success("鎿嶄綔鎴愬姛");
+            r  = ApiResponse.successIam("鎿嶄綔鎴愬姛");
         }catch (BusinessException e){
             success = Constants.ONE;
             r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"鎿嶄綔澶辫触"));
@@ -47,7 +47,7 @@
             success = Constants.ONE;
             r = ApiResponse.failed("鎿嶄綔澶辫触");
         }finally {
-            zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo",Constants.ONE,"IAM鎺ㄩ�佷汉鍛樿处鍙蜂俊鎭�", token, uuid, timestamp, shopList,success, JSONObject.toJSONString(r));
+            zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo",Constants.ONE,"IAM鎺ㄩ�佺粍缁囦俊鎭�", token, uuid, timestamp, shopList,success, JSONObject.toJSONString(r));
         }
         return r;
     }
diff --git a/server/admin/src/main/java/com/doumee/api/business/ZhongTaiController.java b/server/admin/src/main/java/com/doumee/api/business/ZhongTaiController.java
new file mode 100644
index 0000000..e82ac66
--- /dev/null
+++ b/server/admin/src/main/java/com/doumee/api/business/ZhongTaiController.java
@@ -0,0 +1,48 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.zbom.ZbomZhongTaiService;
+import com.doumee.biz.zbom.model.zhongtai.ZTAreaListRequest;
+import com.doumee.biz.zbom.model.zhongtai.response.ZTAreaInfoResponse;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+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.admin.request.UpdateShopSortDTO;
+import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.business.vo.ShopTreeVo;
+import com.doumee.service.business.ShopService;
+import io.swagger.annotations.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/07/04 14:40
+ */
+@Api(tags = "涓彴瀵规帴鎺ュ彛")
+@RestController
+@RequestMapping("/business/zhongtai")
+public class ZhongTaiController extends BaseController {
+
+    @Autowired
+    private ZbomZhongTaiService zhongTaiService;
+    @ApiOperation("鏍规嵁鐖剁骇缂栫爜鑾峰彇鐪佸尯鏁版嵁")
+    @PostMapping("/areaList")
+    public ApiResponse<List<ZTAreaInfoResponse>> areaList (@RequestBody ZTAreaListRequest param){
+        return ApiResponse.success(zhongTaiService.getAreaList(param));
+    }
+}
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
index 5ac9ef0..b59e848 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
@@ -87,7 +87,7 @@
                 shop.setCreateDate(date);
                 addShops.add(initShopInfo(shop,model,date));
             }else {
-                segDelOrgIds.add(shop.getOrgId());
+                segDelOrgIds.add(shop.getCode());
                 updateShops.add(initShopInfo(shop,model,date));
             }
             //澶勭悊鍝佺被鏁版嵁閫昏緫
@@ -194,7 +194,7 @@
         data.setCreateDate(date);
         data.setEditDate(date);
         data.setIsdeleted(Constants.ZERO);
-        data.setOrgId(shop.getOrgId());
+        data.setOrgId(shop.getCode());
         data.setSegId(model.getSegment1());
         data.setSegId2(model.getSegment2());
         data.setSegId3(model.getSegment3());
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
index b3adea3..2f20d30 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
@@ -11,24 +11,30 @@
 @Data
 public class ZTZbDecoInfoResponse implements Serializable {
     private String author;
-    /**
-     * 鏀惰棌閲�
-     */
     private long collectCount;
-    private String id;
     /**
-     * 鏄惁鏀惰棌 true:鏀惰棌  false:鏈敹钘�
+     * 鍐呭
+     */
+    private String content;
+    /**
+     * 鍐呭绫诲瀷(鏂囨湰text銆侀摼鎺ink銆佽棰憊ideo銆佷骇鍝乸roduct)
+     */
+    private String contentType;
+    /**
+     * 灏侀潰鍥�
+     */
+    private String coverImage;
+    /**
+     * id
+     */
+    private String id;
+    private String intro;
+    /**
+     * 鏄惁鏀惰棌
      */
     private boolean isCollection;
     private String langCode;
-    /**
-     * 鍠滄鏁�
-     */
     private long likeCount;
-    /**
-     * 鏂囩珷鍦板潃
-     */
-    private String linkUrl;
     private String publishDepartment;
     /**
      * 鍙戝竷鏃ユ湡
@@ -40,9 +46,5 @@
      * 鏍囬
      */
     private String title;
-    /**
-     * 鏌ョ湅閲�
-     */
-    private long viewCount;
-
+    private String viewCount;
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CategorySegServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CategorySegServiceImpl.java
index 36afa7f..a5a95be 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CategorySegServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CategorySegServiceImpl.java
@@ -160,6 +160,9 @@
         if (pageWrap.getModel().getScode() != null) {
             queryWrapper.lambda().eq(CategorySeg::getScode, pageWrap.getModel().getScode());
         }
+        if (pageWrap.getModel().getOrgId() != null) {
+            queryWrapper.lambda().eq(CategorySeg::getOrgId, pageWrap.getModel().getOrgId());
+        }
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());

--
Gitblit v1.9.3