From a52f8c508d08014d1a153cfc02e12b5fc185a3a4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 11 七月 2024 15:28:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/components/common/RichEditor.vue | 16
admin/src/views/business/newsDz.vue | 32
server/service/src/main/java/com/doumee/dao/business/model/News.java | 7
server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java | 6
server/service/src/main/java/com/doumee/core/utils/QrCodeUtils.java | 5
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java | 38 +
server/service/src/main/java/com/doumee/dao/business/model/Users.java | 20
server/service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java | 8
server/admin/src/main/java/com/doumee/api/business/PushController.java | 2
admin/src/views/business/categorySeg.vue | 127 +---
admin/vue.config.js | 2
admin/src/api/business/multifile.js | 5
admin/src/components/business/OperaNewsDzWindow.vue | 126 +++++
admin/src/components/system/dict/OperaDictDataWindow.vue | 5
admin/src/components/common/upload.vue | 133 +++--
admin/src/views/business/news.vue | 57 +
server/service/src/main/java/com/doumee/core/utils/Constants.java | 112 +++-
admin/src/components/system/dict/DictDataManagerWindow.vue | 5
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 150 ++++--
server/service/src/main/resources/mappers/SystemDictDataMapper.xml | 4
server/service/src/main/java/com/doumee/dao/business/model/Multifile.java | 8
admin/.env.development | 1
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java | 222 ++++++++-
admin/src/components/business/OperaNewsWindow.vue | 172 +++++--
24 files changed, 868 insertions(+), 395 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 313f893..aa3a833 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -1,2 +1,3 @@
# 寮�鍙戠幆澧冮厤缃�
NODE_ENV = 'development'
+VUE_APP_BASE_API = 'http://localhost:10028'
diff --git a/admin/src/api/business/multifile.js b/admin/src/api/business/multifile.js
index 1fd3d9d..059a8a0 100644
--- a/admin/src/api/business/multifile.js
+++ b/admin/src/api/business/multifile.js
@@ -15,6 +15,11 @@
})
}
+export function uploadFile (data) {
+ return request.post('/public/upload', data, {
+ trim: true
+ })
+}
// 鍒涘缓
export function create (data) {
return request.post('/business/multifile/create', data)
diff --git a/admin/src/components/business/OperaNewsDzWindow.vue b/admin/src/components/business/OperaNewsDzWindow.vue
new file mode 100644
index 0000000..2382ff8
--- /dev/null
+++ b/admin/src/components/business/OperaNewsDzWindow.vue
@@ -0,0 +1,126 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="60%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鏍囬" prop="title" required>
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍓爣棰�" prop="subTitle">
+ <el-input type="textarea" v-model="form.subTitle" placeholder="璇疯緭鍏ュ壇鏍囬" v-trim maxLength="200" />
+ </el-form-item>
+ <el-form-item label="鐘舵��" prop="status" required>
+ <el-radio-group v-model="form.status" >
+ <el-radio :label="0" >灞曠ず</el-radio>
+ <el-radio :label="1">涓嶅睍绀�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鍒楄〃鍥�/瑙嗛" prop="files" >
+ <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="form.fileList" accept=".png,.jpg,.jpeg,.mp4" folder="news" @loading="loading = true" @success="fileResult($event)" />
+ </el-form-item>
+ <el-form-item label="璺宠浆绫诲瀷" prop="linkType" required>
+ <el-radio-group v-model="form.linkType" >
+ <el-radio :label="0" >瀵屾枃鏈�</el-radio>
+ <el-radio :label="1">澶栭摼</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item :label="form.linkType == 1?'澶栬仈鍦板潃':'鍐呭'" prop="content">
+ <RichEditor v-if="form.linkType != 1" :richData="form.content" :styleEditor="'border: 1px solid #ccc;display: inline-block;'" @getWangedditor="getWangedditor" :readonly="false"/>
+ <el-input v-else v-model="form.content" type="tex" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+
+ <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
+ <el-input v-model="form.sortnum" type="number" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" type="tex" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import RichEditor from '@/components/common/RichEditor'
+import upload from '@/components/common/upload'
+export default {
+ name: 'OperaNewsWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, RichEditor, upload },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ remark: '',
+ title: '',
+ subTitle: '',
+ sortnum: '',
+ content: '',
+ linkType: 0,
+ status: 0,
+ fileList: [],
+ type: 1
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ title: [{ required: true, message: '璇疯緭鍏ユ爣棰�' }],
+ status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }],
+ linkType: [{ required: true, message: '璇烽�夋嫨璺宠浆绫诲瀷' }]
+ }
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/news',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ getWangedditor (val) {
+ this.form.content = val
+ },
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.form.fileList = []
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.form.fileType = target.fileType || 0
+ const files = target.fileList || []
+ if (files.length > 0) {
+ this.form.fileList.push(files[0])
+ }
+ })
+ },
+ delFile (index) {
+ this.form.fileList.splice(index, 1)
+ },
+ fileResult (e) {
+ this.form.fileList = this.form.fileList || []
+ this.form.fileList.push({
+ fileurlFull: e.url,
+ fileurl: e.imgaddr,
+ name: e.originname,
+ type: e.type
+ })
+ }
+ }
+}
+</script>
diff --git a/admin/src/components/business/OperaNewsWindow.vue b/admin/src/components/business/OperaNewsWindow.vue
index 9db6ae7..548f327 100644
--- a/admin/src/components/business/OperaNewsWindow.vue
+++ b/admin/src/components/business/OperaNewsWindow.vue
@@ -1,102 +1,82 @@
<template>
<GlobalWindow
:title="title"
+ width="60%"
: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/>
+ <el-form-item label="鏂囨" prop="title" required>
+ <el-input type="textarea" v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim maxlength="200"/>
</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="publishDate" required>
+ <el-date-picker
+ v-model="form.publishDate"
+ type="datetime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ format="yyyy-MM-dd HH:mm:ss"
+ placeholder="閫夋嫨鏃堕棿">
+ </el-date-picker>
</el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ <el-form-item label="鐘舵��" prop="status" required>
+ <el-radio-group v-model="form.status" >
+ <el-radio :label="0" >灞曠ず</el-radio>
+ <el-radio :label="1">涓嶅睍绀�</el-radio>
+ </el-radio-group>
</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 label="闄勪欢绫诲瀷" prop="fileType" required>
+ <el-radio-group v-model="form.fileType" >
+ <el-radio :label="0" >鍥剧墖</el-radio>
+ <el-radio :label="1">瑙嗛</el-radio>
+ </el-radio-group>
</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 label="鍥鹃泦涓婁紶 锛堟渶澶�9寮狅級" v-if="form.fileType !=1">
+ <upload width="100px" height="100px" :max-length="9" @dele="delFile" :list="fileImgList" accept=".png,.jpg,.jpeg" folder="news" @loading="loading = true" @success="fileResult($event)" />
</el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ <el-form-item label="瑙嗛涓婁紶锛堝崟涓級" v-if="form.fileType === 1">
+ <upload width="100px" height="100px" :max-length="1" @dele="delFile" :list="fileVideoList" accept=".mp4" folder="news" @loading="loading = true" @success="fileResult($event)" />
</el-form-item>
- <el-form-item label="鏍囬" prop="title">
- <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
+ <el-form-item label="鎺掑簭鐮侊紙鍗囧簭锛�" prop="sortnum">
+ <el-input v-model="form.sortnum" type="number" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
</el-form-item>
- <el-form-item label="鍓爣棰�" prop="subTitle">
- <el-input v-model="form.subTitle" placeholder="璇疯緭鍏ュ壇鏍囬" v-trim/>
- </el-form-item>
- <el-form-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
- </el-form-item>
- <el-form-item label="鍐呭" prop="content">
- <el-input v-model="form.content" placeholder="璇疯緭鍏ュ唴瀹�" v-trim/>
- </el-form-item>
- <el-form-item label="璺宠浆绫诲瀷 0瀵屾枃鏈� 1澶栭摼" prop="linkType">
- <el-input v-model="form.linkType" placeholder="璇疯緭鍏ヨ烦杞被鍨� 0瀵屾枃鏈� 1澶栭摼" v-trim/>
- </el-form-item>
- <el-form-item label="鐘舵�� 0灞曠ず 1涓嶅睍绀�" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0灞曠ず 1涓嶅睍绀�" v-trim/>
- </el-form-item>
- <el-form-item label="娴忚閲�" prop="lookNum">
- <el-input v-model="form.lookNum" placeholder="璇疯緭鍏ユ祻瑙堥噺" v-trim/>
- </el-form-item>
- <el-form-item label="涓嬭浇閲�" prop="donwloadNum">
- <el-input v-model="form.donwloadNum" placeholder="璇疯緭鍏ヤ笅杞介噺" v-trim/>
- </el-form-item>
- <el-form-item label="鏈�杩戝彂甯冩椂闂�" prop="publishDate">
- <el-date-picker v-model="form.publishDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戝彂甯冩椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏈�杩戝彂甯冧汉浜虹紪鐮�(鍏宠仈system_user)" prop="publishUserid">
- <el-input v-model="form.publishUserid" placeholder="璇疯緭鍏ユ渶杩戝彂甯冧汉浜虹紪鐮�(鍏宠仈system_user)" v-trim/>
- </el-form-item>
- <el-form-item label="鏈�杩戝彂甯冨娉�" prop="publishInfo">
- <el-input v-model="form.publishInfo" placeholder="璇疯緭鍏ユ渶杩戝彂甯冨娉�" v-trim/>
- </el-form-item>
- <el-form-item label="绱犳潗绫诲瀷 0鎺ㄥ箍璧勮 1瀹氬埗鏈嶅姟" prop="type">
- <el-input v-model="form.type" placeholder="璇疯緭鍏ョ礌鏉愮被鍨� 0鎺ㄥ箍璧勮 1瀹氬埗鏈嶅姟" v-trim/>
+ <el-form-item label="澶囨敞" prop="publishInfo">
+ <el-input type="textarea" v-model="form.publishInfo" placeholder="璇疯緭鍏ュ彂甯冨娉�" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
</template>
-
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import upload from '@/components/common/upload'
export default {
name: 'OperaNewsWindow',
extends: BaseOpera,
- components: { GlobalWindow },
+ components: { GlobalWindow, upload },
data () {
return {
// 琛ㄥ崟鏁版嵁
+ loading: false,
form: {
id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
title: '',
- subTitle: '',
sortnum: '',
- content: '',
- linkType: '',
- status: '',
- lookNum: '',
- donwloadNum: '',
+ status: 0,
publishDate: '',
- publishUserid: '',
publishInfo: '',
- type: ''
+ fileList: [],
+ fileType: 0,
+ type: 0
},
+ fileImgList: [],
+ fileVideoList: [],
// 楠岃瘉瑙勫垯
rules: {
+ title: [{ required: true, message: '璇疯緭鍏ユ枃妗�' }],
+ publishDate: [{ required: true, message: '璇烽�夋嫨鍙戝竷鏃堕棿' }],
+ status: [{ required: true, message: '璇烽�夋嫨鐘舵��' }],
+ fileType: [{ required: true, message: '璇烽�夋嫨闄勪欢绫诲瀷' }]
}
}
},
@@ -105,6 +85,74 @@
api: '/business/news',
'field.id': 'id'
})
+ },
+ methods: {
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.form.fileList = []
+ this.fileImgList= []
+ this.fileVideoList = []
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.form.fileType = target.fileType || 0
+ const files = target.fileList || []
+ if(target.fileType === 1){
+ if(files.length>0){
+ this.fileVideoList.push(files[0])
+ }
+ }else {
+ files.forEach(item => {
+ this.fileImgList.push(item)
+ })
+ }
+ })
+ },
+ getWangedditor (val) {
+ this.form.content = val
+ },
+ delFile (index) {
+ if(this.form.fileType === 1){
+ this.fileVideoList.splice(index, 1)
+ this.form.fileList =this.fileVideoList
+ }else{
+ this.fileImgList.splice(index, 1)
+ this.form.fileList =this.fileImgList
+ }
+ },
+ fileResult (e) {
+ if(this.form.fileType === 1){
+ this.fileVideoList = this.fileVideoList||[]
+ this.fileVideoList.push({
+ fileurlFull: e.url,
+ fileurl: e.imgaddr,
+ name: e.originname,
+ type: e.type
+ })
+ this.form.fileList =this.fileVideoList
+ }else{
+ this.fileImgList = this.fileImgList||[]
+ this.fileImgList.push({
+ fileurlFull: e.url,
+ fileurl: e.imgaddr,
+ name: e.originname,
+ type: e.type
+ })
+ this.form.fileList =this.fileImgList
+ }
+ console.log(this.form.fileList)
+ }
}
}
</script>
diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue
index bdcf1bf..5aeb4bf 100644
--- a/admin/src/components/common/RichEditor.vue
+++ b/admin/src/components/common/RichEditor.vue
@@ -85,7 +85,7 @@
] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
},*/
// 涓婁紶鍥剧墖鍒嗙粍
- /* {
+ {
key: 'img-style', // 蹇呭~锛岃浠� group 寮�澶�
title: '鍥剧墖', // 蹇呭~
// iconSvg: '<svg>....</svg>', // 鍙��
@@ -98,9 +98,9 @@
"imageWidth50", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮50
"imageWidth100", // 鍥剧墖瀹藉害鐩稿浜庣紪杈戝櫒瀹藉害鐨勭櫨鍒嗘瘮100
] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
- },*/
+ },
// 瑙嗛鍒嗙粍
- /* {
+ {
key: 'video-style', // 蹇呭~锛岃浠� group 寮�澶�
title: '瑙嗛', // 蹇呭~
// iconSvg: '<svg>....</svg>', // 鍙��
@@ -109,7 +109,7 @@
"uploadVideo", // 涓婁紶瑙嗛
"editVideoSize", // 淇敼瑙嗛灏哄
] // 涓嬬骇鑿滃崟 key 锛屽繀濉�
- },*/
+ },
"fullScreen", // 鍏ㄥ睆
],
excludeKeys: [ // 闅愯棌鎸囧畾鐨勮彍鍗曢」
@@ -128,7 +128,7 @@
MENU_CONF: {
// 鍥剧墖涓婁紶
uploadImage: {
- server: process.env.VUE_APP_BASE_API + "/common/upload",
+ server: process.env.VUE_APP_API_PREFIX + '/public/upload?folder=richeditor',
fieldName: 'file',
// 鍗曚釜鏂囦欢鐨勬渶澶т綋绉檺鍒讹紝榛樿涓� 2M
maxFileSize: 10 * 1024 * 1024, // 10M
@@ -177,7 +177,7 @@
// message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
// });
}
- insertFn(res.url, res.originalFilename, res.newFileName);
+ insertFn(res.data.url, res.data.originname, res.data.imgname);
},
// 鍗曚釜鏂囦欢涓婁紶鎴愬姛涔嬪悗
@@ -201,7 +201,7 @@
// 瑙嗛涓婁紶
uploadVideo: {
fieldName: 'file',
- server: process.env.VUE_APP_BASE_API + "/common/upload",
+ server: process.env.VUE_APP_API_PREFIX + '/public/upload?folder=richeditor',
// 鍗曚釜鏂囦欢鐨勬渶澶т綋绉檺鍒讹紝榛樿涓� 10M
maxFileSize: 50 * 1024 * 1024, // 50M
// 鏈�澶氬彲涓婁紶鍑犱釜鏂囦欢锛岄粯璁や负 5
@@ -243,7 +243,7 @@
// message: `${res.data.originalName} 涓婁紶澶辫触锛岃閲嶆柊灏濊瘯`
// });
}
- insertFn(res.data.link, res.data.link);
+ insertFn(res.data.url, res.data.url);
},
// 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
onProgress(progress) {
diff --git a/admin/src/components/common/upload.vue b/admin/src/components/common/upload.vue
index 22d22f9..62a855f 100644
--- a/admin/src/components/common/upload.vue
+++ b/admin/src/components/common/upload.vue
@@ -5,79 +5,82 @@
<div class="dele" @click="deleItem(index)">
<i class="el-icon-close"></i>
</div>
- <img :src="item.url" v-if="fileType(item.url) === 'img'" />
- <video controls autoplay :src="item.url" v-else></video>
+ <img :src="item.fileurlFull" v-if="fileType(item.fileurlFull) === 'img'" />
+ <video controls autoplay :src="item.fileurlFull" v-else></video>
</div>
- <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
+ <div v-if="list ==null || list.length == 0 || list.length < maxLength" class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
<i class="el-icon-plus"></i>
</div>
</div>
- <input type="file" ref="file" :accept="accept" @change="getFile" />
+ <input type="file" ref="file" :accept="accept" @change="getFile" />
</div>
</template>
<script>
- import axios from 'axios';
- export default {
- props: {
- width: {
- type: String,
- default: '90px'
- },
- height: {
- type: String,
- default: '90px'
- },
- list: {
- type: Array,
- default: []
- },
- accept: {
- type: String,
- default: ''
- },
- folder: {
- type: String,
- default: ''
- }
- },
- data() {
- return {
- uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
- }
- },
-
- methods: {
- fileType(url) {
- if (url.indexOf('.mp4') !== -1) {
- return 'video'
- } else {
- return 'img'
- }
- },
- getFile(e) {
- if (e.target && e.target.files.length > 0) {
- this.$emit('loading')
- const formdate = new FormData()
- formdate.append('file', e.target.files[0])
- formdate.append('folder', this.folder)
- axios.post(this.uploadImgUrl, formdate)
- .then(res => {
- this.$emit('success', res.data.data)
- })
- .catch(e => {
- this.$message.error(e)
- })
- .finally(() => {
- this.$refs.file.value = null
- })
- }
- },
- deleItem(index) {
- this.$emit('dele', index)
- }
- }
+import axios from 'axios'
+export default {
+ props: {
+ width: {
+ type: String,
+ default: '90px'
+ },
+ height: {
+ type: String,
+ default: '90px'
+ },
+ list: {
+ type: Array,
+ default: []
+ },
+ accept: {
+ type: String,
+ default: ''
+ },
+ folder: {
+ type: String,
+ default: ''
+ },
+ maxLength: {
+ type: Number,
+ default: 9999
}
+ },
+ data () {
+ return {
+ uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
+ }
+ },
+ methods: {
+ fileType (url) {
+ if (url && url.indexOf('.mp4') !== -1) {
+ return 'video'
+ } else {
+ return 'img'
+ }
+ },
+ getFile (e) {
+ if (e.target && e.target.files.length > 0) {
+ this.$emit('loading')
+ const formdate = new FormData()
+ formdate.append('file', e.target.files[0])
+ formdate.append('folder', this.folder)
+ axios.post(this.uploadImgUrl, formdate)
+ .then(res => {
+ this.$emit('success', res.data.data)
+ })
+ .catch(e => {
+ this.$message.error(e)
+ })
+ .finally(() => {
+ this.$refs.file.value = null
+ })
+ }
+ },
+ deleItem (index) {
+ this.$emit('dele', index)
+ }
+ }
+}
</script>
<style lang="scss" scoped>
@@ -108,6 +111,7 @@
margin: 0 !important;
}
.dele {
+ z-index: 10000;
position: absolute;
right: 0;
top: 0;
@@ -138,4 +142,3 @@
}
}
</style>
-
diff --git a/admin/src/components/system/dict/DictDataManagerWindow.vue b/admin/src/components/system/dict/DictDataManagerWindow.vue
index 86c092a..26b133a 100644
--- a/admin/src/components/system/dict/DictDataManagerWindow.vue
+++ b/admin/src/components/system/dict/DictDataManagerWindow.vue
@@ -1,7 +1,7 @@
<template>
<GlobalWindow
:title="dictName + '鏁版嵁绠$悊'"
- width="78%"
+ width="100%"
:visible.sync="visible"
:with-footer="false"
>
@@ -19,7 +19,7 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="label" label="鏁版嵁鏍囩" min-width="100px"></el-table-column>
+ <el-table-column prop="label" label="鏁版嵁鏍囩" min-width="200px"></el-table-column>
<el-table-column prop="code" label="鏁版嵁鍊�" min-width="100px">
<template slot-scope="{row}">
<div v-if="row.code || row.code.length>500" >
@@ -37,6 +37,7 @@
<el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
<template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
</el-table-column>
+ <el-table-column prop="remark" label="璇存槑" min-width="150px"></el-table-column>
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
<el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
<el-table-column
diff --git a/admin/src/components/system/dict/OperaDictDataWindow.vue b/admin/src/components/system/dict/OperaDictDataWindow.vue
index ec5ba6a..65caa88 100644
--- a/admin/src/components/system/dict/OperaDictDataWindow.vue
+++ b/admin/src/components/system/dict/OperaDictDataWindow.vue
@@ -21,6 +21,9 @@
<el-switch v-model="form.disabled" :active-value="false" :inactive-value="true"/>
<span class="status-text">{{form.disabled | disabledText}}</span>
</el-form-item>
+ <el-form-item label="璇存槑" prop="remark">
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ暟鎹鏄�" v-trim />
+ </el-form-item>
</el-form>
</GlobalWindow>
</template>
@@ -43,6 +46,7 @@
code: '',
label: '',
disabled: false,
+ remark: '',
istext: false
},
// 楠岃瘉瑙勫垯
@@ -68,6 +72,7 @@
open (title, dictId, target) {
this.title = title
this.visible = true
+ this.form.remark=''
// 鏂板缓
if (target == null) {
this.$nextTick(() => {
diff --git a/admin/src/views/business/categorySeg.vue b/admin/src/views/business/categorySeg.vue
index 185d9f2..1057634 100644
--- a/admin/src/views/business/categorySeg.vue
+++ b/admin/src/views/business/categorySeg.vue
@@ -2,38 +2,16 @@
<TableLayout :permissions="['business:categoryseg:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="涓婚敭" prop="id">
- <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
<el-form-item label="鍝佺被缂栫爜" prop="unitCode">
- <el-input v-model="searchForm.unitCode" placeholder="璇疯緭鍏ュ搧绫荤紪鐮�" @keypress.enter.native="search"></el-input>
+ <el-select v-model="searchForm.unitCode" @change="search" clearable placeholder="鎵�灞炲搧鐗�">
+ <el-option v-for="(item) in unitList " :key="item.code" :label="item.name" :value="item.code"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鎴樺尯缂栫爜" prop="segId">
- <el-input v-model="searchForm.segId" placeholder="璇疯緭鍏ユ垬鍖虹紪鐮�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="F鐮�" prop="orgId">
+ <el-input v-model="searchForm.orgId" placeholder="璇疯緭鍏鐮�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鐪佸尯缂栫爜" prop="segId2">
- <el-input v-model="searchForm.segId2" placeholder="璇疯緭鍏ョ渷鍖虹紪鐮�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="甯傚尯缂栫爜" prop="segId3">
- <el-input v-model="searchForm.segId3" placeholder="璇疯緭鍏ュ競鍖虹紪鐮�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="S鐮�" prop="scode">
+ <el-input v-model="searchForm.scode" placeholder="璇疯緭鍏鐮�" @keypress.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="鎴樺尯鍚嶇О" prop="segName">
<el-input v-model="searchForm.segName" placeholder="璇疯緭鍏ユ垬鍖哄悕绉�" @keypress.enter.native="search"></el-input>
@@ -43,15 +21,6 @@
</el-form-item>
<el-form-item label="甯傚尯鍚嶇О" prop="segName3">
<el-input v-model="searchForm.segName3" placeholder="璇疯緭鍏ュ競鍖哄悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏈�杩戝悓姝ユ椂闂�" prop="syncDate">
- <el-date-picker v-model="searchForm.syncDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶杩戝悓姝ユ椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏈�杩戝悓姝ュ娉�" prop="syncInfo">
- <el-input v-model="searchForm.syncInfo" placeholder="璇疯緭鍏ユ渶杩戝悓姝ュ娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀惰揣鍦板潃" prop="shipToAddress">
- <el-input v-model="searchForm.shipToAddress" placeholder="璇疯緭鍏ユ敹璐у湴鍧�" @keypress.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="鏀惰揣浜�" prop="shipToPerson">
<el-input v-model="searchForm.shipToPerson" placeholder="璇疯緭鍏ユ敹璐т汉" @keypress.enter.native="search"></el-input>
@@ -67,47 +36,33 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:categoryseg:create', 'business:categoryseg:delete']">
- <li><el-button type="primary" @click="$refs.operaCategorySegWindow.open('鏂板缓蹇楅偊钀ラ攢鍖哄煙鍝佺被淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:categoryseg:create']">鏂板缓</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:categoryseg:delete']">鍒犻櫎</el-button></li>
- </ul>
<el-table
v-loading="isWorking.search"
:data="tableData.list"
stripe
@selection-change="handleSelectionChange"
>
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
- <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="unitCode" label="鍝佺被缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="segId" label="鎴樺尯缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="segId2" label="鐪佸尯缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="segId3" label="甯傚尯缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="segName" label="鎴樺尯鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="segName2" label="鐪佸尯鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="segName3" label="甯傚尯鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="syncDate" label="鏈�杩戝悓姝ユ椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="syncInfo" label="鏈�杩戝悓姝ュ娉�" min-width="100px"></el-table-column>
- <el-table-column prop="shipToAddress" label="鏀惰揣鍦板潃" min-width="100px"></el-table-column>
- <el-table-column prop="shipToPerson" label="鏀惰揣浜�" min-width="100px"></el-table-column>
- <el-table-column prop="shipToPhone" label="鏀惰揣浜虹數璇�" min-width="100px"></el-table-column>
- <el-table-column
- v-if="containPermissions(['business:categoryseg:update', 'business:categoryseg:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaCategorySegWindow.open('缂栬緫蹇楅偊钀ラ攢鍖哄煙鍝佺被淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:categoryseg:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:categoryseg:delete']">鍒犻櫎</el-button>
- </template>
+ <el-table-column type="selection" width="55" fixed></el-table-column>
+ <el-table-column label="S鐮�" prop="scode" fixed min-width="80px"></el-table-column>
+ <el-table-column label="涓�浣撳晢" prop="sname" fixed min-width="180px"></el-table-column>
+ <el-table-column label="F鐮�" prop="orgId" fixed min-width="80px"></el-table-column>
+ <el-table-column label="鍔犵洘鍟�" prop="orgName" fixed min-width="180px"></el-table-column>
+ <el-table-column prop="unitCode" label="鍝佺被" min-width="150px">
+ <template slot-scope="{row}"> {{row.unitCode}} / {{row.unitName}}</template>
</el-table-column>
+ <el-table-column prop="segId" label="鎴樺尯" min-width="150px">
+ <template slot-scope="{row}"> {{row.segId}} / {{row.segName}}</template>
+ </el-table-column>
+ <el-table-column prop="segId2" label="鐪佸尯" min-width="150px">
+ <template slot-scope="{row}"> {{row.segId2}} / {{row.segName2}}</template>
+ </el-table-column>
+ <el-table-column prop="segId3" label="鐗囧尯" min-width="150px">
+ <template slot-scope="{row}"> {{row.segId3}} / {{row.segName3}}</template>
+ </el-table-column>
+ <el-table-column prop="shipToPerson" label="鏀惰揣浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="shipToPhone" label="鏀惰揣浜虹數璇�" min-width="120px"></el-table-column>
+ <el-table-column prop="shipToAddress" label="鏀惰揣鍦板潃" min-width="250px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="150px"></el-table-column>
</el-table>
<pagination
@size-change="handleSizeChange"
@@ -126,33 +81,22 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaCategorySegWindow from '@/components/business/OperaCategorySegWindow'
+import { getUnitList } from '@/api/business/segments'
export default {
name: 'CategorySeg',
extends: BaseTable,
components: { TableLayout, Pagination, OperaCategorySegWindow },
data () {
return {
+ unitList:[],
// 鎼滅储
searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
unitCode: '',
- segId: '',
- segId2: '',
- segId3: '',
segName: '',
segName2: '',
segName3: '',
- syncDate: '',
- syncInfo: '',
- shipToAddress: '',
- shipToPerson: '',
- shipToPhone: ''
+ scode: '',
+ orgId: ''
}
}
},
@@ -163,7 +107,16 @@
'field.id': 'id',
'field.main': 'id'
})
+ this.loadUnitList()
this.search()
+ },
+ methods: {
+ loadUnitList () {
+ getUnitList()
+ .then(data => {
+ this.unitList = data
+ })
+ }
}
}
</script>
diff --git a/admin/src/views/business/news.vue b/admin/src/views/business/news.vue
index e42bac7..099963d 100644
--- a/admin/src/views/business/news.vue
+++ b/admin/src/views/business/news.vue
@@ -20,7 +20,7 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:news:create', 'business:news:delete']">
- <li><el-button type="primary" @click="$refs.operaNewsWindow.open('鏂板缓璧勮鍜屽畾鍒舵湇鍔′俊鎭〃')" icon="el-icon-plus" v-permissions="['business:news:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" @click="$refs.operaNewsWindow.open('鏂板缓鎺ㄥ箍璧勮')" icon="el-icon-plus" v-permissions="['business:news:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:news:delete']">鍒犻櫎</el-button></li>
</ul>
<el-table
@@ -30,29 +30,38 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>
- <el-table-column prop="subTitle" label="鍓爣棰�" min-width="100px"></el-table-column>
- <el-table-column prop="linkType" label="璺宠浆绫诲瀷" min-width="100px">
+ <el-table-column prop="title" label="鏂囨" fixed min-width="300px"></el-table-column>
+ <el-table-column prop="fileList" label="闄勪欢" align="center" fixed min-width="250px">>
<template slot-scope="{row}">
- <span v-if="row.linkType ==0">瀵屾枃鏈�</span>
- <span v-if="row.linkType ==1">澶栭摼</span>
+ <div v-if="row.fileType!=1 && row.fileList!=null && row.fileList.length" class="image-container">
+ <div v-for="(item) in row.fileList" :key="item.id" >
+ <el-image
+ v-if="item.fileurlFull && item.type !=1"
+ class="image-item"
+ :src="item.fileurlFull"
+ fit="fill"
+ :preview-src-list="[item.fileurlFull]">
+ </el-image>
+ </div>
+ </div>
+ <div v-if="row.fileType == 1 && row.fileList!=null && row.fileList.length" class="image-container">
+ <video v-if="row.fileList[0].fileurlFull" style="width: 60px;height: 60px" controls autoplay :src="row.fileList[0].fileurlFull"></video>
+ </div>
</template>
</el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <el-table-column prop="publishDate" label="鍙戝竷鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��" min-width="80px">
<template slot-scope="{row}">
- <span v-if="row.status ==1">涓嶅睍绀�</span>
- <span v-if="row.status ==0">灞曠ず</span>
+ <span v-if="row.status ==1" style="color:red;">涓嶅睍绀�</span>
+ <span v-if="row.status ==0" style="color:green;">灞曠ず</span>
</template>
</el-table-column>
+ <el-table-column prop="publishInfo" label="鍙戝竷澶囨敞" min-width="150px"></el-table-column>
<el-table-column prop="lookNum" label="娴忚閲�" min-width="80px"></el-table-column>
<el-table-column prop="donwloadNum" label="涓嬭浇閲�" min-width="80px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="80px"></el-table-column>
<el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
- <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="publishDate" label="鏈�杩戝彂甯冩椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="publishUserName" label="鏈�杩戝彂甯冧汉" min-width="100px"></el-table-column>
- <el-table-column prop="publishInfo" label="鏈�杩戝彂甯冨娉�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:news:update', 'business:news:delete'])"
label="鎿嶄綔"
@@ -60,7 +69,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaNewsWindow.open('缂栬緫璧勮鍜屽畾鍒舵湇鍔′俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:news:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.operaNewsWindow.open('缂栬緫鎺ㄥ箍璧勮', row)" icon="el-icon-edit" v-permissions="['business:news:update']">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:news:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
@@ -107,3 +116,19 @@
}
}
</script>
+
+<style scoped>
+.image-container {
+ display: flex; /* 璁惧畾涓� Flexbox 甯冨眬 */
+ flex-wrap: wrap; /* 鍏佽鎹㈣ */
+ justify-content: center; /* 姘村钩鏂瑰悜涓婄殑闂撮殧鍒嗗竷 */
+ align-items: flex-start; /* 鍨傜洿鏂瑰悜涓婄殑椤圭洰瀵归綈 */
+}
+
+.image-item {
+ height: 60px;
+ width: 60px;
+ margin-right: 10px; /* 鍙宠竟璺濓紝浣垮緱鍥剧墖涔嬮棿鏈夐棿闅� */
+ margin-bottom: 10px; /* 搴曢儴杈硅窛锛屼娇寰楀浘鐗囪兘澶熸崲琛� */
+}
+</style>
diff --git a/admin/src/views/business/newsDz.vue b/admin/src/views/business/newsDz.vue
index 6ced12e..6ff929b 100644
--- a/admin/src/views/business/newsDz.vue
+++ b/admin/src/views/business/newsDz.vue
@@ -20,7 +20,7 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:news:create', 'business:news:delete']">
- <li><el-button type="primary" @click="$refs.operaNewsWindow.open('鏂板缓璧勮鍜屽畾鍒舵湇鍔′俊鎭〃')" icon="el-icon-plus" v-permissions="['business:news:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" @click="$refs.operaNewsWindow.open('鏂板缓瀹氬埗鏈嶅姟淇℃伅')" icon="el-icon-plus" v-permissions="['business:news:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:news:delete']">鍒犻櫎</el-button></li>
</ul>
<el-table
@@ -30,8 +30,22 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>
- <el-table-column prop="subTitle" label="鍓爣棰�" min-width="100px"></el-table-column>
+ <el-table-column prop="title" label="鏍囬" fixed min-width="100px"></el-table-column>
+ <el-table-column prop="subTitle" label="鍓爣棰�" fixed min-width="100px"></el-table-column>
+ <el-table-column prop="fileList" label="闄勪欢" align="center" fixed min-width="100px">>
+ <template slot-scope="{row}">
+ <div v-if="row.fileList!=null && row.fileList.length" class="image-container">
+ <el-image
+ v-if="row.fileList[0].type !=1 && row.fileList[0].fileurlFull"
+ class="image-item"
+ :src="row.fileList[0].fileurlFull"
+ fit="fill"
+ :preview-src-list="[row.fileList[0].fileurlFull]">
+ </el-image>
+ <video v-if="row.fileList[0].type ==1 && row.fileList[0].fileurlFull" style="width: 60px;height: 60px" controls autoplay :src="row.fileList[0].fileurlFull"></video>
+ </div>
+ </template>
+ </el-table-column>
<el-table-column prop="linkType" label="璺宠浆绫诲瀷" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.linkType ==0">瀵屾枃鏈�</span>
@@ -45,14 +59,10 @@
</template>
</el-table-column>
<el-table-column prop="lookNum" label="娴忚閲�" min-width="80px"></el-table-column>
- <el-table-column prop="donwloadNum" label="涓嬭浇閲�" min-width="80px"></el-table-column>
<el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
<el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
<el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
<el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="publishDate" label="鏈�杩戝彂甯冩椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="publishUserName" label="鏈�杩戝彂甯冧汉" min-width="100px"></el-table-column>
- <el-table-column prop="publishInfo" label="鏈�杩戝彂甯冨娉�" min-width="100px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:news:update', 'business:news:delete'])"
label="鎿嶄綔"
@@ -60,7 +70,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaNewsWindow.open('缂栬緫璧勮鍜屽畾鍒舵湇鍔′俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:news:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.operaNewsWindow.open('缂栬緫瀹氬埗鏈嶅姟淇℃伅', row)" icon="el-icon-edit" v-permissions="['business:news:update']">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:news:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
@@ -73,7 +83,7 @@
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
- <OperaNewsWindow ref="operaNewsWindow" @success="handlePageChange"/>
+ <OperaNewsDzWindow ref="operaNewsWindow" @success="handlePageChange"/>
</TableLayout>
</template>
@@ -81,11 +91,11 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
-import OperaNewsWindow from '@/components/business/OperaNewsWindow'
+import OperaNewsDzWindow from '@/components/business/OperaNewsDzWindow'
export default {
name: 'News',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaNewsWindow },
+ components: { TableLayout, Pagination, OperaNewsDzWindow },
data () {
return {
// 鎼滅储
diff --git a/admin/vue.config.js b/admin/vue.config.js
index a39f3b8..f3f181a 100644
--- a/admin/vue.config.js
+++ b/admin/vue.config.js
@@ -11,7 +11,7 @@
port: 10012,
proxy: {
[process.env.VUE_APP_API_PREFIX]: {
- target: 'http://localhost:10028',
+ target: process.env.VUE_APP_BASE_API,
changeOrigin: true,
pathRewrite: {
[`^${[process.env.VUE_APP_API_PREFIX]}`]: ''
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 f599904..f7a8013 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
@@ -43,6 +43,7 @@
success = Constants.ONE;
r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"鎿嶄綔澶辫触"));
}catch (Exception e){
+ e.printStackTrace();
success = Constants.ONE;
r = ApiResponse.failed("鎿嶄綔澶辫触");
}finally {
@@ -67,6 +68,7 @@
r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"鎿嶄綔澶辫触"));
}catch (Exception e){
success = Constants.ONE;
+ e.getMessage();
r = ApiResponse.failed("鎿嶄綔澶辫触");
}finally {
zbomIAMService.saveInterfaceLog("/push/iam/updateUserInfo","IAM鎺ㄩ�佷汉鍛樿处鍙蜂俊鎭�", token, uuid, timestamp, upateUserModel,success, JSONObject.toJSONString(r));
diff --git a/server/service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java b/server/service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
index 3ae82f8..0e7c910 100644
--- a/server/service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -33,11 +33,11 @@
public Integer create(SystemDictData systemDictData) {
SystemDictData queryDto = new SystemDictData();
queryDto.setDictId(systemDictData.getDictId());
- queryDto.setCode(systemDictData.getCode());
+ queryDto.setLabel(systemDictData.getLabel());
queryDto.setDeleted(Boolean.FALSE);
SystemDictData dictData = systemDictDataService.findOne(queryDto);
if (dictData != null) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鏁版嵁鍊煎凡瀛樺湪");
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鏁版嵁鏍囩宸插瓨鍦�");
}
return systemDictDataService.create(systemDictData);
}
@@ -46,11 +46,11 @@
public void updateById(SystemDictData systemDictData) {
SystemDictData queryDto = new SystemDictData();
queryDto.setDictId(systemDictData.getDictId());
- queryDto.setCode(systemDictData.getLabel());
+ queryDto.setLabel(systemDictData.getLabel());
queryDto.setDeleted(Boolean.FALSE);
SystemDictData dictData = systemDictDataService.findOne(queryDto);
if (dictData != null && !dictData.getId().equals(systemDictData.getId())) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鏁版嵁鍊煎凡瀛樺湪");
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鏁版嵁鏍囩宸插瓨鍦�");
}
systemDictDataService.updateById(systemDictData);
}
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 b89d3dc..4542b02 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
@@ -15,6 +15,7 @@
import com.doumee.dao.business.model.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@@ -43,6 +44,12 @@
private IamInterfaceLogMapper iamInterfaceLogMapper;
@Autowired
private SegmentsMapper segmentsMapper;
+ /**
+ * 鏄惁寮�鍙戣��
+ */
+ @Value("${debug_model}")
+ private Boolean isDebug;
+
/**
* 鍒濆鍖栧悓姝ョ敤鎴�
@@ -76,10 +83,12 @@
.eq(Shop::getOrgId,model.getIdtOrgId())
.last("limit 1"));
if(shop == null){
+ shop = new Shop();
+ shop.setCreateDate(date);
addShops.add(initShopInfo(shop,model,date));
}else {
segDelOrgIds.add(shop.getOrgId());
- updateShops.add(shop);
+ updateShops.add(initShopInfo(shop,model,date));
}
//澶勭悊鍝佺被鏁版嵁閫昏緫
dealCategorySegData(date,shop,model.getCategory(),categorySegList,segmentsList);
@@ -207,15 +216,13 @@
}
private Shop initShopInfo(Shop shop, IamUpateShopModel model, Date date) {
- if(shop == null) {
- shop = new Shop();
- shop.setCreateDate(date);
- }
shop.setEditDate(date);
shop.setOrgId(model.getIdtOrgId());
shop.setName(model.getIdtOrgName());
shop.setCode(model.getIdtOrgCode());
shop.setType(model.getIdtOrgFirstLevelType());
+
+ shop.setStatus(Constants.parseIntByStr(model.getIdtOrgStatus()));
shop.setSecondType(model.getIdtOrgSecondLevelType());
shop.setAttribute(model.getIdtOrgAttribute());
if(model.getScode()!=null){
@@ -261,6 +268,9 @@
}
private void isValidToken(String uuid, String timestamp, String token) {
+ if(isDebug){
+ return;
+ }
if (!StringUtils.equalsIgnoreCase( getToken( uuid, timestamp), token)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝token閿欒~");
}
@@ -294,6 +304,7 @@
users.setEditDate(new Date());
users.setSex(upateUserModel.getIdtUserGender());
users.setIamUsername(upateUserModel.getAppAccountNo());
+ users.setCode(upateUserModel.getIdtUserWorkNo());
users.setName(upateUserModel.getIdtUserName());
users.setPassword(upateUserModel.getAppAccountPwd());
users.setPhone(upateUserModel.getIdtUserMobile());
@@ -301,24 +312,27 @@
users.setStatus(upateUserModel.getAppAccountStatus());
users.setIsdeleted(Constants.ZERO);
users.setRemark(JSONObject.toJSONString(upateUserModel));
+ users.setRoleNames(null);
+ users.setRoleIds(null);
+ users.setUserTypes(null);
if( upateUserModel.getUserTypes() !=null){
for(IamUserTypeModel type : upateUserModel.getUserTypes()){
- if(StringUtils.isNotBlank(users.getUserTypes())){
+ if(StringUtils.isBlank(users.getUserTypes())){
users.setUserTypes("");
}
- users.setUserTypes("["+users.getUserTypes()+type.getIdtUserTypeCode()+"];");
+ users.setUserTypes(users.getUserTypes()+"["+type.getIdtUserTypeCode()+"];");
}
}
if( upateUserModel.getRoles() !=null){
for(IamUserRoleModel t : upateUserModel.getRoles()){
- if(StringUtils.isNotBlank(users.getRoleIds())){
+ if(StringUtils.isBlank(users.getRoleIds())){
users.setRoleIds("");
}
- if(StringUtils.isNotBlank(users.getRoleNames())){
+ if(StringUtils.isBlank(users.getRoleNames())){
users.setRoleNames("");
}
- users.setRoleIds("["+users.getRoleIds()+t.getId()+"];");
- users.setRoleNames("["+users.getRoleNames()+t.getName()+"];");
+ users.setRoleIds(users.getRoleIds()+t.getId()+"["+t.getId()+"];");
+ users.setRoleNames(users.getRoleNames()+"["+t.getName()+"];");
}
}
if(upateUserModel.getJobs()!=null){
@@ -334,7 +348,7 @@
Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda()
.eq(Shop::getOrgId,orgId)
.last("limit 1"));
- users.setDepartmentId(shop.getId());
+ users.setDepartmentId(shop ==null?null:shop.getId());
}
}
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 0e97e24..5fd3e3a 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -7,6 +7,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
@@ -78,11 +79,6 @@
public static final String FTP_USERNAME ="FTP_USERNAME" ;
public static final String FTP_PWD ="FTP_PWD" ;
public static final String FTP_RESOURCE_PATH ="FTP_RESOURCE_PATH" ;
- public static final String ERP_ORGLIST_URL ="ERP_ORGLIST_URL" ;
- public static final String ERP_USERLIST_URL ="ERP_USERLIST_URL" ;
- public static final String ERP_APPROVE_URL ="ERP_APPROVE_URL" ;
- public static final String ERP_USERSTATUS_RL ="ERP_USERSTATUS_RL" ;
- public static final String ERP ="ERP" ;
public static final Integer THREE =3 ;
public static final Integer FOUR =4 ;
public static final String ORG_USER_ORIGIN = "ORG_USER_ORIGIN";
@@ -92,34 +88,80 @@
public static final String ZBOM = "ZBOM" ;
public static final String ZBOM_IAM_APPKEY = "ZBOM_IAM_APPKEY";
public static final String ZBOM_IAM_APPID = "ZBOM_IAM_APPID";
- public static boolean DEALING_HK_SYNCPRIVILEGE= false;
- public static boolean DEALING_HK_SYNCDEVICE = false;
- public static boolean DEALING_HK_SYNCDEVICE_STATUS = false;
- public static boolean DEALING_HK_SYNCPARK = false;
- public static boolean DEALING_HK_IMG = false;
- public static boolean DEALING_HK_ORG = false;
- public static boolean DEALING_HK_USER = false;
- public static boolean DEALING_HK_DEL_USER = false;
- public static boolean DEALING_HK_VISIT = false;
- public static boolean DEALING_HK_VISIT_EXPIRE = false;
- public static boolean DEALING_FROM_HK_VISIT = false;
- public static boolean DEALING_HK_EMPOWER = false;
- public static boolean DEALING_HK_EMPOWER_DETAIL = false;
- public static boolean DEALING_HK_EMPOWER_RESULT = false;
- public static boolean DEALING_HK_PARKBOOK = false;
- // ERP鎺ュ彛閰嶇疆
- public static final String ERP_CONFIG = "ERP_CONFIG";
- // ERP ACCESS_KEY
- public static final String ERP_ACCESS_KEY = "ERP_ACCESS_KEY";
- // ERP ACCESS_SECRET
- public static final String ERP_ACCESS_SECRET = "ERP_ACCESS_SECRET";
- // 鍐呴儴浜哄憳鍐荤粨閰嶇疆鏃堕棿
- public static final String TIMEOUT_FREEZE = "TIMEOUT_FREEZE";
+ public static Integer parseIntByStr(String idtOrgStatus) {
+ try {
+ return Integer.parseInt(idtOrgStatus);
+ }catch (Exception e){
+ return null;
+ }
+ }
- // 瓒呮椂棰勮閰嶇疆
- public static final String TIMEOUT_WARNING = "TIMEOUT_WARNING";
- // FTP鏂囦欢鏈嶅姟鍣ㄨ祫婧愯闂湴鍧�
+ /**
+ * 闄勪欢瀵硅薄绫诲瀷 0news澶氬浘 1news瑙嗛
+ */
+ public enum MultiFile{
+ NEWS_FILE(0, "鎺ㄥ箍璧勮闄勪欢", "NEWS")
+
+ ;
+ // 鎴愬憳鍙橀噺
+ private String name;
+ private int key;
+ private String info;// 鎻忚堪
+
+ // 鏋勯�犳柟娉�
+ MultiFile(int key, String name, String info) {
+ this.name = name;
+ this.key = key;
+ this.info = info;
+ }
+
+ // 鏅�氭柟娉�
+ public static String getName(int index) {
+ for (MultiFile c : MultiFile.values()) {
+ if (c.getKey() == index) {
+ return c.name;
+ }
+ }
+ return null;
+ }
+
+ // 鏅�氭柟娉�
+ public static String getInfo(int index) {
+ for (MultiFile c : MultiFile.values()) {
+ if (c.getKey() == index) {
+ return c.info;
+ }
+ }
+ return null;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+
+ public void setInfo(String info) {
+ this.info = info;
+ }
+
+ // get set 鏂规硶
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getKey() {
+ return key;
+ }
+
+ public void setKey(int key) {
+ this.key = key;
+ }
+
+ }
public static Date getBirthdyByCardNo(String idCard){
if(idCard ==null || idCard.length()<14){
@@ -262,6 +304,8 @@
public static final String ACCESS_KEY = "ACCESS_KEY";
public static final String ENDPOINT = "ENDPOINT";
public static final String RESOURCE_PATH = "RESOURCE_PATH";
+ public static final String USERS_FILE = "USERS_FILE";
+ public static final String NEWS_FILE = "NEWS_FILE";
//鍙戦�佷細璁紑濮� 瀹氭椂鎻愬墠澶氬皯鍒嗛挓鍙戦��
public static final String SYSTEM ="SYSTEM";
@@ -338,6 +382,12 @@
}
+ public static boolean equalsLong(Long a, Long b) {
+ if (a == null || b==null) {
+ return false;
+ }
+ return a.equals(b);
+ }
public static boolean equalsInteger(Integer a, Integer b) {
if (formatIntegerNum(a) == formatIntegerNum(b)) {
return true;
diff --git a/server/service/src/main/java/com/doumee/core/utils/QrCodeUtils.java b/server/service/src/main/java/com/doumee/core/utils/QrCodeUtils.java
index 671a4ac..c30fc73 100644
--- a/server/service/src/main/java/com/doumee/core/utils/QrCodeUtils.java
+++ b/server/service/src/main/java/com/doumee/core/utils/QrCodeUtils.java
@@ -1,8 +1,9 @@
package com.doumee.core.utils;
-import com.google.zxing.*;
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
-import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import javax.imageio.ImageIO;
diff --git a/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java b/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
index 2a270f4..cb8a032 100644
--- a/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/tyyun/TyyZosUtil.java
@@ -172,11 +172,15 @@
if (inputStream != null) {
ObjectMetadata metadata = new ObjectMetadata();
+ metadata.setContentLength(inputStream.available());
+
PutObjectRequest request = new PutObjectRequest(bucketName, key, inputStream,metadata);
+ request.setCannedAcl(CannedAccessControlList.PublicRead);
PutObjectResult result = client.putObject(request);
+ return true;
}
}catch (Exception e){
- log.error("瀵硅薄瀛樺偍==================== 缃戠粶鏂囦欢涓婁紶澶辫触"+e.getMessage());
+ log.error("瀵硅薄瀛樺偍==================== 鏂囦欢涓婁紶澶辫触"+e.getMessage());
}finally {
shutDown();
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java b/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java
index 3481422..ac4b8ee 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Multifile.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.dao.business.dto.BaseQueryDto;
import io.swagger.annotations.ApiModel;
@@ -62,13 +63,16 @@
@ExcelColumn(name="绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬")
private Integer type;
- @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷 0鎺ㄥ箍璧勮澶氬浘 1鎺ㄥ箍璧勮瑙嗛 2瀹氬埗鏈嶅姟澶氬浘 3瀹氬埗鏈嶅姟瑙嗛", example = "1")
- @ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷 0鎺ㄥ箍璧勮澶氬浘 1鎺ㄥ箍璧勮瑙嗛 2瀹氬埗鏈嶅姟澶氬浘 3瀹氬埗鏈嶅姟瑙嗛")
+ @ApiModelProperty(value = "闄勪欢瀵硅薄绫诲瀷 0news澶氬浘 1news瑙嗛", example = "1")
+ @ExcelColumn(name="闄勪欢瀵硅薄绫诲瀷 0news澶氬浘 1news瑙嗛")
private Integer objType;
@ApiModelProperty(value = "鏂囦欢鍦板潃")
@ExcelColumn(name="鏂囦欢鍦板潃")
private String fileurl;
+ @ApiModelProperty(value = "鏂囦欢鍦板潃瀹屾暣")
+ @TableField(exist = false)
+ private String fileurlFull;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@ExcelColumn(name="鎺掑簭鐮�")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/News.java b/server/service/src/main/java/com/doumee/dao/business/model/News.java
index 0d61f8d..0d633f5 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/News.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/News.java
@@ -11,6 +11,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
+import java.util.List;
/**
* 璧勮鍜屽畾鍒舵湇鍔′俊鎭〃
@@ -70,6 +71,9 @@
@ApiModelProperty(value = "璺宠浆绫诲瀷 0瀵屾枃鏈� 1澶栭摼", example = "1")
@ExcelColumn(name="璺宠浆绫诲瀷 0瀵屾枃鏈� 1澶栭摼")
private Integer linkType;
+ @ApiModelProperty(value = "闄勪欢绫诲瀷 0鍥剧墖 1瑙嗛", example = "1")
+ @ExcelColumn(name="闄勪欢绫诲瀷 0鍥剧墖 1瑙嗛")
+ private Integer fileType;
@ApiModelProperty(value = "鐘舵�� 0灞曠ず 1涓嶅睍绀�", example = "1")
@ExcelColumn(name="鐘舵�� 0灞曠ず 1涓嶅睍绀�")
@@ -102,6 +106,9 @@
@ExcelColumn(name="鏈�杩戝彂甯冧汉")
@TableField(exist = false)
private String publishUserName;
+ @ApiModelProperty(value = "闄勪欢闆嗗悎")
+ @TableField(exist = false)
+ private List<Multifile> fileList;
@ApiModelProperty(value = "绱犳潗绫诲瀷 0鎺ㄥ箍璧勮 1瀹氬埗鏈嶅姟", example = "1")
@ExcelColumn(name="绱犳潗绫诲瀷 0鎺ㄥ箍璧勮 1瀹氬埗鏈嶅姟")
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Users.java b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
index 1161564..0fd7ea5 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Users.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.dao.business.dto.BaseQueryDto;
import io.swagger.annotations.ApiModel;
@@ -160,5 +161,22 @@
@ApiModelProperty(value = "鐢ㄦ埛瑙掕壊鍚嶇О闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
@ExcelColumn(name="鐢ㄦ埛瑙掕壊鍚嶇О闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
private String roleNames;
-
+ @ApiModelProperty(value = "鏄惁鍖呭惈涓嬬骇")
+ @TableField(exist = false)
+ private Boolean includeChild;
+ @ApiModelProperty(value = "鎵�灞炵粍缁囧悕绉�")
+ @TableField(exist = false)
+ private String shopName;
+ @ApiModelProperty(value = "缁勭粐绫诲瀷")
+ @TableField(exist = false)
+ private Integer shopType;
+ @ApiModelProperty(value = "缁勭粐绫诲瀷浜岀骇")
+ @TableField(exist = false)
+ private Integer shopSecType;
+ @ApiModelProperty(value = "瀹屾暣澶村儚褰�")
+ @TableField(exist = false)
+ private String imgurlFull;
+ @ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
+ @TableField(exist = false)
+ private String qrcodeImgFull;
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
index 5bc8b55..f51413f 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
@@ -1,19 +1,32 @@
package com.doumee.service.business.impl;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.MultifileMapper;
import com.doumee.dao.business.NewsMapper;
+import com.doumee.dao.business.model.BjParam;
+import com.doumee.dao.business.model.Multifile;
import com.doumee.dao.business.model.News;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.NewsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -26,16 +39,60 @@
@Autowired
private NewsMapper newsMapper;
+ @Autowired
+ private MultifileMapper multifileMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
@Override
- public Long create(News news) {
- newsMapper.insert(news);
- return news.getId();
+ @Transactional
+ public Long create(News param) {
+ LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ param.setIsdeleted(Constants.ZERO);
+ param.setEditor(userInfo.getId());
+ param.setCreator(userInfo.getId());
+ param.setStatus(Constants.formatIntegerNum(param.getStatus()));
+ param.setCreateDate(new Date());
+ param.setEditDate(param.getCreateDate());
+ param.setPublishUserid(param.getCreator());
+ param.setFileType(Constants.formatIntegerNum(param.getFileType()));
+ newsMapper.insert(param);
+ if(param.getFileList()!=null && param.getFileList().size()>0){
+ List<Multifile> multifiles = new ArrayList<>();
+ int index =1;
+ for(Multifile f : param.getFileList()){
+ if(StringUtils.isNotBlank(f.getFileurl())){
+ f.setId(null);
+ f.setIsdeleted(Constants.ZERO);
+ f.setObjId(param.getId());
+ f.setType(StringUtils.endsWith(f.getFileurl(),".mp4")?Constants.ONE:Constants.ZERO);
+ f.setObjType(Constants.MultiFile.NEWS_FILE.getKey());
+ f.setCreator(param.getCreator());
+ f.setCreateDate(param.getCreateDate());
+ f.setSortnum(index++);
+ multifiles.add(f);
+ }
+ }
+ if(multifiles.size()>0){
+ multifileMapper.insert(multifiles);
+ }
+ }
+ return param.getId();
}
@Override
public void deleteById(Long id) {
- newsMapper.deleteById(id);
+ LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ newsMapper.update(null,new UpdateWrapper<News>().lambda()
+ .set(News::getIsdeleted,Constants.ONE )
+ .set(News::getEditor,userInfo.getId() )
+ .set(News::getEditDate,new Date() )
+ .eq(News::getId,id));
+ multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+ .set(Multifile::getIsdeleted,Constants.ONE )
+ .eq(Multifile::getIsdeleted,Constants.ZERO )
+ .eq(Multifile::getObjType,Constants.MultiFile.NEWS_FILE.getKey())
+ .eq(Multifile::getObjId,id));
}
@Override
@@ -49,12 +106,44 @@
if (CollectionUtils.isEmpty(ids)) {
return;
}
- newsMapper.deleteBatchIds(ids);
+ for(Long id : ids){
+ deleteById(id);
+ }
}
@Override
+ @Transactional
public void updateById(News news) {
+ LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ news.setEditor(userInfo.getId());
+ news.setEditDate(new Date());
+ news.setPublishUserid(news.getEditor());
newsMapper.updateById(news);
+ if(news.getFileList()!=null && news.getFileList().size()>0){
+ List<Multifile> multifiles = new ArrayList<>();
+ int index =1;
+ for(Multifile f : news.getFileList()){
+ if(StringUtils.isNotBlank(f.getFileurl())){
+ f.setId(null);
+ f.setIsdeleted(Constants.ZERO);
+ f.setType(StringUtils.endsWith(f.getFileurl(),".mp4")?Constants.ONE:Constants.ZERO);
+ f.setObjId(news.getId());
+ f.setObjType(Constants.MultiFile.NEWS_FILE.getKey());
+ f.setCreator(news.getCreator());
+ f.setCreateDate(news.getCreateDate());
+ f.setSortnum(index++);
+ multifiles.add(f);
+ }
+ }
+ if(multifiles.size()>0){
+ multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+ .set(Multifile::getIsdeleted,Constants.ONE )
+ .eq(Multifile::getIsdeleted,Constants.ZERO )
+ .eq(Multifile::getObjType,Constants.MultiFile.NEWS_FILE.getKey())
+ .eq(Multifile::getObjId,news.getId() ));
+ multifileMapper.insert(multifiles);
+ }
+ }
}
@Override
@@ -87,76 +176,141 @@
@Override
public PageData<News> findPage(PageWrap<News> pageWrap) {
IPage<News> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<News> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<News> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
+ queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,News::getEditor)
+ .selectAll(News.class)
+ .selectAs(SystemUser::getRealname,News::getEditorName);
if (pageWrap.getModel().getId() != null) {
- queryWrapper.lambda().eq(News::getId, pageWrap.getModel().getId());
+ queryWrapper.eq(News::getId, pageWrap.getModel().getId());
}
if (pageWrap.getModel().getCreator() != null) {
- queryWrapper.lambda().eq(News::getCreator, pageWrap.getModel().getCreator());
+ queryWrapper.eq(News::getCreator, pageWrap.getModel().getCreator());
}
if (pageWrap.getModel().getCreateDate() != null) {
- queryWrapper.lambda().ge(News::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
- queryWrapper.lambda().le(News::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ queryWrapper.ge(News::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.le(News::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
}
if (pageWrap.getModel().getEditor() != null) {
- queryWrapper.lambda().eq(News::getEditor, pageWrap.getModel().getEditor());
+ queryWrapper.eq(News::getEditor, pageWrap.getModel().getEditor());
}
if (pageWrap.getModel().getEditDate() != null) {
- queryWrapper.lambda().ge(News::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
- queryWrapper.lambda().le(News::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ queryWrapper.ge(News::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.le(News::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
}
if (pageWrap.getModel().getIsdeleted() != null) {
- queryWrapper.lambda().eq(News::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ queryWrapper.eq(News::getIsdeleted, pageWrap.getModel().getIsdeleted());
}
if (pageWrap.getModel().getRemark() != null) {
- queryWrapper.lambda().eq(News::getRemark, pageWrap.getModel().getRemark());
+ queryWrapper.eq(News::getRemark, pageWrap.getModel().getRemark());
}
if (pageWrap.getModel().getTitle() != null) {
- queryWrapper.lambda().like(News::getTitle, pageWrap.getModel().getTitle());
+ queryWrapper.like(News::getTitle, pageWrap.getModel().getTitle());
}
if (pageWrap.getModel().getSubTitle() != null) {
- queryWrapper.lambda().eq(News::getSubTitle, pageWrap.getModel().getSubTitle());
+ queryWrapper.eq(News::getSubTitle, pageWrap.getModel().getSubTitle());
}
if (pageWrap.getModel().getSortnum() != null) {
- queryWrapper.lambda().eq(News::getSortnum, pageWrap.getModel().getSortnum());
+ queryWrapper.eq(News::getSortnum, pageWrap.getModel().getSortnum());
}
if (pageWrap.getModel().getContent() != null) {
- queryWrapper.lambda().eq(News::getContent, pageWrap.getModel().getContent());
+ queryWrapper.eq(News::getContent, pageWrap.getModel().getContent());
}
if (pageWrap.getModel().getLinkType() != null) {
- queryWrapper.lambda().eq(News::getLinkType, pageWrap.getModel().getLinkType());
+ queryWrapper.eq(News::getLinkType, pageWrap.getModel().getLinkType());
}
if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.lambda().eq(News::getStatus, pageWrap.getModel().getStatus());
+ queryWrapper.eq(News::getStatus, pageWrap.getModel().getStatus());
}
if (pageWrap.getModel().getLookNum() != null) {
- queryWrapper.lambda().eq(News::getLookNum, pageWrap.getModel().getLookNum());
+ queryWrapper.eq(News::getLookNum, pageWrap.getModel().getLookNum());
}
if (pageWrap.getModel().getDonwloadNum() != null) {
- queryWrapper.lambda().eq(News::getDonwloadNum, pageWrap.getModel().getDonwloadNum());
+ queryWrapper.eq(News::getDonwloadNum, pageWrap.getModel().getDonwloadNum());
}
if (pageWrap.getModel().getPublishDate() != null) {
- queryWrapper.lambda().ge(News::getPublishDate, Utils.Date.getStart(pageWrap.getModel().getPublishDate()));
- queryWrapper.lambda().le(News::getPublishDate, Utils.Date.getEnd(pageWrap.getModel().getPublishDate()));
+ queryWrapper.ge(News::getPublishDate, Utils.Date.getStart(pageWrap.getModel().getPublishDate()));
+ queryWrapper.le(News::getPublishDate, Utils.Date.getEnd(pageWrap.getModel().getPublishDate()));
}
if (pageWrap.getModel().getPublishUserid() != null) {
- queryWrapper.lambda().eq(News::getPublishUserid, pageWrap.getModel().getPublishUserid());
+ queryWrapper.eq(News::getPublishUserid, pageWrap.getModel().getPublishUserid());
}
if (pageWrap.getModel().getPublishInfo() != null) {
- queryWrapper.lambda().eq(News::getPublishInfo, pageWrap.getModel().getPublishInfo());
+ queryWrapper.eq(News::getPublishInfo, pageWrap.getModel().getPublishInfo());
}
if (pageWrap.getModel().getType() != null) {
- queryWrapper.lambda().eq(News::getType, pageWrap.getModel().getType());
+ queryWrapper.eq(News::getType, pageWrap.getModel().getType());
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
+
+ PageData<News> pageData = PageData.from(newsMapper.selectJoinPage(page, News.class,queryWrapper));
+ if(pageData!=null && pageData.getRecords()!=null && pageData.getRecords().size()>0){
+
+ List<Long> idList = new ArrayList<>();
+ for(News model : pageData.getRecords()){
+ idList.add(model.getId());
}
- queryWrapper.orderByAsc(sortData.getProperty());
+ List<Multifile> files = dealMultifileList(idList);
+ for(News model : pageData.getRecords()){
+ setFilelistById(model,files);
+ }
+
}
- return PageData.from(newsMapper.selectPage(page, queryWrapper));
+ return pageData;
+ }
+
+ private void setFilelistById(News model, List<Multifile> multifiles) {
+ if(multifiles!=null && multifiles.size()>0){
+ for(Multifile f : multifiles){
+ if(Constants.equalsLong(f.getObjId(),model.getId())){
+ if(Constants.equalsInteger(model.getType(),Constants.ZERO) &&Constants.equalsInteger(model.getFileType(),Constants.ONE) && Constants.equalsInteger(f.getType(),Constants.ONE)){
+ //濡傛灉鏄棰�
+ if(model.getFileList() == null){
+ model.setFileList(new ArrayList<>());
+ }
+ model.getFileList().add(f);
+ break;
+ }
+ if(Constants.equalsInteger(model.getType(),Constants.ZERO) && Constants.equalsInteger(model.getFileType(),Constants.ZERO) && Constants.equalsInteger(f.getType(),Constants.ZERO)){
+ //濡傛灉鏄棰�
+ if(model.getFileList() == null){
+ model.setFileList(new ArrayList<>());
+ }
+ model.getFileList().add(f);
+ }
+
+ if(Constants.equalsInteger(model.getType(),Constants.ONE)){
+ //濡傛灉鏄棰�
+ if(model.getFileList() == null){
+ model.setFileList(new ArrayList<>());
+ }
+ model.getFileList().add(f);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ private List<Multifile> dealMultifileList(List<Long> idList) {
+ List<Integer> types = new ArrayList<>();
+ types.add(Constants.MultiFile.NEWS_FILE.getKey());
+ List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getIsdeleted,Constants.ZERO )
+ .in(Multifile::getObjType,types)
+ .in(Multifile::getObjId,idList )
+ .orderByAsc(Multifile::getSortnum)
+ );
+ if(multifiles!=null && multifiles.size()>0){
+ String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH ).getCode() +
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.NEWS_FILE ).getCode();
+ for(Multifile f : multifiles){
+ if(StringUtils.isNotBlank(f.getFileurl())){
+ f.setFileurlFull(path + f.getFileurl());
+ }
+ }
+ }
+ return multifiles;
}
@Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index d792fef..df3f2cb 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,31 +1,33 @@
package com.doumee.service.business.impl;
-import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
-import com.doumee.config.Jwt.JwtPayLoad;
-import com.doumee.config.Jwt.JwtTokenUtil;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.CodeVerifyUtils;
-import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.ShopMapper;
import com.doumee.core.wx.WxMiniConfig;
import com.doumee.dao.business.UsersMapper;
+import com.doumee.dao.business.model.Multifile;
+import com.doumee.dao.business.model.News;
+import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Users;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.catalina.User;
+import org.apache.commons.lang3.StringUtils;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -40,6 +42,10 @@
@Autowired
private UsersMapper usersMapper;
+ @Autowired
+ private ShopMapper shopMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
@Override
public Long create(Users users) {
@@ -101,123 +107,159 @@
@Override
public PageData<Users> findPage(PageWrap<Users> pageWrap) {
IPage<Users> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<Users> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<Users> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.leftJoin(Shop.class,Shop::getId,Users::getDepartmentId)
+ .selectAs(Shop::getNamePath,Users::getShopName)
+ .selectAs(Shop::getType,Users::getShopType)
+ .selectAs(Shop::getSecondType,Users::getShopSecType)
+ .selectAll(Users.class);
Utils.MP.blankToNull(pageWrap.getModel());
if (pageWrap.getModel().getId() != null) {
- queryWrapper.lambda().eq(Users::getId, pageWrap.getModel().getId());
+ queryWrapper.eq(Users::getId, pageWrap.getModel().getId());
}
if (pageWrap.getModel().getCreator() != null) {
- queryWrapper.lambda().eq(Users::getCreator, pageWrap.getModel().getCreator());
+ queryWrapper.eq(Users::getCreator, pageWrap.getModel().getCreator());
}
if (pageWrap.getModel().getCreateDate() != null) {
- queryWrapper.lambda().ge(Users::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
- queryWrapper.lambda().le(Users::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ queryWrapper.ge(Users::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.le(Users::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
}
if (pageWrap.getModel().getEditor() != null) {
- queryWrapper.lambda().eq(Users::getEditor, pageWrap.getModel().getEditor());
+ queryWrapper.eq(Users::getEditor, pageWrap.getModel().getEditor());
}
if (pageWrap.getModel().getEditDate() != null) {
- queryWrapper.lambda().ge(Users::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
- queryWrapper.lambda().le(Users::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ queryWrapper.ge(Users::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.le(Users::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
}
if (pageWrap.getModel().getIsdeleted() != null) {
- queryWrapper.lambda().eq(Users::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ queryWrapper.eq(Users::getIsdeleted, pageWrap.getModel().getIsdeleted());
}
if (pageWrap.getModel().getRemark() != null) {
- queryWrapper.lambda().eq(Users::getRemark, pageWrap.getModel().getRemark());
+ queryWrapper.eq(Users::getRemark, pageWrap.getModel().getRemark());
}
if (pageWrap.getModel().getDepartmentId() != null) {
- queryWrapper.lambda().eq(Users::getDepartmentId, pageWrap.getModel().getDepartmentId());
+ queryWrapper.eq(Users::getDepartmentId, pageWrap.getModel().getDepartmentId());
}
if (pageWrap.getModel().getImgurl() != null) {
- queryWrapper.lambda().eq(Users::getImgurl, pageWrap.getModel().getImgurl());
+ queryWrapper.eq(Users::getImgurl, pageWrap.getModel().getImgurl());
}
if (pageWrap.getModel().getType() != null) {
- queryWrapper.lambda().eq(Users::getType, pageWrap.getModel().getType());
+ queryWrapper.eq(Users::getType, pageWrap.getModel().getType());
}
if (pageWrap.getModel().getName() != null) {
- queryWrapper.lambda().eq(Users::getName, pageWrap.getModel().getName());
+ queryWrapper.eq(Users::getName, pageWrap.getModel().getName());
}
if (pageWrap.getModel().getBirthday() != null) {
- queryWrapper.lambda().ge(Users::getBirthday, Utils.Date.getStart(pageWrap.getModel().getBirthday()));
- queryWrapper.lambda().le(Users::getBirthday, Utils.Date.getEnd(pageWrap.getModel().getBirthday()));
+ queryWrapper.ge(Users::getBirthday, Utils.Date.getStart(pageWrap.getModel().getBirthday()));
+ queryWrapper.le(Users::getBirthday, Utils.Date.getEnd(pageWrap.getModel().getBirthday()));
}
if (pageWrap.getModel().getPhone() != null) {
- queryWrapper.lambda().eq(Users::getPhone, pageWrap.getModel().getPhone());
+ queryWrapper.eq(Users::getPhone, pageWrap.getModel().getPhone());
}
if (pageWrap.getModel().getIdcardNo() != null) {
- queryWrapper.lambda().eq(Users::getIdcardNo, pageWrap.getModel().getIdcardNo());
+ queryWrapper.eq(Users::getIdcardNo, pageWrap.getModel().getIdcardNo());
}
if (pageWrap.getModel().getCode() != null) {
- queryWrapper.lambda().eq(Users::getCode, pageWrap.getModel().getCode());
+ queryWrapper.eq(Users::getCode, pageWrap.getModel().getCode());
}
if (pageWrap.getModel().getOpenid() != null) {
- queryWrapper.lambda().eq(Users::getOpenid, pageWrap.getModel().getOpenid());
+ queryWrapper.eq(Users::getOpenid, pageWrap.getModel().getOpenid());
}
if (pageWrap.getModel().getStatus() != null) {
- queryWrapper.lambda().eq(Users::getStatus, pageWrap.getModel().getStatus());
+ queryWrapper.eq(Users::getStatus, pageWrap.getModel().getStatus());
}
if (pageWrap.getModel().getIamStatus() != null) {
- queryWrapper.lambda().eq(Users::getIamStatus, pageWrap.getModel().getIamStatus());
+ queryWrapper.eq(Users::getIamStatus, pageWrap.getModel().getIamStatus());
}
if (pageWrap.getModel().getIamDate() != null) {
- queryWrapper.lambda().ge(Users::getIamDate, Utils.Date.getStart(pageWrap.getModel().getIamDate()));
- queryWrapper.lambda().le(Users::getIamDate, Utils.Date.getEnd(pageWrap.getModel().getIamDate()));
+ queryWrapper.ge(Users::getIamDate, Utils.Date.getStart(pageWrap.getModel().getIamDate()));
+ queryWrapper.le(Users::getIamDate, Utils.Date.getEnd(pageWrap.getModel().getIamDate()));
}
if (pageWrap.getModel().getIamId() != null) {
- queryWrapper.lambda().eq(Users::getIamId, pageWrap.getModel().getIamId());
+ queryWrapper.eq(Users::getIamId, pageWrap.getModel().getIamId());
}
if (pageWrap.getModel().getIamUsername() != null) {
- queryWrapper.lambda().eq(Users::getIamUsername, pageWrap.getModel().getIamUsername());
+ queryWrapper.like(Users::getIamUsername, pageWrap.getModel().getIamUsername());
}
if (pageWrap.getModel().getPassword() != null) {
- queryWrapper.lambda().eq(Users::getPassword, pageWrap.getModel().getPassword());
+ queryWrapper.eq(Users::getPassword, pageWrap.getModel().getPassword());
}
if (pageWrap.getModel().getSex() != null) {
- queryWrapper.lambda().eq(Users::getSex, pageWrap.getModel().getSex());
+ queryWrapper.eq(Users::getSex, pageWrap.getModel().getSex());
}
if (pageWrap.getModel().getLastLoginDate() != null) {
- queryWrapper.lambda().ge(Users::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()));
- queryWrapper.lambda().le(Users::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()));
+ queryWrapper.ge(Users::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()));
+ queryWrapper.le(Users::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()));
}
if (pageWrap.getModel().getLoginNum() != null) {
- queryWrapper.lambda().eq(Users::getLoginNum, pageWrap.getModel().getLoginNum());
+ queryWrapper.eq(Users::getLoginNum, pageWrap.getModel().getLoginNum());
}
if (pageWrap.getModel().getLastLoginPlat() != null) {
- queryWrapper.lambda().eq(Users::getLastLoginPlat, pageWrap.getModel().getLastLoginPlat());
+ queryWrapper.eq(Users::getLastLoginPlat, pageWrap.getModel().getLastLoginPlat());
}
if (pageWrap.getModel().getCostomerNum() != null) {
- queryWrapper.lambda().eq(Users::getCostomerNum, pageWrap.getModel().getCostomerNum());
+ queryWrapper.eq(Users::getCostomerNum, pageWrap.getModel().getCostomerNum());
}
if (pageWrap.getModel().getJobDate() != null) {
- queryWrapper.lambda().eq(Users::getJobDate, pageWrap.getModel().getJobDate());
+ queryWrapper.eq(Users::getJobDate, pageWrap.getModel().getJobDate());
}
if (pageWrap.getModel().getSlogans() != null) {
- queryWrapper.lambda().eq(Users::getSlogans, pageWrap.getModel().getSlogans());
+ queryWrapper.eq(Users::getSlogans, pageWrap.getModel().getSlogans());
}
if (pageWrap.getModel().getQrcodeImg() != null) {
- queryWrapper.lambda().eq(Users::getQrcodeImg, pageWrap.getModel().getQrcodeImg());
+ queryWrapper.eq(Users::getQrcodeImg, pageWrap.getModel().getQrcodeImg());
}
if (pageWrap.getModel().getEmail() != null) {
- queryWrapper.lambda().eq(Users::getEmail, pageWrap.getModel().getEmail());
+ queryWrapper.eq(Users::getEmail, pageWrap.getModel().getEmail());
}
if (pageWrap.getModel().getUserTypes() != null) {
- queryWrapper.lambda().eq(Users::getUserTypes, pageWrap.getModel().getUserTypes());
+ queryWrapper.eq(Users::getUserTypes, pageWrap.getModel().getUserTypes());
}
if (pageWrap.getModel().getRoleIds() != null) {
- queryWrapper.lambda().eq(Users::getRoleIds, pageWrap.getModel().getRoleIds());
+ queryWrapper.eq(Users::getRoleIds, pageWrap.getModel().getRoleIds());
}
- if (pageWrap.getModel().getRoleNames() != null) {
- queryWrapper.lambda().eq(Users::getRoleNames, pageWrap.getModel().getRoleNames());
+ if (StringUtils.isNotBlank(pageWrap.getModel().getRoleNames() )) {
+ queryWrapper.eq(Users::getRoleNames, pageWrap.getModel().getRoleNames());
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
+ if (StringUtils.isNotBlank(pageWrap.getModel().getShopName() )) {
+ queryWrapper.eq(Shop::getName, pageWrap.getModel().getShopName());
+ }
+ queryWrapper.eq(pageWrap.getModel().getShopType()!=null,Shop::getType,pageWrap.getModel().getShopType());
+ queryWrapper.eq(pageWrap.getModel().getShopSecType()!=null,Shop::getSecondType,pageWrap.getModel().getShopSecType());
+ if(StringUtils.isNotBlank(pageWrap.getModel().getQueryKeyword())){
+ queryWrapper.and(w ->{
+ w.eq(Users::getName,pageWrap.getModel().getQueryKeyword())
+ .or().eq(Users::getPhone,pageWrap.getModel().getQueryKeyword())
+ .or().eq(Users::getCode,pageWrap.getModel().getQueryKeyword())
+ ;
+ } );
+ }
+ if(pageWrap.getModel().getIamOrgId()!=null){
+ if(pageWrap.getModel().getIncludeChild()!=null &&pageWrap.getModel().getIncludeChild() ){
+ //濡傛灉鍖呭惈涓嬬骇缁勭粐
+ Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getOrgId,pageWrap.getModel().getIamOrgId()).last("limit 1"));//鏌ヨ缁勭粐淇℃伅
+ queryWrapper.likeRight(Shop::getIdPath,shop.getIdPath());
+ }else{
+ //涓嶅寘鍚笅绾х粍缁�
+ queryWrapper.eq(Shop::getOrgId,pageWrap.getModel().getIamOrgId());
}
}
- return PageData.from(usersMapper.selectPage(page, queryWrapper));
+
+ PageData<Users> pageData = PageData.from(usersMapper.selectJoinPage(page,Users.class, queryWrapper));
+ if(pageData!=null && pageData.getRecords()!=null && pageData.getRecords().size()>0){
+ String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH ).getCode() +
+ systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE ).getCode();
+ for(Users f : pageData.getRecords()){
+ if(StringUtils.isNotBlank(f.getImgurl())){
+ f.setImgurlFull(path + f.getImgurl());
+ }
+ if(StringUtils.isNotBlank(f.getQrcodeImg())){
+ f.setQrcodeImgFull(path + f.getQrcodeImg());
+ }
+ }
+
+ }
+ return pageData;
}
@Override
diff --git a/server/service/src/main/resources/mappers/SystemDictDataMapper.xml b/server/service/src/main/resources/mappers/SystemDictDataMapper.xml
index ae3a515..f89c4d7 100644
--- a/server/service/src/main/resources/mappers/SystemDictDataMapper.xml
+++ b/server/service/src/main/resources/mappers/SystemDictDataMapper.xml
@@ -16,7 +16,7 @@
</resultMap>
<select id="selectManageList" parameterType="com.doumee.dao.system.dto.QuerySystemDictDataDTO" resultMap="SystemDictDataListVO">
SELECT
- dict_data.`ID`, dict_data.`DICT_ID`, dict_data.`CODE`, dict_data.`LABEL`, dict_data.`SORT`, dict_data.`DISABLED`, dict_data.`CREATE_TIME`, dict_data.`UPDATE_TIME`, dict_data.`CREATE_USER`, dict_data.`UPDATE_USER`,
+ dict_data.*,
create_user.ID CREATE_USER_ID, create_user.`USERNAME` CREATE_USER_NAME,
update_user.ID UPDETE_USER_ID, update_user.`USERNAME` UPDATE_USER_NAME
FROM SYSTEM_DICT_DATA dict_data
@@ -31,7 +31,7 @@
</select>
<select id="list" resultType="com.doumee.dao.system.vo.SystemDictDataListVO">
SELECT
- dict_data.`ID`, dict_data.`DICT_ID`, dict_data.`CODE`, dict_data.`LABEL`
+ dict_data.*
FROM SYSTEM_DICT_DATA dict_data
<where>
dict_data.DELETED = 0
--
Gitblit v1.9.3