From bcad3fe1b888ae11d437f6558b7974cfa30cfb2e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 13 一月 2026 18:24:07 +0800
Subject: [PATCH] 经销商管理
---
server/dmmall_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java | 15
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java | 3
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java | 14
server/dmmall_service/src/main/java/com/doumee/service/system/SystemDictDataService.java | 4
server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java | 52 ++
admin/src/views/business/goodsLabels.vue | 30 -
server/dmmall_admin/src/main/java/com/doumee/api/business/CouponController.java | 6
server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsController.java | 5
admin/src/views/business/orderSet.vue | 265 ++++++++++++++
admin/src/components/common/UploadImage.vue | 37 +
admin/src/api/business/goods.js | 7
admin/src/utils/request.js | 5
admin/src/views/business/platformGoods.vue | 94 ++--
server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java | 29 +
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 38 +
admin/src/components/business/OperaGoodsWindow.vue | 266 +++++++++++---
server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java | 174 +++++++++
admin/src/api/system/dictData.js | 9
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java | 15
19 files changed, 887 insertions(+), 181 deletions(-)
diff --git a/admin/src/api/business/goods.js b/admin/src/api/business/goods.js
index ff9c116..448ba8b 100644
--- a/admin/src/api/business/goods.js
+++ b/admin/src/api/business/goods.js
@@ -6,7 +6,9 @@
trim: true
})
}
-
+export function detail (id) {
+ return request.get(`/business/goods/${id}`)
+}
// 鍒涘缓
export function create (data) {
return request.post('/business/goods/create', data)
@@ -16,6 +18,9 @@
export function updateById (data) {
return request.post('/business/goods/updateById', data)
}
+export function updateStatus (data) {
+ return request.post('/business/goods/updateStatus', data)
+}
export function findListByParentCategory (data) {
return request.post('/business/goods/findListByParentCategory', data)
diff --git a/admin/src/api/system/dictData.js b/admin/src/api/system/dictData.js
index 2d9cb31..805bfa4 100644
--- a/admin/src/api/system/dictData.js
+++ b/admin/src/api/system/dictData.js
@@ -33,3 +33,12 @@
}
})
}
+
+export function getPlatformConfig () {
+ return request.get('/system/dictData/getPlatformConfig' ,{})
+}
+// 淇敼
+export function updPlatformConfig (data) {
+ return request.post('/system/dictData/updPlatformConfig', data)
+}
+
diff --git a/admin/src/components/business/OperaGoodsWindow.vue b/admin/src/components/business/OperaGoodsWindow.vue
index a3084a4..cb55733 100644
--- a/admin/src/components/business/OperaGoodsWindow.vue
+++ b/admin/src/components/business/OperaGoodsWindow.vue
@@ -10,69 +10,113 @@
<el-form-item label="鍟嗗搧鍚嶇О" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" v-trim/>
</el-form-item>
- <el-form-item v-if="form.type==2" label="鍟嗗搧鏍囩" prop="labels">
- <el-input v-model="form.labels" placeholder="璇疯緭鍏ユ爣绛撅紝澶氫釜鐢ㄢ��,鈥濋殧寮�锛屼笉瓒呰繃5涓�" v-trim/>
+ <el-form-item label="鍟嗗搧鍒嗙被" prop="categoryId">
+ <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨鎵�灞炲垎绫�" clearable filterable >
+ <el-option
+ v-for="item in labels()"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ ></el-option>
+ </el-select>
</el-form-item>
- <template v-else>
- <el-form-item label="鍟嗗搧鍒嗙被" prop="categoryId">
- <el-select
- v-model="form.categoryId"
- placeholder="璇烽�夋嫨鎵�灞炲垎绫�"
- >
- <el-option
- v-for="item in labels()"
- :key="item.id"
- :value="item.id"
- :label="item.name"
- ></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍟嗗搧鍝佺墝" prop="brandId">
- <el-select
- v-model="form.brandId"
- placeholder="璇烽�夋嫨鍟嗗搧鍝佺墝"
- >
- <el-option
- v-for="item in brands()"
- :key="item.id"
- :value="item.id"
- :label="item.name"
- ></el-option>
- </el-select>
- </el-form-item>
- </template>
+ <el-form-item label="鍟嗗搧鍝佺墝" prop="brandId">
+ <el-select v-model="form.brandId" placeholder="璇烽�夋嫨鍟嗗搧鍝佺墝" clearable filterable >
+ <el-option
+ v-for="item in brands()"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ ></el-option>
+ </el-select>
+ </el-form-item>
<el-form-item label="鍟嗗搧涓诲浘" prop="imgurl">
- <UploadAvatarImage
- :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }"
- @uploadSuccess="uploadAvatarSuccess"
- @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true"
- />
+ <div style="display: flex; align-items: center;justify-content: center; height: 100%; width: 100%">
+ <UploadAvatarImage
+ :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl}"
+ :uploadData="{folder:'goods'}"
+ @uploadSuccess="uploadAvatarSuccess"
+ @uploadEnd="isUploading = false"
+ @uploadBegin="isUploading = true"
+ style=" width: 120px;"
+ />
+ <div class="tip-warn" style=" margin-left: 20px; margin-top: 30px;">
+ 寤鸿灏哄锛�100px X 100px
+ 鏀寔png銆乯pg銆乯peg鏍煎紡锛屽ぇ灏忎笉瓒呰繃2M锛屼笂浼犲浘鐗囦笉鍏佽娑夊強鏀挎不鏁忔劅涓庤壊鎯�
+ </div>
+ </div>
</el-form-item>
- <el-form-item v-if="form.type==2" label="鍜栬眴椋庡懗" prop="fileList">
- <UploadAvatarImage
- :file="{ 'imgurlfull': form.imgurlfull, 'imgurl': form.imgurl }"
- @uploadSuccess="uploadAvatarSuccess"
- @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true"
- />
- </el-form-item>
- <el-form-item v-else label="鍟嗗搧杞挱鍥�" prop="fileList">
+ <el-form-item label="鍟嗗搧杞挱鍥�" prop="fileList">
<UploadImage
:fileList="form.fileList"
+ :uploadData="{folder:'goods'}"
@beginUpload="isUploading=true"
@endUpload="isUploading=false"/>
+ <p class="tip-warn">
+ 寤鸿灏哄锛�750px X 750px锛屼笂闄�6寮�
+ 鏀寔png銆乯pg銆乯peg鏍煎紡锛屽ぇ灏忎笉瓒呰繃2M锛屼笂浼犲浘鐗囦笉鍏佽娑夊強鏀挎不鏁忔劅涓庤壊鎯�,
+ </p>
</el-form-item>
- <el-form-item label="灞曠ず浠锋牸" prop="price">
- <el-input v-model="form.price" placeholder="璇疯緭鍏ュ睍绀轰环鏍�" v-trim>
- <template slot="append">{{ form.type != 1 ? '鍏�' : '鍜栬眴' }}</template>
+ <el-form-item label="鍑哄巶浠凤紙鍏冿級" prop="price">
+ <el-input type="number" v-model="form.price" placeholder="璇疯緭鍏ュ嚭鍘備环" v-trim> <template slot="append"> 鍏�</template> </el-input>
+ </el-form-item>
+ <el-form-item label="閿�鍞环锛堝厓锛�" prop="skuPrice">
+ <el-input type="number" v-model="form.skuPrice" placeholder="璇疯緭鍏ラ攢鍞环" v-trim> <template slot="append"> 鍏�</template> </el-input>
+ </el-form-item>
+ <el-form-item label="鍒掔嚎浠凤紙鍏冿級" prop="showPrice">
+ <el-input type="number" v-model="form.showPrice" placeholder="璇疯緭鍏ョ嚎浠�" v-trim> <template slot="append"> 鍏�</template> </el-input>
+ </el-form-item>
+ <el-form-item label="绉垎鎶垫墸棰濆害" prop="deductRata">
+ <el-input type="number" v-model="form.deductRata" placeholder="璇疯緭鍏ョН鍒嗘姷鎵i搴�" v-trim>
+ <template slot="append">%</template>
+ </el-input>
+ <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>鎻愰啋锛氱Н鍒嗗彲鎶垫墸閲戦鍗犲晢鍝侀浂鍞环鐨勭櫨鍒嗘瘮锛�0.1%锝�100%涔嬮棿 </p>
+ </el-form-item>
+ <el-form-item label="搴撳瓨閲�" prop="stockNum">
+ <el-input type="number" v-model="form.stockNum" placeholder="璇疯緭鍏ュ晢鍝佸簱瀛橀噺" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧鍗曚綅" prop="unitName">
+ <el-input v-model="form.unitName" placeholder="璇疯緭鍏ュ晢鍝佸崟浣�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍒濆閿�閲�" prop="salenum">
+ <el-input type="number" v-model="form.salenum" placeholder="璇疯緭鍏ュ垵濮嬮攢閲�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧閲嶉噺" prop="weight">
+ <el-input type="number" v-model="form.weight" placeholder="璇疯緭鍏ュ晢鍝侀噸閲�" v-trim>
+ <template slot="append">kg</template>
</el-input>
</el-form-item>
- <el-form-item v-if="form.type!=2" label="鍒濆閿�閲�" prop="salenum">
- <el-input v-model="form.salenum" placeholder="璇疯緭鍏ュ垵濮嬮攢閲�" v-trim/>
+ <el-form-item label="鏄惁涓婃灦" prop="status">
+ <el-radio-group v-model="form.status">
+ <el-radio :value="1" :label="1" >涓婃灦</el-radio>
+ <el-radio :value="0" :label="0" >涓嬫灦</el-radio>
+ </el-radio-group>
</el-form-item>
+ <el-form-item label="浣跨敤鍟嗗搧鍝佺墝" prop="brandIdList">
+ <el-select v-model="form.brandIdList" placeholder="璇烽�夋嫨鍟嗗搧鍝佺墝" clearable multiple @change="changeBrand">
+ <el-option
+ v-for="item in applyBrands"
+ :key="item.id"
+ :value="item.id"
+ :label="item.name"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ <div v-if="form.brandIdList && form.brandIdList.length" style="border:1px solid #f2f2f2; margin-left: 150px;width: 700px;padding: 20px 0 0px 0;margin-bottom: 20px;" class="el-form-item__content">
+<!--
+ <span style="line-height: 32px;font-size: 14px;"><b style="color: #F56C6C;margin-right: 4px;font-size: 11px;">*</b>{{'銆�'+(item.name)+'銆戠郴鍒楋細'}}</span>
+-->
+ <el-form-item v-for="(item,index) in applyBrands" v-if="item.show" :key="'warning_'+index" style="display: block;width: 100%;" :label="'銆�'+(item.name)+'銆戠郴鍒�'" >
+ <el-select v-model="item.childIdList" filterable multiple style=" width: 500px;" clearable placeholder="璇烽�夋嫨鍝佺墝绯诲垪" >
+ <el-option v-for="item in item.childList" :label="item.name" :value="item.id" :key="'brand_'+index+item.id"> </el-option>
+ </el-select>
+ </el-form-item>
+<!--
+ <el-button type="danger" style="margin-left: 10px;height: 32px; " @click="delDo(index)" v-if="index>0 || form.detailList.length>1">鍒犻櫎</el-button>
+-->
+ </div>
<el-form-item label="鍟嗗搧璇︽儏" prop="content">
- <RichEditor :content="{ content : form.content}" @edit="form.content=$event" />
+ <RichEditor :richData="form.content" :styleEditor="'border: 1px solid #ccc;display: inline-block;height:500px;'" @getWangedditor="getWangedditor" :readonly="false"/>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -84,6 +128,7 @@
import UploadImage from '@/components/common/UploadImage'
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
import RichEditor from '@/components/common/RichEditor'
+import { findAll as labelList } from '@/api/business/labels'
export default {
name: 'OperaGoodsWindow',
extends: BaseOpera,
@@ -103,24 +148,30 @@
imgurlfull: '',
salenum: '',
type: 0,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
info: '',
content: '',
sortnum: '',
- looknum: '',
- type: '',
- status: '',
- isrec: '',
- styleImg: '',
- labels: ''
+ skuPrice: null,
+ status: 1,
+ showPrice: null,
+ deductRata: null,
+ weight: null,
+ unitName: '',
+ stockNum: null,
+ brandIdList: [],
+ brandList: []
},
+ applyBrands: [],
// 楠岃瘉瑙勫垯
rules: {
+ name: [{ required: true, message: '璇疯緭鍏ュ晢鍝佸悕绉�', tigger: 'blur' }],
+ categoryId: [{ required: true, message: '璇烽�夋嫨鎵�灞炲垎绫�' }],
+ brandIdList: [{ required: true, message: '璇峰綍鍏ラ�傜敤鍝佺墝鍜岀郴鍒椾俊鎭�' }],
+ weight: [{ required: true, message: '璇疯緭鍏ュ晢鍝侀噸閲�' }],
+ price: [{ required: true, message: '璇疯緭鍏ュ晢鍝佸嚭鍘備环' }],
+ skuPrice: [{ required: true, message: '璇疯緭鍏ュ晢鍝侀浂鍞环' }],
+ deductRata: [{ required: true, message: '璇疯緭鍏ョН鍒嗘姷鎵f瘮渚�' }],
+ status: [{ required: true, message: '璇烽�夋嫨鏄惁涓婃灦' }]
}
}
},
@@ -130,11 +181,48 @@
api: '/business/goods',
'field.id': 'id'
})
+ this.loadBrandList()
},
methods: {
+ isSeletedBrand (val) {
+ var r = false
+ if (!this.form.brandIdList || !this.form.brandIdList.length) {
+ return false
+ }
+ this.form.brandIdList.forEach(item => {
+ if (item === val.id) {
+ r = true
+ }
+ })
+ return r
+ },
+ changeBrand () {
+ this.applyBrands.forEach(item => {
+ item.show = this.isSeletedBrand(item)
+ })
+ console.log(this.form.brandIdList, this.applyBrands)
+ },
+ loadBrandList () {
+ labelList({
+ type: 14 // 閫傚簲鍟嗗搧鍝佺墝
+ })
+ .then(res => {
+ this.applyBrands = res
+ this.applyBrands.forEach(item => {
+ item.show = this.isSeletedBrand(item)
+ })
+ })
+ },
+ getWangedditor (val) {
+ this.form.content = val
+ },
open (title, target, type) {
this.title = title
this.visible = true
+ this.form.brandIdList = []
+ this.form.fileList = []
+ this.form.imgurl=''
+ this.form.imgurlfull=''
// debugger
// 鏂板缓
if (target == null) {
@@ -143,21 +231,64 @@
this.form[this.configData['field.id']] = null
this.form.type = type
})
+ this.loadBrandList()
return
}
// 缂栬緫
- this.$nextTick(() => {
+ this.$nextTick(async () => {
for (const key in this.form) {
this.form[key] = target[key]
}
this.form.type = type
+ await this.loadInfo(this.form.id)
+ if (this.form.imgurl) {
+ this.form.imgurlfull = target.resourcePath + target.imgurl
+ }
})
},
- uploadAvatarSuccess(file) {
+ loadInfo () {
+ this.form.brandIdList =[]
+ this.form.fileList =[]
+ this.api.detail(this.form.id).then(res => {
+ if (res && res.brandList) {
+ this.form.brandList = res.brandList
+ res.brandList.forEach(item => {
+ this.form.brandIdList.push(item.id)
+ })
+ }
+ if (res.fileList && res.fileList.length) {
+ res.fileList.forEach(item => {
+ this.form.fileList.push(
+ {
+ fileurl: item.fileurl,
+ name: item.fileName,
+ url: res.resourcePath + item.fileurl
+ }
+ )
+ })
+ console.log(this.form.fileList)
+ }
+ this.loadBrandList()
+ })
+ },
+ uploadAvatarSuccess (file) {
this.form.imgurlfull = file.imgurlfull
this.form.imgurl = file.imgurl
+ },
+ confirm () {
+ this.form.brandList = []
+ this.applyBrands.forEach(item => {
+ if (item.show) {
+ this.form.brandList.push(item)
+ }
+ })
+ if (this.form.id == null || this.form.id === '') {
+ this.__confirmCreate()
+ return
+ }
+ this.__confirmEdit()
}
- },
+ }
}
</script>
@@ -172,4 +303,7 @@
width: 100%;
}
}
+::v-deep .el-form-item__label{
+ width: 150px !important;
+}
</style>
diff --git a/admin/src/components/common/UploadImage.vue b/admin/src/components/common/UploadImage.vue
index 5a6a876..2fc87b3 100644
--- a/admin/src/components/common/UploadImage.vue
+++ b/admin/src/components/common/UploadImage.vue
@@ -33,15 +33,15 @@
</span>
</div>
</el-upload>
- <el-image-viewer
- v-if="showViewer"
+ <el-image-viewer
+ v-if="showViewer"
:on-close="closeViewer"
:initialIndex="tempIndex"
:url-list="srcList"
:z-index="3000"
/>
</div>
-
+
</template>
<script>
@@ -55,12 +55,15 @@
type: Array,
default: () => []
},
+ maxNum: {
+ type: Number,
+ default: () => null
+ },
uploadData: Object,
},
data() {
return {
uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadPicture',
-
realList: [],
srcList: [],
tempIndex: 0,
@@ -70,28 +73,34 @@
watch: {
fileList: {
handler(val) {
- console.log(val);
+ console.log("===================",val);
if (val.length==0) {
this.realList = []
this.srcList = []
+ }else{
+ this.realList=val
+ val.forEach(item =>{
+ this.srcList.push(item.url)
+ })
}
+
+ console.log("==================srcList=",this.srcList);
}
-
+
}
},
methods: {
beforeUpload(file) {
-
this.$emit('beginUpload')
return true
},
// 涓婁紶鍥剧墖鎴愬姛
- uploadSuccess (res, file, fileList) {
- // console.log('this.fileList', this.fileList);
+ uploadSuccess (res, file, fileList) {
+ console.log('this.fileList', this.fileList);
// console.log('fileList', fileList);
this.$emit('endUpload')
- this.realList = fileList
- this.srcList.push(res.data.url)
+ // this.realList = fileList
+ // this.srcList.push(res.data.url)
// console.log('file', file);
if (res.code === 200) {
this.fileList.push(
@@ -110,7 +119,7 @@
this.$message.error('涓婁紶澶辫触')
},
handlePictureCardPreview(file) {
- this.tempIndex = this.srcList.findIndex(item => item == file.response.data.url )
+ this.tempIndex = this.srcList.findIndex(item => item == file.url )
this.showViewer = true
},
closeViewer() {
@@ -118,12 +127,12 @@
},
handleRemove(file) {
console.log(this.fileList);
- let tempIndex = this.realList.findIndex(item => item.fileurl === file.response.data.imgaddr)
+ let tempIndex = this.realList.findIndex(item => item.fileurl === file.fileurl)
// debugger
this.realList.splice(tempIndex, 1)
this.fileList.splice(tempIndex, 1)
this.srcList.splice(tempIndex, 1)
-
+
},
},
}
diff --git a/admin/src/utils/request.js b/admin/src/utils/request.js
index e31d758..b991930 100644
--- a/admin/src/utils/request.js
+++ b/admin/src/utils/request.js
@@ -3,6 +3,7 @@
import pkg from '../../package'
import { trim } from './util'
import cache from '../plugins/cache'
+import { Message } from 'element-ui'
axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
const axiosInstance = axios.create({
@@ -13,7 +14,7 @@
// 鏂板缓璇锋眰鎷︽埅鍣�
axiosInstance.interceptors.request.use(config => {
- console.log(config);
+ console.log(config)
// debugger
// 鍙傛暟鍘荤┖鏍�
if (config.trim === true) {
@@ -42,7 +43,6 @@
// 鏂板缓鍝嶅簲鎷︽埅鍣�
axiosInstance.interceptors.response.use((response) => {
- // debugger
// 璇锋眰澶辫触
if (response.status !== 200) {
return Promise.reject(new Error('鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�'))
@@ -64,6 +64,7 @@
}
// 涓氬姟澶辫触
if (!response.data.success) {
+ Message.error(response.data.message)
return Promise.reject(response.data)
}
return response.data.data
diff --git a/admin/src/views/business/goodsLabels.vue b/admin/src/views/business/goodsLabels.vue
index 9f279dd..bc4be98 100644
--- a/admin/src/views/business/goodsLabels.vue
+++ b/admin/src/views/business/goodsLabels.vue
@@ -5,23 +5,6 @@
<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="module">
- <el-select
- v-model="searchForm.module"
- placeholder="璇烽�夋嫨鎵�灞炴澘鍧�"
- >
- <el-option
- :key="0"
- :value="0"
- label="骞冲彴鍟嗗煄"
- ></el-option>
- <el-option
- :key="1"
- :value="1"
- label="鍜栬眴鍟嗗煄"
- ></el-option>
- </el-select>
- </el-form-item>-->
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
@@ -30,7 +13,7 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:productlabel:create', 'business:productlabel:delete']">
- <li><el-button type="primary" @click="$refs.operaProductLabelWindow.open('鏂板缓鍟嗗搧鏍囩淇℃伅琛�')" icon="el-icon-plus" v-permissions="['business:productlabel:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" @click="$refs.operaProductLabelWindow.open('鏂板缓鍟嗗搧鍒嗙被')" icon="el-icon-plus" v-permissions="['business:productlabel:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">鍒犻櫎</el-button></li>
</ul>
<el-table
@@ -41,12 +24,7 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="module" label="鎵�灞炴澘鍧�" min-width="100px">
- <template slot-scope="{row}">
- {{ row.module==0?'骞冲彴鍟嗗煄':'鍜栬眴鍟嗗煄' }}
- </template>
- </el-table-column>
- <el-table-column prop="name" label="鍒嗙被鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鍟嗗搧鍒嗙被" min-width="100px"></el-table-column>
<el-table-column prop="sortnum" label="鎺掑簭鐮�(鍗囧簭)" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
<el-table-column prop="status" label="鐘舵��" min-width="100px">
@@ -68,7 +46,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaProductLabelWindow.open('缂栬緫鍟嗗搧鏍囩淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:productlabel:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.operaProductLabelWindow.open('缂栬緫鍟嗗搧鍒嗙被', row)" icon="el-icon-edit" v-permissions="['business:productlabel:update']">缂栬緫</el-button>
<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:productlabel:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
@@ -107,7 +85,7 @@
},
created () {
this.config({
- module: '鍟嗗搧鏍囩淇℃伅琛�',
+ module: '鍟嗗搧鍒嗙被淇℃伅琛�',
api: '/business/labels',
'field.id': 'id',
'field.main': 'id'
diff --git a/admin/src/views/business/orderSet.vue b/admin/src/views/business/orderSet.vue
new file mode 100644
index 0000000..b5b537b
--- /dev/null
+++ b/admin/src/views/business/orderSet.vue
@@ -0,0 +1,265 @@
+<template>
+ <div class="box" style="max-height:calc(100% - 60px);margin-bottom:50px;overflow-y: auto" >
+ <el-form :model="form" ref="form">
+ <div class="header">
+ <span style="font-size: 15px; font-weight: bold">銆�1銆戞敞鍐屽鍔�</span>
+ </div>
+ <div class="item-content">
+ <el-form-item label="绉垎濂栧姳" label-width="150px" prop="regIntegralRewardStatus">
+ <el-switch v-model="form.regIntegralRewardStatus" :active-value="0" :inactive-value="1" active-color="#13ce66" inactive-color="#ff4949" ></el-switch>
+ </el-form-item>
+ <el-form-item label="鏂颁汉娉ㄥ唽閫�" label-width="250px" prop="regIntegralReward">
+ <el-input style="width: 200px;margin: 0px 20px" type="number" v-model="form.regIntegralReward" placeholder="璇疯緭鍏�" v-trim>
+ <template slot="append">绉垎</template>
+ </el-input>
+ </el-form-item>
+ </div>
+ <div class="item-content">
+ <el-form-item label="浼樻儬鍒稿鍔�" label-width="150px" prop="regCouponRewardStatus">
+ <el-switch v-model="form.regCouponRewardStatus" :active-value="0" :inactive-value="1" active-color="#13ce66" inactive-color="#ff4949" ></el-switch>
+ </el-form-item>
+ <div >
+ <el-form-item label="鏂颁汉娉ㄥ唽閫佷紭鎯犲埜" label-width="250px" prop="regCouponRewardList">
+ </el-form-item>
+ <div style="margin-left: 150px;border: 1px solid #f2f2f2">
+ <el-table style="width: 600px;" :data="form.regCouponRewardList">
+ <el-table-column prop="shopPrice" label="浼樻儬鍒�" min-width="300px" align="center">
+ <template slot-scope="{row}" >
+ <el-select v-model="row.couponId" style="width: 200px;margin: 0px 20px" clearable filterable placeholder="璇烽�夋嫨浼樻儬鍒�" >
+ <el-option v-for="item in couponList" :label="item.name" :value="item.id"> </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column prop="num" label="鏁伴噺" min-width="200px" align="center">
+ <template slot-scope="{row}" >
+ <el-input style="width: 100px;margin: 0px 20px" type="number" v-model="row.num" placeholder="璇疯緭鍏ユ暟閲�" v-trim/>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" min-width="100px" align="center">
+ <template slot-scope="scope" >
+ <el-button style="color: red;border: none;" @click="delCoupon(0,scope.$index)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-button s type="primary" icon="el-icon-plus" @click="addCoupon(0)" style="height: 30px;margin: 10px;">娣诲姞</el-button>
+ </div>
+ </div>
+ </div>
+ <div class="header">
+ <span style="font-size: 15px; font-weight: bold">銆�2銆戦個璇峰ソ鍙嬪鍔�</span>
+ </div>
+ <div class="item-content">
+ <el-form-item label="绉垎濂栧姳" label-width="150px" prop="shareIntegralRewardStatus">
+ <el-switch v-model="form.shareIntegralRewardStatus" :active-value="0" :inactive-value="1" active-color="#13ce66" inactive-color="#ff4949" ></el-switch>
+ </el-form-item>
+ <el-form-item label="濂藉弸鎴愬姛娉ㄥ唽閫侀個璇蜂汉" label-width="250px" prop="shareIntegralReward">
+ <el-input style="width: 200px;margin: 0px 20px" type="number" v-model="form.shareIntegralReward" placeholder="璇疯緭鍏�" v-trim>
+ <template slot="append">绉垎</template>
+ </el-input>
+ </el-form-item>
+ </div>
+ <div class="item-content">
+ <el-form-item label="浼樻儬鍒稿鍔�" label-width="150px" prop="shareCouponRewardStatus">
+ <el-switch v-model="form.shareCouponRewardStatus" :active-value="0" :inactive-value="1" active-color="#13ce66" inactive-color="#ff4949" ></el-switch>
+ </el-form-item>
+ <div >
+ <el-form-item label="濂藉弸瀹屾垚棣栧崟閫侀個璇蜂汉浼樻儬鍒�" label-width="250px" prop="shareCouponRewardList">
+ </el-form-item>
+ <div style="margin-left: 150px;border: 1px solid #f2f2f2">
+ <el-table style="width: 600px;" :data="form.shareCouponRewardList">
+ <el-table-column prop="couponId" label="浼樻儬鍒�" min-width="300px" align="center">
+ <template slot-scope="{row}" >
+ <el-select v-model="row.couponId" style="width: 200px;margin: 0px 20px" clearable filterable placeholder="璇烽�夋嫨浼樻儬鍒�" >
+ <el-option v-for="item in couponList" :label="item.name" :value="item.id"> </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column prop="num" label="鏁伴噺" min-width="200px" align="center">
+ <template slot-scope="{row}" >
+ <el-input style="width: 100px;margin: 0px 20px" type="number" v-model="row.num" placeholder="璇疯緭鍏ユ暟閲�" v-trim/>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" min-width="100px" align="center">
+ <template slot-scope="scope" >
+ <el-button style="color: red;border: none;" @click="delCoupon(1,scope.$index)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-button s type="primary" icon="el-icon-plus" @click="addCoupon(1)" style="height: 30px;margin: 10px;">娣诲姞</el-button>
+ </div>
+ </div>
+ </div>
+ <div class="header">
+ <span style="font-size: 15px; font-weight: bold">銆�3銆戞秷璐硅繑绉垎</span>
+ </div>
+ <div class="item-content">
+ <el-form-item label="杩旂敤鎴风Н鍒�" label-width="150px" prop="returnMemberIntegralStatus">
+ <el-switch v-model="form.returnMemberIntegralStatus" :active-value="0" :inactive-value="1" active-color="#13ce66" inactive-color="#ff4949" ></el-switch>
+ </el-form-item>
+ <el-form-item label="璁㈠崟瀹炰粯閲戦姣忔弧" label-width="250px" prop="returnMemberIntegral">
+ <el-input style="width: 250px;margin: 0px 20px" type="number" v-model="form.returnMemberIntegral" placeholder="璇疯緭鍏�" v-trim>
+ <template slot="append">鍏冭繑鐢ㄦ埛1绉垎</template>
+ </el-input>
+ <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>鎻愰啋锛氬疄浠橀噾棰濆幓闄よ繍璐�</p>
+ </el-form-item>
+ </div>
+ <div class="item-content">
+ <el-form-item label="杩旂粡閿�鍟嗙Н鍒�" label-width="150px" prop="returnShopIntegralStatus">
+ <el-switch v-model="form.returnShopIntegralStatus" :active-value="0" :inactive-value="1" active-color="#13ce66" inactive-color="#ff4949" ></el-switch>
+ </el-form-item>
+ <el-form-item label="璁㈠崟瀹炰粯閲戦姣忔弧" label-width="250px" prop="returnShopIntegral">
+ <el-input style="width: 250px;margin: 0px 20px" type="number" v-model="form.returnShopIntegral" placeholder="璇疯緭鍏�" v-trim>
+ <template slot="append">鍏冭繑缁忛攢鍟�1绉垎</template>
+ </el-input>
+ <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>鎻愰啋锛氬疄浠橀噾棰濆幓闄よ繍璐�</p>
+ </el-form-item>
+ </div>
+ <div class="header">
+ <span style="font-size: 15px; font-weight: bold">銆�4銆戝悎璁′紭鎯犳壙鎷呮瘮渚�</span>
+ </div>
+ <div class="item-content">
+ <el-form-item label="鎬婚儴鎵挎媴" label-width="150px" prop="totalRate">
+ <el-input style="width: 200px;margin: 0px 20px" type="number" v-model="form.totalRate" placeholder="璇疯緭鍏�" v-trim>
+ <template slot="append">%</template>
+ </el-input>
+ <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>鎻愰啋锛氳缃�婚儴鍜岀粡閿�鍟嗗湪璁㈠崟鍚堣浼樻儬閲戦涓紙浼樻儬鍒�+绉垎鎶垫墸锛夊悇鑷壙鎷呯殑姣斾緥</p>
+ </el-form-item>
+ </div>
+ <el-form-item style="margin-top: 100px;width: 100%;text-align: center">
+ <el-button type="primary" style="width: 300px" :loading="working" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+</template>
+
+<script>
+import { getPlatformConfig, updPlatformConfig } from '@/api/system/dictData'
+import {allList} from '@/api/business/coupon'
+export default {
+ name: '',
+ data () {
+ return {
+ uploadData: {
+ folder: ''
+ },
+ isUploading: false,
+ working: false,
+ couponList: [],
+ form: {
+ regIntegralRewardStatus: 0,
+ shareIntegralRewardStatus: 0,
+ regCouponRewardStatus: 0,
+ shareCouponRewardStatus: 0,
+ regIntegralReward: 0,
+ shareIntegralReward: 0,
+ regCouponRewardList: [],
+ shareCouponRewardList: [],
+ returnMemberIntegralStatus: 0,
+ returnShopIntegralStatus: 0,
+ returnMemberIntegral: 0,
+ returnShopIntegral: 0,
+ totalRate: 0
+ }
+ }
+ },
+
+ created () {
+ this.getCouponList()
+ this.getData()
+ },
+
+ methods: {
+ getCouponList () {
+ allList({})
+ .then(res => {
+ if (res) {
+ this.couponList = res || []
+ }
+ })
+ },
+ delCoupon(type,index){
+ if(type ===0){
+ this.form.regCouponRewardList.splice(index,1)
+ }else if(type ===1){
+ this.form.shareCouponRewardList.splice(index,1)
+ }
+ },
+ addCoupon(type){
+ if(type ===0){
+ this.form.regCouponRewardList.push({couponId:null,num:null})
+ }else if(type ===1){
+ this.form.shareCouponRewardList.push({couponId:null,num:null})
+ }
+
+ },
+ getData () {
+ getPlatformConfig({})
+ .then(res => {
+ if (res) {
+ this.form = {
+ regIntegralRewardStatus: res.regIntegralRewardStatus || 0,
+ shareIntegralRewardStatus: res.shareIntegralRewardStatus || 0,
+ regCouponRewardStatus: res.regCouponRewardStatus || 0,
+ shareCouponRewardStatus: res.shareCouponRewardStatus || 0,
+ regIntegralReward: res.regIntegralReward || 0,
+ shareIntegralReward: res.shareIntegralReward || 0,
+ regCouponRewardList: res.regCouponRewardList || [],
+ shareCouponRewardList: res.shareCouponRewardList || [],
+ returnMemberIntegralStatus: res.returnMemberIntegralStatus || 0,
+ returnShopIntegralStatus: res.returnShopIntegralStatus || 0,
+ returnMemberIntegral: res.returnMemberIntegral || 0,
+ returnShopIntegral: res.returnShopIntegral || 0,
+ totalRate: res.totalRate || 0
+ }
+ }
+ })
+ },
+ submit () {
+ console.log(this.form)
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ updPlatformConfig(this.form).then(res => {
+ this.$message.success('淇濆瓨鎴愬姛')
+ this.getData()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ }
+}
+</script>
+<style lang="scss" scoped>
+.el-container /deep/ .el-main{
+ width: 100%;
+ overflow-y: auto !important ;
+ height: calc(100% - 94px);
+}
+.item-content{
+ display: flex;
+ width: 100%;
+}
+.header{
+ margin: 20px 0 20px 0;padding:10px;background-color: rgba(140,147,157,0.61);
+}
+/deep/ .el-main{
+ width: 100%;
+ //height: 100%;
+ overflow-y: auto !important ;
+ height: calc(100% - 94px);
+}
+.box {
+ width: 100%;
+ padding: 30px;
+ box-sizing: border-box;
+ background: #ffffff;
+}
+</style>
diff --git a/admin/src/views/business/platformGoods.vue b/admin/src/views/business/platformGoods.vue
index cad4c97..2c1f3df 100644
--- a/admin/src/views/business/platformGoods.vue
+++ b/admin/src/views/business/platformGoods.vue
@@ -2,11 +2,11 @@
<TableLayout :permissions="['business:goods:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-tabs v-model="activeName" @tab-click="handleClick">
+<!-- <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="鍏ㄩ儴鍟嗗搧" name="first"></el-tab-pane>
<el-tab-pane label="宸插敭缃勫晢鍝�" name="second"></el-tab-pane>
<el-tab-pane label="鍥炴敹绔欏晢鍝�" name="third"></el-tab-pane>
- </el-tabs>
+ </el-tabs>-->
<el-form-item label="鍟嗗搧鍚嶇О" prop="name">
<el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" @keypress.enter.native="search"></el-input>
</el-form-item>
@@ -51,15 +51,14 @@
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
- <el-button @click="$refs.operaPlatformGoodsSkuWindow.open('骞冲彴SKU')">閲嶇疆</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:goods:create', 'business:goods:delete']">
- <li><el-button type="primary" @click="$refs.operaGoodsWindow.open('鏂板缓鍟嗗搧', null, 0)" v-permissions="['business:goods:create']">鏂板缓</el-button></li>
- <li><el-button type="primary" @click="issued(0)">涓婃灦</el-button></li>
- <li><el-button type="primary" @click="soldOut(1)">涓嬫灦</el-button></li>
+ <li><el-button type="primary" icon="el-icon-plus" @click="$refs.operaGoodsWindow.open('鏂板缓鍟嗗搧', null, 0)" v-permissions="['business:goods:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" icon="el-icon-edit" @click="issued(0)">涓婃灦</el-button></li>
+ <li><el-button type="danger" icon="el-icon-edit" @click="issued(1)">涓嬫灦</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
@@ -69,10 +68,9 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="imgurl" label="鍟嗗搧淇℃伅" min-width="200px">
+ <el-table-column prop="imgurl" label="鍟嗗搧淇℃伅" min-width="100px">
<template slot-scope="{row}">
- <el-image v-if="row.imgurl" :src="row.resourcePath+row.imgurl" :preview-src-list="[row.resourcePath+row.imgurl]"></el-image>
- {{ row.name }}
+ <el-image style="width: 80px;height: 80px;" v-if="row.imgurl && row.imgurl!=''" :src="row.resourcePath+row.imgurl" :preview-src-list="[row.resourcePath+row.imgurl]"></el-image>
</template>
</el-table-column>
<el-table-column prop="id" label="鍟嗗搧ID" min-width="150px" ></el-table-column>
@@ -83,13 +81,18 @@
<el-table-column prop="stockNum" label="鍓╀綑搴撳瓨閲�" min-width="100px"></el-table-column>
<el-table-column prop="salesVolume" label="瀹為檯閿�閲�" min-width="100px"></el-table-column>
<el-table-column prop="skuPrice" label="闆跺敭浠�(鍏�)" min-width="100px"></el-table-column>
+ <el-table-column prop="shopPrice" label="渚涜揣浠疯缃�" min-width="100px" align="center">
+ <template slot-scope="{row}" >
+ <div @click="goPriceSet(row)" style="cursor:pointer;"><span class="red"> {{row.shopPriceNum||0}}</span> / <span class="green"> {{row.shopNum||0}}</span> </div>
+ </template>
+ </el-table-column>
<el-table-column prop="editDate" label="鏈�杩戞洿鏂版椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <el-table-column prop="status" label="涓婁笅鏋剁姸鎬�" min-width="100px" fixed="right" align="center">
<template slot-scope="{row}">
<el-switch
v-model="row.status"
- :active-value="1"
- :inactive-value="0"
+ :active-value="0"
+ :inactive-value="1"
active-color="#13ce66"
inactive-color="#ff4949"
@change="statusChange(row)"
@@ -98,13 +101,14 @@
</el-table-column>
<el-table-column
label="鎿嶄綔"
- min-width="120"
+ min-width="250"
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', row, 0)" v-permissions="['business:goods:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" v-permissions="['business:goods:delete']">鍒犻櫎</el-button>
- <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('鍟嗗搧璇︽儏', row, 0)">鏌ョ湅璇︽儏</el-button>
+ <el-button type="text" @click="$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', row, 0)" v-permissions="['business:goods:update']">缂栬緫</el-button>
+ <el-button type="text" @click="goPriceSet(row)">渚涜揣浠�</el-button>
+ <el-button type="text" style="color: red;" @click="deleteById(row)" v-permissions="['business:goods:delete']">鍒犻櫎</el-button>
+ <!-- <el-button type="text" @click="$refs.operaGoodsDetailWindow.open('鍟嗗搧璇︽儏', row, 0)">鏌ョ湅璇︽儏</el-button>-->
</template>
</el-table-column>
</el-table>
@@ -129,8 +133,7 @@
import OperaGoodsWindow from '@/components/business/OperaGoodsWindow'
import OperaGoodsDetailWindow from '@/components/business/OperaGoodsDetailWindow'
import OperaPlatformGoodsSkuWindow from '@/components/business/OperaPlatformGoodsSkuWindow'
-import { fetchList as labelList } from '@/api/business/labels'
-import { updateById } from '@/api/business/goods'
+import { findAll as labelList } from '@/api/business/labels'
export default {
name: 'Goods',
extends: BaseTable,
@@ -165,13 +168,14 @@
labels: ''
},
labels: [],
- brands: [],
+ serials: [],
+ brands: []
}
},
- provide() {
+ provide () {
return {
labels: () => this.labels,
- brands: () => this.brands,
+ brands: () => this.brands
}
},
created () {
@@ -182,58 +186,50 @@
'field.main': 'id'
})
this.search()
-
labelList({
- capacity: 999,
- model: {
- type: 0 //鍟嗗搧鍒嗙被
- }
+ type: 0 // 鍟嗗搧鍒嗙被
+ }).then(res => {
+ this.labels = res
+ })
+ labelList({
+ type: 1 // 鍟嗗搧鍝佺墝
})
.then(res => {
- this.labels = res.records
- })
- labelList({
- capacity: 999,
- model: {
- type: 1 //鍟嗗搧鍝佺墝
- }
- })
- .then(res => {
- this.brands = res.records
+ this.brands = res
})
},
methods: {
- handleClick(val) {
+ goPriceSet(row){
+ },
+ handleClick (val) {
},
/**
*
* @param {涓婁笅鐘舵�亇 status 0涓婃灦 1涓嬫灦
*/
- issued(status) {
+ issued (status) {
if (this.tableData.selectedRows.length === 0) {
this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
return
}
- let message = `纭${status==0?'涓婃灦':'涓嬫灦'}閫変腑鐨勫晢鍝佷箞?`
+ const message = `纭${status === 0 ? '涓婃灦' : '涓嬫灦'}閫変腑鐨勫晢鍝佷箞?`
this.$dialog.messageWaring(message)
.then(() => {
-
})
},
-
- statusChange(row) {
- updateById(row)
+ statusChange (row) {
+ this.statusChangeBiz([row])
+ },
+ statusChangeBiz (rows) {
+ this.api.updateStatus(rows)
.then(() => {
- this.$message.success('鎿嶄綔鎴愬姛')
+ this.search()
})
.catch(e => {
- this.$message.error('鎿嶄綔鎴愬姛')
- })
- .then(() => {
- this.handlePageChange()
+ this.search()
})
}
- },
+ }
}
</script>
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/CouponController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/CouponController.java
index bdbfe85..ffad992 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/CouponController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/CouponController.java
@@ -81,6 +81,12 @@
public ApiResponse<PageData<Coupon>> findPage (@RequestBody PageWrap<Coupon> pageWrap) {
return ApiResponse.success(couponService.findPage(pageWrap));
}
+ @ApiOperation("鍒楄〃鏌ヨ")
+ @PostMapping("/list")
+ @RequiresPermissions("business:coupon:query")
+ public ApiResponse<List<Coupon>> findList (@RequestBody Coupon pageWrap) {
+ return ApiResponse.success(couponService.findList(pageWrap));
+ }
@ApiOperation("瀵煎嚭Excel")
@PostMapping("/exportExcel")
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsController.java
index ae7cf0c..2d7053c 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsController.java
@@ -26,7 +26,6 @@
@RestController
@RequestMapping("/business/goods")
public class GoodsController extends BaseController {
-
@Autowired
private GoodsService goodsService;
@@ -70,9 +69,9 @@
@ApiOperation("鍟嗗搧涓婁笅鏋剁姸鎬佷慨鏀�")
- @PostMapping("/updateStatusById")
+ @PostMapping("/updateStatus")
@RequiresPermissions("business:goods:update")
- public ApiResponse updateStatusById(@RequestBody List<Goods> list) {
+ public ApiResponse updateStatus(@RequestBody List<Goods> list) {
goodsService.updateStatusById(list);
return ApiResponse.success(null);
}
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java b/server/dmmall_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
index 5d240d3..d08234f 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -8,6 +8,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.PlatformConfigDTO;
import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -99,4 +100,18 @@
return ApiResponse.success(null);
}
+ @ApiOperation("鑾峰彇骞冲彴閰嶇疆椤�")
+ @GetMapping("/getPlatformConfig")
+ public ApiResponse<PlatformConfigDTO> getPlatformConfig () {
+ return ApiResponse.success(systemDictDataService.getPlatformConfigDTO());
+ }
+
+
+ @ApiOperation("鏇存柊骞冲彴閰嶇疆椤�")
+ @PostMapping("/updPlatformConfig")
+ public ApiResponse updPlatformConfig (@RequestBody PlatformConfigDTO platformConfigDTO) {
+ systemDictDataService.updPlatformConfig(platformConfigDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
index a82cd73..c0cceb2 100644
--- a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -18,6 +18,20 @@
public static final int THREE = 3 ;
public static final int FOUR = 4 ;
public static final String LABELS_IMG ="LABELS_IMG" ;
+ public static final String ORDERSET_REG_INTEGRAL_REWARD_STATUS = "ORDERSET_REG_INTEGRAL_REWARD_STATUS";
+ public static final String ORDERSET_SHARE_INTEGRAL_REWARD_STATUS="ORDERSET_SHARE_INTEGRAL_REWARD_STATUS";
+ public static final String ORDERSET_REG_COUPON_REWARD_STATUS="ORDERSET_REG_COUPON_REWARD_STATUS";
+ public static final String ORDERSET_SHARE_COUPON_REWARD_STATUS="ORDERSET_SHARE_COUPON_REWARD_STATUS";
+ public static final String ORDERSET_REG_INTEGRAL_REWARD="ORDERSET_REG_INTEGRAL_REWARD";
+ public static final String ORDERSET_SHARE_INTEGRAL_REWARD="ORDERSET_SHARE_INTEGRAL_REWARD";
+ public static final String ORDERSET_REG_COUPON_REWARD_LIST="ORDERSET_REG_COUPON_REWARD_LIST";
+ public static final String ORDERSET_SHARE_COUPON_REWARD_LIST="ORDERSET_SHARE_COUPON_REWARD_LIST";
+ public static final String ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS="ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS";
+ public static final String ORDERSET_RETURN_SHOP_INTEGRAL_STATUS="ORDERSET_RETURN_SHOP_INTEGRAL_STATUS";
+ public static final String ORDERSET_RETURN_MEMBER_INTEGRAL="ORDERSET_RETURN_MEMBER_INTEGRAL";
+ public static final String ORDERSET_RETURN_SHOP_INTEGRAL="ORDERSET_RETURN_SHOP_INTEGRAL";
+ public static final String ORDERSET_TOTAL_RATE="ORDERSET_TOTAL_RATE";
+ public static final String ORDER_SET ="ORDER_SET" ;
/**
* mq tag
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
index a8e80dc..e47f226 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
@@ -136,6 +136,9 @@
@ApiModelProperty(value = "sku閲戦", hidden = true)
@TableField(exist = false)
private BigDecimal skuPrice;
+ @ApiModelProperty(value = "sku鏄剧ず浠锋牸", hidden = true)
+ @TableField(exist = false)
+ private BigDecimal showPrice;
@ApiModelProperty(value = "sku鎬婚噾棰�", hidden = true)
@TableField(exist = false)
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java b/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
new file mode 100644
index 0000000..f92f32b
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
@@ -0,0 +1,52 @@
+package com.doumee.dao.system.dto;
+
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:50
+ */
+@Data
+@ApiModel("绯荤粺璁㈠崟閰嶇疆")
+public class PlatformConfigDTO {
+
+ @ApiModelProperty(value = "娉ㄥ唽绉垎濂栧姳鐘舵�� 0寮�鍚� 1鍏抽棴")
+ private Integer regIntegralRewardStatus;
+ @ApiModelProperty(value = "閭�璇峰ソ鍙嬬Н鍒嗗鍔辩姸鎬� 0寮�鍚� 1鍏抽棴")
+ private Integer shareIntegralRewardStatus;
+ @ApiModelProperty(value = "娉ㄥ唽浼樻儬鍒稿鍔辩姸鎬� 0寮�鍚� 1鍏抽棴")
+ private Integer regCouponRewardStatus;
+ @ApiModelProperty(value = "閭�璇峰ソ鍙嬩紭鎯犲埜濂栧姳鐘舵�� 0寮�鍚� 1鍏抽棴")
+ private Integer shareCouponRewardStatus;
+
+ @ApiModelProperty(value = "娉ㄥ唽绉垎濂栧姳鏁伴噺")
+ private BigDecimal regIntegralReward;
+ @ApiModelProperty(value = "閭�璇峰ソ鍙嬬Н鍒嗗鍔辨暟閲�")
+ private BigDecimal shareIntegralReward;
+
+ @ApiModelProperty(value = "娉ㄥ唽浼樻儬鍒稿鍔遍泦鍚�")
+ private List<JSONObject> regCouponRewardList;
+ @ApiModelProperty(value = "閭�璇峰ソ鍙嬩紭鎯犲埜濂栧姳闆嗗悎")
+ private List<JSONObject> shareCouponRewardList;
+
+ @ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂敤鎴风Н鍒嗙姸鎬� 0寮�鍚� 1鍏抽棴")
+ private Integer returnMemberIntegralStatus;
+ @ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂粡閿�鍟嗙Н鍒嗙姸鎬� 0寮�鍚� 1鍏抽棴")
+ private Integer returnShopIntegralStatus;
+ @ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂敤鎴风Н鍒嗘暟閲�")
+ private BigDecimal returnMemberIntegral;
+ @ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂粡閿�鍟嗙Н鍒嗘暟閲�")
+ private BigDecimal returnShopIntegral;
+ @ApiModelProperty(value = "鍚堣浼樻儬鎵挎媴姣斾緥锛�%锛�")
+ private BigDecimal totalRate;
+
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
index da2a769..78e2ed2 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
@@ -182,9 +182,18 @@
}
@Override
- public List<Coupon> findList(Coupon coupon) {
- QueryWrapper<Coupon> wrapper = new QueryWrapper<>(coupon);
- return couponMapper.selectList(wrapper);
+ public List<Coupon> findList(Coupon pageWrap) {
+ MPJLambdaWrapper<Coupon> queryWrapper = new MPJLambdaWrapper<>();
+ Utils.MP.blankToNull(pageWrap );
+ queryWrapper.selectAll(Coupon.class);
+ queryWrapper.like(StringUtils.isNotBlank(pageWrap. getName()),Coupon::getName,pageWrap.getName());
+ queryWrapper.eq(Coupon::getIsdeleted,Constants.ZERO);
+ queryWrapper.orderByDesc(Coupon::getCreateDate);
+ List<Coupon> result = couponJoinMapper.selectList( queryWrapper);
+ for(Coupon model:result){
+ initCouponStatus(model);
+ }
+ return result;
}
@Override
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index 3559a14..4378754 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -156,7 +156,7 @@
goodsSku.setGoodsId(goods.getId());
goodsSku.setName(goods.getName());
goodsSku.setPrice(goods.getSkuPrice());
- goodsSku.setShowPrice(goods.getPrice());
+ goodsSku.setShowPrice(goods.getShowPrice());
goodsSku.setStock(goods.getStockNum());
goodsSku.setIntegralRate(goods.getDeductRata());
goodsSku.setUnitName(goods.getUnitName());
@@ -211,6 +211,7 @@
|| goods.getBrandList() == null
|| goods.getBrandList().size() == 0
|| goods.getWeight() == null
+ || goods.getDeductRata() == null
|| goods.getPrice() == null
|| goods.getSkuPrice() == null
|| StringUtils.isBlank(goods.getImgurl())
@@ -218,6 +219,10 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage());
}
+ if(goods.getDeductRata().compareTo(new BigDecimal(0.1)) <Constants.ZERO ||
+ goods.getDeductRata().compareTo(new BigDecimal(100)) >Constants.ZERO){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝绉垎鍙姷鎵i噾棰濇瘮渚嬭璁剧疆[0.1,100]涔嬮棿~");
+ }
//鏌ヨ鍒嗙被
Labels cate = labelsMapper.selectById(goods.getCategoryId());
if(cate == null || Constants.equalsInteger(cate.getIsdeleted(),Constants.ONE)
@@ -225,7 +230,7 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鍒嗙被淇℃伅涓嶅瓨鍦�");
}
if(goods.getBrandId()!=null){
- Labels brand = labelsMapper.selectById(goods.getCategoryId());
+ Labels brand = labelsMapper.selectById(goods.getBrandId());
if(brand == null || Constants.equalsInteger(brand.getIsdeleted(),Constants.ONE)
||! Constants.equalsInteger(brand.getType(),Constants.LabelsType.GOODSBRAND.getKey())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鍝佺墝淇℃伅涓嶅瓨鍦�");
@@ -234,7 +239,7 @@
List<Integer> bIds = new ArrayList<>();
for(Labels b : goods.getBrandList()){
bIds.add(b.getId());
- if(b.getChildIdList() == null || b.getChildIdList().size() ==0){
+ if(b.getChildIdList() != null && b.getChildIdList().size() >=0){
bIds.addAll(b.getChildIdList());
}
}
@@ -251,9 +256,9 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勯�傜敤鍝佺墝");
}
idsBrand.add("["+b.getId()+"]");
- if(b.getChildIdList() == null || b.getChildIdList().size() ==0){
+ if(b.getChildIdList()!= null && b.getChildIdList().size() >=0){
for(Integer c :b.getChildIdList()){
- Labels cb = findLabelFromListByid(allBrands,b.getId(),Constants.LabelsType.SERIES_BRAND.getKey(),b.getId());
+ Labels cb = findLabelFromListByid(allBrands,c,Constants.LabelsType.SERIES_BRAND.getKey(),b.getId());
if(cb == null){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鍝佺墝銆�"+tb.getName() +"銆戜笅鎵�灞炵郴鍒椾笉姝g‘");
}
@@ -265,7 +270,6 @@
if(idsSerial.size()>0){
goods.setSerialIds(String.join(",",idsSerial));
}
-
}
private Labels findLabelFromListByid(List<Labels> allBrands, Integer id, int type,Integer parentId) {
@@ -274,13 +278,13 @@
}
for(Labels labels:allBrands){
if(!Constants.equalsInteger(id,labels.getId())){
- return null;
+ continue;
}
if(!Constants.equalsInteger(type,labels.getType())){
- return null;
+ continue;
}
if(parentId !=null && !Constants.equalsInteger(parentId,labels.getParentId())){
- return null;
+ continue;
}
return labels;
}
@@ -364,11 +368,11 @@
skuMapper.update(null,new UpdateWrapper<Sku>().lambda()
.set(Sku::getIsdeleted,Constants.ONE)
.eq(Sku::getIsdeleted,Constants.ZERO)
- .eq(Sku::getGoodsId,goods.getSkuId()));
+ .eq(Sku::getGoodsId,goods.getId()));
goodsSkuMapper.update(null,new UpdateWrapper<GoodsSku>().lambda()
.set(GoodsSku::getIsdeleted,Constants.ONE)
.eq(GoodsSku::getIsdeleted,Constants.ZERO)
- .eq(GoodsSku::getGoodsId,goods.getSkuId()));
+ .eq(GoodsSku::getGoodsId,goods.getId()));
dealDefaultGoodsSku(goods);//鏂板缓sku淇℃伅
dealBatchMultiFiles(goods, goods.getFileList(), user,true);
}
@@ -526,7 +530,8 @@
@Override
public Goods findById(Integer id) {
MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>();
- String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();
+ String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
queryWrapper.eq(Goods::getId,id);
queryWrapper.selectAll(Goods.class);
@@ -554,6 +559,7 @@
//榛樿sku淇℃伅
GoodsSku goodsSku = goodsSkuList.get(0);
goods.setSkuPrice(goodsSku.getPrice());
+ goods.setShowPrice(goodsSku.getShowPrice());
goods.setWeight(goodsSku.getWeight());
goods.setStockNum(goodsSku.getStock());
goods.setUnitName(goodsSku.getUnitName());
@@ -592,6 +598,7 @@
}
}
}
+ goods.setBrandList(brandList);
}
}
@@ -721,7 +728,7 @@
queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getBrandId);
queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getParentCategoryId);
//搴撳瓨閲�
- queryWrapper.select("(select sum(STOCK) from goods_sku where ISDELETED=0 and GOODS_ID=t.id) as stockNum ");
+ queryWrapper.select("(select sum(STOCK) from goods_sku where ISDELETED=0 and GOODS_ID=t.id) as stockNum ");
//瀹為檯閿�閲�
queryWrapper.select("(select sum(gd.GOODS_NUM) from goodsorder_detail gd" +
" inner join goods_sku gs on gs.id=gd.GOODS_SKU_ID" +
@@ -773,7 +780,8 @@
if (list == null || list.size() == 0) {
return;
}
- String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
+ String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
for (Goods goods : list) {
goods.setResourcePath(path);
//鏌ヨsku
@@ -788,9 +796,11 @@
//榛樿sku淇℃伅
goods.setSkuPrice(goodsSku.getPrice());
goods.setWeight(goodsSku.getWeight());
+ goods.setShowPrice(goodsSku.getShowPrice());
goods.setStockNum(goodsSku.getStock());
goods.setUnitName(goodsSku.getUnitName());
}
+// initGoodsApplyBrandAndSerial(goods);
}
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
index 2f72c64..cb752f4 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
@@ -232,10 +232,7 @@
@Override
public List<Labels> findList(Labels labels) {
-
-
MPJLambdaWrapper<Labels> query = new MPJLambdaWrapper<>();
-
if(labels!=null&&labels.getParentId()!=null){
query.eq(Labels::getParentId,labels.getParentId());
}else{
@@ -248,7 +245,15 @@
}
query.eq(Labels::getIsdeleted,Constants.ZERO);
query.eq(labels.getType()!=null,Labels::getType,labels.getType());
+ query.orderByAsc(Labels::getSortnum);
List<Labels> list= labelsJoinMapper.selectList(query);
+ List<Labels> childList= null;
+ if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){
+ childList= labelsJoinMapper.selectList(new QueryWrapper<Labels>().lambda()
+ .eq(Labels::getIsdeleted,Constants.ZERO)
+ .eq(Labels::getType,Constants.LabelsType.SERIES_BRAND.getKey())
+ .orderByAsc(Labels::getSortnum));
+ }
for(Labels model:list){
if(Constants.equalsInteger(model.getType(),Constants.LabelsType.BIG_AREA.getKey())){
//濡傛灉鏄ぇ鍖轰俊鎭紝鏌ヨ鎵�鏈夌粦瀹氶鐪佷唤淇℃伅
@@ -256,6 +261,24 @@
.eq(Areas::getIsdeleted,Constants.ZERO)
.eq(Areas::getBigAreaId,model.getId())));
}
+ if(Constants.equalsInteger(labels.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())
+ &&Constants.equalsInteger(model.getType(),Constants.LabelsType.APPLICABLE_BRAND.getKey())){
+ //濡傛灉鏄�傚簲鍝佺墝锛屽垯鏌ヨ涓嬬骇绯诲垪
+ model.setChildList(getChildListbyParentId(childList,model.getId()));
+ }
+ }
+ return list;
+ }
+
+ private List<Labels> getChildListbyParentId(List<Labels> childList, Integer id) {
+ List<Labels> list = new ArrayList<>();
+ if(childList!=null && childList.size()>0){
+ for(Labels labels : childList){
+ if(Constants.equalsInteger(labels.getParentId(),id)){
+ list.add(labels);
+ }
+ }
+
}
return list;
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/system/SystemDictDataService.java b/server/dmmall_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
index 6d3fb87..969e240 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.dao.system.dto.PlatformConfigDTO;
import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -96,5 +97,8 @@
List<SystemDictData> findList(Integer dicId,List<String> codes);
+ PlatformConfigDTO getPlatformConfigDTO();
+
+ void updPlatformConfig(PlatformConfigDTO platformConfigDTO);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index a34d8ba..2d919f1 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -1,8 +1,13 @@
package com.doumee.service.system.impl;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.SystemDictMapper;
+import com.doumee.dao.system.dto.PlatformConfigDTO;
import com.doumee.dao.system.model.SystemDict;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -20,6 +25,8 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -33,6 +40,8 @@
@Autowired
private SystemDictDataMapper systemDictDataMapper;
+ @Autowired
+ private SystemDictMapper systemDictMapper;
@Override
public Integer create(SystemDictData systemDictData) {
@@ -112,4 +121,169 @@
.in(SystemDictData::getLabel,codes);
return systemDictDataMapper.selectList(wrapper);
}
+
+
+
+ @Override
+ public PlatformConfigDTO getPlatformConfigDTO(){
+ PlatformConfigDTO platformConfigDTO = new PlatformConfigDTO();
+ platformConfigDTO.setRegIntegralReward(new BigDecimal(0));
+ platformConfigDTO.setRegCouponRewardStatus(0);
+ platformConfigDTO.setRegCouponRewardList(new ArrayList<>());
+ platformConfigDTO.setRegIntegralRewardStatus(0);
+
+ platformConfigDTO.setShareIntegralReward(new BigDecimal(0));
+ platformConfigDTO.setShareCouponRewardList(new ArrayList<>());
+ platformConfigDTO.setShareIntegralRewardStatus(0);
+ platformConfigDTO.setShareCouponRewardStatus(0);
+
+ platformConfigDTO.setReturnMemberIntegral(new BigDecimal(0));
+ platformConfigDTO.setReturnShopIntegral(new BigDecimal(0));
+ platformConfigDTO.setReturnMemberIntegralStatus(0);
+ platformConfigDTO.setReturnShopIntegralStatus(0);
+
+ platformConfigDTO.setTotalRate(new BigDecimal(0));
+
+ SystemDict dict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda()
+ .eq(SystemDict::getCode,Constants.ORDER_SET).last("limit 1"));
+ if(dict == null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏁版嵁瀛楀吀閰嶇疆鏁版嵁鏈夎锛岃鑱旂郴绯荤粺绠$悊鍛樺鐞嗭紒");
+ }
+
+ List<SystemDictData> systemDictDataList = systemDictDataMapper.selectList(new QueryWrapper<SystemDictData>()
+ .lambda().eq(SystemDictData::getDictId,dict.getId())
+ .in(SystemDictData::getLabel
+ , Constants.ORDERSET_REG_INTEGRAL_REWARD_STATUS
+ , Constants.ORDERSET_SHARE_INTEGRAL_REWARD_STATUS
+ , Constants.ORDERSET_REG_COUPON_REWARD_STATUS
+ , Constants.ORDERSET_SHARE_COUPON_REWARD_STATUS
+ , Constants.ORDERSET_REG_INTEGRAL_REWARD
+ , Constants.ORDERSET_SHARE_INTEGRAL_REWARD
+ , Constants.ORDERSET_REG_COUPON_REWARD_LIST
+ , Constants.ORDERSET_SHARE_COUPON_REWARD_LIST
+ , Constants.ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS
+ , Constants.ORDERSET_RETURN_SHOP_INTEGRAL_STATUS
+ , Constants.ORDERSET_RETURN_MEMBER_INTEGRAL
+ , Constants.ORDERSET_RETURN_SHOP_INTEGRAL
+ ,Constants.ORDERSET_TOTAL_RATE )
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)){
+ for (SystemDictData systemDictData:systemDictDataList) {
+ if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD)){
+ platformConfigDTO.setRegIntegralReward(getDecimalValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_STATUS)){
+ platformConfigDTO.setRegCouponRewardStatus(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_LIST)){
+ platformConfigDTO.setRegCouponRewardList(getListValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD_STATUS)){
+ platformConfigDTO.setRegIntegralRewardStatus(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD)){
+ platformConfigDTO.setShareIntegralReward(getDecimalValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_LIST)){
+ platformConfigDTO.setShareCouponRewardList(getListValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD_STATUS)){
+ platformConfigDTO.setShareIntegralRewardStatus(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_STATUS)){
+ platformConfigDTO.setShareCouponRewardStatus(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL)){
+ platformConfigDTO.setReturnMemberIntegral(getDecimalValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL)){
+ platformConfigDTO.setReturnShopIntegral(getDecimalValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS)){
+ platformConfigDTO.setReturnMemberIntegralStatus(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL_STATUS)){
+ platformConfigDTO.setReturnShopIntegralStatus(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.ORDERSET_TOTAL_RATE)) {
+ platformConfigDTO.setTotalRate(getDecimalValByStr(systemDictData.getCode()));
+ }
+ }
+ }
+ return platformConfigDTO;
+ }
+
+ private Integer getIntegerValByStr(String code) {
+ try {
+ return Integer.parseInt(code);
+ }catch (Exception e){
+ }
+ return 0;
+ }
+ private BigDecimal getDecimalValByStr(String code) {
+ try {
+ return new BigDecimal(code);
+ }catch (Exception e){
+ }
+ return new BigDecimal(0);
+ }
+ private List<JSONObject> getListValByStr(String code) {
+ try {
+ return JSONObject.parseObject(code,new TypeReference<List<JSONObject>>(){});
+ }catch (Exception e){
+ }
+ return new ArrayList();
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class, BusinessException.class})
+ public void updPlatformConfig(PlatformConfigDTO platformConfigDTO) {
+ SystemDict dict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda()
+ .eq(SystemDict::getCode, Constants.ORDER_SET).last("limit 1"));
+ if (dict == null) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏁版嵁瀛楀吀閰嶇疆鏁版嵁鏈夎锛岃鑱旂郴绯荤粺绠$悊鍛樺鐞嗭紒");
+ }
+ List<SystemDictData> systemDictDataList = systemDictDataMapper.selectList(new QueryWrapper<SystemDictData>()
+ .lambda()
+ .eq(SystemDictData::getDictId, dict.getId())
+ .in(SystemDictData::getLabel
+ , Constants.ORDERSET_REG_INTEGRAL_REWARD_STATUS
+ , Constants.ORDERSET_SHARE_INTEGRAL_REWARD_STATUS
+ , Constants.ORDERSET_REG_COUPON_REWARD_STATUS
+ , Constants.ORDERSET_SHARE_COUPON_REWARD_STATUS
+ , Constants.ORDERSET_REG_INTEGRAL_REWARD
+ , Constants.ORDERSET_SHARE_INTEGRAL_REWARD
+ , Constants.ORDERSET_REG_COUPON_REWARD_LIST
+ , Constants.ORDERSET_SHARE_COUPON_REWARD_LIST
+ , Constants.ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS
+ , Constants.ORDERSET_RETURN_SHOP_INTEGRAL_STATUS
+ , Constants.ORDERSET_RETURN_MEMBER_INTEGRAL
+ , Constants.ORDERSET_RETURN_SHOP_INTEGRAL
+ , Constants.ORDERSET_TOTAL_RATE)
+ );
+ if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)) {
+ for (SystemDictData systemDictData : systemDictDataList) {
+ if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD_STATUS)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getRegIntegralRewardStatus()) + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD_STATUS)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getShareIntegralRewardStatus()) + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_STATUS)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getRegCouponRewardStatus()) + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_STATUS)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getShareCouponRewardStatus()) + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD)) {
+ systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getRegIntegralReward()).doubleValue() + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD)) {
+ systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getShareIntegralReward()).doubleValue() + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_LIST)) {
+ systemDictData.setCode(JSONObject.toJSONString(platformConfigDTO.getRegCouponRewardList() == null ? new ArrayList() : platformConfigDTO.getRegCouponRewardList()));
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_LIST)) {
+ systemDictData.setCode(JSONObject.toJSONString(platformConfigDTO.getShareCouponRewardList() == null ? new ArrayList() : platformConfigDTO.getShareCouponRewardList()));
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getReturnMemberIntegralStatus()) + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL_STATUS)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getReturnShopIntegralStatus()) + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL)) {
+ systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getReturnMemberIntegral()).doubleValue() + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL)) {
+ systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getReturnShopIntegral()).doubleValue() + "");
+ } else if (systemDictData.getLabel().equals(Constants.ORDERSET_TOTAL_RATE)) {
+ systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getTotalRate()).doubleValue() + "");
+ }
+ systemDictDataMapper.update(new UpdateWrapper<SystemDictData>().lambda()
+ .set(SystemDictData::getCode, systemDictData.getCode())
+ .eq(SystemDictData::getId, systemDictData.getId()));
+ }
+ }
+ }
+
}
--
Gitblit v1.9.3