From d8d6661b4736e5de37d4a158b8286509b748d62b Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 22 一月 2026 18:16:54 +0800
Subject: [PATCH] 经销商管理
---
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java | 1
admin/src/components/business/OperaOrderMarkWindow.vue | 51 +
admin/src/views/business/goodsorder.vue | 501 +++++++++++---------------
admin/src/components/common/GlobalAlertWindow.vue | 1
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 14
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 217 +++++++---
admin/src/components/common/UploadImage.vue | 5
server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java | 1
server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java | 2
admin/src/api/business/goodsorder.js | 8
admin/src/views/business/labelsExpress.vue | 1
admin/src/components/business/OperaGoodsOrderDetailOld.vue | 216 +++++++++++
admin/src/components/business/OperaShipmentsWindow.vue | 68 +-
admin/src/components/base/BaseTable.vue | 4
14 files changed, 674 insertions(+), 416 deletions(-)
diff --git a/admin/src/api/business/goodsorder.js b/admin/src/api/business/goodsorder.js
index d69ee1f..392491c 100644
--- a/admin/src/api/business/goodsorder.js
+++ b/admin/src/api/business/goodsorder.js
@@ -29,3 +29,11 @@
export function updateById (data) {
return request.post('/business/goodsorder/updateById', data)
}
+
+// 淇敼
+export function orderRemark (data) {
+ return request.post('/business/goodsorder/orderRemark', data)
+}
+export function orderSendOutGoods (data) {
+ return request.post('/business/goodsorder/orderSendOutGoods', data)
+}
diff --git a/admin/src/components/base/BaseTable.vue b/admin/src/components/base/BaseTable.vue
index ccdafc0..94e3169 100644
--- a/admin/src/components/base/BaseTable.vue
+++ b/admin/src/components/base/BaseTable.vue
@@ -33,6 +33,7 @@
sorts: [],
// 褰撳墠椤垫暟鎹�
list: [],
+ totalData:{},
// 鍒嗛〉
pagination: {
pageIndex: 1,
@@ -124,6 +125,9 @@
.then(data => {
this.tableData.list = data.records
this.tableData.pagination.total = data.total
+ if (this.tableData.pagination.pageIndex === 1) {
+ this.tableData.totalData = data.countData || {}
+ }
})
.catch(e => {
this.$tip.apiFailed(e)
diff --git a/admin/src/components/business/OperaGoodsOrderDetailOld.vue b/admin/src/components/business/OperaGoodsOrderDetailOld.vue
new file mode 100644
index 0000000..2ab5591
--- /dev/null
+++ b/admin/src/components/business/OperaGoodsOrderDetailOld.vue
@@ -0,0 +1,216 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-tabs v-model="activeName" @tab-click="handleClick">
+ <el-tab-pane label="璁㈠崟淇℃伅" name="first">
+ <el-descriptions title="璁㈠崟淇℃伅" size="medium" direction="horizontal" :column="4">
+ <el-descriptions-item label="璁㈠崟缂栧彿">{{ form.code }}</el-descriptions-item>
+ <el-descriptions-item label="璁㈠崟鐘舵��">
+ <span :class="[0,1,2,5].indexOf(form.status) != -1 ? 'underway' : 'complete'">
+ {{
+ form.status==0 ? '寰呮敮浠�'
+ : form.status==1 ? '寰呭彂璐�'
+ : form.status==2 ? '寰呮敹璐�'
+ : form.status==3 ? '浜ゆ槗瀹屾垚'
+ : form.status==4 ? '宸插叧闂�' : '閮ㄥ垎鍙戣揣'
+ }}
+ </span>
+ </el-descriptions-item>
+ <el-descriptions-item label="涓嬪崟鏃堕棿">{{ form.createDate }}</el-descriptions-item>
+ <el-descriptions-item label="鏀粯鏃堕棿">{{ form.payDate }}</el-descriptions-item>
+ <el-descriptions-item label="璁㈠崟閲戦">
+ <span v-if="isPlatform">锟�</span>{{ form.price }}<span v-if="!isPlatform">鍜栬眴</span></el-descriptions-item>
+ <el-descriptions-item label="鏀粯璁㈠崟鍙�">{{ form.payOrderId }}</el-descriptions-item>
+ <el-descriptions-item label="瀹屾垚鏃堕棿" :span="2">{{ form.completeDate }}</el-descriptions-item>
+
+ <el-descriptions-item label="鐢ㄦ埛澶囨敞" :span="4">{{ form.memberInfo }}</el-descriptions-item>
+ <el-descriptions-item label="骞冲彴澶囨敞" :span="4">{{ form.sysInfo }}</el-descriptions-item>
+
+ </el-descriptions>
+ <div style="height: 20px;"></div>
+ <el-descriptions title="璁㈠崟淇℃伅" size="medium" direction="horizontal" :column="4">
+ <el-descriptions-item label="鏀朵欢濮撳悕">{{ form.linkname }}</el-descriptions-item>
+ <el-descriptions-item label="鑱旂郴鐢佃瘽">{{ form.linkphone }}</el-descriptions-item>
+ <el-descriptions-item label="鏀惰幏鍦板潃">{{ form.linkaddr }}</el-descriptions-item>
+ </el-descriptions>
+ <div style="height: 20px;"></div>
+ <el-descriptions title="鍟嗗搧淇℃伅" size="medium" direction="horizontal" :column="4">
+
+ </el-descriptions>
+ <el-table
+ :data="list"
+ stripe
+ border
+ >
+ <el-table-column prop="name" label="鍟嗗搧ID" align="center" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鍟嗗搧淇℃伅" align="center" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="鍒嗙被" align="center" width="100px"></el-table-column>
+ <el-table-column prop="name" label="瑙勬牸" align="center" min-width="100px"></el-table-column>
+ <el-table-column prop="name" :label="isPlatform?'浠锋牸(鍏�)':'浠锋牸(鍜栬眴)'" align="center" width="100px"></el-table-column>
+ </el-table>
+ <div v-if="isPlatform" class="statistics">
+ <div>璁㈠崟鍟嗗搧閲戦锛歿{ form.price }}鍏�</div>
+ <div>璁㈠崟浼樻儬閲戦锛�-{{ form.price }}鍏�</div>
+ <div>瀹炴敹娆撅細{{ form.price }}鍏�</div>
+ </div>
+ </el-tab-pane>
+ <el-tab-pane label="鐗╂祦淇℃伅" name="second">
+ <el-descriptions title="蹇�掍俊鎭�" size="medium" direction="horizontal" :column="4">
+ <el-descriptions-item label="杩愬崟鍙�">{{ form.createDate }}</el-descriptions-item>
+ <el-descriptions-item label="鐗╂祦鍏徃" :span="3">{{ form.kdName }}</el-descriptions-item>
+ <el-descriptions-item label="鏀惰揣鍦板潃" :span="4">{{ form.linkaddr }}</el-descriptions-item>
+ <el-descriptions-item label="鍙戣揣鏃堕棿" :span="4">{{ form.kdDate }}</el-descriptions-item>
+ </el-descriptions>
+ <div class="kd-detail">
+ <div class="kd-status">宸茬鏀�</div>
+ <el-timeline>
+ <el-timeline-item
+ v-for="(item, index) in kdDetail"
+ :key="index"
+ hide-timestamp
+ :class="index==0&&'first'"
+ :size="index==0?'large':'normal'"
+ :timestamp="item.date"
+ >
+ <h4>{{ item.date }}</h4>
+ <p>{{ item.message }}</p>
+ </el-timeline-item>
+ </el-timeline>
+ </div>
+ </el-tab-pane>
+ </el-tabs>
+ <div slot="footer"></div>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaGoodsOrderDetail',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+
+ return {
+ activeName: '0',
+ isPlatform: true,
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: '1',
+ code: '256302564258',
+ payOrderId: '256302564258',
+ createDate: '2022-11-01 22:30:43',
+ payDate: '2022-11-01 22:30:43',
+ soonTime: '2022-11-03 22:30:43',
+ completeDate: '2022-11-03 22:30:43',
+ imgurl: '',
+ goodsName: '鍜栧暋鏉�',
+ attr: '鐧借壊锛涘叾瀹冭鏍煎唴瀹癸紱 10L',
+ memberInfo: '杩欓噷鏄敤鎴峰娉�',
+ sysInfo: '杩欓噷鏄钩鍙板娉�',
+ linkname: '鏉庢��鑻�',
+ linkphone: '18055151023',
+ linkaddr: '鍥涘窛鐪佹垚閮藉競閲戠墰鍖猴紝閲戞硥琛楅亾涓捣鍥介檯绀惧尯钃濆哺琛�98鍙锋閮′竴鏈�5-2-504',
+ price: '2333',
+ status: 1,
+ kdCode: 'SF01021213',
+ kdDate: '2022-11-03 23:30:43',
+ kdId: 'KD21312',
+ kdInfo: '杩欐槸鍙戣揣澶囨敞',
+ kdName: '椤轰赴蹇��',
+ kdUser: '00190',
+ },
+ list: [],
+ kdDetail: [
+ { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
+ { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
+ { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
+ { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
+ { date: '2022-11-03 23:30:43', message: '宸插彂璐�' },
+ ]
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/coupon',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open(title, target, active, isPlatform=true) {
+ this.title = title
+ this.visible = true
+ this.activeName = active
+ this.isPlatform = isPlatform
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.type = '0'
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ if (this.form.shopId) {
+ this.type = 0
+ this.shops = [{ label: target.shopName, id: this.form.shopId }]
+ } else {
+ this.type = 1
+ this.orgs = [{ label: target.orgName, id: this.form.orgId }]
+ }
+ })
+ },
+ handleClick() {}
+ },
+}
+</script>
+
+<style lang="scss" scoped>
+.underway {
+ color: rgb(233, 165, 80)
+}
+.complete {
+ color: #ccc;
+}
+
+.first {
+ ::v-deep .el-timeline-item__node {
+ background-color: #fff !important;
+ width: 8px !important;
+ height: 8px !important;
+ transform: translateX(-3px);
+ border: #216EEE solid 6px !important;
+ }
+}
+.kd-detail {
+ padding: 30px;
+ background-color: #f2f2f2;
+ .kd-status {
+ height: 30px;
+ line-height: 30px;
+ font-size: 20px;
+ font-weight: 500;
+ border-bottom: 1px solid #000;
+ margin-bottom: 20px;
+ }
+}
+.statistics {
+ text-align: right;
+ padding: 10px 5px;
+ font-size: 14px;
+ line-height: 24px;
+ :last-child {
+ color: rgb(232, 60,45);
+ }
+}
+</style>
diff --git a/admin/src/components/business/OperaOrderMarkWindow.vue b/admin/src/components/business/OperaOrderMarkWindow.vue
index 6a1d7bc..2d5691f 100644
--- a/admin/src/components/business/OperaOrderMarkWindow.vue
+++ b/admin/src/components/business/OperaOrderMarkWindow.vue
@@ -6,11 +6,11 @@
:confirm-working="isWorking"
@confirm="confirm"
>
- <el-form :model="form" ref="form" label-width="120px" label-suffix="锛�" inline>
+ <el-form :model="form" ref="form" label-width="120px" label-suffix="锛�" :rules="rules" inline>
<el-form-item label="澶囨敞" prop="sysInfo">
- <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.sysInfo" placeholder="璇疯緭鍏ュ娉�" :maxlength="5" v-trim/>
+ <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.sysInfo" placeholder="璇疯緭鍏ュ娉�" :maxlength="50" v-trim/>
</el-form-item>
-
+
</el-form>
</GlobalAlertWindow>
</template>
@@ -29,32 +29,49 @@
form: {
id: null,
sysInfo: ''
- // isdeleted: '',
- // name: '',
- // info: '',
- // type: '',
- // module: '',
- // parentId: '',
- // sortnum: '',
- // status: '',
- // imgurl: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ sysInfo: [
+ { required: true, message: '璇疯緭鍏ヨ鍗曞娉ㄤ俊鎭�', tigger: 'blur' }
+ ]
}
}
},
-
+
created () {
this.config({
- api: '/business/labels',
+ api: '/business/goodsorder',
'field.id': 'id'
})
-
},
-
+ methods: {
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.isWorking = true
+ this.api.orderRemark(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鍙戣揣鎴愬姛')
+ this.$emit('success')
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ // 璋冪敤鏂板缓鎺ュ彛
+ })
+ }
+ }
+
}
</script>
<style lang="scss" scoped>
@import "@/assets/style/alertstyle.scss";
-
</style>
diff --git a/admin/src/components/business/OperaShipmentsWindow.vue b/admin/src/components/business/OperaShipmentsWindow.vue
index 73ef388..fa018c0 100644
--- a/admin/src/components/business/OperaShipmentsWindow.vue
+++ b/admin/src/components/business/OperaShipmentsWindow.vue
@@ -7,7 +7,7 @@
@confirm="confirm"
>
<el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�" inline>
- <div class="tips-style">鎮ㄧ湡鍦ㄩ拡瀵硅鍗曪細<span>{{ form.code }} </span>杩涜鍙戣揣</div>
+ <p class="tip-warn" style="margin: 30px;"><i class="el-icon-warning"></i>鎿嶄綔璇存槑锛氭偍姝e湪閽堝璁㈠崟锛�<span class="red">{{ form.code }} </span>杩涜{{ form.status==2?'蹇�掑彉鏇�':'鍙戣揣' }}鎿嶄綔锛�</p>
<el-form-item label="蹇�掑叕鍙�" prop="kdId">
<el-select
v-model="form.kdId"
@@ -15,16 +15,16 @@
clearable
placeholder="璇烽�夋嫨蹇�掑叕鍙�"
>
- <el-option v-for="item in kd" :key="item.id" :value="item.id" :label="item.label" />
+ <el-option v-for="item in kd" :key="item.id" :value="item.id" :label="item.name" />
</el-select>
</el-form-item>
<el-form-item label="蹇�掑崟鍙�" prop="kdCode">
- <el-input v-model="form.kdCode" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" :maxlength="5" v-trim/>
+ <el-input v-model="form.kdCode" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" v-trim/>
</el-form-item>
<el-form-item label="鍙戣揣澶囨敞" prop="kdInfo">
- <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.kdInfo" placeholder="璇疯緭鍏ュ彂璐у娉�" :maxlength="5" v-trim/>
+ <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.kdInfo" placeholder="璇疯緭鍏ュ彂璐у娉�" v-trim/>
</el-form-item>
-
+
</el-form>
</GlobalAlertWindow>
</template>
@@ -32,7 +32,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import { fetchList as kdList } from '@/api/business/labels'
+import {orderSendOutGoods} from '@/api/business/goodsorder'
export default {
name: 'OperaShipmentsWindow',
extends: BaseOpera,
@@ -44,56 +44,62 @@
form: {
id: null,
code: '',
+ status: '',
kdId: '',
kdInfo: '',
kdCode: '',
- // isdeleted: '',
- // name: '',
- // info: '',
- // type: '',
- // module: '',
- // parentId: '',
- // sortnum: '',
- // status: '',
- // imgurl: ''
+ kdName: ''
},
kd: [],
// 楠岃瘉瑙勫垯
rules: {
kdId: [
- { required: true, message: '璇烽�夋嫨蹇�掑叕鍙�', tigger: 'change' }
+ { required: true, message: '璇烽�夋嫨蹇�掑叕鍙�' }
],
kdCode: [
- { required: true, message: '璇疯緭鍏ュ揩閫掑崟鍙�', tigger: 'blur' }
+ { required: true, message: '璇疯緭鍏ュ揩閫掑崟鍙�' }
]
}
}
},
-
+
created () {
this.config({
api: '/business/labels',
'field.id': 'id'
})
},
- mounted() {
- kdList({
- capacity: 999,
- model: {
- type: 3 //蹇��
- }
- })
+ mounted () {
+ this.api.findAll({ status: 0, type: 17 })
.then(res => {
- this.kd = res.records
+ this.kd = res
})
},
methods: {
// 涓婁紶鍥剧墖
- uploadAvatarSuccess(file) {
- this.form.imgurl = file.imgurl;
- this.form.imgurlfull = file.imgurlfull;
- },
- },
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.isWorking = true
+ var kd = this.kd.find(item => item.id === this.form.kdId)
+ this.form.kdName = kd.name
+ orderSendOutGoods(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('娣诲姞鎴愬姛')
+ this.$emit('success')
+ }).catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ // 璋冪敤鏂板缓鎺ュ彛
+ })
+ }
+ }
}
</script>
diff --git a/admin/src/components/common/GlobalAlertWindow.vue b/admin/src/components/common/GlobalAlertWindow.vue
index 6087fb0..ca81240 100644
--- a/admin/src/components/common/GlobalAlertWindow.vue
+++ b/admin/src/components/common/GlobalAlertWindow.vue
@@ -6,6 +6,7 @@
:with-header="true"
:width="width"
:close-on-press-escape="false"
+ :close-on-click-modal="false"
:wrapper-closable="false"
:append-to-body="true"
@close="close"
diff --git a/admin/src/components/common/UploadImage.vue b/admin/src/components/common/UploadImage.vue
index 2fc87b3..2e4f5e5 100644
--- a/admin/src/components/common/UploadImage.vue
+++ b/admin/src/components/common/UploadImage.vue
@@ -83,7 +83,6 @@
this.srcList.push(item.url)
})
}
-
console.log("==================srcList=",this.srcList);
}
@@ -129,9 +128,9 @@
console.log(this.fileList);
let tempIndex = this.realList.findIndex(item => item.fileurl === file.fileurl)
// debugger
- this.realList.splice(tempIndex, 1)
+ // this.realList.splice(tempIndex, 1)
this.fileList.splice(tempIndex, 1)
- this.srcList.splice(tempIndex, 1)
+ // this.srcList.splice(tempIndex, 1)
},
},
diff --git a/admin/src/views/business/goodsorder.vue b/admin/src/views/business/goodsorder.vue
index 9ac3915..ac49b58 100644
--- a/admin/src/views/business/goodsorder.vue
+++ b/admin/src/views/business/goodsorder.vue
@@ -4,148 +4,67 @@
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<!-- 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣 -->
<el-tabs v-model="status" @tab-click="handleClick">
- <el-tab-pane label="鍏ㄩ儴璁㈠崟" name="10"></el-tab-pane>
- <el-tab-pane label="寰呮敮浠�" name="0"></el-tab-pane>
- <el-tab-pane label="寰呭彂璐�" name="1"></el-tab-pane>
- <el-tab-pane label="寰呮敹璐�" name="2"></el-tab-pane>
- <el-tab-pane label="浜ゆ槗瀹屾垚" name="3"></el-tab-pane>
- <el-tab-pane label="浜ゆ槗鍏抽棴" name="4"></el-tab-pane>
- <el-tab-pane label="鍥炴敹绔�" name="9"></el-tab-pane>
+ <el-tab-pane
+ v-for="tab in statusList"
+ :key="tab.name"
+ :name="tab.name"
+ >
+ <template #label>
+ <span>{{ tab.label }}</span>
+ <el-badge
+ v-if="tab.count > 0"
+ :value="tab.count"
+ class="tab-badge"
+ />
+ </template>
+ </el-tab-pane>
</el-tabs>
<el-form-item label="璁㈠崟缂栧彿" prop="code">
- <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
+ <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" type="number" clearable @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="鐢ㄦ埛淇℃伅" prop="information">
- <el-input v-model="searchForm.information" placeholder="璇疯緭鍏ユ樀绉�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鏀惰揣浜�" prop="nickName">
+ <el-input v-model="searchForm.nickName" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" clearable @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="璁㈠崟鏃堕棿" prop="createDate">
- <el-date-picker
- v-model="createDate"
- type="daterange"
- value-format="yyyy-MM-dd"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- @change="selectDate"
- />
- </el-form-item>
- <el-form-item label="鍌彂璐�" prop="isSoon">
- <el-select
- v-model="searchForm.isSoon"
- placeholder="璇烽�夋嫨鏄惁鍌彂璐�"
- @change="search"
- >
- <el-option :key="0" :value="0" label="鍚�"></el-option>
- <el-option :key="1" :value="1" label="鏄�"></el-option>
+ <el-form-item label="鍙栬揣鏂瑰紡" prop="receiveType">
+ <el-select v-model="searchForm.receiveType" placeholder="璇烽�夋嫨鍙栬揣鏂瑰紡" clearable @change="search" >
+ <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 label="褰掑睘缁忛攢鍟�" prop="shopName">
+ <el-input v-model="searchForm.shopName" placeholder="璇疯緭鍏ョ粡閿�鍟嗗悕绉�" clearable @keypress.enter.native="search"></el-input>
+ </el-form-item>
<el-form-item label="鏀粯鍗曞彿" prop="payOrderId">
- <el-input v-model="searchForm.payOrderId" placeholder="璇疯緭鍏ユ敮浠樺崟鍙�" @keypress.enter.native="search"></el-input>
+ <el-input v-model="searchForm.payOrderId" placeholder="璇疯緭鍏ユ敮浠樺崟鍙�" clearable @keypress.enter.native="search"></el-input>
</el-form-item>
-
-
- <!-- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璁㈠崟缂栧彿" prop="code">
- <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璁㈠崟瀹炰粯浠锋牸锛堝厓/鍜栬眴锛�" prop="price">
- <el-input v-model="searchForm.price" placeholder="璇疯緭鍏ヨ鍗曞疄浠樹环鏍硷紙鍏�/鍜栬眴锛�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍟嗗搧鎬绘暟閲�" prop="goodsNum">
- <el-input v-model="searchForm.goodsNum" placeholder="璇疯緭鍏ュ晢鍝佹�绘暟閲�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="涓嬪崟浜虹紪鐮侊紙鍏宠仈member琛級" prop="memberId">
- <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ笅鍗曚汉缂栫爜锛堝叧鑱攎ember琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀惰揣鍦板潃缂栫爜锛堝叧鑱攁ddr琛級" prop="addrId">
- <el-input v-model="searchForm.addrId" placeholder="璇疯緭鍏ユ敹璐у湴鍧�缂栫爜锛堝叧鑱攁ddr琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀惰揣浜哄鍚�" prop="linkname">
- <el-input v-model="searchForm.linkname" placeholder="璇疯緭鍏ユ敹璐т汉濮撳悕" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀惰揣浜虹數璇�" prop="linkphone">
- <el-input v-model="searchForm.linkphone" placeholder="璇疯緭鍏ユ敹璐т汉鐢佃瘽" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀惰揣鍦板潃" prop="linkaddr">
- <el-input v-model="searchForm.linkaddr" placeholder="璇疯緭鍏ユ敹璐у湴鍧�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵�� 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣" prop="status">
- <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏄惁宸茶瘎浠� 0鏈瘎浠� 1宸茶瘎浠�" prop="isComment">
- <el-input v-model="searchForm.isComment" placeholder="璇疯緭鍏ユ槸鍚﹀凡璇勪环 0鏈瘎浠� 1宸茶瘎浠�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀粯鐘舵�� 0鏈敮浠� 1宸叉敮浠�" prop="payStatus">
- <el-input v-model="searchForm.payStatus" placeholder="璇疯緭鍏ユ敮浠樼姸鎬� 0鏈敮浠� 1宸叉敮浠�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏀粯鏃堕棿" prop="payDate">
- <el-date-picker v-model="searchForm.payDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ敮浠樻椂闂�" @change="search"/>
- </el-form-item>
-
- <el-form-item label="鏀粯鏂瑰紡 0寰俊鏀粯 1绾夸笅鏀粯" prop="payMethod">
- <el-input v-model="searchForm.payMethod" placeholder="璇疯緭鍏ユ敮浠樻柟寮� 0寰俊鏀粯 1绾夸笅鏀粯" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="蹇�掑崟鍙�" prop="kdCode">
- <el-input v-model="searchForm.kdCode" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="蹇�掑悕绉�" prop="kdName">
- <el-input v-model="searchForm.kdName" placeholder="璇疯緭鍏ュ揩閫掑悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="蹇�掔紪鐮侊紙鍏宠仈labels琛級" prop="kdId">
- <el-input v-model="searchForm.kdId" placeholder="璇疯緭鍏ュ揩閫掔紪鐮侊紙鍏宠仈labels琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐢ㄦ埛澶囨敞" prop="memberInfo">
- <el-input v-model="searchForm.memberInfo" placeholder="璇疯緭鍏ョ敤鎴峰娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="骞冲彴澶囨敞" prop="sysInfo">
- <el-input v-model="searchForm.sysInfo" placeholder="璇疯緭鍏ュ钩鍙板娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍙栨秷鏃堕棿" prop="cancelDate">
- <el-date-picker v-model="searchForm.cancelDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彇娑堟椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鍙栨秷浜�" prop="cancelUser">
- <el-input v-model="searchForm.cancelUser" placeholder="璇疯緭鍏ュ彇娑堜汉" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍙栨秷澶囨敞" prop="cancelInfo">
- <el-input v-model="searchForm.cancelInfo" placeholder="璇疯緭鍏ュ彇娑堝娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍙戣揣鏃堕棿" prop="kdDate">
- <el-date-picker v-model="searchForm.kdDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ彂璐ф椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鍙戣揣澶囨敞" prop="kdInfo">
- <el-input v-model="searchForm.kdInfo" placeholder="璇疯緭鍏ュ彂璐у娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍙戣揣浜虹紪鐮侊紙鍏宠仈system_user琛級" prop="kdUser">
- <el-input v-model="searchForm.kdUser" placeholder="璇疯緭鍏ュ彂璐т汉缂栫爜锛堝叧鑱攕ystem_user琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="瀹屾垚鏃堕棿" prop="doneDate">
- <el-date-picker v-model="searchForm.doneDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ畬鎴愭椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="瀹屾垚澶囨敞" prop="doneInfo">
- <el-input v-model="searchForm.doneInfo" placeholder="璇疯緭鍏ュ畬鎴愬娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏄惁宸插敭鍚� 0鍚� 1鏄�" prop="isAftersale">
- <el-input v-model="searchForm.isAftersale" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍞悗 0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="璁㈠崟绫诲瀷 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝缂栫爜" prop="type">
- <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ヨ鍗曠被鍨� 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浼樻儬閲戦" prop="couponPrice">
- <el-input v-model="searchForm.couponPrice" placeholder="璇疯緭鍏ヤ紭鎯犻噾棰�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浼樻儬鍒哥紪鐮侊紙鍏宠仈MEMBER_COUPON琛級" prop="couponId">
- <el-input v-model="searchForm.couponId" placeholder="璇疯緭鍏ヤ紭鎯犲埜缂栫爜锛堝叧鑱擬EMBER_COUPON琛級" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍜栧暋璁″垝璁㈠崟褰㈠紡 0鏂板 1寤堕暱" prop="planOrderType">
- <el-input v-model="searchForm.planOrderType" placeholder="璇疯緭鍏ュ挅鍟¤鍒掕鍗曞舰寮� 0鏂板 1寤堕暱" @keypress.enter.native="search"></el-input>
- </el-form-item> -->
+ <div class="date-style" style="display: inline">
+ <el-form-item label="璁㈠崟鏃堕棿" prop="starttime" >
+ <el-date-picker
+ style="width: 160px"
+ clearable
+ @change="search"
+ v-model="searchForm.starttime"
+ type="datetime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ format="yyyy-MM-dd HH:mm:ss"
+ range-separator="鑷�"
+ placeholder="寮�濮嬫椂闂�"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item label="-" label-width="10px" prop="endtime" >
+ <el-date-picker
+ style="width: 160px"
+ clearable
+ v-model="searchForm.endtime"
+ type="datetime"
+ @change="search"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ format="yyyy-MM-dd HH:mm:ss"
+ range-separator="鑷�"
+ placeholder="鎴鏃堕棿"
+ ></el-date-picker>
+ </el-form-item>
+ </div>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button type="primary" :loading="isWorking.export" v-permissions="['business:goodsorder:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>
@@ -154,78 +73,72 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <div v-for="item in list" :key="id" class="order-detail">
- <div class="order-title-message">
- <div class="base-message">
- <div class="date">{{ item.createDate }}</div>
- <div>璁㈠崟缂栧彿锛�<span>{{ item.code }}</span></div>
+ <div v-for="item in tableData.list" :key="'id_'+item.id" class="order-detail">
+ <div class="order-title-message" >
+ <div class="base-message" >
+ <div class="date" >璁㈠崟鏃堕棿锛歿{ item.createDate }}</div>
+ <div class="date" >璁㈠崟缂栧彿锛�<span @click="$refs.operaGoodsOrderDetail.open('璁㈠崟璇︽儏', item, 'first')" style="cursor: pointer;">{{ item.code }}</span></div>
+ <div v-if="item.distributionShopId">缁忛攢鍟嗭細{{ item.shopName || ''}}</div>
</div>
- <div class="soon-style">{{ `鐢ㄦ埛浜�${item.soonTime}鍌彂璐 }}</div>
+ <div>
+ <span v-if="item.status ==0" class="orange">寰呮敮浠�</span>
+ <span v-if="item.status ==1" class="orange">{{item.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</span>
+ <span v-if="item.status ==2" class="orange">寰呮敹璐�</span>
+ <span v-if="item.status ==3" class="grey">浜ゆ槗瀹屾垚</span>
+ <span v-if="item.status ==4" class="grey">宸插叧闂�</span>
+ <span v-if="item.status ==6" class="grey">宸查��娆�</span>
+ </div>
</div>
<div class="detail-message">
<div class="goods-message right-border">
- <div class="goods-base-message">
- <el-image
- style="width: 90px; height: 90px; border-radius: 2px;"
- :src="item.imgurl"
- :preview-src-list="[item.imgurl]"
- ></el-image>
- <div class="message">
- <div>{{ item.goodsName }}</div>
- <div class="attr">瑙勬牸锛歿{ item.attr }}</div>
- <div class="attr">浠锋牸锛歿{ item.price }}</div>
+ <div class="goods-base-message" :key="item.id+'_'+goods.id" v-for="goods in item.goodsorderDetailList">
+ <div style="width: 60px; height: 60px;">
+ <el-image
+ style="width: 60px; height: 60px; border-radius: 2px;"
+ :src="goods.imgurl"
+ :preview-src-list="[goods.imgurl]"
+ ></el-image>
+ </div>
+ <div class="message" style="">
+ <div class="name">{{ goods.name }}</div>
+ <div class="attr">锟{ goods.goodsNum }}</div>
</div>
</div>
- <div v-if="item.memberInfo" class="mark">鐢ㄦ埛澶囨敞锛歿{ item.memberInfo }}</div>
- <div v-if="item.sysInfo" class="mark">骞冲彴澶囨敞锛歿{ item.sysInfo }}</div>
+ <div class="mark" v-if="item.sysInfo&& item.sysInfo.length" >澶囨敞锛歿{item.sysInfo}}</div>
</div>
<div class="member-message right-border">
- <div>{{ item.linkname }}</div>
- <div>{{ item.linkphone }}</div>
+ <div class="el-icon-user" style="padding: 5px 5px;">{{ item.linkname }}</div>
+ <div class="el-icon-phone-outline" style="padding: 10px 5px;color: #777;font-size: 13px;">{{ item.linkphone }}</div>
</div>
- <div class="address-message right-border">{{ item.linkaddr }}</div>
- <div class="price-message right-border">锟{ item.price }}</div>
- <div class="status-message right-border">
- <!-- // 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣 -->
- <div :class="[0,1,2,5].indexOf(item.status) != -1 ? 'underway' : 'complete'">
- {{
- item.status==0 ? '寰呮敮浠�'
- : item.status==1 ? '寰呭彂璐�'
- : item.status==2 ? '寰呮敹璐�'
- : item.status==3 ? '浜ゆ槗瀹屾垚'
- : item.status==4 ? '宸插叧闂�' : '閮ㄥ垎鍙戣揣'
- }}
- </div>
- <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaGoodsOrderDetail.open('璁㈠崟璇︽儏', item, 'first')">璁㈠崟璇︽儏</el-button>
- <div></div>
- <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaGoodsOrderDetail.open('鐗╂祦璇︽儏', item, 'second')">鐗╂祦璇︽儏</el-button>
+ <div class="address-message right-border right-border" style="padding-top: 15px;" >
+ <div class="underway el-icon-sell" >{{item.receiveType==1?'鍒板簵鑷彁':'蹇�掗厤閫�'}} </div>
+ <div class=" el-icon-add-location" v-if="item.receiveType!=1">{{ item.linkaddr }}</div>
+ </div>
+ <div class="price-message right-border">
+ <div class="underway" >璁㈠崟鎬讳环锛氾骏{{ (item.totalPrice||0).toFixed(2) }}</div>
+ <div class="price-info">鍟嗗搧鎬讳环锛氾骏{{ ((item.totalPrice||0)-(item.price || 0)).toFixed(2)}}</div>
+ <div class="price-info">鐗╂祦杩愯垂锛氾骏{{ (item.mailPrice || 0).toFixed(2)}}</div>
+ <div class="price-info">绉垎鎶垫墸锛�-锟{ (item.integral || 0 ).toFixed(2)}}</div>
+ <div class="price-info">浼樻儬閲戦锛�-锟{ (item.couponPrice).toFixed(2) }}</div>
+ <div class="price-info">瀹炰粯閲戦锛�<span class="red" style="font-weight: 600">锟{ (item.price).toFixed(2) }}</span></div>
</div>
<div class="action">
- <el-button v-if="item.status==1" style="font-size: 16px; width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('鍙戣揣', item)">鍙戣揣</el-button>
+ <el-button v-if="item.status==1 && item.receiveType!=1" style=" width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('鍙戣揣', item)">鍙戣揣</el-button>
<div></div>
- <el-button v-if="item.status<2" style="color: #666; font-size: 16px;" type="text" @click="cancelOrder(item)">鍙栨秷璁㈠崟</el-button>
+ <el-button v-if="item.status == 0" style="color: red; " type="text" @click="cancelOrder(item)">鍙栨秷璁㈠崟</el-button>
<div></div>
- <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaOrderMarkWindow.open(item.sysInfo.length?'缂栬緫澶囨敞':'娣诲姞澶囨敞', item)">澶囨敞</el-button>
+ <el-button v-if="item.status == 3" style="color: red " type="text" @click="cancelOrder(item)">璁㈠崟閫�娆�</el-button>
+ <div></div>
+ <el-button v-if="item.status==2 && item.receiveType!=1" style="color: #666; " type="text" @click="$refs.operaShipmentsWindow.open('蹇�掍俊鎭彉鏇�', item)">蹇�掑彉鏇�</el-button>
+ <div></div>
+ <el-button style="color: #666; " type="text" @click="$refs.operaOrderMarkWindow.open(item.sysInfo && item.sysInfo.length?'缂栬緫澶囨敞':'娣诲姞澶囨敞', item)">
+ {{ item.sysInfo && item.sysInfo.length?'淇敼澶囨敞':'娣诲姞澶囨敞' }}</el-button>
+ <div></div>
+ <el-button style="color: #216EEE; " type="text" @click="$refs.operaGoodsOrderDetail.open('璁㈠崟璇︽儏', item, 'first')">鏌ョ湅璇︽儏</el-button>
</div>
</div>
</div>
- <!-- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
-
- <el-table-column
- v-if="containPermissions(['business:goodsorder:update', 'business:goodsorder:delete'])"
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaGoodsorderWindow.open('缂栬緫鍟嗗搧璁㈠崟淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:goodsorder:update']">缂栬緫</el-button>
- </template>
- </el-table-column>
- </el-table> -->
+ <div style="width: 100%;text-align: center;padding: 50px;color: #999;font-size: 12px;" v-if="!tableData.pagination ||!tableData.pagination.total">鏆傛棤鏁版嵁</div>
<pagination
@size-change="handleSizeChange"
@current-change="handlePageChange"
@@ -234,7 +147,7 @@
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
- <OperaShipmentsWindow ref="operaShipmentsWindow" @success="handlePageChange"/>
+ <OperaShipmentsWindow ref="operaShipmentsWindow" @success="search"/>
<OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="handlePageChange"/>
<OperaGoodsOrderDetail ref="operaGoodsOrderDetail"/>
</TableLayout>
@@ -256,76 +169,25 @@
status: '10',
createDate: [],
id: '',
+ statusList: [{ name: '10', label: '鍏ㄩ儴璁㈠崟', count: 0 },
+ { name: '0', label: '寰呮敮浠�', count: 0 },
+ { name: '1', label: '寰呭彂璐�/寰呰嚜鎻�', count: 0 },
+ { name: '2', label: '寰呮敹璐�', count: 0 },
+ { name: '3', label: '浜ゆ槗瀹屾垚', count: 0 },
+ { name: '6', label: '宸查��娆�', count: 0 },
+ { name: '4', label: '浜ゆ槗鍏抽棴', count: 0 }],
// 鎼滅储
searchForm: {
id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- remark: '',
+ receiveType: '',
+ shopName: '',
+ goodsName: '',
code: '',
- price: '',
- goodsNum: '',
- memberId: '',
- addrId: '',
- linkname: '',
- linkphone: '',
- linkaddr: '',
status: '',
- isComment: '',
- payStatus: '',
- payDate: '',
- payOrderId: '',
- payMethod: '',
- kdCode: '',
- kdName: '',
- kdId: '',
- memberInfo: '',
- sysInfo: '',
- cancelDate: '',
- cancelUser: '',
- cancelInfo: '',
- kdDate: '',
- kdInfo: '',
- kdUser: '',
- doneDate: '',
- doneInfo: '',
- isAftersale: '',
- type: '0', // 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝
- couponPrice: '',
- couponId: '',
- planOrderType: ''
+ nickName: '',
+ starttime: null,
+ enttime: null
},
- list: [
- {
- id: '1',
- code: '256302564258',
- payOrderId: '256302564258',
- createDate: '2022-11-01 22:30:43',
- payDate: '2022-11-01 22:30:59',
- soonTime: '2022-11-03 22:30:43',
- completeDate: '2022-11-05 22:30:43',
- imgurl: '',
- goodsName: '鍜栧暋鏉�',
- attr: '鐧借壊锛涘叾瀹冭鏍煎唴瀹癸紱 10L',
- memberInfo: '杩欓噷鏄敤鎴峰娉�',
- sysInfo: '杩欓噷鏄钩鍙板娉�',
- linkname: '鏉庢��鑻�',
- linkphone: '18055151023',
- linkaddr: '鍥涘窛鐪佹垚閮藉競閲戠墰鍖猴紝閲戞硥琛楅亾涓捣鍥介檯绀惧尯钃濆哺琛�98鍙锋閮′竴鏈�5-2-504',
- price: '2333',
- status: 1,
- kdCode: 'SF01021213',
- kdDate: '2022-11-03 23:30:43',
- kdId: 'KD21312',
- kdInfo: '杩欐槸鍙戣揣澶囨敞',
- kdName: '椤轰赴蹇��',
- kdUser: '00190',
-
- }
- ]
}
},
created () {
@@ -338,56 +200,87 @@
this.search()
},
methods: {
- selectDate(v) {
+ handlePageChange (pageIndex) {
+ 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 || 0
+ if (this.tableData.pagination.pageIndex === 1) {
+ var totalData = data.countData || {}
+ this.statusList[1].count = totalData.waitPayNum || 0
+ this.statusList[2].count = totalData.waitKdNum || 0
+ this.statusList[3].count = totalData.waitDoneNum || 0
+ }
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.search = false
+ })
+ },
+ selectDate (v) {
this.searchForm.startDate = v[0]
this.searchForm.endDate = v[1]
this.search()
},
reset () {
this.createDate = []
- this.searchForm.startDate = ''
- this.searchForm.endDate = ''
+ this.searchForm.starttime = ''
+ this.searchForm.enttime = ''
this.$refs.searchForm.resetFields()
this.search()
},
- handleClick(table, val) {
- this.$refs.searchForm.resetFields()
- if (this.status==9) {
- this.searchForm.isdeleted=1
- this.searchForm.status=''
- } else if (this.status==10) {
- this.searchForm.status=''
+ handleClick (table, val) {
+ // this.$refs.searchForm.resetFields()
+ if (this.status == 9) {
+ this.searchForm.isdeleted = 1
+ this.searchForm.status = ''
+ } else if (this.status == 10) {
+ this.searchForm.status = ''
} else {
- this.searchForm.isdeleted=0
- this.searchForm.status=this.status
+ this.searchForm.isdeleted = 0
+ this.searchForm.status = this.status
}
this.search()
},
- cancelOrder(item) {
+ cancelOrder (item) {
this.$dialog.cancelOrder(`纭畾鍙栨秷璁㈠崟锛�${item.code}锛焋)
.then(() => {
})
}
- },
+ }
}
</script>
<style lang="scss" scoped>
+.tab-badge{
+ color: green;
+}
.order-detail {
+ font-size: 14px;
+ color: #666;
+ margin-bottom: 10px;
.order-title-message {
display: flex;
justify-content: space-between;
- padding: 8px;
+ padding: 10px 20px;
font-weight: 500;
box-sizing: border-box;
background-color: #f2f2f2;
.base-message {
display: flex;
- font-size: 14px;
- color: #999;
+ color: #333;
.date {
- width: 150px;
+ width: auto;
margin-right: 100px;
}
span {
@@ -412,50 +305,84 @@
.goods-base-message {
display: flex;
margin-bottom: 10px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #f2f2f2;
.message {
+ flex-basis: content-box;
+ display: flex;width: 100%;
margin-left: 10px;
- font-size: 16px;
- .attr {
- font-size: 13px;
+ .name {
+ flex: 3;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ overflow: hidden;
+ max-height: 40px;
+ }
+ .attr{
+ padding-top: 10px;
+ text-align: right;
+ flex: 1;
+ padding-right: 30px;
+ font-size: 12px;
+ color: #666;
}
}
}
.mark {
margin-bottom: 5px;
- color: rgb(235, 80, 50);
font-size: 13px;
+ color: rgb(235, 80, 50);
}
}
.member-message {
flex: 0.4;
-
- font-size: 14px;
- :last-child {
- margin-top: 5px;
- font-size: 13px;
- }
}
.address-message {
flex: 0.6;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ .underway {
+ display: block;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #f2f2f2;
+ color: #71b247;
+ margin-bottom: 10px;
+ }
}
.price-message {
- flex: 0.5;
- font-size: 18px;
+ flex: 0.6;
font-weight: 600;
- text-align: center;
+ .underway {
+ padding-bottom: 10px;
+ border-bottom: 1px solid #f2f2f2;
+ color: rgb(233, 165, 80);
+ margin-bottom: 10px;
+ }
+ .price-info {
+ text-align: left;
+ width: 100%;
+ font-weight: normal;
+ color: #777;
+ font-size: 13px;
+ }
}
.status-message {
flex: 0.4;
text-align: center;
.underway {
+ padding-bottom: 10px;
+ border-bottom: 1px solid #f2f2f2;
color: rgb(233, 165, 80)
}
+
.complete {
color: #ccc;
}
}
.action {
- flex: 0.6;
+ flex: 0.5;
box-sizing: border-box;
padding: 10px;
text-align: center;
diff --git a/admin/src/views/business/labelsExpress.vue b/admin/src/views/business/labelsExpress.vue
index 3f59d51..bf1ae5c 100644
--- a/admin/src/views/business/labelsExpress.vue
+++ b/admin/src/views/business/labelsExpress.vue
@@ -68,7 +68,6 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaLabelExpressWindow from '@/components/business/OperaLabelExpressWindow'
-import {updateStatusById} from "@/api/business/labels";
export default {
name: 'ProductLabel',
extends: BaseTable,
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 b334fb7..70ef54a 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
@@ -1201,6 +1201,7 @@
public enum UserActionType {
CHANGE_SHOP(0, "缁忛攢鍟嗘洿鎹�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愮粡閿�鍟嗘洿鎹€��" ),
CHANGE_SALETYPE(1, "缁忛攢鍟嗘洿鎹㈤攢鍞ā寮�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愰攢鍞ā寮忓彉鏇淬��" ),
+ CHANGE_ORDER_KD(2, "璁㈠崟蹇�掓洿鎹�","鐢便��${param1}銆戜簬銆�${param2}銆戯紝杩涜銆愯鍗曞揩閫掓洿鎹€��;${param3}" ),
;
// 鎴愬憳鍙橀噺
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 3d630ef..08b8266 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
@@ -62,7 +62,7 @@
@ExcelColumn(name="鑱旂郴浜哄湴鍧�" ,index =8 ,width = 10)
private String linkaddr;
- @ApiModelProperty(value = "璁㈠崟鎬讳环鏍�", example = "1")
+ @ApiModelProperty(value = "璁㈠崟鎬讳环鏍�(鍖呭惈杩愯垂)", example = "1")
private BigDecimal totalPrice;
@ApiModelProperty(value = "璁㈠崟瀹炰粯浠锋牸锛堝厓/鍜栬眴锛�", example = "1")
@@ -253,6 +253,15 @@
@ApiModelProperty(value = "璁㈠崟鎬绘暟 ")
@TableField(exist = false)
private Long orderCount;
+ @ApiModelProperty(value = "寰呮敮浠樻�绘暟 ")
+ @TableField(exist = false)
+ private Integer waitPayNum;
+ @ApiModelProperty(value = "寰呭彂璐ф�绘暟 ")
+ @TableField(exist = false)
+ private Integer waitKdNum;
+ @ApiModelProperty(value = "寰呮敹璐ф�绘暟 ")
+ @TableField(exist = false)
+ private Integer waitDoneNum;
@ApiModelProperty(value = "璁㈠崟鍟嗗搧鎬绘暟 ")
@TableField(exist = false)
private Long goodsCount;
@@ -271,5 +280,8 @@
@ApiModelProperty(value = "鏃ユ湡 ")
@TableField(exist = false)
private String everyDay;
+ @ApiModelProperty(value = "缁忛攢鍟嗗悕绉� ")
+ @TableField(exist = false)
+ private String shopName;
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
index b9769aa..1501568 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
@@ -107,6 +107,7 @@
private String lablesName;
+
@ApiModelProperty(value = "鍟嗗搧涓诲浘")
@TableField(exist = false)
private String goodsImgurl;
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 0663bae..7634794 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -78,6 +78,8 @@
@Autowired
private GoodsorderMapper goodsorderMapper;
@Autowired
+ private UserActionMapper userActionMapper;
+ @Autowired
private ActivitySignMapper activitySignMapper;
@Autowired
private AftersaleMapper aftersaleMapper;
@@ -240,22 +242,47 @@
@Override
public void orderSendOutGoods(Goodsorder goodsorder) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-
+ if(StringUtils.isBlank(goodsorder.getKdCode()) ||StringUtils.isBlank(goodsorder.getKdName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
Goodsorder query=goodsorderMapper.selectById(goodsorder.getId());
if(query==null){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),ResponseStatus.DATA_EMPTY.getMessage());
}
- if(!Constants.equalsInteger(query.getStatus(),Constants.ONE)){
+ if(!Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
+ && !Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆锛岃鍒锋柊椤甸潰锛�");
}
- goodsorder.setEditDate(new Date());
- goodsorder.setEditor(user.getId());
- goodsorder.setKdDate(new Date());
- goodsorder.setKdUser(user.getId());
- goodsorder.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey());
- goodsorderMapper.updateById(goodsorder);
+ if(!Constants.equalsInteger(query.getReceiveType(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ヨ鍗曟湁瀹㈡埛鍒板簵鑷彁锛屾棤闇�鍙戣揣鎿嶄綔锛�");
+ }
+ Goodsorder update = new Goodsorder();
+ update.setId(goodsorder.getId());
+ update.setKdName(goodsorder.getKdName());
+ update.setKdCode(goodsorder.getKdCode());
+ update.setKdInfo(goodsorder.getKdInfo());
+ update.setKdId(goodsorder.getKdId());
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ update.setKdDate(new Date());
+ update.setKdUser(user.getId());
+ update.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey());
+ goodsorderMapper.updateById(update);
- // TODO 鍙戦�佸井淇℃ā鏉挎秷鎭�
+ if(Constants.equalsInteger(query.getStatus(), Constants.OrderStatus.WAIT_RECEIVE.getKey())){
+ //濡傛灉鏄揩閫掑彉鏇�
+ UserActionServiceImpl.saveUserActionBiz(user,query.getId(),
+ Constants.UserActionType.CHANGE_ORDER_KD,
+ userActionMapper,
+ update.getEditDate(),
+ new String[]{user.getUsername(), DateUtil.getPlusTime2(update.getEditDate()),"澶囨敞锛�"+goodsorder.getKdInfo()},
+ JSONObject.toJSONString(update) ,
+ query.getKdName()+"(鍗曞彿锛�"+query.getKdCode()+")",
+ goodsorder.getKdName()+"(鍗曞彿锛�"+goodsorder.getKdCode()+")");
+
+ }
+
+ /* // TODO 鍙戦�佸井淇℃ā鏉挎秷鎭�
Member member=memberMapper.selectById(query.getMemberId());
MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
@@ -263,7 +290,7 @@
queryWrapper.orderByDesc(GoodsorderDetail::getCreateDate);
queryWrapper.last("limit 1");
GoodsorderDetail goodsorderDetail=goodsorderDetailMapper.selectOne(queryWrapper);
- SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);
+ SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);*/
}
@@ -381,12 +408,14 @@
if(Objects.nonNull(result)){
MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.selectAll(GoodsorderDetail.class);
+ queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
queryWrapper.selectAs(Labels::getName,GoodsorderDetail::getLablesName);
queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
queryWrapper.eq(GoodsorderDetail::getOrderId,result.getId());
queryWrapper.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
queryWrapper.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getCategoryId);
+ queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailMapper.selectList(queryWrapper);
String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();
@@ -426,82 +455,113 @@
IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
-
queryWrapper.selectAll(Goodsorder.class);
- queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName);
- queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone);
- queryWrapper.selectAs(Addr::getAddr,Goodsorder::getAddr);
- // queryWrapper.select("(select CREATE_DATE from order_urge where ORDER_ID=t.id and ISDELETED=0 ORDER BY CREATE_DATE desc limit 1) as urgeCreateDate ");
- queryWrapper.leftJoin(Member.class,Member::getId,Goodsorder::getMemberId);
- queryWrapper.leftJoin(Addr.class,Addr::getMemberId,Member::getId);
- queryWrapper.eq(Addr::getIsDefault,Constants.ONE);
-
- queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode());
- queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName())
- .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName())
- );
- queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime());
- queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
-
- queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
+ queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
+ initPageQueryWrapper(queryWrapper,pageWrap);
queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus());
- queryWrapper.eq(pageWrap.getModel().getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO);
queryWrapper.orderByDesc(Goodsorder::getCreateDate);
IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
- String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
-
+ List<Integer> idList = new ArrayList<>();
for(Goodsorder model:result.getRecords()){
- model.setResourcePath(path);
- //璁㈠崟鎬婚噾棰濈瓑浜庡疄浠橀噾棰濆姞浼樻儬閲戦锛屽啀鍑忓幓閫�娆鹃噾棰�
- BigDecimal sumMoney=new BigDecimal(0);
- if(model.getPrice()!=null){
- if(model.getIntegral()!=null){
- sumMoney=model.getPrice().add(model.getIntegral());
- if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
- sumMoney.subtract(model.getAftersaleMoney());
- model.setOrderMoneyCount(sumMoney);
- }else{
- model.setOrderMoneyCount(sumMoney);
- }
- }else{
- model.setOrderMoneyCount(model.getPrice());
- }
- }else if(model.getIntegral()!=null){
- sumMoney=model.getIntegral();
+ idList.add(model.getId());
+ }
+ if(idList.size()>0){
+ dealOrderDetailsBiz(idList,result);//鏌ヨ璁㈠崟鏄庣粏
+ }
+ PageData<Goodsorder> rr = PageData.from(result);
+ if(pageWrap.getPage() == 1){
+ //濡傛灉鏌ヨ绗竴椤碉紝鍋氭暟鎹粺璁�
+ rr.setCountData(dealCountOrderNum(pageWrap));
+ }
+ return rr;
+ }
+
+ private void initPageQueryWrapper(MPJLambdaWrapper<Goodsorder> queryWrapper, PageWrap<Goodsorder> pageWrap) {
+ queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
+ queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO);
+ queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode());
+ queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getName,pageWrap.getModel().getShopName());
+ queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName())
+ .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName())
+ );
+ queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime());
+ queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
+ queryWrapper.eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType());
+ queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
+ }
+
+
+ private Goodsorder dealCountOrderNum( PageWrap<Goodsorder> pageWrap) {
+ MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
+ initPageQueryWrapper(queryWrapper,pageWrap);
+ Goodsorder goodsorder = new Goodsorder();
+ queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey());
+ goodsorder.setWaitPayNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呮敮浠�
+
+ queryWrapper = new MPJLambdaWrapper<>();
+ initPageQueryWrapper(queryWrapper,pageWrap);
+ queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey());
+ goodsorder.setWaitKdNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呭彂璐э紝寰呰嚜鎻�
+
+ queryWrapper = new MPJLambdaWrapper<>();
+ initPageQueryWrapper(queryWrapper,pageWrap);
+ queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey());
+ goodsorder.setWaitDoneNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呮敹璐�
+ return goodsorder;
+
+ }
+
+ private void dealOrderDetailsBiz(List<Integer> idList, IPage<Goodsorder> result) {
+ MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
+ queryGoods.selectAll(GoodsorderDetail.class);
+ queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl);
+ queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName);
+ queryGoods.select("ls.name as parentName ");
+
+ queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
+ queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
+
+ queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId);
+ queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID");
+ queryGoods.in(GoodsorderDetail::getOrderId,idList);
+ queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
+ List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+ String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+ for(Goodsorder model :result.getRecords()){
+ initOrderPrice(model);
+ model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId()));
+ }
+ }
+
+ private void initOrderPrice(Goodsorder model) {
+ //璁㈠崟鎬婚噾棰濈瓑浜庡疄浠橀噾棰濆姞浼樻儬閲戦锛屽啀鍑忓幓閫�娆鹃噾棰�
+ BigDecimal sumMoney=new BigDecimal(0);
+ if(model.getPrice()!=null){
+ if(model.getIntegral()!=null){
+ sumMoney=model.getPrice().add(model.getIntegral());
if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
sumMoney.subtract(model.getAftersaleMoney());
model.setOrderMoneyCount(sumMoney);
}else{
model.setOrderMoneyCount(sumMoney);
}
+ }else{
+ model.setOrderMoneyCount(model.getPrice());
}
-
-
- MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
- queryGoods.selectAll(GoodsorderDetail.class);
- queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl);
- queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName);
- queryGoods.select("ls.name as parentName ");
-
- queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
- queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
-
- queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId);
- queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID");
- queryGoods.eq(GoodsorderDetail::getOrderId,model.getId());
- queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
- List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
- goodsorderDetailList.stream().forEach(s ->{
- if(StringUtils.isBlank(s.getImgurl())){
- s.setImgurl(s.getGoodsImgurl());
- }
- });
- model.setGoodsorderDetailList(goodsorderDetailList);
+ }else if(model.getIntegral()!=null){
+ sumMoney=model.getIntegral();
+ if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
+ sumMoney.subtract(model.getAftersaleMoney());
+ model.setOrderMoneyCount(sumMoney);
+ }else{
+ model.setOrderMoneyCount(sumMoney);
+ }
}
- return PageData.from(result);
}
+
@Override
public PageData<Goodsorder> findPageShop(PageWrap<Goodsorder> pageWrap) {
IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -533,8 +593,10 @@
w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName());
} );
List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+ String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
for(Goodsorder model:result.getRecords()){
- model.setGoodsorderDetailList(getDetailListById(goodsorderDetailList,model.getId()));
+ model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId()));
}
if(pageWrap.getPage() == 1 && pageWrap.getModel().getDistributionShopId()!=null){
//濡傛灉鏌ヨ绗竴椤碉紝鍋氱粡閿�鍟嗛攢鍞俊鎭粺璁′笟鍔℃煡璇�
@@ -569,11 +631,16 @@
return rr;
}
- private List<GoodsorderDetail> getDetailListById(List<GoodsorderDetail> goodsorderDetailList, Integer id) {
+ private List<GoodsorderDetail> getDetailListById( String fullUrl ,List<GoodsorderDetail> goodsorderDetailList, Integer id) {
List<GoodsorderDetail> list = new ArrayList<>();
- for(GoodsorderDetail d : goodsorderDetailList){
- if(Constants.equalsInteger(id,d.getOrderId())){
- list.add(d);
+ if(goodsorderDetailList!=null && goodsorderDetailList.size()>0){
+ for(GoodsorderDetail d : goodsorderDetailList){
+ if(Constants.equalsInteger(id,d.getOrderId())){
+ if(d.getImgurl()!=null){
+ d.setImgurl(fullUrl+d.getImgurl());
+ }
+ list.add(d);
+ }
}
}
return list;
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
index 61d1d72..4ee7ed1 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
@@ -90,7 +90,7 @@
info = info.replace("${param"+(i+1)+"}",params[i]);
}
}
- UserAction userAction=new UserAction();
+ UserAction userAction=new UserAction();
userAction.setIsdeleted(Constants.ZERO);
userAction.setCreateDate(date);
userAction.setCreator(user.getId());
--
Gitblit v1.9.3