From d8689abdb2378bdd1c97317ca881173eca26283c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期三, 14 一月 2026 17:13:52 +0800
Subject: [PATCH] 经销商管理
---
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 | 9
server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java | 10
admin/src/assets/style/style.scss | 5
admin/src/views/business/coupon.vue | 59 +-
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 2
server/dmmall_admin/src/main/java/com/doumee/api/business/GoodsController.java | 6
admin/src/views/business/integralRuleSet.vue | 265 ++++++++++++++
admin/src/api/business/goods.js | 5
admin/src/components/business/OperaCouponWindow.vue | 267 +++++++++-----
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Coupon.java | 13
admin/src/components/business/OperaCouponGoodsWindow.vue | 264 ++++++++++++++
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 9
server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java | 79 ++--
server/dmmall_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java | 3
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java | 30 +
16 files changed, 844 insertions(+), 185 deletions(-)
diff --git a/admin/src/api/business/goods.js b/admin/src/api/business/goods.js
index 448ba8b..d3e03c4 100644
--- a/admin/src/api/business/goods.js
+++ b/admin/src/api/business/goods.js
@@ -6,6 +6,11 @@
trim: true
})
}
+export function allList (data) {
+ return request.post('/business/goods/list', data, {
+ trim: true
+ })
+}
export function detail (id) {
return request.get(`/business/goods/${id}`)
}
diff --git a/admin/src/assets/style/style.scss b/admin/src/assets/style/style.scss
index 5201527..b83ba28 100644
--- a/admin/src/assets/style/style.scss
+++ b/admin/src/assets/style/style.scss
@@ -54,11 +54,14 @@
.red{
color: red;
}
+.grey{
+ color: grey;
+}
.green{
color: green;
}
.blue{
- color: blue;
+ color: #216EEE;
}.orange{
color: orange;
}
diff --git a/admin/src/components/business/OperaCouponGoodsWindow.vue b/admin/src/components/business/OperaCouponGoodsWindow.vue
new file mode 100644
index 0000000..fd5a9e3
--- /dev/null
+++ b/admin/src/components/business/OperaCouponGoodsWindow.vue
@@ -0,0 +1,264 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="80%"
+ :visible.sync="visible"
+ @confirm="confirm"
+ >
+ <TableLayout :permissions="['business:goods:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" style="display: block;" >
+ <el-form-item label="" prop="name" label-width="5px" style="display: inline-block;margin-right: 30px;">
+ <el-input v-model="searchForm.name" style="width: 150px;" placeholder="鍟嗗搧鍚嶇О" clearable @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="" prop="categoryId" label-width="5px" style="display: inline-block;margin-right: 30px;" >
+ <el-select v-model="searchForm.categoryId" placeholder="鎵�灞炲垎绫�" clearable style="width: 150px;" >
+ <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" label-width="5px" style="display: inline-block">
+ <el-select v-model="searchForm.brandId" placeholder="鎵�灞炲搧鐗�" style="width: 150px;" >
+ <el-option v-for="item in brands" :key="item.id" :value="item.id" :label="item.name" clearable ></el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <div :style="'display: flex;height:'+tabelHeight+'px;'">
+ <div style="flex: 6;">
+ <ul class="toolbar">
+ <li><el-button type="primary" icon="el-icon-plus" @click="addAll()" :disabled="!(tableData.selectedRows && tableData.selectedRows.length)">鎵归噺娣诲姞</el-button></li>
+ </ul>
+ <el-table
+ ref="singleTable"
+ :height="tabelHeight-80"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ border
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" :selectable="checkSelectable" width="55"></el-table-column>
+ <el-table-column prop="imgurl" label="鍒楄〃鍥�" min-width="70px">
+ <template slot-scope="{row}">
+ <el-image style="width: 50px;height: 50px;" 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" ></el-table-column>
+ <el-table-column prop="name" label="鍟嗗搧鍚嶇О" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="categoryName" label="鎵�灞炲垎绫�" ></el-table-column>
+ <el-table-column prop="brandName" label="鎵�灞炲搧鐗�" ></el-table-column>
+ <el-table-column prop="price" label="灞曠ず浠锋牸" ></el-table-column>
+ <el-table-column prop="skuPrice" label="闆跺敭浠�(鍏�)" ></el-table-column>
+ <el-table-column label="鎿嶄綔" align="center" min-width="80px" fixed="right" >
+ <template slot-scope="{ row }">
+ <el-button style="color: red" v-if="row.tabStatus === 2" type="text" icon="el-icon-delete" @click="delItem(row)">绉婚櫎</el-button>
+ <el-button v-else type="text" icon="el-icon-plus" @click="add(row)">娣诲姞</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </div>
+ <div style="flex: 2;margin-left: 20px;border: 1px solid #f2f2f2;padding: 10px;font-size: 12px;">
+ <div style="display: flex;">
+ <div style="flex: 6"> <span>宸查�夋嫨<i class="blue" style="margin: 0 10px">{{selectGoods.length||0}}</i>浠跺晢鍝�</span></div>
+ <div style="flex: 1;text-align: right"> <el-button size="mini" type="danger" class="blue" @click="cleanAll">娓呯┖</el-button></div>
+ </div>
+ <div :style="`display: flex;flex-direction: column;max-height: ${tabelHeight-80}px;overflow: auto`">
+ <div v-for="(item,index) in selectGoods" style="display: flex;margin: 10px 0;" :key="'selGoods'+item.id">
+ <div style="flex: 6">{{item.name}}<br><span class="red">锟{item.skuPrice || 0}}</span></div>
+ <div style="flex: 1;text-align: right;">
+ <el-button class="blue" style="border: none;color: red" icon="el-icon-delete" @click="del(item,index)"></el-button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </template>
+ </TableLayout>
+ </GlobalWindow>
+</template>
+
+<script>
+import GlobalWindow from '@/components/common/GlobalWindow'
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import { findAll as labelList } from '@/api/business/labels'
+export default {
+ name: 'OperaCouponGoodsWindow',
+ extends: BaseTable,
+ components: { GlobalWindow, TableLayout, Pagination },
+ data () {
+ return {
+ activeName: 'first',
+ title: '',
+ visible: false,
+ tabelHeight: null,
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ categoryId: '',
+ brandId: '',
+ type: '0', // 骞冲彴鍟嗗搧
+ status: '',
+ isrec: '',
+ labels: ''
+ },
+ labels: [],
+ serials: [],
+ brands: [],
+ selectGoods: []
+ }
+ },
+ mounted() {
+ window.addEventListener('resize', this.handleResize);
+ },
+ beforeDestroy() {
+ window.removeEventListener('resize', this.handleResize);
+ },
+ created () {
+ this.config({
+ module: '鍟嗗搧淇℃伅琛�',
+ api: '/business/goods',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ labelList({
+ type: 0 // 鍟嗗搧鍒嗙被
+ }).then(res => {
+ this.labels = res
+ })
+ labelList({
+ type: 1 // 鍟嗗搧鍝佺墝
+ })
+ .then(res => {
+ this.brands = res
+ })
+ this.handleResize()
+ },
+ methods: {
+ handleResize(){
+ this.tabelHeight = window.innerHeight - 300
+ },
+ checkSelectable (row) {
+ return row.tabStatus !== 2
+ },
+ addAll () {
+ if (this.tableData.selectedRows && this.tableData.selectedRows.length) {
+ this.tableData.selectedRows.forEach(item => {
+ this.add(item)
+ })
+ this.$nextTick(() => {
+ if (this.$refs.singleTable) {
+ this.$refs.singleTable.clearSelection()
+ }
+ })
+ }
+ },
+ cleanAll () {
+ this.selectGoods = []
+ this.tableData.list.forEach(item => {
+ item.tabStatus = 1
+ })
+ this.$nextTick(() => {
+ if (this.$refs.singleTable) {
+ this.$refs.singleTable.clearSelection()
+ }
+ })
+ },
+ add (row) {
+ var add = true
+ row.tabStatus = 2
+ console.log(this.tableData.list)
+ this.selectGoods.forEach(item => {
+ if (item.id === row.id) {
+ add = false
+ }
+ })
+ if (add) {
+ this.selectGoods.push(row)
+ }
+ },
+ del (row, index) {
+ this.selectGoods.splice(index, 1)
+ this.tableData.list.forEach(item => {
+ if (item.id === row.id) {
+ item.tabStatus = 1
+ }
+ })
+ },
+ delItem (delItem) {
+ this.selectGoods.forEach((item, index) => {
+ if (item.id === delItem.id) {
+ this.del(item, index)
+ }
+ })
+ },
+ confirm () {
+ this.$emit('success', this.selectGoods)
+ this.visible = false
+ },
+ open (title, goods) {
+ this.title = title
+ this.visible = true
+ this.cleanAll()
+ if (goods && goods.length) {
+ goods.forEach(item => {
+ this.selectGoods.push(item)
+ })
+ }
+ this.search()
+ },
+ handlePageChange (pageIndex) {
+ this.__checkApi()
+ this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
+ this.isWorking.search = true
+ this.api.fetchList({
+ page: this.tableData.pagination.pageIndex,
+ capacity: this.tableData.pagination.pageSize,
+ model: this.searchForm,
+ sorts: this.tableData.sorts
+ })
+ .then(data => {
+ this.tableData.list = data.records || []
+ this.tableData.pagination.total = data.total
+ this.tableData.list.forEach(item => {
+ item.tabStatus = 1
+ this.selectGoods.forEach(row => {
+ if (item.id === row.id) {
+ item.tabStatus = 2
+ }
+ })
+ })
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.search = false
+ })
+ },
+ goPriceSet (row) {
+
+ },
+ handleClick (val) {
+ }
+ }
+}
+</script>
+<style scoped>
+.table-pagination{
+ position: fixed !important;
+ bottom: 50px;
+}
+</style>
diff --git a/admin/src/components/business/OperaCouponWindow.vue b/admin/src/components/business/OperaCouponWindow.vue
index 8e6eb3d..68002b6 100644
--- a/admin/src/components/business/OperaCouponWindow.vue
+++ b/admin/src/components/business/OperaCouponWindow.vue
@@ -1,116 +1,121 @@
<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
+ <GlobalWindow
+ :title="title"
+ width="80%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
>
<el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�" inline>
+ <p class="tip-header" >鍩烘湰灞炴��</p>
<el-form-item label="浼樻儬鍒稿悕绉�" prop="name">
<el-input v-model="form.name" placeholder="璇疯緭鍏ヤ紭鎯犲埜鍚嶇О" :maxlength="12" v-trim/>
</el-form-item>
- <el-form-item label="浼樻儬鍒歌鏄�" prop="info">
- <el-input v-model="form.info" placeholder="璇疯緭鍏ヤ紭鎯犲埜璇存槑" :maxlength="30" v-trim/>
+ <el-form-item label="绫诲瀷" prop="couponType">
+ <el-radio-group v-model="form.couponType">
+ <el-radio :label="0" >婊″噺鍒�</el-radio>
+ <el-radio :label="1">鎶樻墸鍒�</el-radio>
+ </el-radio-group>
</el-form-item>
- <el-form-item label="浼樻儬瑙勫垯" prop="couponRule">
+ <el-form-item label="浼樻儬瑙勫垯" prop="couponRule" >
<div class="coupon-rule">
<div class="discrep">璁㈠崟婊�</div>
- <el-input
- v-model="form.limitPrice"
- placeholder="璇疯緭鍏�"
- @input="inputAction(form, 'limitPrice')"
+ <el-input v-model="form.limitPrice" placeholder="璇疯緭鍏�" @input="inputAction(form, 'limitPrice')"
>
<template slot="append">鍏�</template>
</el-input>
- <div class="discrep">鍑�</div>
- <el-input
- v-model="form.price"
- placeholder="璇疯緭鍏�"
- @input="inputAction(form, 'price')"
- >
- <template slot="append">鍏�</template>
+ <div class="discrep" >{{form.couponType === 1?'锛屼韩':'锛屽噺'}}</div>
+ <el-input v-model="form.price" placeholder="璇疯緭鍏�" @input="inputAction(form, 'price')" >
+ <template slot="append" >{{form.couponType ===1?'鎶�':'鍏�'}}</template>
</el-input>
</div>
</el-form-item>
- <el-form-item label="鍙戞斁鎬婚噺" prop="num">
- <div class="num-style">
- <el-input-number step-strictly v-model="form.num" :controls="false" :min="1" :max="99999" placeholder="璇疯緭鍏ュ彂鏀炬�婚噺(1~99999)" v-trim></el-input-number>
- </div>
+ <el-form-item label="浼樻儬鍒歌鏄�" prop="info">
+ <el-input type="textarea" v-model="form.info" placeholder="璇疯緭鍏ヤ紭鎯犲埜璇存槑" v-trim/>
</el-form-item>
- <el-form-item v-if="form.type==1" label="鍏戞崲鏉′欢" prop="integral">
- <el-input-number step-strictly v-model="form.integral" :controls="false" :min="1" :max="99999" placeholder="璇疯緭鍏�" v-trim/> 鍜栬眴鍏戞崲涓�寮犱紭鎯犲埜
+ <p class="tip-header" >浣跨敤闄愬埗</p>
+ <el-form-item label="鏈夋晥鏈�" prop="useType">
+ <el-radio-group v-model="form.useType">
+ <el-radio :label="0">鍥哄畾鏃舵</el-radio>
+ <el-radio :label="1">鍥哄畾鏃堕暱</el-radio>
+ </el-radio-group>
</el-form-item>
- <el-form-item label="鍙鍙栨椂闂�" prop="getDate">
+ <el-form-item label="浣跨敤鏃舵" prop="getDate" v-if="form.useType===0">
<div class="date-style">
<el-date-picker
- v-model="getDate"
- type="datetimerange"
- value-format="yyyy-MM-dd HH:mm:ss"
- format="yyyy-MM-dd HH:mm:ss"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- @change="selectDate"
+ v-model="getDate"
+ type="datetimerange"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ format="yyyy-MM-dd HH:mm:ss"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ @change="selectDate"
></el-date-picker>
</div>
</el-form-item>
-
- <el-form-item label="鍙敤鏃堕棿" prop="validDays">
- <!-- <el-input v-model="form.validDays" placeholder="璇疯緭鍏ラ鍙栧悗鏈夋晥澶╂暟" v-trim/> -->
+ <el-form-item label="鍥哄畾鏃堕暱" prop="validDays" v-if="form.useType===1">
<div class="coupon-rule">
<div class="discrep">棰嗗姷鍚�</div>
<el-input
- v-model="form.validDays"
- placeholder="璇疯緭鍏�"
- @input="inputAction(form, 'validDays')"
+ v-model="form.validDays"
+ placeholder="璇疯緭鍏�"
+ @input="inputAction(form, 'validDays')"
>
<template slot="append">澶�</template>
</el-input>
- <div class="discrep">鍐呮湁鏁堬紝棰嗗彇鍚庣珛鍗崇敓鏁�</div>
+ <div class="discrep">鏈夋晥</div>
</div>
</el-form-item>
- <el-form-item v-if="form.type==0" label="鍏宠仈搴楅摵" prop="shopId">
- <el-select
- v-model="form.shopId"
- placeholder="璇疯緭鍏ュ簵閾哄悕绉帮紝鍐嶉�夋嫨"
- filterable
- remote
- reserve-keyword
- :remote-method="remoteMethod"
- :loading="searchLoading"
-
- >
- <el-option
- v-for="item in shops"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
+ <el-form-item label="閫傜敤瀵硅薄" prop="applyType">
+ <el-radio-group v-model="form.applyType">
+ <el-radio :label="0">鍏ㄥ満閫氱敤</el-radio>
+ <el-radio :label="1">鎸夊搧绫�</el-radio>
+ <el-radio :label="2">鎸囧畾鍟嗗搧</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item v-if="form.applyType===1" label="閫夋嫨鍝佺被" prop="applyCateIdList" >
+ <el-select v-model="form.applyCateIdList" placeholder="璇烽�夋嫨,鏀寔澶氶��" filterable multiple clearable >
+ <el-option v-for="item in categorys" :key="'optCate'+item.id" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
+ <el-form-item v-if="form.applyType===2" label="閫夋嫨鍟嗗搧" prop="applyIdList" style="display: flex">
+ <span style="font-size: 12px;color: #216EEE" @click="selectGoods">宸叉寚瀹氥�� {{applyDataList.length}} 銆戜欢鍟嗗搧</span>
+ <el-button style="margin-left:30px;display: inline-block;width: 80px;" type="primary" @click="selectGoods">鍘婚�夋嫨 </el-button>
+ </el-form-item>
+ <p class="tip-header" >鍙戞斁瑙勫垯</p>
+ <el-form-item label="鍙戞斁鎬婚噺" prop="num">
+ <div class="num-style">
+ <el-input-number v-model="form.num" :controls="false" :min="1" :max="99999" placeholder="璇疯緭鍏ュ彂鏀炬�婚噺(1~99999)" v-trim></el-input-number>
+ </div>
+ </el-form-item>
</el-form>
- </GlobalAlertWindow>
+ <OperaCouponGoodsWindow ref="OperaCouponGoodsWindow" @success="doSelect"/>
+ </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
import { fetchList as shopList } from '@/api/business/shop'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { findAll as labelList } from '@/api/business/labels'
+import { allList as goodsList} from '@/api/business/goods'
+import OperaCouponGoodsWindow from '@/components/business/OperaCouponGoodsWindow'
export default {
name: 'OperaCouponWindow',
extends: BaseOpera,
- components: { GlobalAlertWindow },
+ components: { GlobalWindow,OperaCouponGoodsWindow },
data () {
- let couponRules = (rule, value, callback) => {
+ const couponRules = (rule, value, callback) => {
if (!this.form.limitPrice) {
callback(new Error('璇疯緭鍏ユ弧棰�'))
} else if (!this.form.price) {
- callback(new Error('璇疯緭鍏ヤ紭鎯犻噾棰�'))
+ callback(new Error('璇峰畬鍠勪紭鎯犺鍒�'))
} else {
callback()
}
}
- let getDateRules = (rule, value, callback) => {
+ const getDateRules = (rule, value, callback) => {
if (!this.form.startDate) {
callback(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
} else if (!this.form.endDate) {
@@ -119,7 +124,7 @@
callback()
}
}
- let numRule = (rule, value, callBack) => {
+ const numRule = (rule, value, callBack) => {
if (value < 0) {
callBack(new Error())
} else {
@@ -129,16 +134,24 @@
return {
searchLoading: false,
getDate: [],
+ applyDataList:[],
+ showGoods:false,
// 琛ㄥ崟鏁版嵁
form: {
id: null,
name: '',
+ couponType: 0,
+ applyType: 0,
+ useType: 0,
shopId: '',
- type: '',
+ applyIdList: [],
+ applyCateIdList: [],
+ type: 0,
limitPrice: '',
price: '',
startDate: '',
endDate: '',
+ applyIds: '',
validDays: '',
getMethod: '',
integral: '',
@@ -147,29 +160,39 @@
info: ''
},
shops: [],
+ categorys: [],
// 楠岃瘉瑙勫垯
rules: {
name: [
{ required: true, message: '璇疯緭鍏ヤ紭鎯犲埜鍚嶇О', tigger: 'blur' }
],
couponRule: [
- { required: true, validator: couponRules, tigger: 'blur'}
+ { required: true, validator: couponRules, tigger: 'blur' }
+ ],
+ useType: [
+ { required: true, message: '璇烽�夋嫨鏈夋晥鏈熸柟寮�' }
+ ],
+ couponType: [
+ { required: true, message: '璇烽�夋嫨绫诲瀷' }
+ ],
+ applyType: [
+ { required: true, message: '璇烽�夋嫨閫傜敤瀵硅薄绫诲瀷' }
],
num: [
- { required: true, validator: numRule, message: '璇疯緭鍏ュ彂鏀炬�绘暟', tigger: 'blur'}
+ { required: true, validator: numRule, message: '璇疯緭鍏ュ彂鏀炬�绘暟', tigger: 'blur' }
],
- integral: [
- { required: true, validator: numRule, message: '璇疯緭鍏ュ厬鎹㈡潯浠�', tigger: 'blur'}
- ],
- validDays: [
- { required: true, message: '璇疯緭鍏ュ彲鐢ㄦ椂闂�', tigger: 'blur'}
- ],
- getDate: [
- { required: true, validator: getDateRules, tigger: 'change'}
- ],
- shopId: [
- { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈搴楅摵', tigger: 'change'}
- ],
+ /*integral: [
+ { required: true, validator: numRule, message: '璇疯緭鍏ュ厬鎹㈡潯浠�', tigger: 'blur' }
+ ],*/
+ // validDays: [
+ // { required: true, message: '璇疯緭鍏ュ彲鐢ㄦ椂闂�', tigger: 'blur' }
+ // ],
+ // getDate: [
+ // { required: true, validator: getDateRules, tigger: 'change' }
+ // ],
+ // shopId: [
+ // { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈搴楅摵', tigger: 'change' }
+ // ]
}
}
},
@@ -180,21 +203,62 @@
})
},
methods: {
+ selectGoods(){
+ this.$refs.OperaCouponGoodsWindow.open('閫夋嫨鍟嗗搧', this.applyDataList)
+ },
+ loadLabels(){
+ labelList({
+ type: 0 // 鍟嗗搧鍒嗙被
+ }).then(res => {
+ this.categorys = res || []
+ })
+ },
+ loadSelectGoods(){
+ console.log(this.form.applyIdList)
+ if(!this.form.applyIdList || !this.form.applyIdList.length){
+ return
+ }
+ goodsList({
+ idList: this.form.applyIdList // 鍟嗗搧鍒嗙被
+ }).then(res => {
+ this.applyDataList = res || []
+ })
+ },
+ doSelect(rows){
+ console.log(rows,this.applyDataList)
+ this.applyDataList =[]
+ this.form.applyIdList=[]
+ if(rows && rows.length){
+ rows.forEach(item => {
+ this.applyDataList.push(item)
+ this.form.applyIdList.push(item.id)
+ })
+ }
+ },
open (title, target, type) {
+ this.showGoods=false
this.title = title
this.visible = true
this.form.type = type
this.getDate = []
this.form.startDate = ''
this.form.endDate = ''
+ this.applyDataList=[]
+ this.form.applyIdList=[]
+ this.form.applyCateIdList=[]
+ this.loadLabels()
+ this.form.limitPrice=null
+ this.form.price=null
+ this.form.startDate=null
+ this.form.endDate=null
+ this.form.num=1
// 鏂板缓
if (target == null) {
this.$nextTick(() => {
this.$refs.form.resetFields()
- console.log(this.form);
+ console.log(this.form)
this.form[this.configData['field.id']] = null
})
-
return
}
// 缂栬緫
@@ -203,29 +267,42 @@
this.form[key] = target[key]
}
this.getDate = [target.startDate, target.endDate]
+ if(this.form.applyType === 1){
+ this.form.applyCateIdList =[]
+ var ta = this.form.applyIds.split(',')
+ if(ta && ta.length){
+ ta.forEach(tt =>{
+ this.form.applyCateIdList.push(parseInt(tt))
+ })
+ }
+ }
+ if(this.form.applyType === 2){
+ this.form.applyIdList = this.form.applyIds.split(',')
+ this.loadSelectGoods()
+ }
})
},
- selectDate(value) {
+ selectDate (value) {
this.form.startDate = value[0]
this.form.endDate = value[1]
},
- inputAction(item, key) {
- if(item[key]<0) {
+ inputAction (item, key) {
+ if (item[key] < 0) {
item[key] = ''
} else {
item[key] = item[key].replace(/[^\d.]/g, '')
- .replace(/\.{2,}/g, '.')
- .replace('.', '$#$')
- .replace(/\./g, '')
- .replace('$#$', '.')
- .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
- .replace(/^\./g, '')
+ .replace(/\.{2,}/g, '.')
+ .replace('.', '$#$')
+ .replace(/\./g, '')
+ .replace('$#$', '.')
+ .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
+ .replace(/^\./g, '')
}
},
- remoteMethod(query) {
+ remoteMethod (query) {
if (query !== '') {
this.searchLoading = true
- let action = this.form.type==2 ? activityList : shopList
+ const action = this.form.type == 2 ? activityList : shopList
action({
capacity: 999,
model: {
@@ -239,8 +316,8 @@
this.searchLoading = false
})
}
- },
- },
+ }
+ }
}
</script>
diff --git a/admin/src/views/business/coupon.vue b/admin/src/views/business/coupon.vue
index 7cdf90a..d306af7 100644
--- a/admin/src/views/business/coupon.vue
+++ b/admin/src/views/business/coupon.vue
@@ -2,19 +2,16 @@
<TableLayout :permissions="['business:coupon:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浼樻儬鍒稿悕绉�" prop="name">
+ <el-form-item label="鍚嶇О" prop="name">
<el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ紭鎯犲埜鍚嶇О" @keypress.enter.native="search"></el-input>
</el-form-item>
<!-- 0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� -->
- <!-- <el-form-item label="浼樻儬鍒哥被鍨�" prop="type">
- <el-select
- v-model="searchForm.type"
- placeholder="璇烽�夋嫨浼樻儬鍒哥被鍨�"
- >
- <el-option key="0" :value="0" label="鍟嗗浼樻儬鍒�"></el-option>
- <el-option key="1" :value="1" label="骞冲彴浼樻儬鍒�"></el-option>
+ <el-form-item label="绫诲瀷" prop="couponType">
+ <el-select v-model="searchForm.couponType" clearable placeholder="璇烽�夋嫨浼樻儬鍒哥被鍨�" >
+ <el-option key="0" :value="0" label="婊″噺鍒�"></el-option>
+ <el-option key="1" :value="1" label="鎶樻墸鍒�"></el-option>
</el-select>
- </el-form-item> -->
+ </el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
@@ -23,9 +20,8 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:coupon:create', 'business:coupon:delete']">
- <li><el-button type="primary" @click="$refs.operaCouponWindow.open('鏂板缓骞冲彴浼樻儬鍒�', null, 1)" v-permissions="['business:coupon:create']">鏂板缓骞冲彴浼樻儬鍒�</el-button></li>
- <li><el-button type="primary" @click="$refs.operaCouponWindow.open('鏂板缓鍟嗗浼樻儬鍒�', null, 0)" v-permissions="['business:coupon:create']">鏂板缓鍟嗗浼樻儬鍒�</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:coupon:delete']">鍒犻櫎</el-button></li>
+ <li><el-button type="primary" icon="el-icon-plus" @click="$refs.operaCouponWindow.open('鏂板缓', null, 1)" v-permissions="['business:coupon:create']">鏂板缓</el-button></li>
+ <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:coupon:delete']">鍒犻櫎</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
@@ -35,23 +31,21 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="浼樻儬鍒稿悕绉�" align="center" min-width="120px">
+ <el-table-column prop="name" label="浼樻儬鍒稿悕绉�" align="center" min-width="120px"></el-table-column>
+ <el-table-column label="绫诲瀷" align="center" min-width="100px">
<template slot-scope="{row}">
- <el-button type="text" @click="showDetail(row)">{{ row.name }}</el-button>
+ <span v-if="row.couponType ===0"> 婊″噺鍒�</span>
+ <span v-if="row.couponType ===1"> 鎶樻墸鍒�</span>
</template>
</el-table-column>
- <el-table-column label="浼樻儬瑙勫垯" align="center" min-width="100px">
+ <el-table-column label="浼樻儬瑙勫垯" align="center" min-width="150px" show-overflow-tooltip>
<template slot-scope="{row}">
- {{ `婊�${row.limitPrice}鍑�${row.price}` }}
- </template>
- </el-table-column>
- <el-table-column prop="type" label="浼樻儬鍒哥被鍨�" align="center" min-width="100px">
- <template slot-scope="{row}">
- {{ row.type==0?'鍟嗗浼樻儬鍒�':'骞冲彴浼樻儬鍒�' }}
+ <span v-if="row.couponType ===0"> {{ `璁㈠崟婊�${row.limitPrice||0}鍏冿紝鍑�${row.price||0}` }}鍏�</span>
+ <span v-if="row.couponType ===1"> {{ `璁㈠崟婊�${row.limitPrice||0}鍏冿紝浜�${row.price||0}鎶榒 }}</span>
</template>
</el-table-column>
<el-table-column prop="num" label="鍙戞斁鎬婚噺" align="center" min-width="100px"></el-table-column>
- <el-table-column label="宸查鍙�" align="center" min-width="100px">
+ <el-table-column label="宸插彂閫佹暟閲�" align="center" min-width="100px">
<template slot-scope="{row}">
<el-button type="text" @click="showCouponUse(row.id)">{{ row.unused + row.used }}</el-button>
</template>
@@ -62,12 +56,17 @@
</template>
</el-table-column>
<el-table-column prop="used" label="浣跨敤鏁伴噺" align="center" min-width="100px"></el-table-column>
- <el-table-column prop="validDays" label="棰嗗彇鍚庢湁鏁堝ぉ鏁�" align="center" min-width="110px"></el-table-column>
- <el-table-column prop="startDate" label="寮�濮嬫椂闂�" align="center" min-width="140px"></el-table-column>
- <el-table-column prop="endDate" label="缁撴潫鏃堕棿" align="center" min-width="140px"></el-table-column>
- <el-table-column label="杩涜鐘舵��" align="center" min-width="100px">
+ <el-table-column prop="validDays" label="浣跨敤鏈夋晥鏈�" align="center" min-width="210px">
<template slot-scope="{row}">
- {{ row.status==0 ? '鏈紑濮�' : row.status==1 ? '杩涜涓�' : '宸茬粨鏉�' }}
+ <span v-if="row.useType ===0"><li> 璧凤細{{ row.startDate}}</li> <li>姝細{{row.endDate }}</li></span>
+ <span v-if="row.useType ===1"> {{ `棰嗙敤鍚�${row.validDays||0}澶╂湁鏁坄 }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="閫傜敤绫诲瀷" align="center" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.applyType ===0"> 鍏ㄧ▼閫氱敤</span>
+ <span v-if="row.applyType ===1"> 鎸夊搧绫�</span>
+ <span v-if="row.applyType ===2"> 鎸囧畾鍟嗗搧</span>
</template>
</el-table-column>
<el-table-column prop="status" label="鐘舵��" align="center" min-width="100px">
@@ -87,7 +86,7 @@
label="鎿嶄綔"
min-width="120"
fixed="right"
- align="center"
+ align="center"
>
<template slot-scope="{row}">
<el-button type="text" @click="$refs.operaCouponWindow.open('缂栬緫浼樻儬鍒�', row)" icon="el-icon-edit" v-permissions="['business:coupon:update']">缂栬緫</el-button>
@@ -126,7 +125,7 @@
// 鎼滅储
searchForm: {
name: '',
- type: ''
+ couponType: ''
}
}
},
@@ -144,7 +143,7 @@
this.$refs.operaCouponDetail.open('浼樻儬鍒歌鎯�', row)
},
showCouponUse(id) {
-
+
this.$refs.operaCouponUsedDetail.open('浼樻儬鍒搁鍙栬鎯�', id)
},
statusChange(row) {
diff --git a/admin/src/views/business/integralRuleSet.vue b/admin/src/views/business/integralRuleSet.vue
new file mode 100644
index 0000000..b5b537b
--- /dev/null
+++ b/admin/src/views/business/integralRuleSet.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/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 2d7053c..06d7720 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
@@ -98,6 +98,12 @@
public ApiResponse<PageData<Goods>> findPage (@RequestBody PageWrap<Goods> pageWrap) {
return ApiResponse.success(goodsService.findPage(pageWrap));
}
+ @ApiOperation("鍒楄〃鏌ヨ")
+ @PostMapping("/list")
+ @RequiresPermissions("business:goods:query")
+ public ApiResponse<List<Goods>> findList (@RequestBody Goods pageWrap) {
+ return ApiResponse.success(goodsService.findList(pageWrap));
+ }
@ApiOperation("鏍规嵁涓撳尯鍒嗙被鏌ヨ鍟嗗搧")
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 84e39a4..9206f05 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
@@ -1,6 +1,7 @@
package com.doumee.core.utils;
import com.doumee.dao.business.model.Areas;
+import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.collections4.CollectionUtils;
import java.math.BigDecimal;
@@ -30,8 +31,16 @@
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 INTERALSET_DEDUCTINTEGRALLIMIT="INTERALSET_DEDUCTINTEGRALLIMIT";
+ public static final String INTERALSET_MININTEGRALPRICELIMIT="INTERALSET_MININTEGRALPRICELIMIT";
+ public static final String INTERALSET_INTEGRALINVALIDTYPE="INTERALSET_INTEGRALINVALIDTYPE";
+ public static final String INTERALSET_INTEGRALINVALIDCIRCLE="INTERALSET_INTEGRALINVALIDCIRCLE";
+ public static final String INTERALSET_INTEGRALRULEINFO="INTERALSET_INTEGRALRULEINFO";
+
public static final String ORDERSET_TOTAL_RATE="ORDERSET_TOTAL_RATE";
public static final String ORDER_SET ="ORDER_SET" ;
+ public static final String INTEGRAL_SET ="INTEGRAL_SET" ;
/**
* mq tag
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Coupon.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Coupon.java
index 01f5a43..3e73772 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Coupon.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Coupon.java
@@ -11,6 +11,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.math.BigDecimal;
+import java.util.List;
/**
* 浼樻儬鍒镐俊鎭〃
@@ -117,7 +118,7 @@
@ApiModelProperty(value = "閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧")
private Integer applyType;
- @ApiModelProperty(value = "閫傜敤鍏宠仈瀵硅薄淇℃伅涓婚敭")
+ @ApiModelProperty(value = "閫傜敤鍏宠仈瀵硅薄淇℃伅涓婚敭,澶氫釜鑻辨枃閫楀彿闅斿紑")
private String applyIds;
@ApiModelProperty(value = "鎶樻墸鍗锋弧鍑忎笂闄愰噾棰�")
@@ -145,8 +146,10 @@
@ApiModelProperty(value = "鏈娇鐢ㄦ暟閲�", example = "1")
@TableField(exist = false)
private Integer unused;
-
-
-
-
+ @ApiModelProperty(value = "閫傜敤鍏宠仈瀵硅薄淇℃伅涓婚敭,澶氫釜鑻辨枃閫楀彿闅斿紑")
+ @TableField(exist = false)
+ private List<Integer> applyIdList;
+ @ApiModelProperty(value = "閫傜敤鍏宠仈鍝佺被淇℃伅涓婚敭,澶氫釜鑻辨枃閫楀彿闅斿紑")
+ @TableField(exist = false)
+ private List<Integer> applyCateIdList;
}
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 c5b7cd7..c0c0ee9 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
@@ -193,6 +193,9 @@
@ApiModelProperty(value = "鍟嗗搧sku淇℃伅")
@TableField(exist = false)
private List<Sku> skuList;
+ @ApiModelProperty(value = "鍟嗗搧缂栫爜闆嗗悎")
+ @TableField(exist = false)
+ private List<Integer> idList;
@ApiModelProperty(value = "鍟嗗搧sku淇℃伅")
@TableField(exist = false)
private List<Labels> brandList;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
index 9005c29..ac62637 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -1,3 +1,5 @@
+
+
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
index 1a11139..e7fd901 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/system/SystemDictDataMapper.java
@@ -4,10 +4,11 @@
import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.system.vo.SystemDictDataListVO;
+import com.github.yulichang.base.MPJBaseMapper;
import java.util.List;
-public interface SystemDictDataMapper extends BaseMapper<SystemDictData> {
+public interface SystemDictDataMapper extends MPJBaseMapper<SystemDictData> {
/**
* 鏌ヨ瀛楀吀鏁版嵁绠$悊鍒楄〃
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
index f92f32b..ea45030 100644
--- 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
@@ -47,6 +47,16 @@
private BigDecimal returnShopIntegral;
@ApiModelProperty(value = "鍚堣浼樻儬鎵挎媴姣斾緥锛�%锛�")
private BigDecimal totalRate;
+ @ApiModelProperty(value = "澶氬皯绉垎鎶垫墸1鍏�")
+ private Integer deductIntegralLimit;
+ @ApiModelProperty(value = "婊″灏戦噾棰濆彲浣跨敤绉垎")
+ private BigDecimal minIntegralPriceLimit;
+ @ApiModelProperty(value = "绉垎澶辨晥鏂瑰紡 0闀挎湡鏈夋晥 1鎸夌Н鍒嗕骇鐢熸椂闂村け鏁�")
+ private Integer integralInvalidType;
+ @ApiModelProperty(value = "绉垎閿�姣佸懆鏈�")
+ private Integer integralInvalidCircle;
+ @ApiModelProperty(value = "绉垎浣跨敤瑙勫垯璇存槑")
+ private String integralRuleInfo;
}
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 78e2ed2..53fd9d8 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
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -30,6 +31,7 @@
import java.util.Date;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 浼樻儬鍒镐俊鎭〃Service瀹炵幇
@@ -55,24 +57,21 @@
@Override
public Integer create(Coupon coupon) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ coupon.setType(Constants.ONE);
+ coupon.setGetMethod(Constants.ZERO);
isCreateParamValid(coupon);
- /**骞冲彴浼樻儬鍒告槸鍏戞崲浼樻儬鍒革紝鍟嗗浼樻儬鍒告槸棰嗗彇浼樻儬鍒�*/
- if(Constants.equalsInteger(coupon.getType(),Constants.ZERO)){
- coupon.setGetMethod(Constants.ZERO);
- }else if(Constants.equalsInteger(coupon.getType(),Constants.ONE)){
- coupon.setGetMethod(Constants.ONE);
- }
coupon.setIsdeleted(Constants.ZERO);
coupon.setCreator(user.getId());
coupon.setCreateDate(new Date());
- coupon.setStatus(Constants.ONE);
+ coupon.setEditor(user.getId());
+ coupon.setEditDate(new Date());
+ coupon.setStatus(Constants.ONE);//榛樿绂佺敤
couponMapper.insert(coupon);
return coupon.getId();
}
public void isCreateParamValid(Coupon coupon){
-
if(StringUtils.isBlank(coupon.getName())
|| coupon.getType()==null
||coupon.getLimitPrice()==null
@@ -81,7 +80,7 @@
/* ||coupon.getIntegral()==null*/
||coupon.getStartDate()==null
||coupon.getEndDate()==null
- ||coupon.getValidDays()==null
+// ||coupon.getValidDays()==null
){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage());
@@ -98,11 +97,17 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍏宠仈鐨勫簵閾轰笉瀛樺湪锛�");
}
}
+ coupon.setApplyIds("");
+ if(Constants.equalsInteger(coupon.getApplyType(),Constants.TWO) && coupon.getApplyIdList()!=null){
+ coupon.setApplyIds(coupon.getApplyIdList().stream().map(String::valueOf).collect(Collectors.joining(",")));//浣跨敤瀵硅薄缂栫爜闆嗗悎
+ }
+ if(Constants.equalsInteger(coupon.getApplyType(),Constants.ONE) && coupon.getApplyCateIdList()!=null){
+ coupon.setApplyIds(coupon.getApplyCateIdList().stream().map(String::valueOf).collect(Collectors.joining(",")));//浣跨敤瀵硅薄缂栫爜闆嗗悎
+ }
}
@Override
public void deleteById(Integer id) {
-
Coupon query= couponMapper.selectById(id);
initCouponStatus(query);
if(!Constants.equalsInteger(query.getCouponStatus(),Constants.ZERO)){
@@ -134,9 +139,9 @@
isCreateParamValid(coupon);
Coupon query= couponMapper.selectById(coupon.getId());
initCouponStatus(query);
- if(!Constants.equalsInteger(query.getCouponStatus(),Constants.ZERO)){
+ /* if(!Constants.equalsInteger(query.getCouponStatus(),Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "娲诲姩宸插紑濮�/宸茬粨鏉熺姸鎬侊紝涓嶆敮鎸佺紪杈戞搷浣�");
- }
+ }*/
coupon.setEditor(user.getId());
coupon.setEditDate(new Date());
couponMapper.updateById(coupon);
@@ -207,6 +212,7 @@
queryWrapper.select("(select count(id) from member_coupon where ISDELETED=0 and COUPON_ID=t.id and STATUS=1) as used");
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Coupon::getName,pageWrap.getModel().getName());
+ queryWrapper.eq(pageWrap.getModel().getCouponType()!=null,Coupon::getCouponType,pageWrap.getModel().getCouponType());
queryWrapper.eq(Coupon::getIsdeleted,Constants.ZERO);
queryWrapper.orderByDesc(Coupon::getCreateDate);
IPage<Coupon> result = couponJoinMapper.selectJoinPage(page,Coupon.class, queryWrapper);
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 d558a10..741055a 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
@@ -710,6 +710,9 @@
@Override
public List<Goods> findList(Goods goods) {
QueryWrapper<Goods> wrapper = new QueryWrapper<>(goods);
+ wrapper.lambda()
+ .in(goods.getIdList() != null && goods.getIdList().size()>0, Goods::getId, goods.getIdList())
+ .eq( Goods::getIsdeleted, Constants.ZERO);
return goodsMapper.selectList(wrapper);
}
@@ -718,9 +721,7 @@
IPage<Goods> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
-
queryWrapper.selectAll(Goods.class);
-
queryWrapper.select("t1.name",Goods::getCategoryName);
queryWrapper.select("t2.name" ,Goods::getBrandName);
queryWrapper.select("t3.name" ,Goods::getParentName);
@@ -750,8 +751,8 @@
queryWrapper.eq(pageWrap.getModel().getParentCategoryId() != null, Goods::getParentCategoryId, pageWrap.getModel().getParentCategoryId());
queryWrapper.eq(pageWrap.getModel().getBrandId() != null, Goods::getBrandId, pageWrap.getModel().getBrandId());
queryWrapper.eq(pageWrap.getModel().getStatus() != null, Goods::getStatus, pageWrap.getModel().getStatus());
-
- queryWrapper.orderByDesc(Goods::getCreateDate);
+ queryWrapper.in(pageWrap.getModel().getIdList() != null && pageWrap.getModel().getIdList().size()>0, Goods::getId, pageWrap.getModel().getIdList());
+ queryWrapper.orderByDesc(Goods::getId);
IPage<Goods> result = goodsAdminJoinMapper.selectJoinPage(page, Goods.class, queryWrapper);
initResult(result.getRecords());
return PageData.from(result);
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 2d919f1..4bb1bfc 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
@@ -20,6 +20,7 @@
import com.doumee.service.system.SystemDictDataService;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -142,30 +143,24 @@
platformConfigDTO.setReturnMemberIntegralStatus(0);
platformConfigDTO.setReturnShopIntegralStatus(0);
+ platformConfigDTO.setMinIntegralPriceLimit(new BigDecimal(0));
+ platformConfigDTO.setDeductIntegralLimit(0);
+ platformConfigDTO.setIntegralRuleInfo("");
+ platformConfigDTO.setIntegralInvalidType(0);
+ platformConfigDTO.setIntegralInvalidCircle(0);
+
platformConfigDTO.setTotalRate(new BigDecimal(0));
- SystemDict dict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda()
+ /* 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 )
+*/
+ List<SystemDictData> systemDictDataList = systemDictDataMapper.selectJoinList(SystemDictData.class,new MPJLambdaWrapper<SystemDictData>()
+ .selectAll(SystemDictData.class)
+ .leftJoin(SystemDict.class,SystemDict::getId,SystemDictData::getDictId)
+ .in(SystemDict::getCode,Constants.ORDER_SET,Constants.INTEGRAL_SET)
);
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)){
for (SystemDictData systemDictData:systemDictDataList) {
@@ -195,6 +190,17 @@
platformConfigDTO.setReturnShopIntegralStatus(getIntegerValByStr(systemDictData.getCode()));
}else if(systemDictData.getLabel().equals(Constants.ORDERSET_TOTAL_RATE)) {
platformConfigDTO.setTotalRate(getDecimalValByStr(systemDictData.getCode()));
+ }
+ else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDTYPE)) {
+ platformConfigDTO.setIntegralInvalidType(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDCIRCLE)) {
+ platformConfigDTO.setIntegralInvalidCircle(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALRULEINFO)) {
+ platformConfigDTO.setIntegralRuleInfo(systemDictData.getCode());
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_DEDUCTINTEGRALLIMIT)) {
+ platformConfigDTO.setDeductIntegralLimit(getIntegerValByStr(systemDictData.getCode()));
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_MININTEGRALPRICELIMIT)) {
+ platformConfigDTO.setMinIntegralPriceLimit(getDecimalValByStr(systemDictData.getCode()));
}
}
}
@@ -227,28 +233,15 @@
@Override
@Transactional(rollbackFor = {Exception.class, BusinessException.class})
public void updPlatformConfig(PlatformConfigDTO platformConfigDTO) {
- SystemDict dict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda()
+ /* 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)
+ }*/
+ List<SystemDictData> systemDictDataList = systemDictDataMapper.selectJoinList(SystemDictData.class,new MPJLambdaWrapper<SystemDictData>()
+ .selectAll(SystemDictData.class)
+ .leftJoin(SystemDict.class,SystemDict::getId,SystemDictData::getDictId)
+ .in(SystemDict::getCode,Constants.ORDER_SET,Constants.INTEGRAL_SET)
);
if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)) {
for (SystemDictData systemDictData : systemDictDataList) {
@@ -279,6 +272,18 @@
} else if (systemDictData.getLabel().equals(Constants.ORDERSET_TOTAL_RATE)) {
systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getTotalRate()).doubleValue() + "");
}
+
+ else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDTYPE)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getIntegralInvalidType()) + "");
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDCIRCLE)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getIntegralInvalidCircle()) + "");
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALRULEINFO)) {
+ systemDictData.setCode(platformConfigDTO.getIntegralRuleInfo());
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_DEDUCTINTEGRALLIMIT)) {
+ systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getDeductIntegralLimit()) + "");
+ }else if(systemDictData.getLabel().equals(Constants.INTERALSET_MININTEGRALPRICELIMIT)) {
+ systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getReturnShopIntegral()).doubleValue() + "");
+ }
systemDictDataMapper.update(new UpdateWrapper<SystemDictData>().lambda()
.set(SystemDictData::getCode, systemDictData.getCode())
.eq(SystemDictData::getId, systemDictData.getId()));
--
Gitblit v1.9.3