This commit is contained in:
DESKTOP-369JRHT\12997 2023-11-08 18:08:54 +08:00
parent 3c1a0c7ca9
commit 9e2b9068a2
12 changed files with 596 additions and 110 deletions

View File

@ -766,9 +766,6 @@ export default {
},
submitForm: function() {
console.log("dataForm",this.dataForm)
console.log("dialogImageUrl",this.giftImages)
let this_ = this
if (Array.isArray(this_.giftImages)) {
this_.dataForm.giftImages = JSON.stringify(this_.giftImages);
@ -858,6 +855,7 @@ export default {
},
//
handleUpdate(data) {
let fileList = JSON.parse(data.giftImages);
this.giftImages = [],
@ -869,6 +867,7 @@ export default {
let sp = image.url.split('//')
image.url = this.imagePath + '/'+sp[2]
})
console.log("data",data.deliveryMethod);
data.deliveryMethod = JSON.parse(data.deliveryMethod);
@ -1073,7 +1072,6 @@ export default {
},
//
handleUploadSuccessGift(file) {
console.log("aaa",file)
let newImage = {
name: file.data.original,
url: process.env.VUE_APP_SERVER_URL + file.data.fileName,

View File

@ -1,43 +1,90 @@
<template>
<div class="">
<el-descriptions class="margin-top" title="带边框列表" :column="3" border>
<template slot="extra">
<el-button type="primary" size="small">操作</el-button>
</template>
<el-descriptions class="margin-top" title="用户信息" :column="1" border>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>
用户名
用户手机号
</template>
kooriookami
{{dataForm.mobile}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-mobile-phone"></i>
手机号
用户名称
</template>
18100000000
{{dataForm.name}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" style="margin-top:10px" title="订单信息" :column="1" border>
<el-descriptions-item>
<template slot="label">
商品名称
</template>
{{ dataForm.giftName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-location-outline"></i>
居住地
交易数量
</template>
苏州市
{{ dataForm.exchangeQuantity }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-tickets"></i>
备注
配送类型
</template>
<el-tag size="small">学校</el-tag>
<el-tag size="small"> {{ dataForm.shippingType }} </el-tag>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-office-building"></i>
联系地址
付款信息
</template>
江苏省苏州市吴中区吴中大道 1188
{{ dataForm.orderStatus }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
订单编号
</template>
{{ dataForm.orderNumber }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
创建时间
</template>
{{ dataForm.createTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
更新时间
</template>
{{ dataForm.updateTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
付款备注
</template>
{{ dataForm.notes }}
</el-descriptions-item>
</el-descriptions>
<el-descriptions class="margin-top" title="收货信息" :column="1" border>
<el-descriptions-item>
<template slot="label">
收货人
</template>
{{dataForm.mobile}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
收货电话
</template>
{{dataForm.name}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
收货地址
</template>
{{dataForm.name}}
</el-descriptions-item>
</el-descriptions>
</div>
@ -48,6 +95,15 @@ export default {
name: "detail",
props: {
dataForm:{},
},
data() {
return {
}
},
created(){
console.log("dataForm",this.dataForm)
}
}

View File

@ -0,0 +1,201 @@
<template>
<div class="">
<el-card>
<el-row style="margin-bottom: 10px;">
<span style=";font-size: 20px;">兑换详情</span>
</el-row>
<el-row :gutter="24">
<el-col :span="7">
<el-image
style="width: 100px; height: 100px"
:src="imagePath+dataForm.coverImage"
fit="cover"></el-image>
</el-col>
<el-col :span="15">
<el-descriptions title="" :colon=false :column="1">
<el-descriptions-item label="礼品名称:">{{ dataForm.giftName }}</el-descriptions-item>
<el-descriptions-item label="兑换数量:">{{dataForm.exchangeQuantity}}</el-descriptions-item>
<el-descriptions-item ></el-descriptions-item>
<el-descriptions-item label="用户手机号:">
<el-tag size="small">{{ dataForm.mobile }}</el-tag>
</el-descriptions-item>
</el-descriptions>
</el-col>
</el-row>
</el-card>
<el-card style="margin-top: 20px;">
<el-form :model="editForm" ref="form" :rules="rules" size="small" :inline="true" label-width="100px">
<el-row v-if="flag">
<el-form-item label="处理结果" prop="processingResult" >
<el-radio-group :disabled="!flagOrderStart" v-model="editForm.processingResult">
<el-radio label='0'>快递发货</el-radio>
<el-radio label='1'>拒绝</el-radio>
</el-radio-group>
<span style="display: block; width: 400px; color: red;font-size: 10px;">用户的收货地址请在订单详情中查看
如当前实物礼品关联商品信息,将会在发货完成后直接更新对应的商品库存</span>
</el-form-item>
</el-row>
<el-row v-if="!flag">
<el-form-item label="处理结果2" prop="processingResult" >
<el-radio-group :disabled="!flagOrderStart" v-model="editForm.processingResult">
<el-radio label='0'>快递发货</el-radio>
<el-radio label='1'>拒绝</el-radio>
</el-radio-group>
<span style="display: block; width: 400px; color: red;font-size: 10px;">用户的收货地址请在订单详情中查看
如当前实物礼品关联商品信息,将会在发货完成后直接更新对应的商品库存</span>
</el-form-item>
</el-row>
<template v-if="editForm.processingResult == 0 " && flag>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="快递公司" prop="courierCompanies">
<el-select v-model="editForm.courierCompanies" style="width: 150px" placeholder="全部">
<el-option
v-for="dict in dict.type.courier_companies"
:key="dict.label"
:label="dict.label"
:value="dict.label"
/>
<el-option value="0" label="其他快递"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col v-if="editForm.courierCompanies == '0'" :span="12">
<el-form-item label="快递名称" label-width="80px" prop="name">
<el-input v-model="editForm.name" style="width: 150px"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="快递单号" prop="theTrackingNumber">
<el-input v-model="editForm.theTrackingNumber" style="width: 250px"></el-input>
</el-form-item>
</el-row>
</template>
<el-row>
<el-form-item label="处理备注">
<el-input type="textarea" v-model="editForm.notes" style="width: 250px"></el-input>
</el-form-item>
</el-row>
</el-form>
<div style="float: right; margin-bottom: 20px;">
<el-button type="primary" @click="submit"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-card>
</div>
</template>
<script>
import {updateOrderApi} from "@/api/integral/order";
export default {
name: "outcome",
dicts: ['zhzt','lplx','courier_companies',],
props: {
dataForm:{},
flagOrderStart:false,
},
data() {
return {
editForm:{
processingResult:'0', //
courierCompanies:'', //
name:'', //
theTrackingNumber:'', //
notes:'', //
},
flag:true,
stateFlag: true,
//
imagePath: process.env.VUE_APP_SERVER_URL,
rules:{
processingResult: [
{ required: true, message: "请选择处理结果", trigger: "change" },
],
courierCompanies: [
{ required: true, message: "请选择快递公司", trigger: "blur" },
],
name: [
{ required: true, message: "快递名称不能为空", trigger: "blur" },
],
noites: [
{ required: true, message: "快递单号不能为空", trigger: "blur" },
],
}
}
},
created(){
console.log("dataForm",this.dataForm)
console.log("flagOrderStart",this.flagOrderStart)
if (this.dataForm.shippingType=="物流配送") {
this.flag == true
}else {
this.flag == false
}
//
if (!this.flagOrderStart) {
this.editForm.courierCompanies = this.dataForm.courierCompanies
this.editForm.theTrackingNumber = this.dataForm.theTrackingNumber
this.editForm.notes = this.dataForm.notes
}
if (this.dataForm.orderStatus == '已拒绝') {
this.editForm.processingResult='1' //
}
},
methods: {
submit: function() {
let this_ = this
this_.$refs["form"].validate(valid => {
if (valid) {
let file = {
id : this_.dataForm.id,
orderStatus: '',
courierCompanies:this_.editForm.courierCompanies,
theTrackingNumber:this_.editForm.theTrackingNumber, //
notes:this_.editForm.notes, //
}
if (this.editForm.processingResult == '1') {
file.orderStatus='已拒绝'
}else if (this.flag) {
file.orderStatus='已发货'
} else {
file.orderStatus='已完成'
}
if (this_.editForm.courierCompanies == 0) {
file.courierCompanies = file.name
}
updateOrderApi(file).then(res=>{
this.$modal.msgSuccess("处理成功");
})
}
})
this.$emit('send-data', 'Data from child');
},
cancel() {
this.$emit('send-data', 'Data from child');
}
}
}
</script>
<style scoped>
</style>

View File

@ -2,18 +2,17 @@
<div class="app-container">
<el-card >
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="礼品名称" prop="giftName">
<el-form-item label="交易单号" prop="giftName">
<el-input
v-model="queryParams.giftName"
placeholder="请输入供应商名称"
v-model="queryParams.orderNumber"
placeholder="请输入交易单号"
clearable
style="width: 240px;"
style="width: 220px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-select v-model="queryParams.status" style="width: 217px" placeholder="全部" clearable
>
<el-form-item label="兑换状态">
<el-select v-model="queryParams.status" style="width: 150px" placeholder="兑换状态" clearable>
<el-option
v-for="dict in dict.type.zhzt"
:key="dict.label"
@ -22,14 +21,35 @@
/>
</el-select>
</el-form-item>
<el-form-item label="手机号码" prop="giftName">
<el-input
v-model="queryParams.mobile"
placeholder="请输入用户手机号"
clearable
style="width: 160px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="注册时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
size="medium"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
clearable
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card style="margin-top: 20px;" >
<div style="margin-bottom : 10px">
<span class="font-number">统计</span>
@ -38,26 +58,30 @@
<el-col :span="2.5">
<div class="box">
<span class="font-chinese">笔数</span>
<span class="font-number">1234</span>
<span class="font-number">{{statisticsForm.num}}</span>
</div>
</el-col>
<el-col :span="2.5">
<div class="box">
<span class="font-chinese">商品数量</span>
<span class="font-number">12334</span>
<span class="font-number">{{statisticsForm.exchangeQuantity}}</span>
</div>
</el-col>
<el-col :span="2.5">
<div class="box">
<span class="font-chinese">积分</span>
<span class="font-number">0</span>
<span class="font-number">{{statisticsForm.integral}}</span>
</div>
</el-col>
<el-col :span="3">
<div class="box">
<span class="font-chinese">支付总额</span>
<span class="font-number">0</span>
<span class="font-chinese">支付总额
<el-tooltip class="item" effect="dark" content="实际支付订单详细信息请在增值订单页面查看
" placement="top-start">
<i class="el-icon-info"></i>
</el-tooltip>
</span>
<span class="font-number">{{statisticsForm.amount}}</span>
</div>
</el-col>
</el-row>
@ -109,7 +133,7 @@
</template>
<script>
import {getOrderApi} from "@/api/integral/order";
import {getOrderApi,getStatisticsApi } from "@/api/integral/order";
export default {
name: "pointsCashier",
@ -121,28 +145,59 @@ export default {
queryParams: {
giftName: '',
status: '',
mobile: '',
orderNumber: '',
page:null,
pageSize:null
},
loading: false,
dateRange: [],
defaultSort: {prop: 'createTime', order: 'descending'},
total: 0,
statisticsForm: {
num:0,
exchangeQuantity:0,
integral:0,
amount:0
}
}
},
created() {
this.getList();
this.getStatistics();
},
methods: {
getList(){
getOrderApi().then(res=>{
getOrderApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
this.dataList = res.data.records
})
},
getStatistics() {
getStatisticsApi().then(res=>{
this.statisticsForm = res.data
})
console.log("123123123",this.statisticsForm)
},
handleUpdate(){},
handleQuery(){},
resetQuery(){},
handleQuery(){
this.getList();
},
resetQuery(){
this.queryParams = {
giftName: '',
status: '',
mobile: '',
orderNumber: '',
page:1,
pageSize:10
},
this.dateRange = []
},
}
}
</script>

View File

@ -5,23 +5,48 @@
<el-form-item label="礼品名称" prop="giftName">
<el-input
v-model="queryParams.giftName"
placeholder="请输入供应商名称"
placeholder="请输入礼品名称"
clearable
style="width: 240px;"
style="width: 200px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-select v-model="queryParams.status" style="width: 217px" placeholder="全部" clearable
>
<el-form-item label="手机号码" prop="mobile">
<el-input
v-model="queryParams.mobile"
placeholder="请输入用户手机号"
clearable
style="width: 160px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="配送方式">
<el-select v-model="queryParams.shippingType" style="width: 150px" placeholder="全部" clearable>
<el-option
v-for="dict in dict.type.zhzt"
v-for="dict in dict.type.shippingMethod"
:key="dict.label"
:label="dict.label"
:value="dict.label"
/>
</el-select>
</el-form-item>
<el-form-item label="注册时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
size="medium"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
clearable
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
@ -29,29 +54,23 @@
</el-form>
</el-card>
<el-card style="margin-top: 20px" >
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全部订单" name="first">
<el-tab-pane label="全部订单" name="0">
</el-tab-pane>
<el-tab-pane label="待处理/待发货" name="second">
<span slot="label">待处理/待发货<el-badge class="mark" :value="12" /></span>
<el-tab-pane label="待处理/待发货" name="1">
<span slot="label">待处理/待发货<el-badge class="mark" v-show="statisticsForm.await!=0" :value="statisticsForm.await" /></span>
</el-tab-pane>
<el-tab-pane label="已完成/已发货" name="third">
<span slot="label">已完成/已发货<el-badge class="mark" :value="12" /></span>
<el-tab-pane label="已完成/已发货" name="2">
<span slot="label">已完成/已发货<el-badge class="mark" v-show="statisticsForm.dispose!=0" :value="statisticsForm.dispose" /></span>
</el-tab-pane>
<el-tab-pane label="已拒绝/已退款" name="fourth">
<span slot="label">已拒绝/已退款<el-badge class="mark" :value="12" /></span>
<el-tab-pane label="已拒绝/已退款" name="3">
<span slot="label">已拒绝/已退款<el-badge class="mark" v-show="statisticsForm.refuse!=0" :value="statisticsForm.refuse" /></span>
</el-tab-pane>
<el-tab-pane label="未付款订单" name="five">
<el-tab-pane label="未付款订单" name="4">
</el-tab-pane>
</el-tabs>
<el-table ref="tables"
style="margin-top: 15px"
v-loading="loading"
@ -89,16 +108,28 @@
</template>
</el-table-column>
</el-table-column>
<el-table-column label="配送类型" align="center" prop="shippingType"/>
<el-table-column label="配送类型" align="center" prop="shippingType">
<template slot-scope="scope">
<el-tag v-if="scope.row.shippingType=='门店自提'">{{scope.row.shippingType}}</el-tag>
<el-tag type="success" v-else>{{scope.row.shippingType}}</el-tag>
</template>
</el-table-column>
<el-table-column label="实付信息" align="center" prop="categoryName" >
<el-table-column label="积分" align="center" prop="integral" width=""/>
<el-table-column label="金额" align="center" prop="amount" width=""/>
</el-table-column>
<el-table-column label="兑换数量" align="center" prop="exchangeQuantity" width=""/>
<el-table-column label="订单状态" align="center" prop="orderStatus" width=""/>
<el-table-column label="订单状态" align="center" prop="orderStatus" width="">
<template slot-scope="scope">
<el-tag effect="plain" v-if="scope.row.orderStatus=='待处理' || scope.row.orderStatus=='待发货'">{{scope.row.orderStatus}}</el-tag>
<el-tag type="success" effect="plain" v-else-if="scope.row.orderStatus=='已完成' || scope.row.orderStatus=='已发货'">{{scope.row.orderStatus}}</el-tag>
<el-tag type="danger" effect="plain" v-else-if="scope.row.orderStatus=='已拒绝' || scope.row.orderStatus=='已退款'">{{scope.row.orderStatus}}</el-tag>
<el-tag type="warning" effect="plain" v-else>{{scope.row.orderStatus}}</el-tag>
</template>
</el-table-column>
<el-table-column label="订单时间信息" align="center" prop="categoryName" width="">
<el-table-column label="创建时间" align="center" prop="createTime" width=""/>
<el-table-column label="更新时间" align="center" prop="updateTime" width=""/>
<el-table-column label="创建时间" align="center" prop="createTime" width="150px"/>
<el-table-column label="更新时间" align="center" prop="updateTime" width="150px"/>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
@ -107,25 +138,43 @@
type="text"
@click="handleDetail(scope.row)"
>订单详情</el-button>
<el-button
<template v-if="scope.row.orderStatus=='待支付' ||scope.row.orderStatus=='待处理' || scope.row.orderStatus=='待发货'">
<el-button
size="mini"
type="text"
@click="handleUpdate(scope.row)"
>处理订单</el-button>
@click="handleUpdate(scope.row,true)"
>
处理订单
</el-button>
</template>
<template v-else>
<el-button
size="mini"
type="text"
@click="handleUpdate(scope.row,false)"
>
处理变更
</el-button>
</template>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-card>
<el-dialog title="订单详情" :visible.sync="openDetail" width="500px" append-to-body :close-on-click-modal="false">
<detail></detail>
<detail :dataForm = "dataForm"></detail>
</el-dialog>
<el-dialog title="处理兑换结果" :visible.sync="openOutcome" width="650px" append-to-body :close-on-click-modal="false">
<Outcome :dataForm = "dataForm" :flagOrderStart="flagOrderStart" @send-data="handleDataFromChild"></Outcome>
</el-dialog>
</div>
@ -134,56 +183,106 @@
<script>
import {getOrderApi,getStatisticsApi} from "@/api/integral/order";
import Detail from '@/views/integral/order/detail'
import Outcome from "./outcome.vue";
export default {
name: "pointsMall",
components: {Detail},
components: { Detail, Outcome },
dicts: ['zhzt','lplx','redemptionMethod','expressShippingCosts','shippingMethod'],
data() {
return {
dataList:[],
dataFrom:{},
dataForm:{},
//
imagePath: process.env.VUE_APP_SERVER_URL,
queryParams: {
giftName: '',
status: '',
page:null,
mobile:'',
shippingType: '',
orderStatus:'',
pageNo:null,
pageSize:null
},
total: 0,
loading: false,
openDetail: false, //
openOutcome: false, //
//
dateRange: [],
defaultSort: {prop: 'createTime', order: 'descending'},
activeName: 'first',
statisticsForm: {
await:0,
dispose:0,
refuse:0,
},
flagOrderStart : true, // true
activeName: '0',
}
},
created() {
this.getList();
this.getStatistics();
},
methods: {
getList(){
getOrderApi().then(res=>{
getOrderApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
this.dataList = res.data.records
})
},
getStatistics() {
getStatisticsApi().then(res=>{
this.statisticsForm = res.data
})
},
handleUpdate(){},
handleUpdate(data,flag){
this.openOutcome = true
this.flagOrderStart = flag
this.dataForm = data;
},
handleDetail(data){
this.openDetail = true
this.dataForm = data;
},
handleQuery(){
this.getList();
},
//
resetQuery(){
this.queryParams = {
giftName: '',
shippingType: '',
mobile:'',
orderStatus:'',
pageNo:1,
pageSize:10
},
this.dateRange = []
},
resetQuery2(){
this.queryParams = {
pageNo:1,
pageSize:10
}
},
handleQuery(){},
resetQuery(){},
handleClick(tab, event) {
console.log(tab, event);
this.resetQuery2()
this.queryParams.orderStatus = tab.name
console.log(tab.name);
this.getList();
},
handleDataFromChild(data) {
this.openOutcome = false
console.log('Received data in parent:', data);
}
}
}
</script>

View File

@ -2,6 +2,7 @@ package com.fuint.business.integral.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.integral.dto.IntegralOrdersDTO;
import com.fuint.business.integral.entity.IntegralOrders;
import com.fuint.business.integral.service.IntegralOrdersService;
import com.fuint.business.integral.vo.IntegralOrdersVO;
@ -39,7 +40,7 @@ public class IntegralOrdersController extends BaseController {
@GetMapping("queryByPage")
public ResponseObject queryByPage(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("integralOrders") IntegralOrders integralOrders) {
@Param("integralOrders") IntegralOrdersDTO integralOrders) {
Page page = new Page(pageNo, pageSize);
IPage<IntegralOrdersVO> integralOrdersIPage = this.integralOrdersService.queryByPage(page, integralOrders);
return getSuccessResult(integralOrdersIPage);
@ -64,7 +65,7 @@ public class IntegralOrdersController extends BaseController {
* @return 新增结果
*/
@PostMapping
public ResponseObject add(IntegralOrders integralOrders) {
public ResponseObject add(@RequestBody IntegralOrders integralOrders) {
return getSuccessResult(this.integralOrdersService.insert(integralOrders));
}
@ -75,10 +76,20 @@ public class IntegralOrdersController extends BaseController {
* @return 编辑结果
*/
@PutMapping
public ResponseObject edit(IntegralOrders integralOrders) {
public ResponseObject edit(@RequestBody IntegralOrders integralOrders) {
return getSuccessResult(this.integralOrdersService.update(integralOrders));
}
// /**
// * 处理发货 修改该快递单号
// * @param integralOrders
// * @return
// */
// @PutMapping
// public ResponseObject editExpressDelivery(IntegralOrders integralOrders) {
// return getSuccessResult(this.integralOrdersService.update(integralOrders));
// }
/**
* 删除数据
*
@ -91,6 +102,10 @@ public class IntegralOrdersController extends BaseController {
}
/**
* 统计数据
* @return
*/
@GetMapping("/statistics")
public ResponseObject statistics() {
return getSuccessResult(this.integralOrdersService.statistics());

View File

@ -0,0 +1,17 @@
package com.fuint.business.integral.dto;
import com.fuint.business.integral.entity.IntegralOrders;
import lombok.Data;
/**
* 查询参数
*/
@Data
public class IntegralOrdersDTO extends IntegralOrders {
private String mobile;
private String userNo;
private String name;
private String giftName;
private String coverImage;
}

View File

@ -79,6 +79,14 @@ public class IntegralOrders extends BaseEntity {
* 店铺ID
*/
private Integer storeId;
/**
* 快递公司
*/
private String courierCompanies;
/**
* 快递号
*/
private String theTrackingNumber;
}

View File

@ -2,10 +2,12 @@ package com.fuint.business.integral.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.integral.dto.IntegralOrdersDTO;
import com.fuint.business.integral.entity.IntegralGift;
import com.fuint.business.integral.entity.IntegralOrders;
import com.fuint.business.integral.vo.IntegralGiftVO;
import com.fuint.business.integral.vo.IntegralOrdersVO;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
@ -34,7 +36,7 @@ public interface IntegralOrdersMapper {
* @param page 分页对象
* @return 对象列表
*/
IPage<IntegralOrdersVO> queryAllByLimit(@Param("page") Page page, @Param("integralOrders") IntegralOrders integralOrders);
IPage<IntegralOrdersVO> queryAllByLimit(@Param("page") Page page, @Param("integralOrders") IntegralOrdersDTO integralOrders);
/**
* 统计总行数
@ -89,7 +91,7 @@ public interface IntegralOrdersMapper {
* 统计数据
* @return
*/
Map<String, String> statistics();
Map<String, String> statistics(@Param("storeId") Integer storeId);
}

View File

@ -18,6 +18,8 @@
<result property="orderType" column="order_type" jdbcType="VARCHAR"/>
<result property="processingResult" column="processing_result" jdbcType="VARCHAR"/>
<result property="notes" column="notes" jdbcType="VARCHAR"/>
<result property="courierCompanies" column="courier_companies" jdbcType="VARCHAR"/>
<result property="theTrackingNumber" column="the_tracking_number" jdbcType="VARCHAR"/>
<result property="storeId" column="store_id" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
@ -61,6 +63,8 @@
io.store_id,
io.create_time,
io.update_time,
io.courier_companies,
io.the_tracking_number,
mu.mobile,
mu.user_no,
mu.name,
@ -70,27 +74,47 @@
left join mt_user mu ON io.user_id = mu.id
left join integral_gift ig ON io.gift_id = ig.id
<where>
io.store_id = #{integralOrders.storeId}
<if test="integralOrders.giftName != null">
and ig.gift_name like CONCAT ('%',#{integralOrders.giftName},'%')
</if>
<if test="integralOrders.mobile != null">
and mu.mobile like CONCAT ('%',#{integralOrders.mobile},'%')
</if>
<if test="integralOrders.params.beginTime != null and integralOrders.params.beginTime != ''">
and date_format(io.create_time,'%y%m%d') &gt;= date_format(#{integralOrders.params.beginTime},'%y%m%d')
</if>
<if test="integralOrders.params.endTime != null and integralOrders.params.endTime != ''">
and date_format(io.create_time,'%y%m%d') &lt;= date_format(#{integralOrders.params.endTime},'%y%m%d')
</if>
<if test="integralOrders.orderNumber != null and integralOrders.orderNumber != ''">
and io.order_number like CONCAT ('%',#{integralOrders.orderNumber},'%')
</if>
<if test="integralOrders.shippingType != null and integralOrders.shippingType != ''">
and io.shipping_type = #{integralOrders.shippingType}
</if>
<if test="integralOrders.orderStatus != null and integralOrders.orderStatus != '' and integralOrders.orderStatus != 0 ">
and (
(#{integralOrders.orderStatus} = 1 and (io.order_status = '待处理' or io.order_status = '待发货')) or
(#{integralOrders.orderStatus} = 2 and (io.order_status = '已完成' or io.order_status = '已发货')) or
(#{integralOrders.orderStatus} = 3 and (io.order_status = '已退款' or io.order_status = '已拒绝')) or
(#{integralOrders.orderStatus} = 4 and io.order_status = '未支付')
)
</if>
<if test="integralOrders.id != null">
and io.id = #{integralOrders.id}
</if>
<if test="integralOrders.userId != null">
and io.user_id = #{integralOrders.userId}
</if>
<if test="integralOrders.orderNumber != null and integralOrders.orderNumber != ''">
and io.order_number = #{integralOrders.orderNumber}
</if>
<if test="integralOrders.giftId != null">
and io.gift_id = #{integralOrders.giftId}
</if>
<if test="integralOrders.shippingType != null and integralOrders.shippingType != ''">
and io.shipping_type = #{integralOrders.shippingType}
</if>
<if test="integralOrders.exchangeQuantity != null">
and io.exchange_quantity = #{integralOrders.exchangeQuantity}
</if>
<if test="integralOrders.orderStatus != null and integralOrders.orderStatus != ''">
and io.order_status = #{integralOrders.orderStatus}
</if>
<if test="integralOrders.status != null and integralOrders.status != ''">
and io.status = #{integralOrders.status}
</if>
@ -100,9 +124,6 @@
<if test="integralOrders.processingResult != null and integralOrders.processingResult != ''">
and io.processing_result = #{integralOrders.processingResult}
</if>
<if test="integralOrders.storeId != null">
and io.store_id = #{integralOrders.storeId}
</if>
<if test="integralOrders.createTime != null">
and io.create_time = #{integralOrders.createTime}
</if>
@ -180,9 +201,15 @@
</where>
</select>
<select id="statistics" resultType="java.util.Map">
select count(0) a,
count(*) b
from integral_orders
select count(0) num,
sum(exchange_quantity) exchangeQuantity,
sum(integral) integral,
sum(amount) amount,
SUM(CASE WHEN order_status IN ('待处理', '待发货') THEN 1 ELSE 0 END) AS await,
SUM(CASE WHEN order_status IN ('已完成', '已发货') THEN 1 ELSE 0 END) AS dispose,
SUM(CASE WHEN order_status IN ('已拒绝', '已退款') THEN 1 ELSE 0 END) AS refuse
from integral_orders
where store_id = #{storeId}
</select>
<!--新增所有列-->
@ -276,11 +303,8 @@ from integral_orders
<if test="storeId != null">
store_id = #{storeId},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
update_time = NOW(),
</if>
<if test="createBy != null">
create_by = #{createBy},
@ -288,6 +312,12 @@ from integral_orders
<if test="updateBy != null">
update_by = #{updateBy},
</if>
<if test="courierCompanies != null">
courier_companies = #{courierCompanies},
</if>
<if test="theTrackingNumber != null">
the_tracking_number = #{theTrackingNumber},
</if>
</set>
where id = #{id}
</update>

View File

@ -2,6 +2,7 @@ package com.fuint.business.integral.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.integral.dto.IntegralOrdersDTO;
import com.fuint.business.integral.entity.IntegralOrders;
import com.fuint.business.integral.vo.IntegralOrdersVO;
import org.apache.ibatis.annotations.Param;
@ -31,7 +32,7 @@ public interface IntegralOrdersService {
* @param page 分页对象
* @return 查询结果
*/
IPage<IntegralOrdersVO> queryByPage(@Param("page") Page page, @Param("integralGift") IntegralOrders integralOrders);
IPage<IntegralOrdersVO> queryByPage(@Param("page") Page page, @Param("integralGift") IntegralOrdersDTO integralOrders);
/**
* 新增数据

View File

@ -1,6 +1,7 @@
package com.fuint.business.integral.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fuint.business.integral.dto.IntegralOrdersDTO;
import com.fuint.business.integral.entity.IntegralGift;
import com.fuint.business.integral.entity.IntegralOrders;
import com.fuint.business.integral.mapper.IntegralOrdersMapper;
@ -49,7 +50,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService {
* @return 查询结果
*/
@Override
public IPage<IntegralOrdersVO> queryByPage(@Param("page") Page page, @Param("integralOrders") IntegralOrders integralOrders) {
public IPage<IntegralOrdersVO> queryByPage(@Param("page") Page page, @Param("integralOrders") IntegralOrdersDTO integralOrders) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
integralOrders.setStoreId(nowAccountInfo.getStoreId());
return integralOrdersDao.queryAllByLimit(page, integralOrders);
@ -74,6 +75,8 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService {
*/
@Override
public IntegralOrders update(IntegralOrders integralOrders) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
integralOrders.setUpdateBy(nowAccountInfo.getStaffId().toString());
this.integralOrdersDao.update(integralOrders);
return this.queryById(integralOrders.getId());
}
@ -91,6 +94,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService {
@Override
public Map<String, String> statistics() {
return this.integralOrdersDao.statistics();
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
return this.integralOrdersDao.statistics(nowAccountInfo.getStoreId());
}
}