admin/public/index.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/api/business/shop.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/components/business/OperaShopWindow.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/business/departments.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/admin/src/main/java/com/doumee/api/business/PushController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/admin/src/main/java/com/doumee/api/business/ZhongTaiController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
server/service/src/main/java/com/doumee/service/business/impl/CategorySegServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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> 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`, { 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="请è¾å ¥é¨é¨id" 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客ç»ç»id" prop="orgOldId"> <el-input v-model="form.orgOldId" placeholder="请è¾å ¥é¨é¨U客ç»ç»id" v-trim/> </el-form-item> <el-form-item label="ä¸çº§ç»ç»Id" prop="parentId"> <el-input v-model="form.parentId" placeholder="请è¾å ¥ä¸çº§ç»ç»Id" 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="请è¾å ¥ç»ç»SFåæ¾ç " 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="请è¾å ¥ä¼ä¸å¾®ä¿¡ç»ç»ID" v-trim/> </el-form-item> <el-form-item label="ééé¨é¨ID" prop="dingdingId"> <el-input v-model="form.dingdingId" placeholder="请è¾å ¥ééé¨é¨ID" 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="æå±å ³èFç " prop="fcode"> <el-input v-model="form.fcode" placeholder="请è¾å ¥æå±å ³èFç " v-trim/> </el-form-item> <el-form-item label="æå±å ³èSç " prop="scode"> <el-input v-model="form.scode" placeholder="请è¾å ¥æå±å ³èSç " v-trim/> </el-form-item> <el-form-item label="ZCODE" prop="zcode"> <el-input v-model="form.zcode" placeholder="请è¾å ¥ZCODE" v-trim/> </el-form-item> <el-form-item label="å ³èSç " prop="glCode"> <el-input v-model="form.glCode" placeholder="请è¾å ¥å ³èSç " v-trim/> </el-form-item> <el-form-item label="å ³èSç åç§°" prop="glName"> <el-input v-model="form.glName" placeholder="请è¾å ¥å ³èSç åç§°" 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> 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">æ£å¸¸</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> 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; } 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)); } } 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()); 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ã龿¥linkãè§é¢videoã产åproduct) */ 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; } 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());