Merge remote-tracking branch 'origin/master'
# Conflicts: # fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/activeExchange/service/impl/ActiveExchangeServiceImpl.java
This commit is contained in:
commit
98ff3486a8
@ -16,3 +16,11 @@ export function cardValueRecordInfo(id) {
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
// 查询会员充值统计
|
||||
export function orderStatisticsApi(cardValueRecord) {
|
||||
return request({
|
||||
url: '/business/marketingActivity/cardValueRecord/orderStatistics',
|
||||
method: 'get',
|
||||
params: cardValueRecord
|
||||
})
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ export function cashierOrder(id) {
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 根据订单号查询油品订单信息
|
||||
export function orderStatisticsApi(query) {
|
||||
return request({
|
||||
@ -24,5 +25,3 @@ export function orderStatisticsApi(query) {
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
@ -26,3 +26,12 @@ export function getGoodsOrder(data) {
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
// 查询商品订单统计
|
||||
export function orderStatisticsApi(query) {
|
||||
return request({
|
||||
url: '/business/order/orderStatistics',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -43,3 +43,13 @@ export function getOilNameList() {
|
||||
// data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 查询所有油号
|
||||
export function oilNumbers() {
|
||||
return request({
|
||||
url: '/business/petrolStationManagement/oilNumber/getOilNumber',
|
||||
method: 'get',
|
||||
// data: data
|
||||
})
|
||||
}
|
||||
|
@ -69,3 +69,14 @@ export function getOilOrderAllAmount(id) {
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 订单统计
|
||||
export function orderStatisticsApi(query) {
|
||||
return request({
|
||||
url: '/business/oilOrder/orderStatistics',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
17
fuintAdmin/src/api/order/refund.js
Normal file
17
fuintAdmin/src/api/order/refund.js
Normal file
@ -0,0 +1,17 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 退款
|
||||
export function refundApi(data) {
|
||||
return request({
|
||||
url: '/business/allOrderInfo/refund',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
export function getOrderInfoApi(data) {
|
||||
return request({
|
||||
url: '/business/allOrderInfo/getOrderInfo',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
@ -76,3 +76,12 @@ export function exportUsers() {
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//下载示例文件
|
||||
export function queryUsers() {
|
||||
return request({
|
||||
url: '/business/userManager/user/userList',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
@ -44,10 +44,29 @@ export function updateCommission(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会员
|
||||
// 删除员工提成方案
|
||||
export function delCommission(id) {
|
||||
return request({
|
||||
url: '/business/commission/staffCommission/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询员工提成记录
|
||||
export function listCommissionRecord(query) {
|
||||
return request({
|
||||
url: '/commissionRecord/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 查询员工提成总额
|
||||
export function allAmountCommissionRecord(query) {
|
||||
return request({
|
||||
url: '/commissionRecord/allAmount',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
@ -83,7 +83,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="采购吨数(t)" align="center" prop="purchaseWeight">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number :disabled="numberInput" v-model="scope.row.purchaseWeight" @change="change(scope.row)" controls-position="right" :min="0" :step="1" style="max-width: 100%"></el-input-number>
|
||||
<el-input-number :disabled="numberInput" v-model="scope.row.purchaseWeight" @change="change(scope.row)" controls-position="right" :min="0" :step="0.01" style="max-width: 100%"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :disabled="numberInput" label="采购单价(元/吨)" align="center" prop="purchasePrice">
|
||||
@ -416,8 +416,10 @@ export default {
|
||||
getPurchaseOrderApi(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||
this.orderList = response.data.records;
|
||||
this.total = response.data.total;
|
||||
console.log("response",response.data.records[0].purchaseWeight)
|
||||
console.log("orderList",this.orderList)
|
||||
// 总数计算
|
||||
this.sumMethod(response.data.records);
|
||||
// this.sumMethod(response.data.records);
|
||||
})
|
||||
this.loading = false;
|
||||
},
|
||||
@ -456,6 +458,8 @@ export default {
|
||||
// 折合单价
|
||||
this.orderForm.discountedPrice = new BigNumber(this.orderForm.totalAmount).dividedBy(this.orderForm.purchaseVolume).toFixed(2);
|
||||
|
||||
this.orderForm.totalAmount = Number(this.orderForm.totalAmount);
|
||||
|
||||
// 复制id
|
||||
this.orderForm.purchaseId = this.purchaseId
|
||||
|
||||
@ -535,6 +539,7 @@ export default {
|
||||
if (data.purchaseWeight > data.canUseT) {
|
||||
this.$message('不能超过油罐储存的最大值!');
|
||||
data.purchaseWeight = data.canUseT
|
||||
return
|
||||
}
|
||||
// 密度计算
|
||||
data.purchaseVolume = new BigNumber(data.purchaseWeight).times(1000).dividedBy(data.productDensity).toFixed(2);
|
||||
@ -593,9 +598,12 @@ export default {
|
||||
|
||||
|
||||
// 计算油的质量(吨)
|
||||
const massTons = volumeLiters.times(densityGramsPerML).times(1e-3).toFixed(2);
|
||||
// const massTons = volumeLiters.times(densityGramsPerML).times(1e-3).toFixed(2);
|
||||
const massTons = Math.floor(volumeLiters.times(densityGramsPerML).times(1e-3) * 100) / 100;
|
||||
|
||||
this.canUseT = massTons; // 将结果转换为数字类型并赋值给属性
|
||||
// console.log("canUseT",this.tankVolume)
|
||||
console.log("canUseT",this.canUseT)
|
||||
|
||||
},
|
||||
inputPurchaseWeight() {
|
||||
@ -609,10 +617,10 @@ export default {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
const purchaseWeight = parseFloat(this.orderForm.purchaseWeight);
|
||||
const canUseT = parseFloat(this.canUseT);
|
||||
console.log("purchaseWeight",purchaseWeight)
|
||||
console.log("canUseT",canUseT)
|
||||
if (canUseT<=0) {
|
||||
this.$message('已无可用吨数!');
|
||||
this.orderForm.purchaseWeight = ''
|
||||
|
@ -1,19 +1,7 @@
|
||||
<!-- 收银台订单-->
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div>
|
||||
<el-card class="box-card">
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<!-- <el-form :label-position="labelPosition" label-width="40px" :model="formLabelAlign">-->
|
||||
<!-- <el-form-item label="名称">-->
|
||||
<!-- <el-input v-model="formLabelAlign.name" placeholder="请输入要搜索的内容"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
<el-select
|
||||
@ -28,7 +16,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="queryParams.orderNo" placeholder="订单号、官方单号检索"></el-input>
|
||||
<el-input v-model="queryParams.orderNo" clearable placeholder="订单号检索"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="交易时间">
|
||||
<el-date-picker
|
||||
@ -53,9 +41,29 @@
|
||||
<span>收银台订单统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box" v-for="(item,index) in 7" :key="index">
|
||||
<div class="size-hui">订单总数</div>
|
||||
<div class="size-bole">55</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">笔数</div>
|
||||
<div class="size-bole">{{ orderStatistics.numberOfStrokes?orderStatistics.numberOfStrokes:0 }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">订单总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountOfTheOrder?orderStatistics.theTotalAmountOfTheOrder:0 }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">实付总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountPaid?orderStatistics.theTotalAmountPaid:0 }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品优惠</div>
|
||||
<div class="size-bole">{{ orderStatistics.oilDiscounts?orderStatistics.oilDiscounts:0 }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountOfOil?orderStatistics.theTotalAmountOfOil:0 }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">商品总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountOfTheItem?orderStatistics.theTotalAmountOfTheItem:0 }}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -63,10 +71,9 @@
|
||||
<el-card class="box-card">
|
||||
<div class="wgang">
|
||||
<div>收银台订单列表</div>
|
||||
<div style="display: flex ">
|
||||
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click = "exportExcelCashier()">导出订单</el-button>
|
||||
</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click = "exportExcelCashier()">导出订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
@ -84,34 +91,28 @@
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderNo" label="订单号" width="180"> </el-table-column>
|
||||
<el-table-column prop="orderNo" label="订单号" width="220"> </el-table-column>
|
||||
<el-table-column prop="amount" label="订单金额"> </el-table-column>
|
||||
<el-table-column
|
||||
prop="payAmount"
|
||||
label="实付金额">
|
||||
</el-table-column>
|
||||
<el-table-column prop="payAmount" label="实付金额"> </el-table-column>
|
||||
<el-table-column label="订单金额组成">
|
||||
<el-table-column
|
||||
prop="oilOrderAmount"
|
||||
label="油品金额">
|
||||
<el-table-column prop="oilOrderAmount" label="油品金额">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.oilOrderAmount ? scope.row.oilOrderAmount : '0'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="goodsOrderAmount"
|
||||
label="商品金额">
|
||||
<el-table-column prop="goodsOrderAmount" label="商品金额">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.goodsOrderAmount ? scope.row.goodsOrderAmount : '0'}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="payUser"
|
||||
label="付款用户">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="status"
|
||||
label="状态">
|
||||
<el-table-column prop="payUser" label="付款用户"> </el-table-column>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
|
||||
<el-tag v-if="scope.row.status === 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.status === 'paid'">已支付</el-tag>
|
||||
<el-tag type="danger" v-else-if="scope.row.status === 'refund'">已退款</el-tag>
|
||||
<el-tag type="danger" v-else>支付失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -129,6 +130,7 @@
|
||||
@click="patchwork(scope.row)"
|
||||
type="primary" plain round>补打</el-button>
|
||||
<el-button style="width: 60px" size="mini"
|
||||
v-if = "scope.row.status !== 'refund'"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
type="danger" plain round>退款</el-button>
|
||||
</template>
|
||||
@ -150,7 +152,7 @@
|
||||
|
||||
</el-card>
|
||||
|
||||
<!-- 订单详情-->
|
||||
<!-- 订单详情-->
|
||||
<el-dialog
|
||||
title="订单详情"
|
||||
:visible.sync="dialogVisible">
|
||||
@ -188,7 +190,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="油号油枪" align="center" prop="terminal">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ getName(oilNameList,scope.row.oils) }}/{{ scope.row.oilGunNum }}号枪</span>
|
||||
<span>{{ getName(oilNameList,scope.row.oils) }}/{{ scope.row.oilGunNum }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="加油升数" align="center" prop="oilNum" >
|
||||
@ -226,13 +228,13 @@
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 订单退款-->
|
||||
<!-- 订单退款-->
|
||||
<el-dialog
|
||||
title="订单退款"
|
||||
width="25%"
|
||||
:visible.sync="dialogRefund">
|
||||
<div style="text-align: center;font-weight: bold">
|
||||
¥<span style="font-size: 35px">{{ cashierOrder.amount }}</span>
|
||||
¥<span style="font-size: 35px">{{ cashierOrder.payAmount }}</span>
|
||||
</div>
|
||||
<div class="tk">退款金额</div>
|
||||
<div class="tk">退款单号:{{ cashierOrder.orderNo }}</div>
|
||||
@ -245,13 +247,13 @@
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div>
|
||||
<el-input placeholder="请输入密码" v-model="password" show-password></el-input>
|
||||
<el-input placeholder="请输入退款原因" v-model="refundRemark" show-password></el-input>
|
||||
<br/>
|
||||
<span style="color: grey;font-size: 12px">退款仅支持全额退款,退款金额将按照支付信息原路退回、优惠券、储值卡等原路退回处理</span>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogRefund = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogRefund = false">确 定</el-button>
|
||||
<el-button type="primary" @click="refundConfirmed()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@ -264,13 +266,15 @@ import {oilOrderList, oilOrders} from "@/api/order/oilorder";
|
||||
import {getOilNameList} from "@/api/order/oilnumgun";
|
||||
import {getOrderGoods} from "@/api/order/goodsorder";
|
||||
import {exportExcelCashierApi} from "@/api/order/exportExcel";
|
||||
import {refundApi} from "@/api/order/refund";
|
||||
|
||||
export default {
|
||||
name: "order_Cashier",
|
||||
|
||||
data(){
|
||||
return{
|
||||
// 退款密码
|
||||
password:"",
|
||||
// 退款备注
|
||||
refundRemark:"",
|
||||
radio1:"油号选错",
|
||||
// 油号列表
|
||||
oilNameList:[],
|
||||
@ -293,21 +297,37 @@ import {exportExcelCashierApi} from "@/api/order/exportExcel";
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
orderStatistics:{
|
||||
numberOfStrokes:'0',
|
||||
theTotalAmountOfTheOrder:'0',
|
||||
theTotalAmountPaid:'0',
|
||||
oilDiscounts:'0',
|
||||
theTotalAmountOfOil:'0',
|
||||
theTotalAmountOfTheItem:'0',
|
||||
},
|
||||
total:0,
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
this.getStaffList();
|
||||
},
|
||||
methods:{
|
||||
|
||||
exportExcelCashier() {
|
||||
exportExcelCashierApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'收银台订单统计.xLsx')
|
||||
})
|
||||
},
|
||||
},
|
||||
// 获取订单统计信息
|
||||
|
||||
getOrderStatistics() {
|
||||
orderStatisticsApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
this.orderStatistics = res.data
|
||||
})
|
||||
},
|
||||
// 获取员工姓名
|
||||
getRealName(list,val){
|
||||
let name = "";
|
||||
@ -339,9 +359,49 @@ import {exportExcelCashierApi} from "@/api/order/exportExcel";
|
||||
},
|
||||
// 退款
|
||||
handleRefund(id){
|
||||
this.dialogRefund = true;
|
||||
cashierOrder(id).then( response => {
|
||||
this.cashierOrder = response.data
|
||||
//退款确定
|
||||
this.$confirm('是否将该收银台下的订单全部退款, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.dialogRefund = true;
|
||||
cashierOrder(id).then( response => {
|
||||
this.cashierOrder = response.data
|
||||
if (response.data.status === "refund") {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '该订单已经退款'
|
||||
});
|
||||
this.dialogRefund = false;
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
refundConfirmed() {
|
||||
this.dialogRefund = false;
|
||||
console.log("cashierOrder",this.cashierOrder)
|
||||
let map={
|
||||
orderNo: this.cashierOrder.orderNo,
|
||||
storeId: this.cashierOrder.storeId,
|
||||
refundRemark:this.radio1 +"-"+ this.refundRemark,
|
||||
type: "canRefund"
|
||||
}
|
||||
refundApi(map).then(res=>{
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '退款成功'
|
||||
});
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
this.getStaffList();
|
||||
|
||||
})
|
||||
},
|
||||
// 获取油号名称
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!--商品交易列表-->
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div>
|
||||
<el-card class="box-card">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
@ -63,28 +63,41 @@
|
||||
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<!-- <el-form :label-position="labelPosition" label-width="40px" :model="formLabelAlign">-->
|
||||
<!-- <el-form-item label="名称">-->
|
||||
<!-- <el-input v-model="formLabelAlign.name" placeholder="请输入要搜索的内容"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>商品交易统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box" v-for="(item,index) in 7" :key="index">
|
||||
<div class="size-hui">订单总数</div>
|
||||
<div class="size-bole">55</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">商品笔数</div>
|
||||
<div class="size-bole">{{orderStatistics.numberOfProducts}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">总金额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmount}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">商品总数量</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalNumberOfUnits}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">优惠金额</div>
|
||||
<div class="size-bole">{{orderStatistics.discountAmount}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">微信</div>
|
||||
<div class="size-bole">{{orderStatistics.wechat}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">支付宝</div>
|
||||
<div class="size-bole">{{orderStatistics.alipay}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">现金</div>
|
||||
<div class="size-bole">{{orderStatistics.cash}}</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
@ -92,7 +105,7 @@
|
||||
<div class="wgang">
|
||||
<div>商品交易列表</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelGoodsOrder()">导出订单</el-button>
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelGoodsOrder()">导出订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
@ -111,9 +124,9 @@
|
||||
</el-form>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单ID" prop="id" width="80"/>
|
||||
<!-- <el-table-column label="订单ID" prop="id" width="80"/>-->
|
||||
<el-table-column label="终端" align="center" prop="terminal"/>
|
||||
<el-table-column label="订单号" align="center" prop="orderNo" width="200"/>
|
||||
<el-table-column label="订单号" align="center" prop="orderNo" width="220"/>
|
||||
<el-table-column label="订单金额" align="center" prop="amount"/>
|
||||
<el-table-column label="优惠金额" align="center" prop="discount"/>
|
||||
<el-table-column label="商品数量" align="center" prop="goodsNum">
|
||||
@ -127,6 +140,7 @@
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
|
||||
<el-tag type="danger" v-else-if="scope.row.status === 'refund'">已退款</el-tag>
|
||||
<el-tag type="danger" v-else>支付失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -141,17 +155,14 @@
|
||||
<span>{{ parseTime(scope.row.payTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- >更多操作</el-button>-->
|
||||
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button style="width: 60px" size="mini"
|
||||
v-if = "scope.row.status !== 'refund'"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
type="danger" plain round>退款</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
@ -167,6 +178,34 @@
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
<!-- 订单退款-->
|
||||
<el-dialog
|
||||
title="订单退款"
|
||||
width="25%"
|
||||
:visible.sync="dialogRefund">
|
||||
<div style="text-align: center;font-weight: bold">
|
||||
¥<span style="font-size: 35px">{{ goods.payAmount }}</span>
|
||||
</div>
|
||||
<div class="tk">退款金额</div>
|
||||
<div class="tk">退款单号:{{ goods.orderNo }}</div>
|
||||
<div style="margin: 10px 0">
|
||||
退款原因<br/>
|
||||
<el-radio-group v-model="radio1" style="margin: 10px 0">
|
||||
<el-radio-button label="油号选错"></el-radio-button>
|
||||
<el-radio-button label="金额错误"></el-radio-button>
|
||||
<el-radio-button label="其他原因"></el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div>
|
||||
<el-input placeholder="请输入退款原因" v-model="refundRemark" show-password></el-input>
|
||||
<br/>
|
||||
<span style="color: grey;font-size: 12px">退款仅支持全额退款,退款金额将按照支付信息原路退回、优惠券、储值卡等原路退回处理</span>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogRefund = false">取 消</el-button>
|
||||
<el-button type="primary" @click="refundConfirmed()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 商品购买详情 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
||||
@ -184,10 +223,11 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getOrderGoods, listOrder} from "@/api/order/goodsorder";
|
||||
import {getGoodsOrder, getOrderGoods, listOrder,orderStatisticsApi} from "@/api/order/goodsorder";
|
||||
import { queryStaffs } from "@/api/order/staff";
|
||||
import { getDicts } from "@/api/order/data";
|
||||
import { exportExcelGoodsOrderApi } from "@/api/order/exportExcel";
|
||||
import {getOrderInfoApi, refundApi} from "@/api/order/refund";
|
||||
|
||||
export default {
|
||||
name: "order_Cashier",
|
||||
@ -221,24 +261,109 @@ export default {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
orderGoods:'',
|
||||
// 支付列表
|
||||
payList:[],
|
||||
dialogRefund: false,
|
||||
radio1:"油号选错",
|
||||
goods:{},
|
||||
refundRemark:"",
|
||||
|
||||
orderStatistics: {
|
||||
numberOfProducts:'0',
|
||||
theTotalAmount:'0',
|
||||
theTotalNumberOfUnits:'0',
|
||||
discountAmount:'0',
|
||||
wechat:'0',
|
||||
alipay:'0',
|
||||
cash:'0',
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
this.getStaffList();
|
||||
this.getPayList();
|
||||
},
|
||||
methods:{
|
||||
exportExcelGoodsOrder() {
|
||||
exportExcelGoodsOrderApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'商品订单统计.xLsx')
|
||||
})
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'商品订单统计.xLsx')
|
||||
})
|
||||
},
|
||||
// 订单统计
|
||||
getOrderStatistics (){
|
||||
orderStatisticsApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
this.orderStatistics = res.data;
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
// 退款
|
||||
async handleRefund(id){
|
||||
|
||||
await getGoodsOrder({"id":id}).then( response => {
|
||||
this.goods = response.data
|
||||
if (response.data.status === "refund") {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '该订单已经退款'
|
||||
});
|
||||
this.dialogRefund = false;
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
let title = '是否将该收银台下的订单全部退款'
|
||||
await getOrderInfoApi({orderNo: this.goods.orderNo,
|
||||
type: 'goods'}).then(res=>{
|
||||
if (res.code === 200) {
|
||||
if (res.data.type === "1") {
|
||||
title = '该订单下有其它商品订单,是否一并退款'
|
||||
this.goods.payAmount = res.data.money
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.$confirm(title+', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.dialogRefund = true;
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消退款'
|
||||
});
|
||||
this.dialogRefund = false;
|
||||
});
|
||||
|
||||
},
|
||||
// 退款接口
|
||||
refundConfirmed() {
|
||||
this.dialogRefund = false;
|
||||
console.log("cashierOrder",this.goods)
|
||||
let map={
|
||||
orderNo: this.goods.orderNo,
|
||||
storeId: this.goods.storeId,
|
||||
refundRemark:this.radio1 +"-"+ this.refundRemark,
|
||||
type: "canRefund"
|
||||
}
|
||||
refundApi(map).then(res=>{
|
||||
if (res.code === 200){
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '退款成功'
|
||||
});
|
||||
this.created()
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 根据员工id查询员工信息
|
||||
queryStaf(list,id){
|
||||
let name = "";
|
||||
@ -271,7 +396,7 @@ export default {
|
||||
getGoods(id){
|
||||
this.open = true;
|
||||
this.title = "商品详情"
|
||||
getOrderGoods(id).then( response => {
|
||||
getOrderGoods({orderId:id}).then( response => {
|
||||
this.goodsList = response.data
|
||||
})
|
||||
},
|
||||
@ -322,6 +447,7 @@ export default {
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1;
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
|
@ -1,113 +1,141 @@
|
||||
<!--油品订单-->
|
||||
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div>
|
||||
<el-card class="box-card">
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
<el-select
|
||||
v-model="queryParams.staffId"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in staffList" :key="item.id" :label="item.realName" :value="item.id">
|
||||
<span style="float: left">{{ item.realName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.mobile }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="终端" prop="terminal">
|
||||
<el-select
|
||||
v-model="queryParams.terminal"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in terminalList"
|
||||
:key="item.id"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="支付类型" prop="payType">
|
||||
<el-select
|
||||
v-model="queryParams.payType"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in payList"
|
||||
:key="item.id"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="queryParams.payUser" placeholder="请输入手机号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="油枪号" prop="oilGunNum">
|
||||
<el-select
|
||||
v-model="queryParams.oilGunNum"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in oilNumList"
|
||||
:key="item.id"
|
||||
:label="item.oilGunNum"
|
||||
:value="item.id">
|
||||
<span style="float: left">{{ getName(oilNameList,item.oilName) }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.oilGunNum }}号枪</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="queryParams.orderNo" placeholder="订单号、官方单号检索"></el-input>
|
||||
</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="-"
|
||||
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>
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
<el-select
|
||||
v-model="queryParams.staffId"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in staffList" :key="item.id" :label="item.realName" :value="item.id">
|
||||
<span style="float: left">{{ item.realName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.mobile }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="终端" prop="terminal">
|
||||
<el-select
|
||||
v-model="queryParams.terminal"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in terminalList"
|
||||
:key="item.id"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="支付类型" prop="payType">
|
||||
<el-select
|
||||
v-model="queryParams.payType"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in payList"
|
||||
:key="item.id"
|
||||
:label="item.dictLabel"
|
||||
:value="item.dictValue">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="queryParams.payUser" clearable placeholder="请输入手机号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="油枪号" prop="oilGunNum">
|
||||
<el-select
|
||||
v-model="queryParams.oilGunNum"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in oilGunList"
|
||||
:key="item.id"
|
||||
:label="item.gunName"
|
||||
:value="item.id">
|
||||
<span style="float: left">{{ item.oilName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.gunName }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="queryParams.orderNo" clearable placeholder="订单号、官方单号检索"></el-input>
|
||||
</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="-"
|
||||
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>
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>油品订单统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box" v-for="(item,index) in 7" :key="index">
|
||||
<div class="size-hui">订单总数</div>
|
||||
<div class="size-bole">55</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品笔数</div>
|
||||
<div class="size-bole">{{orderStatistics.numberOfOilPens}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品总金额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmountOfOil}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">优惠总额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmountOfTheOffer}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">交易数量</div>
|
||||
<div class="size-bole">{{orderStatistics.numberOfTransactions}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">实收总额</div>
|
||||
<div class="size-bole">{{orderStatistics.totalAmountReceived}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">微信</div>
|
||||
<div class="size-bole">{{orderStatistics.wechat}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">支付宝</div>
|
||||
<div class="size-bole">{{orderStatistics.alipay}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">现金</div>
|
||||
<div class="size-bole">{{orderStatistics.cash}}</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<div class="wgang">
|
||||
<div>油品订单列表</div>
|
||||
<div style="display: flex ">
|
||||
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelOilOrder()">导出订单</el-button>
|
||||
</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelOilOrder()">导出订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
@ -117,7 +145,7 @@
|
||||
<template slot-scope="props">
|
||||
<el-form label-position="left" class="demo-table-expand" style="margin-left: 20px">
|
||||
<el-form-item label="用户信息">
|
||||
<span>{{ props.row.userId ? queryUser(props.row.userId):"--" }}</span>
|
||||
<span>{{ props.row.userId ? queryUser(userList,props.row.userId):"--" }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="收银员">
|
||||
<span>{{ queryStaf(staffList,props.row.staffId) }}</span>
|
||||
@ -137,74 +165,50 @@
|
||||
<span>{{ getVal(terminalList,props.row.terminal) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="orderNo"
|
||||
label="订单号"
|
||||
width="200">
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderNo" label="订单号" width="220"> </el-table-column>
|
||||
<el-table-column label="订单信息" align="center">
|
||||
<el-table-column
|
||||
prop="oilGunNum"
|
||||
label="油品/油枪" align="center"
|
||||
width="120">
|
||||
<el-table-column prop="oilGunNum" label="油品/油枪" align="center" width="120">
|
||||
<template slot-scope="props">
|
||||
<span>{{ getName(oilNameList,props.row.oils) }}/{{ props.row.oilGunNum }}</span>
|
||||
<span>{{ getName(oilNameList,props.row.oils) }}/{{ getName1(oilGunList,props.row.oilGunNum) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="orderAmount"
|
||||
label="订单金额" align="center"
|
||||
width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="discountAmount"
|
||||
label="优惠金额" align="center"
|
||||
width="120">
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderAmount" label="订单金额" align="center" width="120"> </el-table-column>
|
||||
<el-table-column prop="discountAmount" label="优惠金额" align="center" width="120"> </el-table-column>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="付款信息" align="center">
|
||||
<el-table-column
|
||||
prop="payAmount"
|
||||
label="实付金额" align="center"
|
||||
width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="payUser"
|
||||
label="付款用户" align="center"
|
||||
width="120">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="orderStatus"
|
||||
label="付款状态" align="center"
|
||||
width="120">
|
||||
<el-table-column prop="payAmount" label="实付金额" align="center" width="120"> </el-table-column>
|
||||
<el-table-column prop="payUser" label="付款用户" align="center" > </el-table-column>
|
||||
<el-table-column prop="payType" label="付款方式" align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.orderStatus == 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.orderStatus == 'paid'">已支付</el-tag>
|
||||
<span>{{getType(payList,scope.row.payType)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderStatus" label="付款状态" align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.orderStatus === 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.orderStatus === 'paid'">已支付</el-tag>
|
||||
<el-tag type="danger" v-else-if="scope.row.orderStatus === 'refund'">已退款</el-tag>
|
||||
<el-tag type="danger" v-else>支付失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="invoicing"
|
||||
label="开票标识" align="center"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="invoicing" label="开票标识" align="center" > </el-table-column>
|
||||
|
||||
<el-table-column label="交易时间" align="center" width="160" prop="payTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.payTime ? parseTime(scope.row.payTime):"--" }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="交易时间" align="center" width="160" prop="payTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.payTime ? parseTime(scope.row.payTime):"--" }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit" >更多操作</el-button>-->
|
||||
<el-button style="width: 60px" size="mini"
|
||||
@click="patchwork(scope.row)"
|
||||
type="primary" plain round>补打</el-button>
|
||||
<el-button style="width: 60px" size="mini"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
v-if = "scope.row.status !== 'refund'"
|
||||
type="danger" plain round>退款</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -223,7 +227,7 @@
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<!-- 订单退款-->
|
||||
<!-- 订单退款-->
|
||||
<el-dialog
|
||||
title="订单退款"
|
||||
width="25%"
|
||||
@ -242,13 +246,13 @@
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div>
|
||||
<el-input placeholder="请输入密码" v-model="password" show-password></el-input>
|
||||
<el-input placeholder="请输入退款原因" v-model="refundRemark" show-password></el-input>
|
||||
<br/>
|
||||
<span style="color: grey;font-size: 12px">退款仅支持全额退款,退款金额将按照支付信息原路退回、优惠券、储值卡等原路退回处理</span>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogRefund = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogRefund = false">确 定</el-button>
|
||||
<el-button type="primary" @click="refundConfirmed()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
@ -257,18 +261,21 @@
|
||||
<script>
|
||||
import {queryStaffs} from "@/api/order/staff";
|
||||
import {getDicts} from "@/api/order/data";
|
||||
import {getOilNameList, getOilNumGun } from "@/api/order/oilnumgun";
|
||||
import {listOilOrder, oilOrderInfo} from "@/api/order/oilorder";
|
||||
import {getUser} from "@/api/order/user";
|
||||
import {getOilNameList, getOilNumGun, oilNumbers} from "@/api/order/oilnumgun";
|
||||
import {listOilOrder, oilOrderInfo, orderStatisticsApi} from "@/api/order/oilorder";
|
||||
import {getUser, queryUsers} from "@/api/order/user";
|
||||
import {exportExcelOilOrderApi} from "@/api/order/exportExcel";
|
||||
import {getOilNumberGun} from "@/api/oilConfig/oilGuns";
|
||||
|
||||
export default {
|
||||
name: "order_Oil",
|
||||
data(){
|
||||
return{
|
||||
// 会员信息
|
||||
userName:"",
|
||||
oilOrder:{},
|
||||
// 退款密码
|
||||
password:"",
|
||||
refundRemark:"",
|
||||
radio1:"油号选错",
|
||||
dialogRefund:false,
|
||||
// 员工列表
|
||||
@ -285,19 +292,37 @@
|
||||
dateRange: [],
|
||||
// 油品订单列表
|
||||
oilOrderList:[],
|
||||
payTypeList:[],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
total:0,
|
||||
// 油枪列表
|
||||
oilGunList:[],
|
||||
// 用户列表
|
||||
userList:[],
|
||||
|
||||
|
||||
orderStatistics: {
|
||||
numberOfOilPens:'0',
|
||||
theTotalAmountOfOil:'0',
|
||||
theTotalAmountOfTheOffer:'0',
|
||||
numberOfTransactions:'0',
|
||||
totalAmountReceived:'0',
|
||||
wechat:'0',
|
||||
alipay:'0',
|
||||
cash:'0',
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getStaffList();
|
||||
this.getOrderStatistics();
|
||||
this.getList();
|
||||
this.getPayType();
|
||||
this.getOilGunList();
|
||||
this.getUserList();
|
||||
},
|
||||
methods:{
|
||||
exportExcelOilOrder() {
|
||||
@ -305,7 +330,39 @@
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'油品订单统计.xLsx')
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
|
||||
getUserList(){
|
||||
queryUsers().then(res => {
|
||||
this.userList = res.data
|
||||
})
|
||||
},
|
||||
// 获取油枪信息
|
||||
getOilGunList(){
|
||||
getOilNumberGun().then(res => {
|
||||
res.data.forEach(item => {
|
||||
if (item.oilGunList.length>0){
|
||||
item.oilGunList.forEach(i => {
|
||||
i.oilName = item.oilName
|
||||
this.oilGunList.push(i)
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getPayType(){
|
||||
getDicts("payment_type").then(res => {
|
||||
this.payTypeList = res.data
|
||||
})
|
||||
},
|
||||
// 订单统计
|
||||
getOrderStatistics() {
|
||||
orderStatisticsApi().then(res=>{
|
||||
this.orderStatistics = res.data
|
||||
})
|
||||
},
|
||||
// 补打
|
||||
patchwork(data){
|
||||
const orderNo = data.orderNo
|
||||
@ -316,11 +373,56 @@
|
||||
}).catch(() => {});
|
||||
},
|
||||
// 退款
|
||||
handleRefund(id){
|
||||
this.dialogRefund = true;
|
||||
oilOrderInfo(id).then( response => {
|
||||
async handleRefund(id){
|
||||
await oilOrderInfo(id).then( response => {
|
||||
this.oilOrder = response.data
|
||||
})
|
||||
|
||||
let title = '是否将该收银台下的订单全部退款'
|
||||
await getOrderInfoApi({orderNo: this.oilOrder.orderNo,
|
||||
type: 'oil'}).then(res=>{
|
||||
if (res.code === 200) {
|
||||
if (res.data.type === "1") {
|
||||
title = '该订单下有其它商品订单,是否一并退款'
|
||||
this.oilOrder.payAmount = res.data.money
|
||||
}
|
||||
}
|
||||
});
|
||||
//退款确定
|
||||
this.$confirm(title+', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.dialogRefund = true;
|
||||
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消退款'
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
},
|
||||
|
||||
refundConfirmed() {
|
||||
this.dialogRefund = false;
|
||||
console.log("cashierOrder",this.cashierOrder)
|
||||
let map={
|
||||
orderNo: this.oilOrder.orderNo,
|
||||
storeId: this.oilOrder.storeId,
|
||||
refundRemark:this.radio1 +"-"+ this.refundRemark,
|
||||
type: "canRefund"
|
||||
}
|
||||
refundApi(map).then(res=>{
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '退款成功'
|
||||
});
|
||||
this.created()
|
||||
})
|
||||
},
|
||||
// 根据员工id查询员工信息
|
||||
queryStaf(list,id){
|
||||
@ -332,14 +434,23 @@
|
||||
})
|
||||
return name;
|
||||
},
|
||||
getType(list,val){
|
||||
let name = "";
|
||||
list.forEach(item => {
|
||||
if (item.dictValue == val){
|
||||
name = item.dictLabel
|
||||
}
|
||||
})
|
||||
return name;
|
||||
},
|
||||
// 根据id查询会员信息
|
||||
async queryUser(id){
|
||||
let result = "";
|
||||
if (id!=null && id!=""){
|
||||
let data = await getUser(id);
|
||||
result = data.data.name + "|" + data.data.mobile
|
||||
}
|
||||
return result.toString();
|
||||
queryUser(list,id){
|
||||
list.forEach(item => {
|
||||
if (item.id == id){
|
||||
this.userName = item.name + "|" + item.mobile
|
||||
}
|
||||
})
|
||||
return this.userName;
|
||||
},
|
||||
getVal(list,val){
|
||||
let name = "";
|
||||
@ -364,6 +475,7 @@
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1;
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
@ -389,8 +501,8 @@
|
||||
getOilNameList().then( response => {
|
||||
this.oilNameList = response.data;
|
||||
})
|
||||
getOilNumGun({oilNum : "全部"}).then( response => {
|
||||
this.oilNumList = response.data
|
||||
oilNumbers().then(response => {
|
||||
this.oilNumList = response.data;
|
||||
})
|
||||
},
|
||||
// 获取油号名称
|
||||
@ -407,6 +519,19 @@
|
||||
}
|
||||
return name;
|
||||
},
|
||||
// 获取油枪名称
|
||||
getName1(oilNameList,id){
|
||||
let name = ""
|
||||
let _this = this;
|
||||
if(oilNameList!=null && oilNameList!=""){
|
||||
oilNameList.forEach(item => {
|
||||
if (item.id == id){
|
||||
name = item.gunName;
|
||||
}
|
||||
})
|
||||
}
|
||||
return name;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<!--普通收款订单-->
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div>
|
||||
<el-card class="box-card">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
@ -36,15 +36,35 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<!-- 统计-->
|
||||
<!-- 统计-->
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>小程序订单统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box" v-for="(item,index) in 7" :key="index">
|
||||
<div class="size-hui">订单总数</div>
|
||||
<div class="size-bole">55</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">笔数</div>
|
||||
<div class="size-bole">{{ orderStatistics.numberOfStrokes }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">订单总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountOfTheOrder }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">实付总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountPaid }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品优惠</div>
|
||||
<div class="size-bole">{{ orderStatistics.oilDiscounts }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountOfOil }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">商品总金额</div>
|
||||
<div class="size-bole">{{ orderStatistics.theTotalAmountOfTheItem?orderStatistics.theTotalAmountOfTheItem:0 }}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -52,9 +72,9 @@
|
||||
<el-card class="box-card">
|
||||
<div class="wgang">
|
||||
<div>小程序订单列表</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelApplet()">导出订单</el-button>
|
||||
</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelApplet()">导出订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
@ -75,7 +95,7 @@
|
||||
<el-table-column
|
||||
prop="terminal"
|
||||
label="终端"
|
||||
width="180">
|
||||
width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{getType(terminalList,scope.row.terminal)}}</span>
|
||||
</template>
|
||||
@ -83,7 +103,7 @@
|
||||
<el-table-column
|
||||
prop="orderNo"
|
||||
label="订单号"
|
||||
width="180">
|
||||
width="220">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="amount"
|
||||
@ -125,15 +145,15 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button style="width: 60px" size="mini"-->
|
||||
<!-- @click="getOrdersInfo(scope.row.id)"-->
|
||||
<!-- type="success" plain round>详情</el-button>-->
|
||||
<!-- <el-button style="width: 60px" size="mini"-->
|
||||
<!-- @click="getOrdersInfo(scope.row.id)"-->
|
||||
<!-- type="success" plain round>详情</el-button>-->
|
||||
<el-button style="width: 60px" size="mini"
|
||||
@click="patchwork(scope.row)"
|
||||
type="primary" plain round>补打</el-button>
|
||||
<el-button style="width: 60px" size="mini"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
type="danger" plain round>退款</el-button>
|
||||
<!-- <el-button style="width: 60px" size="mini"-->
|
||||
<!-- @click="handleRefund(scope.row.id)"-->
|
||||
<!-- type="danger" plain round>退款</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@ -149,12 +169,22 @@
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@current-change="getList">
|
||||
</el-pagination>
|
||||
|
||||
<!-- <pagination-->
|
||||
<!-- background-->
|
||||
<!-- v-show="total>0"-->
|
||||
<!-- layout="prev, pager, next"-->
|
||||
<!-- :total="total"-->
|
||||
<!-- :page.sync="queryParams.page"-->
|
||||
<!-- :limit.sync="queryParams.pageSize"-->
|
||||
<!-- @pagination="getList"-->
|
||||
<!-- />-->
|
||||
</div>
|
||||
|
||||
|
||||
</el-card>
|
||||
|
||||
<!-- 订单退款-->
|
||||
<!-- 订单退款-->
|
||||
<el-dialog
|
||||
title="订单退款"
|
||||
width="25%"
|
||||
@ -186,7 +216,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {cashierOrder, listCashierOrder} from "@/api/order/cashierorder";
|
||||
import {cashierOrder, listCashierOrder,orderStatisticsApi} from "@/api/order/cashierorder";
|
||||
import {getDicts} from "@/api/order/data";
|
||||
import {queryStaffs} from "@/api/order/staff";
|
||||
import { exportExcelCashierApi } from "@/api/order/exportExcel";
|
||||
@ -222,68 +252,34 @@ import { exportExcelCashierApi } from "@/api/order/exportExcel";
|
||||
formLabelAlign: {
|
||||
name: '',
|
||||
},
|
||||
// tableData: [{
|
||||
// date: '2016-05-03',
|
||||
// name: '王小狼',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-02',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-04',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-01',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-08',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-06',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-07',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }]
|
||||
orderStatistics:{
|
||||
numberOfStrokes:'0',
|
||||
theTotalAmountOfTheOrder:'0',
|
||||
theTotalAmountPaid:'0',
|
||||
oilDiscounts:'0',
|
||||
theTotalAmountOfOil:'0',
|
||||
theTotalAmountOfTheItem:'0',
|
||||
},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
|
||||
this.getTerList();
|
||||
},
|
||||
methods:{
|
||||
methods: {
|
||||
exportExcelApplet() {
|
||||
exportExcelCashierApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'小程序订单统计.xLsx')
|
||||
})
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'小程序订单统计.xLsx')
|
||||
})
|
||||
},
|
||||
// 获取订单统计信息
|
||||
getOrderStatistics() {
|
||||
orderStatisticsApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
this.orderStatistics = res.data
|
||||
})
|
||||
},
|
||||
// 获取员工姓名
|
||||
getRealName(list,val){
|
||||
@ -340,7 +336,11 @@ import { exportExcelCashierApi } from "@/api/order/exportExcel";
|
||||
})
|
||||
},
|
||||
// 获取列表信息
|
||||
getList(){
|
||||
getList(val){
|
||||
if (val!=undefined){
|
||||
this.queryParams.page = val
|
||||
}
|
||||
console.log("123123123",this.queryParams)
|
||||
listCashierOrder(this.addDateRange(this.queryParams, this.dateRange)).then( response => {
|
||||
this.list = response.data.records;
|
||||
this.total = response.data.total;
|
||||
@ -350,6 +350,7 @@ import { exportExcelCashierApi } from "@/api/order/exportExcel";
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1;
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
|
@ -1,19 +1,19 @@
|
||||
<!--未支付订单-->
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div>
|
||||
<el-card class="box-card">
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<!-- <el-form :label-position="labelPosition" label-width="40px" :model="formLabelAlign">-->
|
||||
<!-- <el-form-item label="名称">-->
|
||||
<!-- <el-input v-model="formLabelAlign.name" placeholder="请输入要搜索的内容"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<!-- <el-form :label-position="labelPosition" label-width="40px" :model="formLabelAlign">-->
|
||||
<!-- <el-form-item label="名称">-->
|
||||
<!-- <el-input v-model="formLabelAlign.name" placeholder="请输入要搜索的内容"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
<el-select
|
||||
@ -27,21 +27,21 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="支付类型" prop="payType">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.payType"-->
|
||||
<!-- clearable-->
|
||||
<!-- placeholder="全部"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option v-for="item in payList"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.dictLabel"-->
|
||||
<!-- :value="item.dictValue">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="支付类型" prop="payType">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.payType"-->
|
||||
<!-- clearable-->
|
||||
<!-- placeholder="全部"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option v-for="item in payList"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.dictLabel"-->
|
||||
<!-- :value="item.dictValue">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="queryParams.payUser" placeholder="请输入手机号"></el-input>
|
||||
<el-input v-model="queryParams.payUser" clearable placeholder="请输入手机号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="油枪号" prop="oilGunNum">
|
||||
<el-select
|
||||
@ -50,30 +50,30 @@
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in oilNumList"
|
||||
<el-option v-for="item in oilGunList"
|
||||
:key="item.id"
|
||||
:label="item.oilGunNum"
|
||||
:label="item.gunName"
|
||||
:value="item.id">
|
||||
<span style="float: left">{{ getName(oilNameList,item.oilName) }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.oilGunNum }}号枪</span>
|
||||
<span style="float: left">{{ item.oilName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.gunName }}号枪</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="queryParams.orderNo" placeholder="订单号、官方单号检索"></el-input>
|
||||
<el-input v-model="queryParams.orderNo" clearable placeholder="订单号、官方单号检索"></el-input>
|
||||
</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="-"-->
|
||||
<!-- start-placeholder="开始日期"-->
|
||||
<!-- end-placeholder="结束日期"-->
|
||||
<!-- ></el-date-picker>-->
|
||||
<!-- </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="-"-->
|
||||
<!-- 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>
|
||||
@ -85,19 +85,48 @@
|
||||
<span>未支付订单统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box" v-for="(item,index) in 7" :key="index">
|
||||
<div class="size-hui">订单总数</div>
|
||||
<div class="size-bole">55</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品笔数</div>
|
||||
<div class="size-bole">{{orderStatistics.numberOfOilPens}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">油品总金额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmountOfOil}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">优惠总额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmountOfTheOffer}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">交易数量</div>
|
||||
<div class="size-bole">{{orderStatistics.numberOfTransactions}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">实收总额</div>
|
||||
<div class="size-bole">{{orderStatistics.totalAmountReceived}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">微信</div>
|
||||
<div class="size-bole">{{orderStatistics.wechat}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">支付宝</div>
|
||||
<div class="size-bole">{{orderStatistics.alipay}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">现金</div>
|
||||
<div class="size-bole">{{orderStatistics.cash}}</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card class="box-card">
|
||||
<div class="wgang">
|
||||
<div>未支付订单列表</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelOilOrder()">导出订单</el-button>
|
||||
</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelOilOrder()">导出订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
@ -118,7 +147,7 @@
|
||||
<el-table-column prop="terminal" label="终端" align="center" width="80"></el-table-column>
|
||||
<el-table-column prop="oils" label="油品/油枪" align="center">
|
||||
<template slot-scope="props">
|
||||
<span>{{ getName(oilNameList,props.row.oils) }}/{{ props.row.oilGunNum }}号枪</span>
|
||||
<span>{{ getName(oilNameList,props.row.oils) }}/{{ getName1(oilGunList,props.row.oilGunNum) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单信息" align="center">
|
||||
@ -137,23 +166,23 @@
|
||||
|
||||
<el-table-column prop="createTime" label="交易时间" align="center"></el-table-column>
|
||||
|
||||
<el-table-column prop="orderStatus" align="center" label="支付状态">
|
||||
<el-table-column prop="orderStatus" label="支付状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.orderStatus == 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="info" v-else>支付失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- >更多操作</el-button>-->
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- >更多操作</el-button>-->
|
||||
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
@ -175,7 +204,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {listOilOrder} from "@/api/order/oilorder";
|
||||
import {listOilOrder,orderStatisticsApi} from "@/api/order/oilorder";
|
||||
import {getDicts} from "@/api/order/data";
|
||||
import {getOilNameList, getOilNumGun} from "@/api/order/oilnumgun";
|
||||
import {queryStaffs} from "@/api/order/staff";
|
||||
@ -211,61 +240,24 @@
|
||||
formLabelAlign: {
|
||||
name: '',
|
||||
},
|
||||
// tableData: [{
|
||||
// date: '2016-05-03',
|
||||
// name: '王小狼',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-02',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-04',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-01',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-08',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-06',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-07',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }]
|
||||
orderStatistics: {
|
||||
numberOfOilPens:'0',
|
||||
theTotalAmountOfOil:'0',
|
||||
theTotalAmountOfTheOffer:'0',
|
||||
numberOfTransactions:'0',
|
||||
totalAmountReceived:'0',
|
||||
wechat:'0',
|
||||
alipay:'0',
|
||||
cash:'0',
|
||||
},
|
||||
oilGunList:[],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
this.getPayList();
|
||||
this.getOilGunList();
|
||||
},
|
||||
methods:{
|
||||
exportExcelOilOrder() {
|
||||
@ -275,6 +267,40 @@
|
||||
this.$download.saveAs(blob,'未支付订单统计.xLsx')
|
||||
})
|
||||
},
|
||||
// 获取油枪信息
|
||||
getOilGunList(){
|
||||
getOilNumberGun().then(res => {
|
||||
console.log(res)
|
||||
res.data.forEach(item => {
|
||||
if (item.oilGunList.length>0){
|
||||
item.oilGunList.forEach(i => {
|
||||
i.oilName = item.oilName
|
||||
this.oilGunList.push(i)
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// 获取油枪名称
|
||||
getName1(oilNameList,id){
|
||||
let name = ""
|
||||
let _this = this;
|
||||
if(oilNameList!=null && oilNameList!=""){
|
||||
oilNameList.forEach(item => {
|
||||
if (item.id == id){
|
||||
name = item.gunName;
|
||||
}
|
||||
})
|
||||
}
|
||||
return name;
|
||||
},
|
||||
// 获取订单统计信息
|
||||
|
||||
getOrderStatistics() {
|
||||
orderStatisticsApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
|
||||
this.orderStatistics = res.data
|
||||
})
|
||||
},
|
||||
// 获取员工姓名
|
||||
getRealName(list,val){
|
||||
let name = "";
|
||||
|
@ -1,20 +1,20 @@
|
||||
<!--会员充值订单-->
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 条件查询-->
|
||||
<div>
|
||||
<!-- 条件查询-->
|
||||
<el-card class="box-card">
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<!-- <el-form :label-position="labelPosition" label-width="40px" :model="formLabelAlign">-->
|
||||
<!-- <el-form-item label="名称">-->
|
||||
<!-- <el-input v-model="formLabelAlign.name" placeholder="请输入要搜索的内容"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="display: flex;">-->
|
||||
<!-- <div class="top-app-sou">-->
|
||||
<!-- <el-form :label-position="labelPosition" label-width="40px" :model="formLabelAlign">-->
|
||||
<!-- <el-form-item label="名称">-->
|
||||
<!-- <el-input v-model="formLabelAlign.name" placeholder="请输入要搜索的内容"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div style="margin-left: 10px">-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search">搜索</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
<el-select
|
||||
@ -44,45 +44,69 @@
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="queryParams.mobile" placeholder="请输入会员手机号"></el-input>
|
||||
</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="-"-->
|
||||
<!-- start-placeholder="开始日期"-->
|
||||
<!-- end-placeholder="结束日期"-->
|
||||
<!-- ></el-date-picker>-->
|
||||
<!-- </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="-"-->
|
||||
<!-- 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 class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>会员充值统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box" v-for="(item,index) in 7" :key="index">
|
||||
<div class="size-hui">订单总数</div>
|
||||
<div class="size-bole">55</div>
|
||||
|
||||
<div class="box">
|
||||
<div class="size-hui">充值笔数</div>
|
||||
<div class="size-bole">{{orderStatistics.numberOfTopUps?orderStatistics.numberOfTopUps:0}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">充值总金额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmountOfTopUp?orderStatistics.theTotalAmountOfTopUp:0}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">赠送总额</div>
|
||||
<div class="size-bole">{{orderStatistics.theTotalAmountOfTheCredit?orderStatistics.theTotalAmountOfTheCredit:0}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">实收总额</div>
|
||||
<div class="size-bole">{{orderStatistics.totalAmountReceived?orderStatistics.totalAmountReceived:0}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">微信</div>
|
||||
<div class="size-bole">{{orderStatistics.wechat?orderStatistics.wechat:0}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">支付宝</div>
|
||||
<div class="size-bole">{{orderStatistics.alipay?orderStatistics.alipay:0}}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">现金</div>
|
||||
<div class="size-bole">{{orderStatistics.cash}}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
<!-- 表格-->
|
||||
<!-- 表格-->
|
||||
<el-card class="box-card">
|
||||
<div class="wgang">
|
||||
<div>会员充值列表</div>
|
||||
<div style="display: flex ">
|
||||
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelVip()">导出订单</el-button>
|
||||
</div>
|
||||
<div style="display: flex ">
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="exportExcelVip()">导出订单</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
@ -138,13 +162,13 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit">更多操作</el-button>-->
|
||||
<!-- <el-button size="mini" type="text" icon="el-icon-edit">更多操作</el-button>-->
|
||||
<el-button style="width: 60px" size="mini"
|
||||
@click="patchwork(scope.row)"
|
||||
type="primary" plain round>补打</el-button>
|
||||
<el-button style="width: 60px" size="mini"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
type="danger" plain round>退款</el-button>
|
||||
<!-- <el-button style="width: 60px" size="mini"-->
|
||||
<!-- @click="handleRefund(scope.row.id)"-->
|
||||
<!-- type="danger" plain round>退款</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@ -165,7 +189,7 @@
|
||||
|
||||
</el-card>
|
||||
|
||||
<!-- 订单退款-->
|
||||
<!-- 订单退款-->
|
||||
<el-dialog
|
||||
title="订单退款"
|
||||
width="25%"
|
||||
@ -190,17 +214,18 @@
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogRefund = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogRefund = false">确 定</el-button>
|
||||
<el-button type="primary" @click="refundConfirmed()">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {cardValueRecordInfo, listCardValueRecord} from "@/api/order/cardvaluerecord";
|
||||
import {cardValueRecordInfo, listCardValueRecord,orderStatisticsApi} from "@/api/order/cardvaluerecord";
|
||||
import {getDicts} from "@/api/order/data";
|
||||
import {queryStaffs} from "@/api/order/staff";
|
||||
import { exportExcelVipApi } from "@/api/order/exportExcel";
|
||||
import {refundApi} from "@/api/order/refund";
|
||||
|
||||
|
||||
export default {
|
||||
@ -232,69 +257,37 @@ export default {
|
||||
formLabelAlign: {
|
||||
name: '',
|
||||
},
|
||||
// tableData: [{
|
||||
// date: '2016-05-03',
|
||||
// name: '王小狼',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-02',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-04',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-01',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-08',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-06',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }, {
|
||||
// date: '2016-05-07',
|
||||
// name: '王小虎',
|
||||
// province: '上海',
|
||||
// city: '普陀区',
|
||||
// address: '上海市普陀区金沙江路 1518 弄',
|
||||
// zip: 200333
|
||||
// }]
|
||||
|
||||
orderStatistics: {
|
||||
numberOfTopUps:'',
|
||||
theTotalAmountOfTopUp:'',
|
||||
theTotalAmountOfTheCredit:'',
|
||||
totalAmountReceived:'',
|
||||
wechat:'',
|
||||
alipay:'',
|
||||
cash:'',
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getPayList();
|
||||
this.getOrderStatistics()
|
||||
},
|
||||
methods:{
|
||||
exportExcelVip() {
|
||||
exportExcelVipApi(this.queryParams).then(res=>{
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'商品订单统计.xLsx')
|
||||
})
|
||||
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
this.$download.saveAs(blob,'会员充值订单统计.xLsx')
|
||||
})
|
||||
},
|
||||
getOrderStatistics () {
|
||||
orderStatisticsApi().then(res=>{
|
||||
this.orderStatistics = res.data
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
// 补打
|
||||
patchwork(data){
|
||||
const orderNo = data.name
|
||||
@ -311,6 +304,22 @@ export default {
|
||||
this.oilOrder = response.data
|
||||
})
|
||||
},
|
||||
|
||||
refundConfirmed() {
|
||||
this.dialogRefund = false;
|
||||
// 退款确定
|
||||
// cashierOrder
|
||||
console.log("oilOrder",this.oilOrder)
|
||||
let map={
|
||||
orderNo: this.oilOrder.paymentNo,
|
||||
// refundAmt: this.oilOrder.paymentNo,
|
||||
storeId: this.oilOrder.storeId,
|
||||
type: "oilOrder"
|
||||
}
|
||||
refundApi(map).then(res=>{
|
||||
|
||||
})
|
||||
},
|
||||
getType(list,val){
|
||||
let name = "";
|
||||
list.forEach(item => {
|
||||
@ -333,6 +342,7 @@ export default {
|
||||
handleQuery() {
|
||||
this.queryParams.pageNo = 1;
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
|
@ -20,7 +20,7 @@
|
||||
</el-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-top: 20px"><el-button type="primary" icon="el-icon-plus" @click="addMerchant">添加商户信息</el-button></div>
|
||||
<!-- <div style="margin-top: 20px"><el-button type="primary" icon="el-icon-plus" @click="addMerchant">添加商户信息</el-button></div>-->
|
||||
<div class="content-box">
|
||||
<!-- <el-card class="box-card" shadow="hover" v-for="(item,index) in 10" :key="index">-->
|
||||
<!-- <div slot="header" class="clearfix">-->
|
||||
@ -75,7 +75,7 @@
|
||||
</div>
|
||||
<div class="hangbox" v-for="(item,index) in oilConfigList" :key="item.id">
|
||||
<div>{{index + 1}}.通道</div>
|
||||
<div class="jiaong">{{ item.merchantName }}</div>
|
||||
<div class="jiaong">{{ item.merchantName }}({{ item.remark }})</div>
|
||||
<div> 商户号 </div>
|
||||
<div class="jiaong">{{ item.mchntCd }}</div>
|
||||
<!-- <div> 交易满 </div>-->
|
||||
@ -161,7 +161,7 @@
|
||||
<span style="float: left">
|
||||
<dict-tag :options="dict.type.payment_channel" :value="item.merchantName"/>
|
||||
</span>
|
||||
<span style="color: #00ff80">(111({{ item.remark ? item.remark : "--" }}))</span>
|
||||
<span style="color: #30a1ff">({{ item.remark ? item.remark : "--" }})</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.mchntCd }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
@ -60,6 +60,13 @@
|
||||
<el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
|
||||
<el-table-column label="ID" align="center" prop="id" width="80" />
|
||||
<el-table-column label="姓名" align="center" prop="realName" />
|
||||
<el-table-column label="员工角色" align="center" prop="roleId" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.roleId=='12'">油站站长</span>
|
||||
<span v-if="scope.row.roleId=='15'">普通员工</span>
|
||||
<span v-if="scope.row.roleId=='16'">收银员</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="手机号" align="center" prop="mobile" width="110"/>
|
||||
|
||||
<el-table-column label="员工码" align="center" prop="staffCode">
|
||||
@ -145,9 +152,13 @@
|
||||
<el-select v-model="form.roleId" placeholder="请选择角色">
|
||||
<el-option
|
||||
v-for="item in roleList"
|
||||
:key="item.dutyId"
|
||||
:key="item.dutyId+''"
|
||||
:label="item.dutyName"
|
||||
:value="item.dutyId"
|
||||
:value="item.dutyId+''"
|
||||
></el-option>
|
||||
<el-option
|
||||
label="油站站长"
|
||||
:value="12+''"
|
||||
></el-option>
|
||||
|
||||
</el-select>
|
||||
@ -157,7 +168,7 @@
|
||||
<!-- <el-row>-->
|
||||
<el-col :span="8">
|
||||
<el-form-item label="登录密码" prop="password">
|
||||
<el-input v-model="form.password" type="password" placeholder="请输入登录密码" maxlength="30"/>
|
||||
<el-input v-model="form.password" type="password" placeholder="不填写默认:123456" maxlength="30"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -165,25 +176,24 @@
|
||||
<el-row>
|
||||
|
||||
</el-row>
|
||||
<el-row :span="24">
|
||||
<el-col :span="2" style="display: flex;margin-bottom: 10px">
|
||||
<span style="margin-right: 10px;width: 70px">审核权限</span>
|
||||
<!-- <el-row :span="24">-->
|
||||
<!-- <el-col :span="2" style="display: flex;margin-bottom: 10px">-->
|
||||
<!-- <span style="margin-right: 10px;width: 70px">审核权限</span>-->
|
||||
|
||||
</el-col>
|
||||
<el-col :span="22" style="display: flex;margin-bottom: 10px">
|
||||
<el-checkbox-group v-model="form.auditPrem" @change="getCheckbox">
|
||||
<el-checkbox
|
||||
v-for="dict in dict.type.shqx"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="22" style="display: flex;margin-bottom: 10px">-->
|
||||
<!-- <el-checkbox-group v-model="auditPrem" @change="getCheckbox">-->
|
||||
<!-- <el-checkbox-->
|
||||
<!-- v-for="dict in dict.type.shqx"-->
|
||||
<!-- :key="dict.value"-->
|
||||
<!-- :label="dict.label"-->
|
||||
<!-- :value="dict.value"-->
|
||||
<!-- ></el-checkbox>-->
|
||||
<!-- </el-checkbox-group>-->
|
||||
|
||||
</el-col>
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
|
||||
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="一键加油" prop="isRefuel">
|
||||
@ -250,6 +260,24 @@
|
||||
</el-tooltip>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<el-form-item label="审核权限">
|
||||
<el-select
|
||||
v-model="auditPrem"
|
||||
multiple
|
||||
collapse-tags
|
||||
@change="getCheckbox"
|
||||
placeholder="请选择">
|
||||
<el-option
|
||||
v-for="dict in dict.type.shqx"
|
||||
:key="dict.label"
|
||||
:label="dict.label"
|
||||
:value="dict.label"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
@ -506,9 +534,10 @@ export default {
|
||||
this.form.appletPrem = JSON.stringify(data);
|
||||
},
|
||||
getCheckbox(){
|
||||
this.form.writeOff = this.writeOff.toString();
|
||||
this.form.specialPrem = this.specialPrem.toString();
|
||||
this.form.auditPrem = this.form.auditPrem.toString();
|
||||
console.log("this.auditPrem.toString()",this.auditPrem.toString())
|
||||
// this.form.writeOff = this.writeOff.toString();
|
||||
// this.form.specialPrem = this.specialPrem.toString();
|
||||
this.form.auditPrem = this.auditPrem.toString();
|
||||
},
|
||||
// 页面跳转
|
||||
toTarget(url) {
|
||||
@ -585,6 +614,8 @@ export default {
|
||||
this.appletPrem = '';
|
||||
this.writeOff = [];
|
||||
this.form.auditPrem = [];
|
||||
this.auditPrem = []
|
||||
|
||||
this.form = {
|
||||
id:'', userId:'', mobile:'', realName:'', wechat:'', merchantId:'', storeId:'', auditedStatus:'A',
|
||||
auditedTime:'', description:'', isRefuel:'yc', handoverMode:'dqmdtyjb', handoverPrem:'yqx', handoverOut:'jbtc', record:'qbjl',
|
||||
@ -602,6 +633,7 @@ export default {
|
||||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.form.auditPrem = this.form.auditPrem.toString();
|
||||
if (!this.form.id) {
|
||||
queryStaff({mobile:this.form.mobile}).then( response => {
|
||||
if(response.data!=null){
|
||||
@ -610,31 +642,25 @@ export default {
|
||||
this.form.posPrem = JSON.stringify(this.form.posPrem);
|
||||
this.form.appletPrem = JSON.stringify(this.form.appletPrem);
|
||||
addStaff(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
if (response.data==1){
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// queryStaff({mobile:this.form.mobile}).then( response => {
|
||||
// if (response.data != null) {
|
||||
// this.$modal.msgError("手机号已存在");
|
||||
// } else {
|
||||
// this.form.posPrem = JSON.stringify(this.form.posPrem);
|
||||
// this.form.appletPrem = JSON.stringify(this.form.appletPrem);
|
||||
updateStaff(this.form).then(response => {
|
||||
if (response.data==1){
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}else {
|
||||
this.$modal.msgError("手机号已存在");
|
||||
}
|
||||
updateStaff(this.form).then(response => {
|
||||
if (response.data==1){
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}else {
|
||||
this.$modal.msgError("手机号已存在");
|
||||
}
|
||||
|
||||
});
|
||||
// }
|
||||
// })
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -651,7 +677,11 @@ export default {
|
||||
this.open = true;
|
||||
this.title = "编辑员工信息";
|
||||
if (this.form.auditPrem.length > 0){
|
||||
this.form.auditPrem = this.form.auditPrem.split(",");
|
||||
// this.form.auditPrem = this.form.auditPrem.split(",");
|
||||
this.auditPrem = []
|
||||
this.auditPrem = this.form.auditPrem.split(",");
|
||||
console.log("this.form.auditPrem",this.auditPrem)
|
||||
|
||||
}
|
||||
if (this.writeOff.length > 0){
|
||||
this.writeOff = this.form.writeOff.split(",");
|
||||
|
@ -4,15 +4,115 @@
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||
<el-tab-pane label="油品提成方案" name="oil"></el-tab-pane>
|
||||
<el-tab-pane label="非油品提成方案" name="nonOil"></el-tab-pane>
|
||||
<el-tab-pane label="员工提成记录" name="staffCommission">
|
||||
<div>
|
||||
<el-form :model="queryParams1" ref="queryForm" size="small" :inline="true" label-width="68px">
|
||||
<el-form-item label="交易员工" prop="staffId">
|
||||
<el-select
|
||||
v-model="queryParams1.staffId"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option v-for="item in staffList" :key="item.id" :label="item.realName" :value="item.id">
|
||||
<span style="float: left">{{ item.realName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.mobile }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单类型">
|
||||
<el-select
|
||||
v-model="queryParams1.type"
|
||||
clearable
|
||||
placeholder="全部"
|
||||
>
|
||||
<el-option label="油品订单出售" :value="1"></el-option>
|
||||
<el-option label="商品订单出售" :value="2"></el-option>
|
||||
<el-option label="储值卡充值" :value="3"></el-option>
|
||||
<el-option label="油品退款" :value="4"></el-option>
|
||||
<el-option label="商品退款" :value="5"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号">
|
||||
<el-input v-model="queryParams1.orderNo" placeholder="请输入订单号"></el-input>
|
||||
</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="-"
|
||||
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>
|
||||
</div>
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>会员充值统计</span>
|
||||
</div>
|
||||
<div class="box-gang">
|
||||
<div class="box">
|
||||
<div class="size-hui">提成笔数</div>
|
||||
<div class="size-bole">{{ total1 }}</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
<div class="size-hui">提成金额</div>
|
||||
<div class="size-bole">{{ allAmount }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<div style="margin-top: 20px" v-if="activeName=='staffCommission'">
|
||||
<el-table ref="tables" v-loading="loading" :data="commissionList">
|
||||
<el-table-column label="ID" prop="id" align="center" width="60"/>
|
||||
<el-table-column label="员工信息" align="center">
|
||||
<el-table-column label="姓名" prop="realName" align="center"/>
|
||||
<el-table-column label="手机号" prop="mobile" align="center"/>
|
||||
</el-table-column>
|
||||
<el-table-column label="类型" prop="type" align="center" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.type==1">油品订单出售</span>
|
||||
<span v-if="scope.row.type==2">商品订单出售</span>
|
||||
<span v-if="scope.row.type==3">储值卡充值</span>
|
||||
<span v-if="scope.row.type==4">油品退款</span>
|
||||
<span v-if="scope.row.type==5">商品退款</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提成金额(元)" prop="amount" align="center" width="260"/>
|
||||
<el-table-column label="关联订单号" prop="orderNo" align="center"/>
|
||||
<el-table-column label="描述" prop="description" align="center"/>
|
||||
<el-table-column label="创建时间" prop="createTime" align="center" width="160">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total1>0"
|
||||
:total="total1"
|
||||
:page.sync="queryParams1.page"
|
||||
:limit.sync="queryParams1.pageSize"
|
||||
@pagination="getCommissionList"
|
||||
/>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<el-alert
|
||||
title="方案说明"
|
||||
type="info"
|
||||
description="同一角色组、同一参与油品只能设置一种启用的提成方案">
|
||||
v-if="activeName=='oil' || activeName=='nonOil'"
|
||||
description="同一角色组、同一参与油品只能设置一种启用的提成方案,挂账订单不参与提成">
|
||||
</el-alert>
|
||||
|
||||
<div style="margin-top: 20px">
|
||||
<div style="margin-top: 20px" v-if="activeName=='oil' || activeName=='nonOil'">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@ -23,21 +123,21 @@
|
||||
@sort-change="handleSortChange">
|
||||
<el-table-column label="ID" prop="id" align="center" width="60"/>
|
||||
<el-table-column label="方案名称" prop="name" align="center"/>
|
||||
<el-table-column label="员工角色" prop="staffRoleGroup" align="center">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.staff_role" :value="scope.row.staffRoleGroup"/>
|
||||
</template>
|
||||
<el-table-column label="员工角色" prop="dutyName" align="center">
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <dict-tag :options="dict.type.staff_role" :value="scope.row.staffRoleGroup"/>-->
|
||||
<!-- </template>-->
|
||||
</el-table-column>
|
||||
<el-table-column label="提成来源" prop="commissionSource" align="center" />
|
||||
<el-table-column label="满足条件" prop="meetCondition" align="center">
|
||||
<el-table-column label="满足条件" prop="meetCondition" align="center" width="260">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="form.type == 'orderAmount'">
|
||||
<span v-if="scope.row.type == 'orderAmount'">
|
||||
订单金额消费满{{scope.row.meetCondition}}元
|
||||
</span>
|
||||
<span v-if="form.type == 'payAmount'">
|
||||
<span v-if="scope.row.type == 'payAmount'">
|
||||
实际金额消费满{{scope.row.meetCondition}}元
|
||||
</span>
|
||||
<span v-if="form.type == 'refuleNum'">
|
||||
<span v-if="scope.row.type == 'refuleNum'">
|
||||
加油数量消费满{{scope.row.meetCondition}}单位(升/立方)
|
||||
</span>
|
||||
</template>
|
||||
@ -88,9 +188,10 @@
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</el-card>
|
||||
|
||||
<!-- 添加或修改对话框 -->
|
||||
<!-- 添加或修改提成方案对话框 -->
|
||||
<el-dialog :close-on-click-modal="false" :title="title" width="40%" :visible.sync="open" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
|
||||
<el-row>
|
||||
@ -106,14 +207,6 @@
|
||||
<el-radio-group v-model="form.commissionSource">
|
||||
<el-radio v-for="dict in dict.type.source" @change="isChange" :label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<!-- <el-radio-group v-model="commissionSource" ref="" @change="getCheckbox">-->
|
||||
<!-- <el-checkbox-->
|
||||
<!-- v-for="dict in dict.type.source"-->
|
||||
<!-- :key="dict.value"-->
|
||||
<!-- :label="dict.label"-->
|
||||
<!-- :value="dict.value"-->
|
||||
<!-- ></el-checkbox>-->
|
||||
<!-- </el-radio-group>-->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -122,11 +215,11 @@
|
||||
<el-form-item label="角色组" prop="staffRoleGroup">
|
||||
<el-select v-model="form.staffRoleGroup" placeholder="请选择所属角色">
|
||||
<el-option
|
||||
v-for="dict in dict.type.staff_role"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
v-for="item in roleList"
|
||||
:key="item.dutyId+''"
|
||||
:label="item.dutyName"
|
||||
:value="item.dutyId+''"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -134,9 +227,12 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="提成类型" prop="type">
|
||||
<el-radio-group v-model="form.type">
|
||||
<el-radio-group v-model="form.type" v-if="form.commissionSource=='油品'">
|
||||
<el-radio v-for="dict in dict.type.comissionType" :label="dict.value">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-radio-group v-model="form.type" v-else>
|
||||
<el-radio v-for="dict in dict.type.comissionType" :label="dict.value" v-if="dict.value!='refuleNum'">{{ dict.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -160,7 +256,7 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="油品提成" prop="royaltyRate">
|
||||
<el-form-item label="提成金额" prop="royaltyRate">
|
||||
<el-input v-model="form.royaltyRate" placeholder="请输入提成">
|
||||
<el-select v-model="select" style="width: 70px" slot="append" placeholder="请选择">
|
||||
<el-option label="元" value="元"></el-option>
|
||||
@ -170,21 +266,6 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="24">-->
|
||||
<!-- <el-form-item label="生效时间" prop="takeEffect">-->
|
||||
<!-- <el-date-picker-->
|
||||
<!-- v-model="form.takeEffect"-->
|
||||
<!-- type="daterange"-->
|
||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
||||
<!-- range-separator="至"-->
|
||||
<!-- start-placeholder="开始日期"-->
|
||||
<!-- end-placeholder="结束日期">-->
|
||||
<!-- </el-date-picker>-->
|
||||
<!-- <div style="font-size: 12px;color: grey">时间范围内的油品交易有效</div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="方案状态" prop="status">
|
||||
@ -210,17 +291,21 @@
|
||||
|
||||
|
||||
import {
|
||||
addCommission, delCommission,
|
||||
addCommission, allAmountCommissionRecord, delCommission,
|
||||
getCommission,
|
||||
listCommission,
|
||||
listCommission, listCommissionRecord,
|
||||
queryCommission,
|
||||
updateCommission
|
||||
} from "@/api/staffCommission/staffcommission";
|
||||
import {listDuty} from "@/api/staff/duty";
|
||||
import {queryStaffs} from "@/api/order/staff";
|
||||
|
||||
export default {
|
||||
dicts: ['source','role','zhzt','comissionType','staff_role'],
|
||||
data(){
|
||||
return {
|
||||
// 提成总额
|
||||
allAmount:0,
|
||||
changeCom:false,
|
||||
activeName: 'oil',
|
||||
select:"元",
|
||||
@ -231,8 +316,10 @@ export default {
|
||||
title: "",
|
||||
// 总条数
|
||||
total: 0,
|
||||
total1: 0,
|
||||
// 表格数据
|
||||
list: [],
|
||||
commissionList: [],
|
||||
// 是否显示修改对话框
|
||||
open: false,
|
||||
// 默认排序
|
||||
@ -245,6 +332,13 @@ export default {
|
||||
name: '',
|
||||
commissionSource:'油品'
|
||||
},
|
||||
queryParams1: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
staffList:[],
|
||||
// 日期范围
|
||||
dateRange: [],
|
||||
// 表单参数
|
||||
form: {
|
||||
type:'orderAmount',
|
||||
@ -252,6 +346,7 @@ export default {
|
||||
},
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
roleList:[],
|
||||
// 表单校验
|
||||
rules: {
|
||||
name: [
|
||||
@ -283,8 +378,21 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getDuty();
|
||||
this.getStaffList();
|
||||
},
|
||||
methods:{
|
||||
getStaffList(){
|
||||
queryStaffs().then( response => {
|
||||
this.staffList = response.data;
|
||||
})
|
||||
},
|
||||
// 查询角色列表
|
||||
getDuty(){
|
||||
listDuty().then(response => {
|
||||
this.roleList = response.data
|
||||
})
|
||||
},
|
||||
// 点击标签页
|
||||
handleClick(tab, event) {
|
||||
if (this.activeName == 'oil'){
|
||||
@ -296,7 +404,8 @@ export default {
|
||||
commissionSource:'油品'
|
||||
};
|
||||
this.getList();
|
||||
}else {
|
||||
}
|
||||
if (this.activeName == 'nonOil') {
|
||||
this.queryParams = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
@ -306,6 +415,13 @@ export default {
|
||||
};
|
||||
this.getList();
|
||||
}
|
||||
if (this.activeName == 'staffCommission') {
|
||||
this.queryParams1 = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
};
|
||||
this.getCommissionList();
|
||||
}
|
||||
},
|
||||
|
||||
getCheckbox(){
|
||||
@ -320,6 +436,20 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 查询员工提成记录信息
|
||||
getCommissionList(){
|
||||
this.loading = true;
|
||||
listCommissionRecord(this.addDateRange(this.queryParams1, this.dateRange)).then(res => {
|
||||
this.commissionList = res.data.records;
|
||||
this.total1 = res.data.total;
|
||||
this.loading = false;
|
||||
})
|
||||
allAmountCommissionRecord(this.addDateRange(this.queryParams1, this.dateRange)).then(res => {
|
||||
if (res.data){
|
||||
this.allAmount = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.resetForm("form");
|
||||
@ -356,6 +486,22 @@ export default {
|
||||
this.title = "编辑提成方案";
|
||||
});
|
||||
},
|
||||
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
this.queryParams1.page = 1;
|
||||
this.getCommissionList();
|
||||
},
|
||||
// 重置按钮操作
|
||||
resetQuery() {
|
||||
this.dateRange = [];
|
||||
this.queryParams1 = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
}
|
||||
// this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 删除按钮操作
|
||||
handleDelete(row) {
|
||||
const name = row.name
|
||||
@ -378,70 +524,28 @@ export default {
|
||||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
// let date = new Date();
|
||||
// let year = date.getFullYear()
|
||||
// let month = date.getMonth()+1
|
||||
// let day = date.getDate()
|
||||
// let hour = date.getHours()
|
||||
// let minutes = date.getMinutes()
|
||||
// let second = date.getSeconds()
|
||||
// let now = year+"-"+this.add0(month)+"-"+this.add0(day)+" "+hour+":"+minutes+":"+second
|
||||
// if(this.form.takeEffect[0] < now && this.form.takeEffect[1] > now){
|
||||
// this.form.status = 'qy'
|
||||
// }else {
|
||||
// this.form.status = 'jy'
|
||||
// }
|
||||
// // this.form.commissionSource = this.commissionSource.toString()
|
||||
// this.form.takeEffect = JSON.stringify(this.form.takeEffect)
|
||||
if (this.form.id) {
|
||||
if (this.changeCom){
|
||||
queryCommission(this.form).then(response => {
|
||||
if (response.data != null) {
|
||||
if (this.changeCom) {
|
||||
this.$modal.msgError("同一个角色组只能对应一个" + this.form.commissionSource + "提成方案")
|
||||
}else {
|
||||
this.$modal.msgError("当前时间段已存在相同油品、相同角色组的方案")
|
||||
}
|
||||
} else {
|
||||
this.form.royaltyRate = this.form.royaltyRate + this.select
|
||||
updateCommission(this.form).then(response => {
|
||||
this.$modal.msgSuccess("提成方案更新成功");
|
||||
this.open = false;
|
||||
this.changeCom = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
})
|
||||
}else {
|
||||
this.form.royaltyRate = this.form.royaltyRate + this.select
|
||||
updateCommission(this.form).then(response => {
|
||||
this.$modal.msgSuccess("提成方案更新成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
} else {
|
||||
queryCommission(this.form).then(response => {
|
||||
if (response.data != null){
|
||||
if (response.data.status == 'qy'){
|
||||
this.$modal.msgError("同一个角色组只能对应一个"+this.form.commissionSource+"提成方案")
|
||||
if (response.data==1){
|
||||
this.$modal.msgSuccess("提成方案更新成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}else {
|
||||
this.form.royaltyRate = this.form.royaltyRate + this.select
|
||||
addCommission(this.form).then(response => {
|
||||
this.$modal.msgError("同一个角色组只能对应一个" + this.form.commissionSource + "提成方案")
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.form.royaltyRate = this.form.royaltyRate + this.select
|
||||
addCommission(this.form).then(response => {
|
||||
if (response.data==1) {
|
||||
this.$modal.msgSuccess("提成方案新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}else {
|
||||
this.form.royaltyRate = this.form.royaltyRate + this.select
|
||||
addCommission(this.form).then(response => {
|
||||
this.$modal.msgSuccess("提成方案新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}else {
|
||||
this.$modal.msgError("同一个角色组只能对应一个"+this.form.commissionSource+"提成方案")
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -472,4 +576,33 @@ export default {
|
||||
height: 100vh;
|
||||
background: #f6f8f9;
|
||||
}
|
||||
.clearfix{
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
.box-card{
|
||||
width: 100%;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.box-gang{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.box{
|
||||
width: 200px;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
background: #f9f9f9;
|
||||
height: 86px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.size-hui{
|
||||
font-size: 14px;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.size-bole{
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
|
@ -48,7 +48,7 @@ Vue.prototype.getName = getName
|
||||
Vue.prototype.download = download
|
||||
Vue.prototype.handleTree = handleTree
|
||||
// Vue.prototype.pcUrl = 'http://192.168.0.121:82/'
|
||||
Vue.prototype.pcUrl = 'http://192.168.0.178:82/'
|
||||
Vue.prototype.pcUrl = 'http://192.168.0.121:82/'
|
||||
|
||||
// 全局组件挂载
|
||||
Vue.component('DictTag', DictTag)
|
||||
|
@ -3,7 +3,9 @@ package com.fuint.api.fuyou.controller;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fuint.api.fuyou.entity.Const;
|
||||
import com.fuint.api.fuyou.entity.MerchantConfig;
|
||||
import com.fuint.api.fuyou.service.FyPayService;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.api.fuyou.util.Utils;
|
||||
import com.fuint.business.integral.service.IntegralOrdersService;
|
||||
import com.fuint.business.marketingActivity.cardFule.service.CardFuelRecordService;
|
||||
@ -44,6 +46,9 @@ public class FyPayController {
|
||||
@Lazy
|
||||
private AllOrderInfoService allOrderInfoService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private MerchantConfigService merchantConfigService;
|
||||
@Autowired
|
||||
private RedisLock redisLock;
|
||||
|
||||
// 接收支付平台异步通知的接口
|
||||
@ -62,11 +67,18 @@ public class FyPayController {
|
||||
// 业务逻辑 判断订单状态
|
||||
AllOrderInfo allOrderInfo = allOrderInfoService.selectAllOrderInfoByOrderNo(orderNo);
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo)){
|
||||
allOrderInfo.setPayMoney(Double.valueOf(settleOrderAmt));
|
||||
allOrderInfo.setPayMoney(Double.valueOf(settleOrderAmt)/100);
|
||||
allOrderInfo.setTransactionId(transactionId);
|
||||
allOrderInfo.setStatus("paid");
|
||||
allOrderInfo.setPayTime(new Date());
|
||||
allOrderInfoService.updateAllOrderInfo(allOrderInfo);
|
||||
|
||||
// 修改配置收款账户余额信息
|
||||
MerchantConfig merchantConfig = merchantConfigService.selectMeChByIdIsUse(allOrderInfo.getStoreId());
|
||||
Double beforeAmount = merchantConfig.getAmount();
|
||||
Double afterAmount = beforeAmount + allOrderInfo.getPayMoney();
|
||||
merchantConfig.setAmount(afterAmount);
|
||||
merchantConfigService.updateMerch(merchantConfig);
|
||||
}
|
||||
|
||||
updateOrderStatus(orderNo,allOrderInfo.getType());
|
||||
|
@ -4,6 +4,8 @@ import com.fuint.api.fuyou.entity.OilConfig;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.api.fuyou.service.OilConfigService;
|
||||
import com.fuint.api.fuyou.vo.OilConfigVo;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -52,7 +54,8 @@ public class OilConfigController extends BaseController {
|
||||
if (isOpen.equals("1")){
|
||||
result = oilConfigService.judgmentProportion();
|
||||
if (result==1){
|
||||
oilConfigService.oilRule();
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
oilConfigService.oilRule(nowAccountInfo.getStoreId());
|
||||
// 开启定时关闭规则
|
||||
oilConfigService.ruleCycle(ruleCycle);
|
||||
}
|
||||
|
@ -2,6 +2,9 @@ package com.fuint.api.fuyou.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fuint.api.fuyou.entity.MerchantConfig;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
|
||||
public interface MerchantConfigMapper extends BaseMapper<MerchantConfig> {
|
||||
MerchantConfig getConfig(@Param("storeId") Integer storeId,@Param("mchntCd") String mchntCd);
|
||||
int subtractAmount(@Param("storeId") Integer storeId,@Param("changeTheAmount") String changeTheAmount);
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.fuint.api.fuyou.mapper.MerchantConfigMapper">
|
||||
<update id="subtractAmount">
|
||||
update Merchant_config set amount = amount-#{changeTheAmount}
|
||||
where store_id = #{storeId}
|
||||
</update>
|
||||
<select id="getConfig" resultType="com.fuint.api.fuyou.entity.MerchantConfig">
|
||||
select *
|
||||
from Merchant_config
|
||||
where store_id = #{storeId}
|
||||
and
|
||||
mchnt_cd = #{mchntCd}
|
||||
limit 1
|
||||
</select>
|
||||
</mapper>
|
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.fuint.api.fuyou.mapper.OilConfigMapper">
|
||||
<sql id="selectOilConfig">
|
||||
select oc.*,mc.mchnt_cd,mc.merchant_name from oil_config oc
|
||||
select oc.*,mc.mchnt_cd,mc.merchant_name,mc.remark from oil_config oc
|
||||
inner join merchant_config mc on oc.merch_config_id = mc.id
|
||||
</sql>
|
||||
|
||||
|
@ -2,6 +2,7 @@ package com.fuint.api.fuyou.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.api.fuyou.entity.MerchantConfig;
|
||||
import io.swagger.models.auth.In;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -34,7 +35,7 @@ public interface MerchantConfigService extends IService<MerchantConfig> {
|
||||
* 根据店铺id查询商户信息
|
||||
* @return
|
||||
*/
|
||||
public List<MerchantConfig> selectMeChByIsOpen();
|
||||
public List<MerchantConfig> selectMeChByIsOpen(Integer storeId);
|
||||
|
||||
/**
|
||||
* 查询所有商户配置信息
|
||||
@ -97,4 +98,6 @@ public interface MerchantConfigService extends IService<MerchantConfig> {
|
||||
* @return
|
||||
*/
|
||||
public int deleteMerch(Integer id);
|
||||
|
||||
boolean subtractAmount(Integer id, String changeTheAmount, String mchntCd);
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ public interface OilConfigService extends IService<OilConfig> {
|
||||
/**
|
||||
* 规则配置
|
||||
*/
|
||||
public void oilRule();
|
||||
public void oilRule(Integer storeId);
|
||||
|
||||
/**
|
||||
* 判断占比相加是否为100% 是返回1 不是返回0
|
||||
|
@ -9,6 +9,7 @@ import com.fuint.api.fuyou.entity.*;
|
||||
import com.fuint.api.fuyou.service.FyPayService;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.api.fuyou.util.Utils;
|
||||
import com.fuint.business.commission.service.StaffCommissionService;
|
||||
import com.fuint.business.integral.entity.IntegralOrders;
|
||||
import com.fuint.business.integral.service.IntegralOrdersService;
|
||||
import com.fuint.business.marketingActivity.cardFavorable.entity.CardFavorableRecord;
|
||||
@ -45,6 +46,9 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
private CardFuelRecordService cardFuelRecordService;
|
||||
@Resource
|
||||
private IntegralOrdersService integralOrdersService;
|
||||
@Autowired
|
||||
private StaffCommissionService staffCommissionService;
|
||||
|
||||
/**
|
||||
* 条码支付
|
||||
* @param map1
|
||||
@ -171,7 +175,7 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
// 油品订单
|
||||
oilOrder.setOrderStatus("paid");
|
||||
oilOrder.setPayTime(date);
|
||||
|
||||
staffCommissionService.countStaffCommission(oilOrder.getStaffId(),oilOrder.getStoreId(),oilOrder.getOrderAmount(),oilOrder.getPayAmount(),oilOrder.getOilNum(),"1",orderNo);
|
||||
// 修改油罐容量
|
||||
List<JSONObject> jsonObjects = JSONArray.parseArray(map1.get("oilOrder"), JSONObject.class);
|
||||
if (jsonObjects.size()<=1) {
|
||||
@ -193,7 +197,7 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
// 商品订单
|
||||
goodsOrder.setStatus("paid");
|
||||
goodsOrder.setPayTime(date);
|
||||
|
||||
staffCommissionService.countStaffCommission(goodsOrder.getStaffId(),goodsOrder.getStoreId(),goodsOrder.getAmount(),goodsOrder.getPayAmount(),0.0,"2",orderNo);
|
||||
if (!map1.get("goodsOrder").equals("[]")){
|
||||
List<JSONObject> goods = JSONArray.parseArray(map1.get("goodsOrder"), JSONObject.class);
|
||||
OrderGoods orderGoods = new OrderGoods();
|
||||
@ -224,7 +228,14 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
}
|
||||
if (!ArrayUtil.isEmpty(list)){
|
||||
if (list.size()>1){
|
||||
Double oilLiters = 0.0;
|
||||
for (OilOrder order : list){
|
||||
oilLiters += order.getOilNum();
|
||||
}
|
||||
for (OilOrder order : list) {
|
||||
if (order.getOrderType().equals("主订单")){
|
||||
staffCommissionService.countStaffCommission(order.getStaffId(),order.getStoreId(),order.getOrderAmount(),order.getPayAmount(),oilLiters,"1",orderNo);
|
||||
}
|
||||
// 添加多个油品订单
|
||||
order.setOrderStatus("paid");
|
||||
order.setPayTime(date);
|
||||
@ -263,7 +274,7 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
}
|
||||
// 修改商户账号余额信息
|
||||
Double amount = merchantConfig.getAmount();
|
||||
merchantConfig.setAmount(amount+allAmount);
|
||||
merchantConfig.setAmount(amount+allAmount/100);
|
||||
merchantConfigService.updateMerch(merchantConfig);
|
||||
resMap.put("msg","success");
|
||||
}else if (reqMap.get("trans_stat").equals("USERPAYING")){
|
||||
@ -400,7 +411,7 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
MerchantConfig merchantConfig = merchantConfigService.selectMeChByIdIsUse(receiveParameter.getStoreId());
|
||||
// MerchantConfig merchantConfig = merchantConfigService.selectMeChByIdIsUse(16);
|
||||
// 查询用户信息
|
||||
LJUserVo userVo = userService.selectUserById(receiveParameter.getUserId());
|
||||
LJUserVo userVo = userService.selectUserById(receiveParameter.getUserId(), receiveParameter.getStoreId());
|
||||
|
||||
// 公钥
|
||||
Const.INS_PUBLIC_KEY = merchantConfig.getPublicKey();
|
||||
@ -483,12 +494,19 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
allOrderInfo.setType(receiveParameter.getType());
|
||||
allOrderInfo.setStoreId(receiveParameter.getStoreId());
|
||||
allOrderInfo.setGoodsMoney(receiveParameter.getGoodsMoney());
|
||||
allOrderInfo.setPayMoney(receiveParameter.getGoodsMoney());
|
||||
allOrderInfo.setPayType(receiveParameter.getPayType());
|
||||
allOrderInfo.setUserId(receiveParameter.getUserId());
|
||||
allOrderInfo.setPayChannel("cashier");
|
||||
allOrderInfo.setStatus(payStatus);
|
||||
if (payStatus.equals("paid")){
|
||||
allOrderInfo.setPayTime(new Date());
|
||||
}
|
||||
allOrderInfo.setContent(receiveParameter.getContent());
|
||||
allOrderInfoService.insertAllOrderInfo(allOrderInfo);
|
||||
AllOrderInfo allOrderInfo1 = allOrderInfoService.selectAllOrderInfoByOrderNo(receiveParameter.getOrderNo());
|
||||
if (ObjectUtil.isEmpty(allOrderInfo1)){
|
||||
allOrderInfoService.insertAllOrderInfo(allOrderInfo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -505,7 +523,10 @@ public class FyPayServiceImpl implements FyPayService {
|
||||
allOrderInfo.setPayChannel("applet");
|
||||
allOrderInfo.setStatus("unpaid");
|
||||
allOrderInfo.setContent(receiveParameter.getContent());
|
||||
allOrderInfoService.insertAllOrderInfo(allOrderInfo);
|
||||
AllOrderInfo allOrderInfo1 = allOrderInfoService.selectAllOrderInfoByOrderNo(receiveParameter.getOrderNo());
|
||||
if (ObjectUtil.isEmpty(allOrderInfo1)){
|
||||
allOrderInfoService.insertAllOrderInfo(allOrderInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -7,10 +7,16 @@ import com.fuint.api.fuyou.entity.FuYouPublicMerchant;
|
||||
import com.fuint.api.fuyou.entity.MerchantConfig;
|
||||
import com.fuint.api.fuyou.mapper.MerchantConfigMapper;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.api.fuyou.service.OilConfigService;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.RedisLock;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -18,6 +24,10 @@ import java.util.List;
|
||||
*/
|
||||
@Service
|
||||
public class MerchantConfigServiceImpl extends ServiceImpl<MerchantConfigMapper, MerchantConfig> implements MerchantConfigService {
|
||||
@Autowired
|
||||
@Lazy
|
||||
private OilConfigService oilConfigService;
|
||||
|
||||
@Override
|
||||
public MerchantConfig selectMeChByIsUse(String isUse) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
@ -28,6 +38,10 @@ public class MerchantConfigServiceImpl extends ServiceImpl<MerchantConfigMapper,
|
||||
|
||||
@Override
|
||||
public MerchantConfig selectMeChByIdIsUse(int storeId) {
|
||||
List<MerchantConfig> list = this.selectMeChByIsOpen(storeId);
|
||||
if (list.size()>0){
|
||||
oilConfigService.oilRule(storeId);
|
||||
}
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_use","1");
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
@ -46,9 +60,10 @@ public class MerchantConfigServiceImpl extends ServiceImpl<MerchantConfigMapper,
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MerchantConfig> selectMeChByIsOpen() {
|
||||
public List<MerchantConfig> selectMeChByIsOpen(Integer storeId) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_open_rule","1");
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
List list = baseMapper.selectList(queryWrapper);
|
||||
return list;
|
||||
}
|
||||
@ -166,4 +181,27 @@ public class MerchantConfigServiceImpl extends ServiceImpl<MerchantConfigMapper,
|
||||
public int deleteMerch(Integer id) {
|
||||
return baseMapper.deleteById(id);
|
||||
}
|
||||
@Resource
|
||||
RedisLock redisLock;
|
||||
public boolean subtractAmount(Integer storeId, String changeTheAmount, String mchntCd) {
|
||||
String lock = "MerchantConfig"+storeId+mchntCd;
|
||||
redisLock.lock(lock);
|
||||
try {
|
||||
MerchantConfig config = baseMapper.getConfig(storeId,mchntCd);
|
||||
if (ObjectUtil.isNotEmpty(config)) {
|
||||
if (new BigDecimal(changeTheAmount).compareTo(new BigDecimal(config.getAmount().toString()))<=0) {
|
||||
baseMapper.subtractAmount(storeId, changeTheAmount);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
return false;
|
||||
} finally {
|
||||
redisLock.unlock(lock);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -27,10 +27,10 @@ public class OilConfigServiceImpl extends ServiceImpl<OilConfigMapper, OilConfig
|
||||
private MerchantConfigService merchantConfigService;
|
||||
|
||||
@Override
|
||||
public void oilRule() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
public void oilRule(Integer storeId) {
|
||||
// AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("store_id",nowAccountInfo.getStoreId());
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
List<OilConfig> list = baseMapper.selectList(queryWrapper);
|
||||
Double amountAll = 0.0;
|
||||
// 百分占比
|
||||
@ -54,7 +54,7 @@ public class OilConfigServiceImpl extends ServiceImpl<OilConfigMapper, OilConfig
|
||||
}
|
||||
}
|
||||
// 将其他使用的账户关掉
|
||||
merchantConfigService.updateMerchOrter(nowAccountInfo.getStoreId());
|
||||
merchantConfigService.updateMerchOrter(storeId);
|
||||
// 改变目前使用账户
|
||||
MerchantConfig merchantConfig = merchantConfigService.selectMerchById(list.get(index).getMerchConfigId());
|
||||
merchantConfig.setIsUse("1");
|
||||
|
@ -7,4 +7,5 @@ import lombok.Data;
|
||||
public class OilConfigVo extends OilConfig {
|
||||
private String merchantName;
|
||||
private String mchntCd;
|
||||
private String remark;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.commission.entity.CommissionRecord;
|
||||
import com.fuint.business.commission.service.CommissionRecordService;
|
||||
import com.fuint.business.commission.vo.CommissionRecordVo;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -89,7 +90,31 @@ public class CommissionRecordController extends BaseController {
|
||||
return getSuccessResult(this.commissionRecordService.deleteById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据条件分页查询提成记录信息
|
||||
* @param commissionRecord
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("list")
|
||||
public ResponseObject list(CommissionRecordVo commissionRecord,
|
||||
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize) {
|
||||
Page page = new Page(pageNo, pageSize);
|
||||
IPage< CommissionRecordVo> iPageList = this.commissionRecordService.selectCommissionList(page, commissionRecord);
|
||||
return getSuccessResult(iPageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 消费总金额
|
||||
* @param commissionRecord
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("allAmount")
|
||||
public ResponseObject allAmount(CommissionRecordVo commissionRecord) {
|
||||
return getSuccessResult(commissionRecordService.selectAllAmount(commissionRecord));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.commission.entity.StaffCommission;
|
||||
import com.fuint.business.commission.service.StaffCommissionService;
|
||||
import com.fuint.business.commission.vo.StaffCommissionVo;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -31,7 +32,7 @@ public class StaffCommissionController extends BaseController {
|
||||
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
IPage<StaffCommission> list = commissionService.selectCommissionList(page,commission);
|
||||
IPage<StaffCommissionVo> list = commissionService.selectCommissionList(page,commission);
|
||||
return getSuccessResult(list);
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ public class CommissionRecord extends BaseEntity {
|
||||
@ApiModelProperty("员工id")
|
||||
private Integer staffId;
|
||||
/**
|
||||
* 类型
|
||||
* 类型 1.油品订单出售;2.商品订单出售;3.储值卡充值;4.油品退款;5.商品退款
|
||||
*/
|
||||
@ApiModelProperty("类型")
|
||||
private String type;
|
||||
|
@ -1,8 +1,10 @@
|
||||
package com.fuint.business.commission.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.commission.entity.CommissionRecord;
|
||||
import com.fuint.business.commission.vo.CommissionRecordVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import java.util.List;
|
||||
@ -13,7 +15,7 @@ import java.util.List;
|
||||
* @author wangh
|
||||
* @since 2023-11-14 13:40:03
|
||||
*/
|
||||
public interface CommissionRecordMapper {
|
||||
public interface CommissionRecordMapper extends BaseMapper<CommissionRecord> {
|
||||
|
||||
/**
|
||||
* 通过ID查询单条数据
|
||||
@ -81,5 +83,19 @@ public interface CommissionRecordMapper {
|
||||
*/
|
||||
int deleteById(Integer id);
|
||||
|
||||
|
||||
/**
|
||||
* 根据条件分页查询员工提成记录信息
|
||||
* @param page
|
||||
* @param commissionRecord
|
||||
* @return
|
||||
*/
|
||||
IPage<CommissionRecordVo> selectCommissionList(@Param("page") Page page,@Param("commissionRecord") CommissionRecordVo commissionRecord);
|
||||
|
||||
/**
|
||||
* 根据条件查询提成总额
|
||||
* @return
|
||||
*/
|
||||
Double selectAllAmount(@Param("commissionRecord") CommissionRecordVo commissionRecord);
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.commission.entity.StaffCommission;
|
||||
import com.fuint.business.commission.vo.StaffCommissionVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
public interface StaffCommissionMapper extends BaseMapper<StaffCommission> {
|
||||
@ -12,5 +13,5 @@ public interface StaffCommissionMapper extends BaseMapper<StaffCommission> {
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<StaffCommission> selectCommissionList(Page page,@Param("commission") StaffCommission commission);
|
||||
public IPage<StaffCommissionVo> selectCommissionList(Page page, @Param("commission") StaffCommission commission);
|
||||
}
|
||||
|
@ -183,5 +183,55 @@
|
||||
delete from commission_record where id = #{id}
|
||||
</delete>
|
||||
|
||||
|
||||
<select id="selectCommissionList" resultType="com.fuint.business.commission.vo.CommissionRecordVo">
|
||||
select cr.*,ms.real_name,ms.mobile from commission_record cr
|
||||
left join mt_staff ms on cr.staff_id = ms.id
|
||||
<where>
|
||||
<if test="commissionRecord.storeId != null and commissionRecord.storeId != ''">
|
||||
and cr.store_id = #{commissionRecord.storeId}
|
||||
</if>
|
||||
<if test="commissionRecord.staffId != null and commissionRecord.staffId != ''">
|
||||
and cr.staff_id = #{commissionRecord.staffId}
|
||||
</if>
|
||||
<if test="commissionRecord.type != null and commissionRecord.type != ''">
|
||||
and cr.type like concat('%', #{commissionRecord.type}, '%')
|
||||
</if>
|
||||
<if test="commissionRecord.orderNo != null and commissionRecord.orderNo != ''">
|
||||
and cr.order_no like concat('%', #{commissionRecord.orderNo}, '%')
|
||||
</if>
|
||||
<if test="commissionRecord.params.beginTime != null and commissionRecord.params.beginTime != ''"><!-- 开始时间检索 -->
|
||||
and date_format(cr.create_time,'%y%m%d') >= date_format(#{commissionRecord.params.beginTime},'%y%m%d')
|
||||
</if>
|
||||
<if test="commissionRecord.params.endTime != null and commissionRecord.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(cr.create_time,'%y%m%d') <= date_format(#{commissionRecord.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
</where>
|
||||
order by cr.create_time desc
|
||||
</select>
|
||||
<select id="selectAllAmount" resultType="java.lang.Double"
|
||||
parameterType="com.fuint.business.commission.vo.CommissionRecordVo">
|
||||
select sum(amount) from commission_record
|
||||
<where>
|
||||
<if test="commissionRecord.storeId != null and commissionRecord.storeId != ''">
|
||||
and store_id = #{commissionRecord.storeId}
|
||||
</if>
|
||||
<if test="commissionRecord.staffId != null and commissionRecord.staffId != ''">
|
||||
and staff_id = #{commissionRecord.staffId}
|
||||
</if>
|
||||
<if test="commissionRecord.type != null and commissionRecord.type != ''">
|
||||
and type like concat('%', #{commissionRecord.type}, '%')
|
||||
</if>
|
||||
<if test="commissionRecord.orderNo != null and commissionRecord.orderNo != ''">
|
||||
and order_no like concat('%', #{commissionRecord.orderNo}, '%')
|
||||
</if>
|
||||
<if test="commissionRecord.params.beginTime != null and commissionRecord.params.beginTime != ''"><!-- 开始时间检索 -->
|
||||
and date_format(create_time,'%y%m%d') >= date_format(#{commissionRecord.params.beginTime},'%y%m%d')
|
||||
</if>
|
||||
<if test="commissionRecord.params.endTime != null and commissionRecord.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(create_time,'%y%m%d') <= date_format(#{commissionRecord.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
@ -2,14 +2,14 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.fuint.business.commission.mapper.StaffCommissionMapper">
|
||||
<sql id="selectCommission">
|
||||
select * from staff_commission
|
||||
select sc.*,td.duty_name from staff_commission sc left join t_duty td on sc.staff_role_group = td.duty_id
|
||||
</sql>
|
||||
|
||||
<select id="selectCommissionList" resultType="com.fuint.business.commission.entity.StaffCommission">
|
||||
<select id="selectCommissionList" resultType="com.fuint.business.commission.vo.StaffCommissionVo">
|
||||
<include refid="selectCommission"></include>
|
||||
<where>
|
||||
store_id = #{commission.storeId}
|
||||
and commission_source = #{commission.commissionSource}
|
||||
sc.store_id = #{commission.storeId}
|
||||
and sc.commission_source = #{commission.commissionSource}
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -3,6 +3,7 @@ package com.fuint.business.commission.service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.commission.entity.CommissionRecord;
|
||||
import com.fuint.business.commission.vo.CommissionRecordVo;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
|
||||
|
||||
@ -56,4 +57,33 @@ public interface CommissionRecordService {
|
||||
*/
|
||||
boolean deleteById(Integer id);
|
||||
|
||||
/**
|
||||
* 添加提成记录信息
|
||||
* @param commissionRecord
|
||||
* @return
|
||||
*/
|
||||
int insertRecord(CommissionRecord commissionRecord);
|
||||
|
||||
/**
|
||||
* 根据条件分页查询员工提成记录信息
|
||||
* @param page
|
||||
* @param commissionRecord
|
||||
* @return
|
||||
*/
|
||||
IPage<CommissionRecordVo> selectCommissionList(Page page, CommissionRecordVo commissionRecord);
|
||||
|
||||
/**
|
||||
* 根据条件查询提成总额
|
||||
* @return
|
||||
*/
|
||||
Double selectAllAmount(CommissionRecordVo commissionRecord);
|
||||
|
||||
/**
|
||||
* 添加退款提成记录信息
|
||||
* @param orderNo 订单号
|
||||
* @param type 订单类型(1、油品;2、商品)
|
||||
* @param staffId 员工id
|
||||
* @param storeId 店铺id
|
||||
*/
|
||||
void addRefundRecord(String orderNo,String type,Integer staffId,Integer storeId);
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.commission.entity.StaffCommission;
|
||||
import com.fuint.business.commission.vo.StaffCommissionVo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -17,7 +18,7 @@ public interface StaffCommissionService extends IService<StaffCommission> {
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<StaffCommission> selectCommissionList(Page page, StaffCommission commission);
|
||||
public IPage<StaffCommissionVo> selectCommissionList(Page page, StaffCommission commission);
|
||||
|
||||
/**
|
||||
* 根据id查询员工提成方案信息
|
||||
@ -53,4 +54,15 @@ public interface StaffCommissionService extends IService<StaffCommission> {
|
||||
*/
|
||||
public int updateStaffCommission(StaffCommission commission);
|
||||
|
||||
/**
|
||||
* 根据员工id计算提成金额
|
||||
* @param staffId 员工id
|
||||
* @param storeId 店铺id
|
||||
* @param amount 订单金额
|
||||
* @param payAmount 实付金额
|
||||
* @param oilLiters 油品消费升数
|
||||
* @param type 订单类型(油品、非油品)
|
||||
* @param orderNo 关联订单号
|
||||
*/
|
||||
void countStaffCommission(Integer staffId,Integer storeId,Double amount,Double payAmount,Double oilLiters,String type,String orderNo);
|
||||
}
|
||||
|
@ -1,10 +1,13 @@
|
||||
package com.fuint.business.commission.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.commission.entity.CommissionRecord;
|
||||
import com.fuint.business.commission.mapper.CommissionRecordMapper;
|
||||
import com.fuint.business.commission.service.CommissionRecordService;
|
||||
import com.fuint.business.commission.vo.CommissionRecordVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import io.lettuce.core.dynamic.annotation.Param;
|
||||
@ -66,6 +69,9 @@ public class CommissionRecordServiceImpl implements CommissionRecordService {
|
||||
|
||||
@Override
|
||||
public CommissionRecord insert2(CommissionRecord commissionRecord) {
|
||||
int insert = this.commissionRecordMapper.insert(commissionRecord);
|
||||
|
||||
|
||||
return commissionRecord;
|
||||
}
|
||||
|
||||
@ -92,4 +98,63 @@ public class CommissionRecordServiceImpl implements CommissionRecordService {
|
||||
public boolean deleteById(Integer id) {
|
||||
return this.commissionRecordMapper.deleteById(id) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertRecord(CommissionRecord commissionRecord) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("staff_id",commissionRecord.getStaffId());
|
||||
queryWrapper.eq("store_id",commissionRecord.getStoreId());
|
||||
queryWrapper.eq("type",commissionRecord.getType());
|
||||
queryWrapper.eq("order_no",commissionRecord.getOrderNo());
|
||||
CommissionRecord commissionRecord1 = commissionRecordMapper.selectOne(queryWrapper);
|
||||
if (ObjectUtil.isNotEmpty(commissionRecord1)){
|
||||
return 0;
|
||||
}
|
||||
return commissionRecordMapper.insert(commissionRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<CommissionRecordVo> selectCommissionList(Page page, CommissionRecordVo commissionRecord) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
commissionRecord.setStoreId(nowAccountInfo.getStoreId());
|
||||
return commissionRecordMapper.selectCommissionList(page, commissionRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double selectAllAmount(CommissionRecordVo commissionRecord) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
commissionRecord.setStoreId(nowAccountInfo.getStoreId());
|
||||
return commissionRecordMapper.selectAllAmount(commissionRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addRefundRecord(String orderNo, String type, Integer staffId, Integer storeId) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("staff_id",staffId);
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
queryWrapper.eq("type",type);
|
||||
queryWrapper.eq("order_no",orderNo);
|
||||
CommissionRecord commissionRecord = commissionRecordMapper.selectOne(queryWrapper);
|
||||
if (ObjectUtil.isNotEmpty(commissionRecord)){
|
||||
CommissionRecord record = new CommissionRecord();
|
||||
if (type.equals("1")){
|
||||
record.setType("4");
|
||||
record.setStaffId(staffId);
|
||||
record.setStoreId(storeId);
|
||||
record.setDescription("油品退款订单");
|
||||
record.setOrderNo(orderNo);
|
||||
record.setAmount(-commissionRecord.getAmount());
|
||||
commissionRecordMapper.insert(record);
|
||||
}
|
||||
if (type.equals("2")){
|
||||
record.setType("5");
|
||||
record.setStaffId(staffId);
|
||||
record.setStoreId(storeId);
|
||||
record.setDescription("商品退款订单");
|
||||
record.setOrderNo(orderNo);
|
||||
record.setAmount(-commissionRecord.getAmount());
|
||||
commissionRecordMapper.insert(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,21 @@
|
||||
package com.fuint.business.commission.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.commission.entity.CommissionRecord;
|
||||
import com.fuint.business.commission.entity.StaffCommission;
|
||||
import com.fuint.business.commission.mapper.StaffCommissionMapper;
|
||||
import com.fuint.business.commission.service.CommissionRecordService;
|
||||
import com.fuint.business.commission.service.StaffCommissionService;
|
||||
import com.fuint.business.commission.vo.StaffCommissionVo;
|
||||
import com.fuint.business.member.entity.LJStaff;
|
||||
import com.fuint.business.member.service.ILJStaffService;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
@ -26,26 +33,12 @@ import java.util.Map;
|
||||
@Service
|
||||
public class StaffCommissionServiceImpl extends ServiceImpl<StaffCommissionMapper, StaffCommission> implements StaffCommissionService {
|
||||
@Override
|
||||
public IPage<StaffCommission> selectCommissionList(Page page, StaffCommission commission) {
|
||||
public IPage<StaffCommissionVo> selectCommissionList(Page page, StaffCommission commission) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
commission.setStoreId(storeId);
|
||||
IPage<StaffCommission> staffCommissionIPage = baseMapper.selectCommissionList(page, commission);
|
||||
for (StaffCommission record : staffCommissionIPage.getRecords()) {
|
||||
if (record.getTakeEffect()!=null && record.getTakeEffect().equals("")){
|
||||
String substring = record.getTakeEffect().substring(24, 43);
|
||||
Date date = new Date();
|
||||
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String now = dateFormat.format(date);
|
||||
int row = substring.compareTo(now);
|
||||
if (row == -1){
|
||||
record.setStatus("jy");
|
||||
baseMapper.updateById(record);
|
||||
}
|
||||
}
|
||||
}
|
||||
IPage<StaffCommission> commissionIPage = baseMapper.selectCommissionList(page, commission);
|
||||
return commissionIPage;
|
||||
IPage<StaffCommissionVo> staffCommissionIPage = baseMapper.selectCommissionList(page, commission);
|
||||
return staffCommissionIPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -74,18 +67,129 @@ public class StaffCommissionServiceImpl extends ServiceImpl<StaffCommissionMappe
|
||||
|
||||
@Override
|
||||
public int insertStaffCommission(StaffCommission commission) {
|
||||
StaffCommission staffCommission = this.selectCommissionByRole(commission);
|
||||
int row = 0;
|
||||
// 判断当前店铺是否存在同角色的同一提成方案
|
||||
if (ObjectUtil.isNotEmpty(staffCommission)){
|
||||
row = 0;
|
||||
return row;
|
||||
}
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
commission.setStoreId(storeId);
|
||||
int row = baseMapper.insert(commission);
|
||||
row = baseMapper.insert(commission);
|
||||
return row;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateStaffCommission(StaffCommission commission) {
|
||||
int row = baseMapper.updateById(commission);
|
||||
StaffCommission staffCommission = this.selectCommissionByRole(commission);
|
||||
int row = 0;
|
||||
// 判断当前店铺是否存在同角色的同一提成方案
|
||||
if (ObjectUtil.isNotEmpty(staffCommission) && staffCommission.getId()!=commission.getId()){
|
||||
row = 0;
|
||||
return row;
|
||||
}
|
||||
row = baseMapper.updateById(commission);
|
||||
return row;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private CommissionRecordService commissionRecordService;
|
||||
@Autowired
|
||||
private ILJStaffService staffService;
|
||||
|
||||
@Override
|
||||
public void countStaffCommission(Integer staffId,Integer storeId,Double amount,Double payAmount,Double oilLiters,String type,String orderNo) {
|
||||
LJStaff staff = staffService.selectStaffById(staffId);
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("store_id",storeId);
|
||||
queryWrapper.eq("status","qy");
|
||||
// 查询当前店铺启用的提成方案信息
|
||||
List<StaffCommission> list = baseMapper.selectList(queryWrapper);
|
||||
if (list.size()>0 && ObjectUtil.isNotEmpty(staff)){
|
||||
for (StaffCommission staffCommission : list) {
|
||||
CommissionRecord commissionRecord = new CommissionRecord();
|
||||
if (type.equals("1") && staffCommission.getCommissionSource().equals("油品")
|
||||
&& staff.getRoleId().equals(staffCommission.getStaffRoleGroup())){
|
||||
commissionRecord.setStaffId(staffId);
|
||||
commissionRecord.setStoreId(storeId);
|
||||
commissionRecord.setType(type);
|
||||
commissionRecord.setDescription(staffCommission.getCommissionSource()+"订单出售提成");
|
||||
commissionRecord.setOrderNo(orderNo);
|
||||
Double royaltyRate = Double.valueOf(staffCommission.getRoyaltyRate().substring(0,staffCommission.getRoyaltyRate().length()-1));
|
||||
String unit = staffCommission.getRoyaltyRate().substring(staffCommission.getRoyaltyRate().length()-1);
|
||||
// 按照订单金额计算提成
|
||||
if (staffCommission.getType().equals("orderAmount")){
|
||||
if (amount>=Double.valueOf(staffCommission.getMeetCondition())){
|
||||
if (unit.equals("元")){
|
||||
commissionRecord.setAmount(royaltyRate);
|
||||
}
|
||||
if (unit.equals("%")){
|
||||
commissionRecord.setAmount(amount*(royaltyRate/100));
|
||||
}
|
||||
commissionRecordService.insertRecord(commissionRecord);
|
||||
}
|
||||
}
|
||||
// 按照实付金额计算提成
|
||||
if (staffCommission.getType().equals("payAmount")){
|
||||
if (payAmount>=Double.valueOf(staffCommission.getMeetCondition())){
|
||||
if (unit.equals("元")){
|
||||
commissionRecord.setAmount(royaltyRate);
|
||||
}
|
||||
if (unit.equals("%")){
|
||||
commissionRecord.setAmount(payAmount*(royaltyRate/100));
|
||||
}
|
||||
commissionRecordService.insertRecord(commissionRecord);
|
||||
}
|
||||
}
|
||||
// 按照加油数量计算提成
|
||||
if (staffCommission.getType().equals("refuleNum")){
|
||||
if (oilLiters>=Double.valueOf(staffCommission.getMeetCondition())){
|
||||
if (unit.equals("元")){
|
||||
commissionRecord.setAmount(royaltyRate);
|
||||
}
|
||||
if (unit.equals("%")){
|
||||
commissionRecord.setAmount(oilLiters*(royaltyRate/100));
|
||||
}
|
||||
commissionRecordService.insertRecord(commissionRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (type.equals("2") && staffCommission.getCommissionSource().equals("非油品")
|
||||
&& staff.getRoleId().equals(staffCommission.getStaffRoleGroup())){
|
||||
commissionRecord.setStaffId(staffId);
|
||||
commissionRecord.setStoreId(storeId);
|
||||
commissionRecord.setType(staffCommission.getCommissionSource()+"订单出售");
|
||||
commissionRecord.setDescription(staffCommission.getCommissionSource()+"订单出售提成");
|
||||
commissionRecord.setOrderNo(orderNo);
|
||||
Double royaltyRate = Double.valueOf(staffCommission.getRoyaltyRate().substring(0,staffCommission.getRoyaltyRate().length()-1));
|
||||
String unit = staffCommission.getRoyaltyRate().substring(staffCommission.getRoyaltyRate().length()-1);
|
||||
// 按照订单金额计算提成
|
||||
if (staffCommission.getType().equals("orderAmount")){
|
||||
if (amount>=Double.valueOf(staffCommission.getMeetCondition())){
|
||||
if (unit.equals("元")){
|
||||
commissionRecord.setAmount(royaltyRate);
|
||||
}
|
||||
if (unit.equals("%")){
|
||||
commissionRecord.setAmount(amount*(royaltyRate/100));
|
||||
}
|
||||
}
|
||||
}
|
||||
// 按照实付金额计算提成
|
||||
if (staffCommission.getType().equals("payAmount")){
|
||||
if (payAmount>=Double.valueOf(staffCommission.getMeetCondition())){
|
||||
if (unit.equals("元")){
|
||||
commissionRecord.setAmount(royaltyRate);
|
||||
}
|
||||
if (unit.equals("%")){
|
||||
commissionRecord.setAmount(payAmount*(royaltyRate/100));
|
||||
}
|
||||
}
|
||||
}
|
||||
commissionRecordService.insertRecord(commissionRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,16 @@
|
||||
package com.fuint.business.commission.vo;
|
||||
|
||||
public class CommissionRecordVo {
|
||||
import com.fuint.business.commission.entity.CommissionRecord;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class CommissionRecordVo extends CommissionRecord {
|
||||
/**
|
||||
* 员工姓名
|
||||
*/
|
||||
private String realName;
|
||||
/**
|
||||
* 员工手机号
|
||||
*/
|
||||
private String mobile;
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
package com.fuint.business.commission.vo;
|
||||
|
||||
import com.fuint.business.commission.entity.StaffCommission;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StaffCommissionVo extends StaffCommission {
|
||||
/**
|
||||
* 角色名
|
||||
*/
|
||||
private String dutyName;
|
||||
}
|
@ -12,5 +12,8 @@ public class LJGoodsDto extends LJGoods {
|
||||
// 变动原因
|
||||
private String document;
|
||||
|
||||
private String oddNumber;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -55,6 +55,6 @@ public interface StockStatisticService extends IService<StockStatistic> {
|
||||
public void deleteStock(Integer goodsId);
|
||||
|
||||
public int editStock(StockStatistic stock);
|
||||
|
||||
int editStockCostAmount(StockStatistic stock);
|
||||
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -240,12 +241,12 @@ public class LJGoodsServiceImpl extends ServiceImpl<LJGoodsMapper, LJGoods> impl
|
||||
// 添加统计信息
|
||||
public boolean addStockStatistic(LJGoodsDto goods) {
|
||||
StockStatistic stock = new StockStatistic();
|
||||
stock.setId(goods.getId());
|
||||
stock.setGoodsId(goods.getId());
|
||||
BigDecimal Price = new BigDecimal(goods.getBuyingPrice());
|
||||
BigDecimal Stock = new BigDecimal(goods.getStock());
|
||||
BigDecimal multiply = Price.multiply(Stock);
|
||||
stock.setCostAmount(multiply.doubleValue());
|
||||
int i = stockService.editStock(stock);
|
||||
int i = stockService.editStockCostAmount(stock);
|
||||
|
||||
return i>0;
|
||||
}
|
||||
@ -257,6 +258,7 @@ public class LJGoodsServiceImpl extends ServiceImpl<LJGoodsMapper, LJGoods> impl
|
||||
stockTrack.setStoreId(goods.getStoreId());
|
||||
stockTrack.setDocument(goods.getDocument());
|
||||
stockTrack.setChangeNumber(goods.getNumberOfChanges());
|
||||
stockTrack.setOddNumber(goods.getOddNumber());
|
||||
int i = trackService.insertStockTrack(stockTrack);
|
||||
return i>0;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.fuint.business.convenienceSore.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -98,4 +99,13 @@ public class StockStatisticServiceImpl extends ServiceImpl<StockStatisticMapper,
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int editStockCostAmount(StockStatistic stock) {
|
||||
LambdaUpdateWrapper<StockStatistic> lambdaUpdateWrapper = new LambdaUpdateWrapper();
|
||||
lambdaUpdateWrapper.set(StockStatistic::getCostAmount,stock.getCostAmount());
|
||||
lambdaUpdateWrapper.eq(StockStatistic::getGoodsId,stock.getGoodsId());
|
||||
return baseMapper.update(stock,lambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -508,7 +508,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService {
|
||||
if (flag) {
|
||||
// 调用支付接口
|
||||
// 判断是否开启支付规则
|
||||
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen();
|
||||
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen(integralOrdersList.getStoreId());
|
||||
// if (list.size() > 0) {
|
||||
// oilConfigService.oilRule();
|
||||
// }
|
||||
|
@ -60,7 +60,7 @@ public class ActiveNewlywedsRecordsServiceImpl extends ServiceImpl<ActiveNewlywe
|
||||
//用户信息
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer userId = nowAccountInfo.getId();
|
||||
LJUserVo ljUserVo = userService.selectUserById(userId);
|
||||
LJUserVo ljUserVo = userService.selectUserById(userId,activeNewlywedsRecords.getStoreId());
|
||||
//保存新人有礼记录
|
||||
ActiveNewlywedsVO activeNewlyweds = activeNewlywedsService.getOneByStoreId(activeNewlywedsRecords.getStoreId());
|
||||
activeNewlywedsRecords.setActiveNewlywedsId(activeNewlyweds.getId());
|
||||
|
@ -13,6 +13,7 @@ import com.fuint.business.marketingActivity.cardFavorable.service.CardFavorableR
|
||||
import com.fuint.business.marketingActivity.cardFavorable.service.CardFavorableService;
|
||||
import com.fuint.business.marketingActivity.cardFavorable.vo.CardFavorableRecordVO;
|
||||
import com.fuint.business.petrolStationManagement.service.OilNameService;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
import com.fuint.business.userManager.service.LJUserService;
|
||||
import com.fuint.business.userManager.vo.LJUserVo;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
@ -118,7 +119,7 @@ public class CardFavorableRecordServiceImpl extends ServiceImpl<CardFavorableRec
|
||||
boolean save = false;
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer userId = nowAccountInfo.getId();
|
||||
LJUserVo ljUserVo = userService.selectUserById(userId);
|
||||
LJUser ljUserVo = userService.queryUserByUserId(userId);;
|
||||
CardFavorableRecord cardFavorableRecord = new CardFavorableRecord();
|
||||
//优惠券
|
||||
for (Integer id : idList.getIdList()) {
|
||||
|
@ -95,12 +95,19 @@
|
||||
bid_balance bidBalance,
|
||||
recharge_balance rechargeBalance,
|
||||
gift_balance giftBalance,
|
||||
payment_type paymentType,
|
||||
CASE
|
||||
WHEN payment_type = 'WECHAT' THEN '微信支付'
|
||||
WHEN payment_type = 'ALIPAY' THEN '支付宝支付'
|
||||
WHEN payment_type = 'CASH' THEN '现金支付'
|
||||
ELSE '其他'
|
||||
END AS paymentType,
|
||||
|
||||
CASE
|
||||
WHEN pay_status = 'paid' THEN '已支付'
|
||||
WHEN pay_status = 'payFail' THEN '支付失败'
|
||||
WHEN pay_status = 'unpaid' THEN '未支付'
|
||||
ELSE '未知'
|
||||
WHEN pay_status = 'refund' THEN '已退款'
|
||||
ELSE '未知'
|
||||
END AS payStatus,
|
||||
remark remark,
|
||||
fringe_benefit fringeBenefit,
|
||||
@ -124,6 +131,8 @@
|
||||
</if>
|
||||
|
||||
</where>
|
||||
order by create_time desc
|
||||
|
||||
</select>
|
||||
<select id="cardStream" resultType="java.util.Map">
|
||||
SELECT
|
||||
|
@ -318,7 +318,7 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
|
||||
bigDecimal = bigDecimal.add(new BigDecimal(cardValueRecordDTO.getGiftBalance()).add(new BigDecimal(cardValueRecordDTO.getRechargeBalance().toString())));
|
||||
cardValueRecordDTO.setBidBalance(bigDecimal.doubleValue());
|
||||
}
|
||||
if (ObjectUtils.isEmpty(cardValueRecordDTO.getMtStaffId())) {
|
||||
if (ObjectUtils.isEmpty(cardValueRecordDTO.getMtStaffId()) || cardValueRecordDTO.getMtStaffId() == 0) {
|
||||
cardValueRecordDTO.setMtStaffId(nowAccountInfo.getStaffId());
|
||||
}
|
||||
baseMapper.insert(cardValueRecordDTO);
|
||||
@ -472,7 +472,7 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
|
||||
// 成长值变动明细
|
||||
|
||||
// 员工提成
|
||||
if (!ObjectUtil.isEmpty(cardValueRecord.getRoyaltyType()) && !"1".equals(cardValueRecord.getRoyaltyType())) {
|
||||
if (ObjectUtil.isNotEmpty(cardValueRecord.getMtStaffId()) && !ObjectUtil.isEmpty(cardValueRecord.getRoyaltyType()) && !"1".equals(cardValueRecord.getRoyaltyType())) {
|
||||
CommissionRecord commissionRecord = employeeCommissions(cardValueRecord);
|
||||
commissionRecordService.insert2(commissionRecord);
|
||||
}
|
||||
@ -529,6 +529,7 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
|
||||
cardValueRecord.setStatus("1");
|
||||
baseMapper.updateById(updateCardValueRecord);
|
||||
|
||||
|
||||
redisLock.unlock(lockKey);
|
||||
} else {
|
||||
redisLock.unlock(lockKey);
|
||||
@ -562,8 +563,9 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
|
||||
if (ObjectUtil.isEmpty(ljUserVos.getPoints())) ljUserVos.setPoints(0);
|
||||
if (ObjectUtil.isEmpty(ljUserVos.getGrowthValue())) ljUserVos.setGrowthValue(0);
|
||||
|
||||
|
||||
// 计算之后修改对应余额
|
||||
BigDecimal bigBidBalance = new BigDecimal(cardValueRecordDTO.getBidBalance());
|
||||
BigDecimal bigBidBalance = new BigDecimal(cardValueRecordDTO.getRechargeBalance());
|
||||
|
||||
BigDecimal addCardValance = bigBidBalance.add(new BigDecimal(ljUserVos.getCardBalance())); //
|
||||
|
||||
@ -605,7 +607,7 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
|
||||
commissionRecord.setAmount(cardValueRecord.getAmountCommission());
|
||||
commissionRecord.setOrderNo(cardValueRecord.getPaymentNo());
|
||||
commissionRecord.setDescription("余额充值提成");
|
||||
commissionRecord.setType("余额充值");
|
||||
commissionRecord.setType("3");
|
||||
commissionRecord.setStoreId(cardValueRecord.getStoreId());
|
||||
return commissionRecord;
|
||||
}
|
||||
|
@ -210,6 +210,7 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
|
||||
if (StringUtils.isNotEmpty(staff.getPassword())){
|
||||
TAccount tAccount = accountService.selectAccountByStaffId(staff.getId());
|
||||
tAccount.setPassword(staff.getPassword());
|
||||
tAccount.setAccountName(staff.getMobile());
|
||||
accountService.entryptPassword(tAccount);
|
||||
try {
|
||||
accountService.editAccount(tAccount,null);
|
||||
|
@ -71,4 +71,9 @@ public class AllOrderInfoController extends BaseController {
|
||||
public ResponseObject refund(@RequestBody Map<String,String> map){
|
||||
return getSuccessResult(allOrderInfoService.refund(map));
|
||||
}
|
||||
|
||||
@GetMapping("/getOrderInfo")
|
||||
public ResponseObject getOrderInfo(String orderNo, String type) {
|
||||
return getSuccessResult(allOrderInfoService.getOrderInfo(orderNo,type));
|
||||
}
|
||||
}
|
||||
|
@ -103,6 +103,11 @@ public class HandoverRecordController extends BaseController {
|
||||
return getSuccessResult(handoverRecordService.handover());
|
||||
}
|
||||
|
||||
@GetMapping("handoverByAllOrder")
|
||||
public ResponseObject handoverByAllOrder() {
|
||||
return getSuccessResult(handoverRecordService.handoverByAllOrder());
|
||||
}
|
||||
|
||||
/**
|
||||
* 本地打印
|
||||
* @return
|
||||
|
@ -98,5 +98,9 @@ public class CashierOrder extends BaseEntity implements Serializable {
|
||||
* 退款备注
|
||||
*/
|
||||
private String refundRemark;
|
||||
/**
|
||||
* 支付方式
|
||||
*/
|
||||
private String payType;
|
||||
}
|
||||
|
||||
|
@ -125,7 +125,7 @@ public class OilOrder extends BaseEntity implements Serializable {
|
||||
/**
|
||||
* 油罐id
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
// @TableField(exist = false)
|
||||
private Integer tankId;
|
||||
}
|
||||
|
||||
|
@ -39,17 +39,17 @@ public interface HangBillMapper extends BaseMapper<HangBill> {
|
||||
* 查询当前店铺所有的订单总额
|
||||
* @return
|
||||
*/
|
||||
double selectAllAmount(@Param("storeId") int storeId);
|
||||
Double selectAllAmount(@Param("storeId") int storeId);
|
||||
|
||||
/**
|
||||
* 查询当前店铺归还的账单总额
|
||||
* @return
|
||||
*/
|
||||
double selectReturnAmount(@Param("storeId") int storeId);
|
||||
Double selectReturnAmount(@Param("storeId") int storeId);
|
||||
|
||||
/**
|
||||
* 查询当前店铺未归还的账单总额
|
||||
* @return
|
||||
*/
|
||||
double selectNoReturnAmount(@Param("storeId") int storeId);
|
||||
Double selectNoReturnAmount(@Param("storeId") int storeId);
|
||||
}
|
||||
|
@ -54,7 +54,7 @@
|
||||
<if test="allOrderInfo.params.endTime != null and allOrderInfo.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(pay_time,'%y%m%d') <= date_format(#{allOrderInfo.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
order by pay_time desc
|
||||
order by aoi.create_time desc
|
||||
</select>
|
||||
<select id="sumPayMoney" resultType="java.lang.String">
|
||||
select
|
||||
|
@ -18,7 +18,7 @@
|
||||
<if test="order.status != null and order.status != ''">
|
||||
and cvco.status = #{order.status}
|
||||
</if>
|
||||
order by cvco.pay_time desc
|
||||
order by cvco.create_time desc
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -24,7 +24,7 @@
|
||||
<if test="order.params.endTime != null and order.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(pay_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
order by pay_time desc
|
||||
order by create_time desc
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectCashierOrderById" resultType="com.fuint.business.order.vo.CashierOrderVo"
|
||||
@ -50,6 +50,7 @@
|
||||
WHEN co.status = 'paid' THEN '已支付'
|
||||
WHEN co.status = 'payFail' THEN '支付失败'
|
||||
WHEN co.status = 'unpaid' THEN '未支付'
|
||||
WHEN co.status = 'refund' THEN '已退款'
|
||||
ELSE '未知'
|
||||
END AS status,
|
||||
co.pay_time payTime
|
||||
@ -72,6 +73,7 @@
|
||||
<if test="order.params.endTime != null and order.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(pay_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
order by co.create_time Desc
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
@ -208,9 +208,9 @@ limit 1
|
||||
<select id="oilOrderStatistics" resultType="java.util.Map">
|
||||
select
|
||||
sum(order_amount) oilOrder,-- 油品订单
|
||||
sum(if(order_status='refund',discount_amount,0)) oilRefund, -- 退款
|
||||
sum(if(order_status='paid',pay_amount,0)) oilPaid,
|
||||
sum(if(order_status='paid',discount_amount,0)) oilDiacount
|
||||
sum(if(order_status='refund',discount_amount,0.00)) oilRefund, -- 退款
|
||||
sum(if(order_status='paid',pay_amount,0.00)) oilPaid,
|
||||
sum(if(order_status='paid',discount_amount,0.00)) oilDiacount
|
||||
from oil_order
|
||||
where store_id = #{storeId}
|
||||
and create_time BETWEEN #{startTime} AND #{endTime};
|
||||
@ -321,6 +321,7 @@ limit 1
|
||||
left join oil_name onn on on1.oil_name = onn.id
|
||||
left join oil_order oo on oo.oils = onn.id
|
||||
where on1.store_id = #{storeId}
|
||||
and oo.store_id = 60
|
||||
and oo.create_time BETWEEN #{startTime} AND #{endTime}
|
||||
GROUP BY oo.oils
|
||||
</select>
|
||||
|
@ -36,6 +36,7 @@
|
||||
<if test="hangBill.params.endTime != null and hangBill.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(hb.create_time,'%y%m%d') <= date_format(#{hangBill.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
order by create_time desc
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectHangBillById" resultType="com.fuint.business.order.vo.HangBillVo" parameterType="int">
|
||||
@ -52,13 +53,13 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectAllAmount" resultType="double">
|
||||
<select id="selectAllAmount" resultType="java.lang.Double">
|
||||
select sum(amount) from hang_bill where store_id = #{storeId}
|
||||
</select>
|
||||
<select id="selectReturnAmount" resultType="double">
|
||||
<select id="selectReturnAmount" resultType="java.lang.Double">
|
||||
select sum(repaid_amount) from hang_bill where store_id = #{storeId}
|
||||
</select>
|
||||
<select id="selectNoReturnAmount" resultType="double">
|
||||
<select id="selectNoReturnAmount" resultType="java.lang.Double">
|
||||
select sum(outstand_amount) from hang_bill where store_id = #{storeId}
|
||||
</select>
|
||||
</mapper>
|
@ -30,7 +30,7 @@
|
||||
<if test="order.params.endTime != null and order.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(create_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
order by pay_time desc
|
||||
order by create_time desc
|
||||
</where>
|
||||
</select>
|
||||
<select id="getMtOrderList" resultType="com.fuint.business.order.vo.LJOrderVo">
|
||||
@ -66,12 +66,18 @@
|
||||
oo.goods_num goodsNum,
|
||||
oo.pay_amount payAmount,
|
||||
oo.pay_user payUser,
|
||||
oo.pay_type payType,
|
||||
CASE
|
||||
WHEN oo.pay_type = 'WECHAT' THEN '微信支付'
|
||||
WHEN oo.pay_type = 'ALIPAY' THEN '支付宝支付'
|
||||
WHEN oo.pay_type = 'CASH' THEN '现金支付'
|
||||
ELSE '其他'
|
||||
END AS payType,
|
||||
oo.pay_time payTime,
|
||||
CASE
|
||||
WHEN oo.status = 'paid' THEN '已支付'
|
||||
WHEN oo.status = 'payFail' THEN '支付失败'
|
||||
WHEN oo.status = 'unpaid' THEN '未支付'
|
||||
WHEN oo.status = 'refund' THEN '已退款'
|
||||
ELSE '未知'
|
||||
END AS status
|
||||
from mt_order oo
|
||||
@ -97,6 +103,7 @@
|
||||
and date_format(oo.create_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
</where>
|
||||
order by oo.create_time desc
|
||||
</select>
|
||||
<select id="goodsStream" resultType="java.util.Map">
|
||||
SELECT
|
||||
|
@ -39,7 +39,7 @@
|
||||
<if test="order.params.endTime != null and order.params.endTime != ''"><!-- 结束时间检索 -->
|
||||
and date_format(pay_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
order by pay_time desc
|
||||
order by create_time desc
|
||||
</where>
|
||||
</select>
|
||||
<select id="selectOilOrderByOrderNo" resultType="com.fuint.business.order.vo.OilOrderVo"
|
||||
@ -75,7 +75,7 @@
|
||||
<if test="order.remark != null and order.remark != ''">
|
||||
and remark = #{order.remark}
|
||||
</if>
|
||||
order by pay_time desc
|
||||
order by create_time desc
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -116,7 +116,7 @@
|
||||
co.terminal terminal,
|
||||
onu.oil_name oilName,
|
||||
co.order_no orderNo,
|
||||
CONCAT(onu.oil_name ,'/', co.oil_gun_num) oilGunNum,
|
||||
CONCAT(onu.oil_name ,'/', og.gun_name) oilGunNum,
|
||||
co.order_amount orderAmount,
|
||||
co.discount_amount discountAmount,
|
||||
co.pay_amount payAmount,
|
||||
@ -125,12 +125,14 @@
|
||||
WHEN co.order_status = 'paid' THEN '已支付'
|
||||
WHEN co.order_status = 'payFail' THEN '支付失败'
|
||||
WHEN co.order_status = 'unpaid' THEN '未支付'
|
||||
ELSE '未知'
|
||||
WHEN co.order_status = 'refund' THEN '已退款'
|
||||
ELSE '未知'
|
||||
END AS orderStatus,
|
||||
co.invoicing invoicing,
|
||||
co.pay_time payTime
|
||||
from oil_order co
|
||||
left join oil_name onu on co.oils = onu.id
|
||||
left join oil_gun og on co.oil_gun_num = og.id
|
||||
left join mt_staff st on co.staff_id = st.id
|
||||
<where>
|
||||
co.store_id = #{order.storeId}
|
||||
@ -165,6 +167,7 @@
|
||||
and date_format(pay_time,'%y%m%d') <= date_format(#{order.params.endTime},'%y%m%d')
|
||||
</if>
|
||||
</where>
|
||||
order by co.create_time desc
|
||||
</select>
|
||||
<select id="oilStream" resultType="java.util.Map">
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.fuint.business.order.mapper.OrderGoodsMapper">
|
||||
<sql id="selectOrderGoods">
|
||||
select mog.id,mog.order_id,mog.goods_id,mg.name,mg.retail_price,mg.member_price,mog.num
|
||||
select mog.id,mog.order_id,mog.goods_id as goods_id,mg.id as goodsId,mg.name,mg.retail_price,mg.member_price,mog.num
|
||||
from mt_order_goods mog inner join mt_goods mg on mog.goods_id = mg.id
|
||||
</sql>
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
<include refid="selectReturnRecord"></include>
|
||||
<where>
|
||||
rd.hang_bill_id = #{returnRecord.hangBillId}
|
||||
order by pay_time desc
|
||||
order by rd.create_time desc
|
||||
</where>
|
||||
</select>
|
||||
<!-- <select id="selectHangBillById" resultType="com.fuint.business.order.vo.HangBillVo" parameterType="int">-->
|
||||
|
@ -60,4 +60,7 @@ public interface AllOrderInfoService {
|
||||
public int getOrderNum(Integer StoreId);
|
||||
|
||||
|
||||
Map<String,String> getOrderInfo(String orderNo, String type);
|
||||
|
||||
|
||||
}
|
||||
|
@ -61,6 +61,8 @@ public interface HandoverRecordService {
|
||||
|
||||
public Map<String, Object> handover();
|
||||
|
||||
public Map<String, Object> handoverByAllOrder();
|
||||
|
||||
public void printLocally(Map<String, Object> aa);
|
||||
|
||||
|
||||
|
@ -83,7 +83,7 @@ public interface HangBillService extends IService<HangBill> {
|
||||
* 查询当前店铺所有的订单总额
|
||||
* @return
|
||||
*/
|
||||
double selectAllAmount();
|
||||
Double selectAllAmount();
|
||||
|
||||
/**
|
||||
* 查询当前店铺归还账单的数量
|
||||
@ -95,11 +95,11 @@ public interface HangBillService extends IService<HangBill> {
|
||||
* 查询当前店铺归还的账单总额
|
||||
* @return
|
||||
*/
|
||||
double selectReturnAmount();
|
||||
Double selectReturnAmount();
|
||||
|
||||
/**
|
||||
* 查询当前店铺未归还的账单总额
|
||||
* @return
|
||||
*/
|
||||
double selectNoReturnAmount();
|
||||
Double selectNoReturnAmount();
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import com.fuint.api.fuyou.entity.Const;
|
||||
import com.fuint.api.fuyou.entity.MerchantConfig;
|
||||
import com.fuint.api.fuyou.service.FyPayService;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.business.commission.service.CommissionRecordService;
|
||||
import com.fuint.business.convenienceSore.dto.LJGoodsDto;
|
||||
import com.fuint.business.convenienceSore.entity.StockStatistic;
|
||||
import com.fuint.business.convenienceSore.entity.StockTrack;
|
||||
@ -24,7 +25,9 @@ import com.fuint.business.order.mapper.AllOrderInfoMapper;
|
||||
import com.fuint.business.order.service.*;
|
||||
import com.fuint.business.order.vo.AllOrderInfoVo;
|
||||
import com.fuint.business.order.vo.OrderGoodsVo;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilGun;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilTracking;
|
||||
import com.fuint.business.petrolStationManagement.service.OilGunService;
|
||||
import com.fuint.business.petrolStationManagement.service.OilTankService;
|
||||
import com.fuint.business.petrolStationManagement.service.OilTrackingService;
|
||||
import com.fuint.repository.mapper.MtOpenGiftMapper;
|
||||
@ -32,9 +35,11 @@ import com.fuint.repository.model.MtOrderGoods;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -76,7 +81,13 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
|
||||
|
||||
@Override
|
||||
public int insertAllOrderInfo(AllOrderInfo allOrderInfo) {
|
||||
return baseMapper.insert(allOrderInfo);
|
||||
int row = 0;
|
||||
AllOrderInfo allOrderInfo1 = this.selectAllOrderInfoByOrderNo(allOrderInfo.getOrderNo());
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo1)){
|
||||
return row;
|
||||
}
|
||||
row = baseMapper.insert(allOrderInfo);
|
||||
return row;
|
||||
}
|
||||
|
||||
|
||||
@ -124,7 +135,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
|
||||
LJOrderService ljOrderService;
|
||||
@Resource
|
||||
StockTrackService service;
|
||||
|
||||
@Resource
|
||||
OrderGoodsService orderGoodsService;
|
||||
@Resource
|
||||
OilTankService oilTankService;
|
||||
@ -132,29 +143,34 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
|
||||
OilOrderService oilOrderService;
|
||||
@Resource
|
||||
OilTrackingService oilTrackingService;
|
||||
@Resource
|
||||
CommissionRecordService commissionRecordService;
|
||||
@Override
|
||||
@Transactional
|
||||
public int refund(Map<String, String> map) {
|
||||
Map<String, String> refund = null;
|
||||
Map<String, String> refund = new HashMap<>();
|
||||
try {
|
||||
AllOrderInfo allOrderInfo = selectAllOrderInfoByOrderNo(map.get("orderNo"));
|
||||
|
||||
if (ObjectUtil.isEmpty(map.get("type"))) {
|
||||
throw new RuntimeException("该订单不支持退款,无退款类别!");
|
||||
}else if ("oilOrder".equals(map.get("type")) || "goodsOrder".equals(map.get("type"))) {
|
||||
}else if ("canRefund".equals(map.get("type"))) {
|
||||
// 根据订单号查询订单
|
||||
if ("APPLET_CODE".equals(allOrderInfo.getPayType())) { // 储值卡不支持退款
|
||||
throw new RuntimeException("该订单不支持退款!");
|
||||
}
|
||||
// 判断是否有退款金额
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo.getPayMoney()) && ObjectUtil.isNotEmpty(map.get("refundAmt"))) {
|
||||
// 判断是否有退款金额 && ObjectUtil.isNotEmpty(map.get("refundAmt") // 目前全退
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo.getPayMoney())) {
|
||||
Integer money = (int)(allOrderInfo.getPayMoney() * 100);
|
||||
|
||||
// 总金额(金钱的传值需要×100)
|
||||
BigDecimal payMoneyBig = new BigDecimal(allOrderInfo.getPayMoney().toString());
|
||||
BigDecimal payMoneyBefBig = payMoneyBig.multiply(new BigDecimal("100"));
|
||||
// BigDecimal payMoneyBig = new BigDecimal(allOrderInfo.getPayMoney().toString());
|
||||
// BigDecimal payMoneyBefBig = payMoneyBig.multiply(new BigDecimal("100")).stripTrailingZeros();
|
||||
// 退款金额(暂不支持部分退款)
|
||||
// BigDecimal refundAmtBig = new BigDecimal(map.get("refundAmt"));
|
||||
// BigDecimal refundAmtBefBig = refundAmtBig.multiply(new BigDecimal("100"));
|
||||
map.put("totalAmt",payMoneyBefBig.toString());
|
||||
map.put("refundAmt",payMoneyBefBig.toString());
|
||||
map.put("totalAmt",money.toString());
|
||||
map.put("refundAmt",money.toString());
|
||||
|
||||
map.put("orderNo",allOrderInfo.getOrderNo());
|
||||
map.put("payType",allOrderInfo.getPayType());
|
||||
@ -168,46 +184,67 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
|
||||
} else {
|
||||
throw new RuntimeException("该订单类型不支持退款!");
|
||||
}
|
||||
|
||||
refund = fyPayService.refund(map);
|
||||
|
||||
// 处理退款结果
|
||||
if (ObjectUtil.isNotEmpty(refund.get("result_msg"))) {
|
||||
if ("SUCCESS".equals(refund.get("result_msg"))) {
|
||||
// 修改该总订单的数据
|
||||
allOrderInfo.setPayType("refund");
|
||||
// allOrderInfo.setReasonRefund("refund");
|
||||
// allOrderInfo.setRefOrderNo("refund");
|
||||
baseMapper.updateById(allOrderInfo);
|
||||
// 处理油品订单
|
||||
OilOrder oilOrder = oilOrderService.selectOilOrderByOrderNo(map.get("orderNo"));
|
||||
// 处理商品订单
|
||||
LJOrder ljOrder = ljOrderService.selectGoodsOrder(map.get("orderNo"));
|
||||
// 处理收银台订单
|
||||
CashierOrder orderNo = cashierOrderService.selectCashierOrder(map.get("orderNo"));
|
||||
if (ObjectUtil.isNotEmpty(orderNo)) {
|
||||
orderNo.setStatus("refund");
|
||||
cashierOrderService.updateById(orderNo);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(oilOrder)) {
|
||||
disposeOil(oilOrder);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(ljOrder)) {
|
||||
disposeGoods(ljOrder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}else {
|
||||
throw new RuntimeException("退款失败");
|
||||
}
|
||||
boolean flag = false;
|
||||
if (!"CASH".equals(allOrderInfo.getPayType())) {
|
||||
refund = fyPayService.refund(map);
|
||||
}else {
|
||||
// 现金退款处理
|
||||
refund.put("result_msg","SUCCESS");
|
||||
flag = true;
|
||||
}
|
||||
log.info("支付返回信息{}",refund);
|
||||
// 处理退款结果
|
||||
if ("SUCCESS".equals(refund.get("result_msg"))) {
|
||||
// 修改该总订单的数据
|
||||
allOrderInfo.setStatus("refund");
|
||||
allOrderInfo.setReasonRefund(map.get("refundRemark"));
|
||||
allOrderInfo.setRefOrderNo(map.get("refundOrderNo"));
|
||||
baseMapper.updateById(allOrderInfo);
|
||||
// 处理油品订单
|
||||
OilOrder oilOrder = oilOrderService.selectOilOrderByOrderNo(map.get("orderNo"));
|
||||
// 处理商品订单
|
||||
LJOrder ljOrder = ljOrderService.selectGoodsOrder(map.get("orderNo"));
|
||||
// 处理收银台订单
|
||||
CashierOrder orderNo = cashierOrderService.selectCashierOrder(map.get("orderNo"));
|
||||
if (ObjectUtil.isNotEmpty(orderNo)) {
|
||||
orderNo.setStatus("refund");
|
||||
cashierOrderService.updateById(orderNo);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(oilOrder)) {
|
||||
disposeOil(oilOrder,map.get("refundOrderNo"));
|
||||
commissionRecordService.addRefundRecord(oilOrder.getOrderNo(),"1",oilOrder.getStaffId(),oilOrder.getStoreId());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(ljOrder)) {
|
||||
disposeGoods(ljOrder,map.get("refundOrderNo"));
|
||||
commissionRecordService.addRefundRecord(ljOrder.getOrderNo(),"2",ljOrder.getStaffId(),ljOrder.getStoreId());
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
return 1;// 当前为现金支付
|
||||
}
|
||||
if (!flag) {
|
||||
String mchntCd = refund.get("mchnt_cd");
|
||||
merchantConfigService.subtractAmount(allOrderInfo.getStoreId(), map.get("refundAmt"),mchntCd);
|
||||
|
||||
}
|
||||
// 修改商户配置
|
||||
}else {
|
||||
throw new RuntimeException("退款失败");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("退款失败");
|
||||
}
|
||||
|
||||
log.info("refund{}",refund);
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static String formatBigDecimal(BigDecimal value) {
|
||||
DecimalFormat decimalFormat = new DecimalFormat("0.00");
|
||||
return decimalFormat.format(value);
|
||||
}
|
||||
// 处理商户号
|
||||
private Map<String, String> getMerchantConfig(AllOrderInfo allOrderInfo){
|
||||
Map<String, String> map = new HashMap<>();
|
||||
@ -224,8 +261,11 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
|
||||
return map;
|
||||
}
|
||||
|
||||
@Resource
|
||||
OilGunService oilGunService;
|
||||
|
||||
// 处理油品
|
||||
private void disposeOil(OilOrder oilOrder) {
|
||||
private void disposeOil(OilOrder oilOrder,String refundOrderNo) {
|
||||
// 处理订单状态
|
||||
oilOrder.setOrderStatus("refund");
|
||||
oilOrderService.updateById(oilOrder);
|
||||
@ -234,38 +274,67 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper,AllO
|
||||
List<OilOrder> oilOrders = oilOrderService.selectOilOrder(oilOrder.getOrderNo());
|
||||
// 获取油罐数据
|
||||
for (OilOrder order : oilOrders) {
|
||||
OilGun oilGun = oilGunService.queryById(Integer.valueOf(order.getOilGunNum()));
|
||||
// 处理库存
|
||||
oilTankService.addStoredQuantity(order.getTankId(),order.getOilNum());
|
||||
oilTankService.addStoredQuantity(oilGun.getTankId(),order.getOilNum());
|
||||
// 处理库存跟踪
|
||||
OilTracking oilTracking = new OilTracking();
|
||||
oilTracking.setDocument("油品退款");
|
||||
oilTracking.setQuantityChange(-order.getOilNum());
|
||||
oilTracking.setQuantityChange(order.getOilNum());
|
||||
oilTracking.setStoreId(order.getStoreId());
|
||||
oilTracking.setTankId(order.getTankId());
|
||||
oilTracking.setTankId(oilGun.getTankId());
|
||||
oilTracking.setOrderNumber(refundOrderNo);
|
||||
OilTracking insert = oilTrackingService.insert(oilTracking);
|
||||
}
|
||||
/**
|
||||
* todo
|
||||
* 油品总价计算
|
||||
*/
|
||||
|
||||
}
|
||||
// 处理商品
|
||||
private void disposeGoods(LJOrder ljOrder) {
|
||||
private void disposeGoods(LJOrder ljOrder,String refundOrderNo) {
|
||||
// 处理订单状态
|
||||
ljOrder.setStatus("refund");
|
||||
ljOrderService.updateById(ljOrder);
|
||||
// 获取订单的商品数据
|
||||
|
||||
|
||||
|
||||
List<OrderGoodsVo> orderGoodsVos = orderGoodsService.selectOrderGoods(ljOrder.getId());
|
||||
// 处理库存
|
||||
for (OrderGoodsVo orderGoodsVo : orderGoodsVos) {
|
||||
LJGoodsDto goods = new LJGoodsDto();
|
||||
goods.setId(orderGoodsVo.getOrderId());
|
||||
goods.setId(orderGoodsVo.getGoodsId());
|
||||
goods.setNumberOfChanges(ljOrder.getGoodsNum());
|
||||
goods.setDocument("商品退款");
|
||||
goods.setOddNumber(refundOrderNo);
|
||||
ljGoodsService.editGoodsInventory(goods);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询退款提醒
|
||||
*/
|
||||
public Map<String,String> getOrderInfo(String orderNo, String type) {
|
||||
Map<String,String> res = new HashMap<>();
|
||||
// 处理油品订单
|
||||
OilOrder oilOrder = oilOrderService.selectOilOrderByOrderNo(orderNo);
|
||||
// 处理商品订单
|
||||
LJOrder ljOrder = ljOrderService.selectGoodsOrder(orderNo);
|
||||
CashierOrder cashierOrder = cashierOrderService.selectCashierOrder(orderNo);
|
||||
res.put("type","0");
|
||||
|
||||
if ("oil".equals(type)) {
|
||||
if (ObjectUtil.isNotEmpty(ljOrder)) {
|
||||
res.put("money",cashierOrder.getPayAmount().toString());
|
||||
res.put("type","1");
|
||||
}
|
||||
}else if ("goods".equals(type)) {
|
||||
if (ObjectUtil.isNotEmpty(oilOrder)) {
|
||||
res.put("money",cashierOrder.getPayAmount().toString());
|
||||
res.put("type","1");
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.fuint.business.order.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -73,7 +74,13 @@ public class CashierOrderServiceImpl extends ServiceImpl<CashierOrderMapper, Cas
|
||||
|
||||
@Override
|
||||
public int insertCashierOrder(CashierOrder order) {
|
||||
int row = baseMapper.insert(order);
|
||||
CashierOrder cashierOrder = this.selectCashierOrder(order.getOrderNo());
|
||||
int row = 0;
|
||||
if (ObjectUtil.isNotEmpty(cashierOrder)){
|
||||
row = 0;
|
||||
return row;
|
||||
}
|
||||
row = baseMapper.insert(order);
|
||||
return row;
|
||||
}
|
||||
|
||||
|
@ -155,12 +155,12 @@ public class HandoverRecordServiceImpl implements HandoverRecordService {
|
||||
}
|
||||
|
||||
LJStaff ljStaff = iljStaffService.selectStaffById(nowAccountInfo.getStaffId());
|
||||
String handover = iSysDictDataService.selectDictLabel("handover", ljStaff.getHandoverMode());
|
||||
String handoverType = "未知";
|
||||
// String handover = iSysDictDataService.selectDictLabel("handover", ljStaff.getHandoverMode());
|
||||
String handoverType = "暂无";
|
||||
|
||||
if (!ObjectUtil.isEmpty(handover)) {
|
||||
handoverType = handover;
|
||||
}
|
||||
// if (!ObjectUtil.isEmpty(handover)) {
|
||||
// handoverType = handover;
|
||||
// }
|
||||
// 填充 baseInfo
|
||||
Map<String, Object> baseInfo = new HashMap<>();
|
||||
baseInfo.put("storeName", mtStore.getName());
|
||||
@ -168,8 +168,8 @@ public class HandoverRecordServiceImpl implements HandoverRecordService {
|
||||
baseInfo.put("handoverType", handoverType);
|
||||
baseInfo.put("startTime", startTime);
|
||||
baseInfo.put("endTime", formattedEndTime);
|
||||
baseInfo.put("handoverPrem", ljStaff.getHandoverPrem()); // 交班权限
|
||||
baseInfo.put("handoverOut", ljStaff.getHandoverOut()); // 交班是否退出
|
||||
// baseInfo.put("handoverPrem", ljStaff.getHandoverPrem()); // 交班权限
|
||||
// baseInfo.put("handoverOut", ljStaff.getHandoverOut()); // 交班是否退出
|
||||
handoverMap.put("baseInfo",baseInfo);
|
||||
// 获取订单汇总
|
||||
Map<String, Object> orderSummaryMap = orderSummary(startTime, formattedEndTime);
|
||||
@ -199,6 +199,7 @@ public class HandoverRecordServiceImpl implements HandoverRecordService {
|
||||
|
||||
public Map<String, Object> orderSummary(String startTime, String endTime) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Map<String, Object> allStatistics = new HashMap<>();
|
||||
// 油品订单(订单) 油品订单(退款) 油品订单(实收) 油品优惠(实收) 油品交易(实收)
|
||||
Map<String, Object> oilOrderStatistics = handoverRecordMapper.oilOrderStatistics(startTime, endTime, nowAccountInfo.getStoreId());
|
||||
// 会员储值(订单) 会员储值(退款) 会员储值(实收) 储值赠送(订单) 储值赠送(退款) 储值赠送(实际)
|
||||
@ -207,18 +208,41 @@ public class HandoverRecordServiceImpl implements HandoverRecordService {
|
||||
// 普通收款(订单) 普通收款(退款) 普通收款(实收)
|
||||
Map<String, Object> goodsOrderStatistics = handoverRecordMapper.goodsOrderStatistics(startTime, endTime, nowAccountInfo.getStoreId());
|
||||
if (!ObjectUtil.isEmpty(oilOrderStatistics)) {
|
||||
if(!ObjectUtil.isEmpty(cardOrderStatistics)) {
|
||||
oilOrderStatistics.putAll(cardOrderStatistics);
|
||||
}
|
||||
if(!ObjectUtil.isEmpty(fuelOrderStatistics)) {
|
||||
oilOrderStatistics.putAll(fuelOrderStatistics);
|
||||
}
|
||||
if(!ObjectUtil.isEmpty(goodsOrderStatistics)) {
|
||||
oilOrderStatistics.putAll(goodsOrderStatistics);
|
||||
}
|
||||
allStatistics.putAll(oilOrderStatistics);
|
||||
}else{
|
||||
allStatistics.put("oilOrder",0.00);
|
||||
allStatistics.put("oilRefund",0.00);
|
||||
allStatistics.put("oilPaid",0.00);
|
||||
allStatistics.put("oilDiacount",0.00);
|
||||
}
|
||||
if(!ObjectUtil.isEmpty(cardOrderStatistics)) {
|
||||
allStatistics.putAll(cardOrderStatistics);
|
||||
}else {
|
||||
allStatistics.put("cardOrder",0.00);
|
||||
allStatistics.put("cardRefund",0.00);
|
||||
allStatistics.put("cardPaid",0.00);
|
||||
allStatistics.put("cardGiftOrder",0.00);
|
||||
allStatistics.put("cardGiftRefund",0.00);
|
||||
allStatistics.put("cardGiftPaid",0.00);
|
||||
}
|
||||
if(!ObjectUtil.isEmpty(fuelOrderStatistics)) {
|
||||
allStatistics.putAll(fuelOrderStatistics);
|
||||
} else {
|
||||
allStatistics.put("fuelOrder",0.00);
|
||||
allStatistics.put("fuelRefund",0.00);
|
||||
allStatistics.put("fuelPaid",0.00);
|
||||
|
||||
return oilOrderStatistics;
|
||||
}
|
||||
if(!ObjectUtil.isEmpty(goodsOrderStatistics)) {
|
||||
allStatistics.putAll(goodsOrderStatistics);
|
||||
}else {
|
||||
allStatistics.put("goodsOrder",0.00);
|
||||
allStatistics.put("goodsRefund",0.00);
|
||||
allStatistics.put("goodsPaid",0.00);
|
||||
}
|
||||
// }
|
||||
|
||||
return allStatistics;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -388,6 +412,47 @@ public class HandoverRecordServiceImpl implements HandoverRecordService {
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> handoverByAllOrder() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
MtStore mtStore = new MtStore();
|
||||
try {
|
||||
mtStore = storeService.queryStoreById2(nowAccountInfo.getStoreId());
|
||||
} catch (BusinessCheckException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
// 获取当前日期
|
||||
LocalDate today = LocalDate.now();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// 格式化当前时间
|
||||
String formattedEndTime = LocalDateTime.now().format(formatter);
|
||||
|
||||
Map<String, Object> handoverMap = new HashMap<>();
|
||||
|
||||
String startTime = "2023-01-01 12:12:12";
|
||||
HandoverRecord handoverRecord = selectByTime();
|
||||
if (!ObjectUtil.isEmpty(handoverRecord) && !ObjectUtil.isEmpty(handoverRecord.getEndTime())) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
startTime = sdf.format(handoverRecord.getEndTime());
|
||||
}
|
||||
|
||||
|
||||
LJStaff ljStaff = iljStaffService.selectStaffById(nowAccountInfo.getStaffId());
|
||||
// String handover = iSysDictDataService.selectDictLabel("handover", ljStaff.getHandoverMode());
|
||||
String handoverType = "暂无";
|
||||
|
||||
Map<String, Object> baseInfo = new HashMap<>();
|
||||
baseInfo.put("storeName", mtStore.getName());
|
||||
baseInfo.put("realName", nowAccountInfo.getRealName());
|
||||
baseInfo.put("handoverType", handoverType);
|
||||
baseInfo.put("startTime", startTime);
|
||||
baseInfo.put("endTime", formattedEndTime);
|
||||
handoverMap.put("baseInfo",baseInfo);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static final String LOAD_LIBRARY = "TSCLIB";
|
||||
|
||||
//打印机
|
||||
|
@ -254,7 +254,7 @@ public class HangBillServiceImpl extends ServiceImpl<HangBillMapper, HangBill> i
|
||||
}
|
||||
|
||||
@Override
|
||||
public double selectAllAmount() {
|
||||
public Double selectAllAmount() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
return baseMapper.selectAllAmount(nowAccountInfo.getStoreId());
|
||||
}
|
||||
@ -269,13 +269,13 @@ public class HangBillServiceImpl extends ServiceImpl<HangBillMapper, HangBill> i
|
||||
}
|
||||
|
||||
@Override
|
||||
public double selectReturnAmount() {
|
||||
public Double selectReturnAmount() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
return baseMapper.selectReturnAmount(nowAccountInfo.getStoreId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public double selectNoReturnAmount() {
|
||||
public Double selectNoReturnAmount() {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
return baseMapper.selectNoReturnAmount(nowAccountInfo.getStoreId());
|
||||
}
|
||||
@ -290,9 +290,9 @@ public class HangBillServiceImpl extends ServiceImpl<HangBillMapper, HangBill> i
|
||||
if (!map.get("repaidAmount").equals("0") && !payType.equals("CASH")){
|
||||
Integer allAmount = (int) (Double.valueOf(map.get("repaidAmount"))*100);
|
||||
// 判断是否开启支付规则
|
||||
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen();
|
||||
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen(storeId);
|
||||
if (list.size()>0){
|
||||
oilConfigService.oilRule();
|
||||
oilConfigService.oilRule(storeId);
|
||||
}
|
||||
// 根据店铺id查询商户配置信息
|
||||
MerchantConfig merchantConfig = merchantConfigService.selectMeChByIdIsUse(storeId);
|
||||
|
@ -13,6 +13,7 @@ import com.fuint.api.fuyou.entity.ReceiveParameter;
|
||||
import com.fuint.api.fuyou.service.FyPayService;
|
||||
import com.fuint.api.fuyou.service.MerchantConfigService;
|
||||
import com.fuint.api.fuyou.service.OilConfigService;
|
||||
import com.fuint.business.commission.service.StaffCommissionService;
|
||||
import com.fuint.business.convenienceSore.entity.LJGoods;
|
||||
import com.fuint.business.convenienceSore.service.LJGoodsService;
|
||||
import com.fuint.business.marketingActivity.cardFule.entity.CardFuelRecord;
|
||||
@ -89,6 +90,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
private OilConfigService oilConfigService;
|
||||
@Autowired
|
||||
private LJGoodsService goodsService;
|
||||
@Autowired
|
||||
private StaffCommissionService staffCommissionService;
|
||||
|
||||
@Override
|
||||
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order) {
|
||||
@ -245,8 +248,6 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
payStatus = "unpaid";
|
||||
}
|
||||
|
||||
|
||||
|
||||
Map<String,Object> orders = new HashMap<>();
|
||||
|
||||
OilOrder oilOrder1 = null;
|
||||
@ -278,6 +279,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
ljOrder.setStaffId(staffId);
|
||||
ljOrder.setStatus(payStatus);
|
||||
if (payType.equals("CASH")){
|
||||
staffCommissionService.countStaffCommission(staffId,storeId,goodsAmount,goodsActualPay,0.0,"2",orderNo);
|
||||
ljOrder.setPayTime(new Date());
|
||||
}
|
||||
// 将商品订单的json数据转换为数组
|
||||
@ -309,27 +311,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
ljOrder1 = orderService.selectGoodsOrder(orderNo);
|
||||
}
|
||||
|
||||
// 添加收银台订单信息
|
||||
CashierOrder cashierOrder = new CashierOrder();
|
||||
cashierOrder.setStaffId(staffId);
|
||||
cashierOrder.setStoreId(storeId);
|
||||
cashierOrder.setPayUser(payUser);
|
||||
cashierOrder.setAmount(oilAmount+goodsAmount);
|
||||
cashierOrder.setStatus(payStatus);
|
||||
if (payType.equals("CASH")){
|
||||
cashierOrder.setPayAmount(Double.valueOf(map.get("authCode")));
|
||||
cashierOrder.setPayTime(new Date());
|
||||
this.insertAllOrderInfo(orderNo,storeId,Double.valueOf(map.get("allAmount")),payType,userId,"PC","6","paid");
|
||||
}else {
|
||||
cashierOrder.setPayAmount(oilActualPay+goodsActualPay);
|
||||
}
|
||||
cashierOrder.setSeekZero(seekZero);
|
||||
cashierOrder.setOrderNo(orderNo);
|
||||
cashierOrder.setGoodsOrderAmount(goodsAmount);
|
||||
cashierOrder.setGoodsDiscountAmount(goodsDiscount);
|
||||
cashierOrder.setOilOrderAmount(oilAmount);
|
||||
cashierOrder.setOilDiscountAmount(oilDiscount);
|
||||
cashierOrder.setTerminal(terminal);
|
||||
Double oilLiters = 0.0;
|
||||
|
||||
// 添加油品订单信息
|
||||
if (!oilOrder.equals("[]")){
|
||||
@ -340,11 +322,15 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
Double amount = Double.valueOf(jsonObjects.get(i).get("amount").toString());
|
||||
Double oilPrice = Double.valueOf(jsonObjects.get(i).get("oilPrice").toString());
|
||||
Double oilNum = amount/oilPrice;
|
||||
oilLiters += oilNum;
|
||||
if (i==0){
|
||||
order.setOrderType("主订单");
|
||||
order.setOrderAmount(amount);
|
||||
order.setPayAmount(oilActualPay);
|
||||
order.setOrderNo(orderNo);
|
||||
if (payType.equals("CASH")){
|
||||
staffCommissionService.countStaffCommission(staffId,storeId,oilAmount,oilActualPay,oilLiters,"1",orderNo);
|
||||
}
|
||||
}else {
|
||||
order.setOrderType("子订单");
|
||||
order.setOrderAmount(amount);
|
||||
@ -369,6 +355,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
order.setPayType(payType);
|
||||
order.setInvoicing("未开票");
|
||||
order.setOrderStatus(payStatus);
|
||||
order.setTankId(Integer.valueOf(jsonObjects.get(0).get("tankId").toString()));
|
||||
if (payType.equals("CASH")){
|
||||
order.setPayTime(new Date());
|
||||
this.addOilTrack(jsonObjects.get(i),storeId);
|
||||
@ -382,13 +369,36 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
}
|
||||
}
|
||||
|
||||
// 添加收银台订单信息
|
||||
CashierOrder cashierOrder = new CashierOrder();
|
||||
cashierOrder.setStaffId(staffId);
|
||||
cashierOrder.setStoreId(storeId);
|
||||
cashierOrder.setPayUser(payUser);
|
||||
cashierOrder.setAmount(oilAmount+goodsAmount);
|
||||
cashierOrder.setStatus(payStatus);
|
||||
if (payType.equals("CASH")){
|
||||
cashierOrder.setPayAmount(Double.valueOf(map.get("authCode")));
|
||||
cashierOrder.setPayTime(new Date());
|
||||
this.insertAllOrderInfo(orderNo,storeId,Double.valueOf(map.get("allAmount")),payType,userId,"PC","6","paid");
|
||||
}else {
|
||||
cashierOrder.setPayAmount(oilActualPay+goodsActualPay);
|
||||
}
|
||||
cashierOrder.setSeekZero(seekZero);
|
||||
cashierOrder.setOrderNo(orderNo);
|
||||
cashierOrder.setGoodsOrderAmount(goodsAmount);
|
||||
cashierOrder.setGoodsDiscountAmount(goodsDiscount);
|
||||
cashierOrder.setOilOrderAmount(oilAmount);
|
||||
cashierOrder.setOilDiscountAmount(oilDiscount);
|
||||
cashierOrder.setTerminal(terminal);
|
||||
cashierOrder.setPayType(payType);
|
||||
|
||||
// 如果金额不等于0调用第三方支付接口
|
||||
if (!map.get("allAmount").equals("0") && !map.get("payType").equals("CASH")){
|
||||
Integer allAmount = (int) (Double.valueOf(map.get("allAmount"))*100);
|
||||
// 判断是否开启支付规则
|
||||
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen();
|
||||
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen(storeId);
|
||||
if (list.size()>0){
|
||||
oilConfigService.oilRule();
|
||||
oilConfigService.oilRule(storeId);
|
||||
}
|
||||
|
||||
// 处理支付需要的数据
|
||||
@ -475,7 +485,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
// 根据userId查询用户储值卡信息
|
||||
UserBalance balance = userBalanceService.selectUserBalanceByStorId(userId,storeId);
|
||||
// 根据用户id查询用户信息
|
||||
LJUserVo userVo1 = userService.selectUserById(userId);
|
||||
LJUserVo userVo1 = userService.selectUserById(userId,storeId);
|
||||
|
||||
// 根据日期生成订单信息
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
@ -503,6 +513,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
// 添加收银台订单信息
|
||||
CashierOrder cashierOrder = new CashierOrder();
|
||||
boolean flag = false;
|
||||
Double oilLiters = 0.0;
|
||||
for (int i = 0;i < oilOrders.size();i++) {
|
||||
if (oilOrders.get(i).get("oilName").equals(oilName.getId().toString())){
|
||||
Double amount = Double.valueOf(oilOrders.get(i).get("amount").toString());
|
||||
@ -511,6 +522,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
flag = true;
|
||||
status = "paid";
|
||||
Double oilNum = amount / oilPrice;
|
||||
oilLiters += oilNum;
|
||||
if (i == 0) {
|
||||
order.setOrderType("主订单");
|
||||
order.setOrderAmount(amount);
|
||||
@ -547,6 +559,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
flag = true;
|
||||
status = "paid";
|
||||
Double oilNum = amount / oilPrice;
|
||||
oilLiters += oilNum;
|
||||
if (i == 0) {
|
||||
order.setOrderType("主订单");
|
||||
order.setOrderAmount(amount);
|
||||
@ -583,6 +596,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
flag = true;
|
||||
status = "paid";
|
||||
Double oilNum = amount / oilPrice;
|
||||
oilLiters += oilNum;
|
||||
if (i == 0) {
|
||||
order.setOrderType("主订单");
|
||||
order.setOrderAmount(amount);
|
||||
@ -615,7 +629,6 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
oilOrder = this.selectOilOrderByOrderNo(orderNo);
|
||||
this.updateGrowthValue1(oilAmount,userId, Integer.valueOf(oilOrder.getOils()),0.0,storeId,orderNo);
|
||||
// this.insertCardBalance((Double.valueOf(oilOrders.get(i).get("liters").toString())-refuelMoneyLiters)*oilPrice,userId,storeId);
|
||||
|
||||
}else {
|
||||
res.put("error","囤油卡或储值卡余额不足!");
|
||||
}
|
||||
@ -637,8 +650,10 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
cashierOrder.setTerminal(map.get("terminal"));
|
||||
cashierOrder.setOilOrderId(oilOrder.getId());
|
||||
cashierOrder.setSeekZero(0.0);
|
||||
cashierOrder.setPayType(map.get("payType"));
|
||||
cashierOrderService.insertCashierOrder(cashierOrder);
|
||||
this.insertAllOrderInfo(orderNo, storeId, oilAmount, map.get("payType"), userId, "PC", "1", status);
|
||||
staffCommissionService.countStaffCommission(Integer.valueOf(map.get("staffId")),storeId,oilAmount,oilAmount,oilLiters,"1",orderNo);
|
||||
res.put("success","success");
|
||||
}
|
||||
}
|
||||
@ -647,10 +662,12 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
if (cardBalance>=oilAmount){
|
||||
// 添加油品订单信息
|
||||
OilOrder order = new OilOrder();
|
||||
Double oilLiters = 0.0;
|
||||
for (int i = 0;i < oilOrders.size();i++) {
|
||||
Double amount = Double.valueOf(oilOrders.get(i).get("amount").toString());
|
||||
Double oilPrice = Double.valueOf(oilOrders.get(i).get("oilPrice").toString());
|
||||
Double oilNum = amount / oilPrice;
|
||||
oilLiters += oilNum;
|
||||
if (i == 0) {
|
||||
order.setOrderType("主订单");
|
||||
order.setOrderAmount(amount);
|
||||
@ -697,10 +714,11 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
cashierOrder.setTerminal(map.get("terminal"));
|
||||
cashierOrder.setOilOrderId(oilOrder.getId());
|
||||
cashierOrder.setSeekZero(0.0);
|
||||
cashierOrder.setPayType(map.get("payType"));
|
||||
cashierOrderService.insertCashierOrder(cashierOrder);
|
||||
this.updateGrowthValue1(oilAmount,userId, Integer.valueOf(oilOrder.getOils()),0.0,storeId,orderNo);
|
||||
this.insertAllOrderInfo(orderNo,accountInfo.getStoreId(),oilAmount,map.get("payType"),userId,"PC","1","paid");
|
||||
|
||||
staffCommissionService.countStaffCommission(Integer.valueOf(map.get("staffId")),storeId,oilAmount,oilAmount,oilLiters,"1",orderNo);
|
||||
// this.insertCardBalance(oilAmount,userId,storeId);
|
||||
res.put("success","success");
|
||||
}else {
|
||||
@ -849,7 +867,14 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
oilOrder.setInvoicing("未开票");
|
||||
oilOrder.setRemark("未评价");
|
||||
oilOrder.setUserId(nowAccountInfo.getId());
|
||||
LJUserVo userVo = userService.selectUserById(nowAccountInfo.getId());
|
||||
// 判断当前店铺是否存在此用户的会员信息,没有的话进行添加
|
||||
LJStore store = storeService.selectStoreByStoreId(oilOrder.getStoreId());
|
||||
UserBalance balance = userBalanceService.selectUserBalance(oilOrder.getUserId(), store.getChainStoreId());
|
||||
if (ObjectUtil.isEmpty(balance)){
|
||||
userBalanceService.initBalance(oilOrder.getUserId(),store.getChainStoreId());
|
||||
}
|
||||
|
||||
LJUserVo userVo = userService.selectUserById(oilOrder.getUserId(),oilOrder.getStoreId());
|
||||
oilOrder.setPayUser(userVo.getMobile());
|
||||
baseMapper.insert(oilOrder);
|
||||
|
||||
@ -866,6 +891,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
cashierOrder.setOilDiscountAmount(oilOrder.getDiscountAmount());
|
||||
cashierOrder.setTerminal(oilOrder.getTerminal());
|
||||
cashierOrder.setSeekZero(0.0);
|
||||
cashierOrder.setPayType(oilOrder.getPayType());
|
||||
cashierOrderService.insertCashierOrder(cashierOrder);
|
||||
return orderNo;
|
||||
}
|
||||
@ -992,6 +1018,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
this.updateGrowthValue(payAmount,userId, Integer.valueOf(oilOrder.getOils()),oilCardAmount,oilOrder.getStoreId(),orderNo);
|
||||
this.addOilTracks(oilOrder,oilOrder.getStoreId());
|
||||
this.insertCardOrder(oilOrder.getUserId(),oilOrder.getStoreId(),orderNo,oilOrder.getOrderAmount(),"paid", Double.valueOf(balanceAmount),payAmount);
|
||||
staffCommissionService.countStaffCommission(oilOrder.getStaffId(),oilOrder.getStoreId(),oilOrder.getOrderAmount(),oilOrder.getOrderAmount(),oilOrder.getOilNum(),"1",orderNo);
|
||||
oilOrder.setPayAmount(payAmount);
|
||||
oilOrder.setDiscountAmount(Double.valueOf(discountAmount));
|
||||
oilOrder.setPayTime(new Date());
|
||||
@ -1062,8 +1089,11 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
}
|
||||
this.updateGrowthValue(oilOrder.getPayAmount(),userId, Integer.valueOf(oilOrder.getOils()),null,oilOrder.getStoreId(),orderNo);
|
||||
this.addOilTracks(oilOrder,oilOrder.getStoreId());
|
||||
staffCommissionService.countStaffCommission(oilOrder.getStaffId(),oilOrder.getStoreId(),oilOrder.getOrderAmount(),oilOrder.getPayAmount(),oilOrder.getOilNum(),"1",orderNo);
|
||||
|
||||
CashierOrder cashierOrder = cashierOrderService.selectCashierOrder(orderNo);
|
||||
if (ObjectUtil.isNotEmpty(cashierOrder)){
|
||||
cashierOrder.setOilOrderId(oilOrder.getId());
|
||||
cashierOrder.setPayTime(new Date());
|
||||
cashierOrder.setStatus("paid");
|
||||
cashierOrder.setOilDiscountAmount(oilOrder.getDiscountAmount());
|
||||
@ -1173,7 +1203,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
int growth = balance.getGrowthValue();
|
||||
if (refuelMoney==null){
|
||||
String refuelMoney1 = balance.getRefuelMoney();
|
||||
if (StringUtils.isNotEmpty(refuelMoney1)){
|
||||
if (StringUtils.isNotEmpty(refuelMoney1) && !"null".equals(refuelMoney1) && StringUtils.isNotEmpty(refuelMoney)){
|
||||
JSONArray objects = JSONArray.parseArray(refuelMoney);
|
||||
JSONArray objects1 = JSONArray.parseArray(refuelMoney1);
|
||||
List<RefuelMoney> list = new ArrayList<>();
|
||||
|
@ -7,6 +7,7 @@ public class OrderGoodsVo {
|
||||
private Integer id;
|
||||
private Integer orderId;
|
||||
private Integer goods_id;
|
||||
private Integer goodsId;
|
||||
private String name;
|
||||
private String retailPrice;
|
||||
private String memberPrice;
|
||||
|
@ -52,6 +52,12 @@ public class OilGunController extends BaseController {
|
||||
return getSuccessResult(oilGunVOS);
|
||||
}
|
||||
|
||||
@GetMapping("selectByNumber/{storeId}")
|
||||
public ResponseObject selectByNumberTGUn(@PathVariable Integer storeId) {
|
||||
List<OilGunVO> oilGunVOS = this.oilGunService.selectByNumberTGUn2(storeId);
|
||||
return getSuccessResult(oilGunVOS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,10 @@ public class OilPurchase extends BaseEntity {
|
||||
*/
|
||||
private Integer storeId;
|
||||
|
||||
private Integer theDocumentAmount;
|
||||
/**
|
||||
* 总计
|
||||
*/
|
||||
private Double theDocumentAmount;
|
||||
|
||||
|
||||
|
||||
|
@ -86,7 +86,7 @@ public interface OilTankMapper {
|
||||
* @return 影响行数
|
||||
*/
|
||||
int update(OilTank oilTank);
|
||||
int addStoredQuantityByLock(@Param("tankId") Integer tankId,@Param("changeNum") Double changeNum,Double totalAmount,Double discountedPrice);
|
||||
int addStoredQuantityByLock(@Param("tankId") Integer tankId,@Param("changeNum") Double changeNum,@Param("totalAmount") Double totalAmount, @Param("discountedPrice")Double discountedPrice);
|
||||
|
||||
int subtractStoredQuantityByLock(@Param("tankId") Integer tankId,@Param("changeNum") Double changeNum);
|
||||
|
||||
|
@ -103,7 +103,8 @@
|
||||
</where>
|
||||
</select>
|
||||
<select id="getOilName" resultType="com.fuint.business.petrolStationManagement.vo.OilGunVO">
|
||||
select onm.number_id numberId,name.oil_name oilName, name.oil_type oilType,onm.oil_price oilPrice ,onm.gb_price gbPrice, name.oil_density oilDensity,onm.unit unit
|
||||
select onm.number_id numberId,name.oil_name oilName, name.oil_type oilType,onm.oil_price oilPrice ,onm.gb_price gbPrice,
|
||||
name.oil_density oilDensity,onm.unit unit,name.id oilNameId
|
||||
from oil_number onm
|
||||
left join oil_name name on onm.oil_name = name.id
|
||||
<where>
|
||||
|
@ -138,7 +138,7 @@
|
||||
</select>
|
||||
<select id="selectOilNumberNameByStoreId" resultType="com.fuint.business.petrolStationManagement.vo.OilNumberNameVo"
|
||||
parameterType="java.lang.Integer">
|
||||
select onu.*,ona.oil_type,ona.oil_name oilNames,ona.id oilId,ot.id tankId from oil_tank ot
|
||||
select onu.*,ona.oil_type,ona.oil_name oilNames,ona.id oilId,ot.id tankId,ot.tank_name from oil_tank ot
|
||||
left join oil_number onu on ot.number_id = onu.number_id
|
||||
left join oil_name ona on onu.oil_name = ona.id
|
||||
<where>
|
||||
|
@ -429,7 +429,7 @@
|
||||
total_price = total_price + #{totalAmount},
|
||||
</if>
|
||||
<if test="discountedPrice != null and discountedPrice != ''">
|
||||
discounted_price = #{discountedPrice}
|
||||
discounted_price = #{discountedPrice},
|
||||
</if>
|
||||
update_time = NOW()
|
||||
where id = #{tankId}
|
||||
|
@ -37,6 +37,8 @@ public interface OilGunService {
|
||||
IPage<OilGun> queryByPage(@Param("page") Page page, @Param("oilGun") OilGun oilGun);
|
||||
|
||||
List<OilGunVO> selectByNumberTGUn(OilGun oilGun);
|
||||
|
||||
List<OilGunVO> selectByNumberTGUn2(Integer storeId);
|
||||
/**
|
||||
* 新增数据
|
||||
*
|
||||
|
@ -81,6 +81,30 @@ public class OilGunServiceImpl implements OilGunService {
|
||||
return oilName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OilGunVO> selectByNumberTGUn2(Integer storeId) {
|
||||
// 根据店铺id查询所有油类
|
||||
List<OilGunVO> oilName = oilGunDao.getOilName(storeId);
|
||||
OilGun oilGun = new OilGun();
|
||||
oilGun.setStoreId(storeId);
|
||||
oilGun.setStatus("启用");
|
||||
// 根据店铺id查询所有油枪
|
||||
List<OilGun> allList = oilGunDao.getAllList(oilGun);
|
||||
if (oilName.size() <= 0 || allList.size() <= 0){
|
||||
return oilName;
|
||||
}
|
||||
for (OilGunVO oilNumber : oilName) {
|
||||
List<OilGun> oilGunList = new ArrayList<>();
|
||||
for (OilGun gun : allList) {
|
||||
if (oilNumber.getNumberId().equals(gun.getNumberId())) {
|
||||
oilGunList.add(gun);
|
||||
}
|
||||
}
|
||||
oilNumber.setOilGunList(oilGunList);
|
||||
}
|
||||
return oilName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增数据
|
||||
*
|
||||
|
@ -131,13 +131,15 @@ public class OilTankServiceImpl implements OilTankService {
|
||||
// 根据油罐id加锁 同一时间只能
|
||||
String lockKey = "oilTank-"+tankId;
|
||||
Boolean isLock = redisLock.tryLock(lockKey,500,5000, TimeUnit.MILLISECONDS);
|
||||
|
||||
if (isLock) {
|
||||
OilTank oilTank = oilTankDao.queryById(tankId);
|
||||
// 计算总升数
|
||||
// 计算总升数(相加)
|
||||
// BigDecimal tankVolumeBigDecimal = new BigDecimal(oilTank.getTankVolume().toString());
|
||||
BigDecimal changeNumBigDecimal = new BigDecimal(changeNum.toString());
|
||||
BigDecimal storedQuantityBigDecimal = changeNumBigDecimal.subtract(new BigDecimal(oilTank.getStoredQuantity().toString()));
|
||||
BigDecimal storedQuantityBigDecimal = changeNumBigDecimal.add(new BigDecimal(oilTank.getStoredQuantity().toString()));
|
||||
|
||||
if (storedQuantityBigDecimal.toString().compareTo(oilTank.getTankVolume().toString())>0) {
|
||||
if (storedQuantityBigDecimal.compareTo(new BigDecimal(oilTank.getTankVolume()))>0) {
|
||||
redisLock.unlock(lockKey);
|
||||
throw new RuntimeException("“"+ oilTank.getTankName() +"”油罐中容量不足,无法进行增加!");
|
||||
}
|
||||
@ -196,7 +198,7 @@ public class OilTankServiceImpl implements OilTankService {
|
||||
// 单价*油量
|
||||
BigDecimal disPrice = new BigDecimal(oilTank.getDiscountedPrice().toString());
|
||||
BigDecimal multiply = disPrice.multiply(new BigDecimal(changeNum));
|
||||
return this.oilTankDao.addStoredQuantityByLock(tankId, changeNum, multiply.doubleValue(),null) >0 ;
|
||||
return this.oilTankDao.addStoredQuantityByLock(tankId, changeNum, Double.valueOf(multiply.toString()),null) >0 ;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -23,5 +23,5 @@ public class OilGunVO extends OilGun {
|
||||
private String unit; //
|
||||
private Integer storeId; //
|
||||
private Double oilDensity; //油品密度
|
||||
|
||||
private Integer oilNameId;
|
||||
}
|
||||
|
@ -13,4 +13,6 @@ public class OilNumberNameVo extends OilNumber {
|
||||
private String tankId;
|
||||
// 油品id
|
||||
private Integer oilId;
|
||||
// 油罐名称
|
||||
private String tankName;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.fuint.business.storeInformation.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -10,12 +11,15 @@ import com.fuint.business.storeInformation.entity.LJStore;
|
||||
import com.fuint.business.storeInformation.mapper.LJStoreMapper;
|
||||
import com.fuint.business.storeInformation.service.ILJStoreService;
|
||||
import com.fuint.business.userManager.entity.ChainStoreConfig;
|
||||
import com.fuint.business.userManager.entity.UserBalance;
|
||||
import com.fuint.business.userManager.service.ChainStoreConfigService;
|
||||
import com.fuint.business.userManager.service.UserBalanceService;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.StringUtils;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import io.swagger.models.auth.In;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
@ -25,6 +29,10 @@ import java.util.*;
|
||||
*/
|
||||
@Service
|
||||
public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> implements ILJStoreService {
|
||||
@Autowired
|
||||
@Lazy
|
||||
private UserBalanceService userBalanceService;
|
||||
|
||||
/**
|
||||
* 根据id查询店铺信息
|
||||
* @return
|
||||
@ -54,7 +62,8 @@ public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> impl
|
||||
|
||||
@Override
|
||||
public LJStore selectStoreByStoreId(int storeId) {
|
||||
return baseMapper.selectById(storeId);
|
||||
LJStore store = baseMapper.selectById(storeId);
|
||||
return store;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -66,7 +75,7 @@ public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> impl
|
||||
LJStore ljStore = new LJStore();
|
||||
Double distance = 0.0;
|
||||
double earthRadius = 6371; // 地球半径,单位为公里
|
||||
if (storeId==null){
|
||||
if (StringUtils.isEmpty(storeId)){
|
||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("if_delete","0");
|
||||
queryWrapper.eq("status","qy");
|
||||
@ -83,6 +92,7 @@ public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> impl
|
||||
|
||||
double min = earthRadius * c;
|
||||
ljStore = list.get(0);
|
||||
storeId = ljStore.getId().toString();
|
||||
|
||||
// 计算最小距离
|
||||
for (int i = 0; i < list.size(); i++){
|
||||
@ -99,6 +109,7 @@ public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> impl
|
||||
if ((earthRadius * c1) < min){
|
||||
min = earthRadius * c1;
|
||||
ljStore = list.get(i);
|
||||
storeId = ljStore.getId().toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -119,6 +130,13 @@ public class LJStoreServiceImpl extends ServiceImpl<LJStoreMapper, LJStore> impl
|
||||
ljStore = store;
|
||||
}
|
||||
|
||||
// 判断当前店铺是否存在此用户的会员信息,没有的话进行添加
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
LJStore store = this.selectStoreByStoreId(Integer.valueOf(storeId));
|
||||
UserBalance balance = userBalanceService.selectUserBalance(nowAccountInfo.getId(), store.getChainStoreId());
|
||||
if (ObjectUtil.isEmpty(balance)){
|
||||
userBalanceService.initBalance(nowAccountInfo.getId(),store.getChainStoreId());
|
||||
}
|
||||
|
||||
Map<String,Object> map1 = new HashMap<>();
|
||||
map1.put("distance",distance);
|
||||
|
@ -97,8 +97,8 @@ public class LJUserController extends BaseController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/statistic")
|
||||
public ResponseObject getStatistic(){
|
||||
Map<String, Object> map = userService.selectStatistic();
|
||||
public ResponseObject getStatistic(LJUserVo user){
|
||||
Map<String, Object> map = userService.selectStatistic(user);
|
||||
return getSuccessResult(map);
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ public class LJUserController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public ResponseObject userInfo(@PathVariable Integer id){
|
||||
LJUserVo user = userService.selectUserById(id);
|
||||
LJUserVo user = userService.selectUserById(id,null);
|
||||
return getSuccessResult(user);
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,10 @@
|
||||
</select>
|
||||
<!-- 查询会员统计信息-->
|
||||
<select id="selectSumByStore" resultType="java.lang.Double" parameterType="int">
|
||||
select sum(${sumValue}) from mt_user_balance where chain_store_id = #{chainStoreId}
|
||||
select sum(${sumValue}) from mt_user_balance
|
||||
<where>
|
||||
chain_store_id = #{chainStoreId}
|
||||
</where>
|
||||
</select>
|
||||
<!-- 根据手机号查询会员信息-->
|
||||
<select id="selectUserByMobile" resultType="com.fuint.business.userManager.vo.LJUserVo"
|
||||
|
@ -44,14 +44,14 @@ public interface LJUserService extends IService<LJUser> {
|
||||
* 查询会员统计信息
|
||||
* @return
|
||||
*/
|
||||
public Map<String ,Object> selectStatistic();
|
||||
public Map<String ,Object> selectStatistic(LJUserVo user);
|
||||
|
||||
/**
|
||||
* 根据id查询会员信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public LJUserVo selectUserById(int id);
|
||||
public LJUserVo selectUserById(int id,Integer storeId);
|
||||
|
||||
/**
|
||||
* 根据storeId获取连锁店id 根据连锁店id查询用户信息
|
||||
|
@ -92,7 +92,7 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> selectStatistic() {
|
||||
public Map<String, Object> selectStatistic(LJUserVo user) {
|
||||
Map<String ,Object> map = new HashMap<>();
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
@ -127,9 +127,12 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LJUserVo selectUserById(int id) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
LJStore store = storeService.selectStoreByStoreId(nowAccountInfo.getStoreId());
|
||||
public LJUserVo selectUserById(int id,Integer storeId) {
|
||||
if (storeId==null){
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
storeId = nowAccountInfo.getStoreId();
|
||||
}
|
||||
LJStore store = storeService.selectStoreByStoreId(storeId);
|
||||
return baseMapper.queryUserByChainStoreId(id,store.getChainStoreId());
|
||||
}
|
||||
|
||||
|
@ -231,6 +231,8 @@ public class AccountServiceImpl extends ServiceImpl<TAccountMapper, TAccount> im
|
||||
// 所属的连锁店类型
|
||||
String deptType = param.get("deptType") == null ? "0" : param.get("deptType").toString();
|
||||
|
||||
|
||||
|
||||
// 判断是否能创建站长 z001为站长的枚举值 后期需要创建一个角色的枚举类
|
||||
if (!"3".equals(deptType) && "z001".equals(code) ) {
|
||||
throw new RuntimeException("用户角色与组织架构不匹配!");
|
||||
@ -295,9 +297,9 @@ public class AccountServiceImpl extends ServiceImpl<TAccountMapper, TAccount> im
|
||||
|
||||
}
|
||||
ljStaffMapper.insert(staff);
|
||||
LJStaff staff1 = ljStaffMapper.selectById(staff.getId());
|
||||
if (ObjectUtil.isNotEmpty(staff1)){
|
||||
editTAccount.setStaffId(staff1.getId());
|
||||
// LJStaff staff1 = ljStaffMapper.selectById(staff.getId());
|
||||
if (ObjectUtil.isNotEmpty(staff.getId())){
|
||||
editTAccount.setStaffId(staff.getId());
|
||||
updateAccount(editTAccount);
|
||||
}
|
||||
|
||||
@ -459,7 +461,7 @@ public class AccountServiceImpl extends ServiceImpl<TAccountMapper, TAccount> im
|
||||
}
|
||||
|
||||
if (id > 0 ) {
|
||||
return this.getAccountInfoById(id);
|
||||
return this.getAccountInfoById(account.getAcctId());
|
||||
} else {
|
||||
throw new BusinessRuntimeException("创建账号错误");
|
||||
}
|
||||
@ -555,7 +557,8 @@ public class AccountServiceImpl extends ServiceImpl<TAccountMapper, TAccount> im
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@OperationServiceLog(description = "修改后台账户")
|
||||
public void updateAccount(TAccount tAccount) {
|
||||
tAccountMapper.updateById(tAccount);
|
||||
int i = tAccountMapper.updateById(tAccount);
|
||||
System.out.println("1119"+i);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,33 +62,37 @@ export function editHangBill(data) {
|
||||
}
|
||||
|
||||
// 当前店铺归还账单的数量
|
||||
export function hangBillReturnTotal() {
|
||||
export function hangBillReturnTotal(query) {
|
||||
return request({
|
||||
url: '/business/hangBill/returnTotal',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 当前店铺归还账单的数量
|
||||
export function hangBillAllAmount() {
|
||||
export function hangBillAllAmount(query) {
|
||||
return request({
|
||||
url: '/business/hangBill/allAmount',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 当前店铺归还账单的数量
|
||||
export function hangBillAllReturnAmount() {
|
||||
export function hangBillAllReturnAmount(query) {
|
||||
return request({
|
||||
url: '/business/hangBill/allReturnAmount',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 当前店铺归还账单的数量
|
||||
export function hangBillAllNoReturnAmount() {
|
||||
export function hangBillAllNoReturnAmount(query) {
|
||||
return request({
|
||||
url: '/business/hangBill/allNoReturnAmount',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
@ -8,3 +8,10 @@ export function refundApi(data) {
|
||||
data: data
|
||||
})
|
||||
}
|
||||
export function getOrderInfoApi(data) {
|
||||
return request({
|
||||
url: '/business/allOrderInfo/getOrderInfo',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
@ -370,7 +370,8 @@
|
||||
<div class="app-bottom">
|
||||
<el-card >
|
||||
<div class="bottom-xz">
|
||||
<div class="anniu" v-if="handoverList && handoverList.baseInfo && handoverList.baseInfo.handoverPrem == 'yqx'" @click="shift">交班</div>
|
||||
<!-- <div class="anniu" v-if="handoverList && handoverList.baseInfo && handoverList.baseInfo.handoverPrem == 'yqx'" @click="shift">交班</div>-->
|
||||
<div class="anniu" @click="shift">交班</div>
|
||||
<!-- <div class="anniu-lv">云打印</div> -->
|
||||
<div class="anniu-lv" @click="printLocally()">本地打印</div>
|
||||
<div ><el-link type="primary" @click="recording">交班记录</el-link></div>
|
||||
@ -501,7 +502,7 @@ import {removeUserId} from "@/utils/auth";
|
||||
})
|
||||
},
|
||||
// 交班
|
||||
shift() {
|
||||
async shift() {
|
||||
let msg = '交班并退出系统, 是否继续?'
|
||||
let flag = false
|
||||
if (this.handoverList && this.handoverList.baseInfo && this.handoverList.baseInfo.handoverOut == 'jbtc') {
|
||||
@ -529,7 +530,9 @@ import {removeUserId} from "@/utils/auth";
|
||||
location.href = '/';
|
||||
})
|
||||
}
|
||||
this.getHandover();
|
||||
})
|
||||
this.getHandover();
|
||||
//
|
||||
// this.$message({
|
||||
// type: 'success',
|
||||
|
@ -554,6 +554,21 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 立即结算-->
|
||||
<el-dialog
|
||||
title="扫码支付"
|
||||
:visible.sync="dialogVisiblejLoading"
|
||||
width="30%"
|
||||
:close-on-click-modal="false">
|
||||
<div>
|
||||
<el-result icon="info" title="支付状态未查询成功,请移至订单查看">
|
||||
<template slot="extra">
|
||||
<el-button type="primary" @click="handClose">关 闭</el-button>
|
||||
</template>
|
||||
</el-result>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 批量挂账归还-->
|
||||
<el-dialog title="批量挂账归还" :visible.sync="open3" append-to-body>
|
||||
<el-form ref="form3" :model="form3">
|
||||
@ -757,6 +772,7 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
open3:false,
|
||||
open4:false,
|
||||
dialogVisiblej:false,
|
||||
dialogVisiblejLoading: false,
|
||||
// 是否查询支付成功信息
|
||||
isQuery:true,
|
||||
// 是否是批量归还
|
||||
@ -784,7 +800,7 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
this.getUnitList();
|
||||
this.getPayList();
|
||||
this.getLists();
|
||||
this.getStatistic();
|
||||
// this.getStatistic();
|
||||
},
|
||||
directives: {
|
||||
// 注册一个局部的自定义指令 v-focus
|
||||
@ -802,17 +818,23 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
methods:{
|
||||
// 获取挂账统计信息
|
||||
getStatistic(){
|
||||
hangBillReturnTotal().then(res => {
|
||||
hangBillReturnTotal(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
|
||||
this.returnTotal = res.data
|
||||
})
|
||||
hangBillAllAmount().then(res => {
|
||||
this.allAmount = res.data
|
||||
hangBillAllAmount(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
|
||||
if (res.data) {
|
||||
this.allAmount = res.data
|
||||
}
|
||||
})
|
||||
hangBillAllReturnAmount().then(res => {
|
||||
this.returnAllAmount = res.data
|
||||
hangBillAllReturnAmount(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
|
||||
if (res.data) {
|
||||
this.returnAllAmount = res.data
|
||||
}
|
||||
})
|
||||
hangBillAllNoReturnAmount().then(res => {
|
||||
this.noReturnAllAmount = res.data
|
||||
hangBillAllNoReturnAmount(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
|
||||
if (res.data) {
|
||||
this.noReturnAllAmount = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
getPayMeth(list,val){
|
||||
@ -935,6 +957,7 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
this.repaidAmount = repaidAmount
|
||||
},
|
||||
handClose(){
|
||||
this.dialogVisiblejLoading = false
|
||||
this.isPay = true;
|
||||
this.isPaySuccess = false;
|
||||
this.dialogVisiblej = false;
|
||||
@ -996,15 +1019,18 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
response.data.forEach(item => {
|
||||
if (item.payStatus == "unpaid"){
|
||||
_this.isQuery = true;
|
||||
_this.dialogVisiblejLoading = true
|
||||
}
|
||||
if (item.payStatus == "paid"){
|
||||
_this.isPaySuccess = true;
|
||||
_this.isPay = false;
|
||||
_this.isQuery = false;
|
||||
_this.loading = false;
|
||||
clearInterval(timer);
|
||||
}
|
||||
if (item.payStatus == "payFail"){
|
||||
_this.isPaySuccess = false;
|
||||
_this.isPay = false;
|
||||
_this.isQuery = false;
|
||||
_this.loading = false;
|
||||
clearInterval(timer);
|
||||
@ -1015,15 +1041,15 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
let timer2 = setInterval(function () {
|
||||
if (_this.isBatch) {
|
||||
if (_this.isQuery || !_this.open3 || !_this.open4){
|
||||
_this.loading = false;
|
||||
_this.isPay = false;
|
||||
// _this.loading = false;
|
||||
// _this.isPay = false;
|
||||
clearInterval(timer);
|
||||
clearTimeout(timer3);
|
||||
}
|
||||
}else {
|
||||
if (_this.isQuery || !_this.open2) {
|
||||
_this.loading = false;
|
||||
_this.isPay = false;
|
||||
// _this.loading = false;
|
||||
// _this.isPay = false;
|
||||
clearInterval(timer);
|
||||
clearTimeout(timer3);
|
||||
}
|
||||
@ -1174,6 +1200,7 @@ import {listReturnRecord, returnRecordByOrderNo, returnRecordInfo} from "@/api/c
|
||||
this.hangBillList = response.data.records
|
||||
this.total = response.data.total;
|
||||
})
|
||||
this.getStatistic();
|
||||
},
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
|
@ -508,7 +508,22 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 会员登录-->
|
||||
<!-- 立即结算-->
|
||||
<el-dialog
|
||||
title="扫码支付"
|
||||
:visible.sync="dialogVisiblejLoading"
|
||||
width="30%"
|
||||
:close-on-click-modal="false">
|
||||
<div>
|
||||
<el-result icon="info" title="支付状态未查询成功,请移至订单查看">
|
||||
<template slot="extra">
|
||||
<el-button type="primary" @click="handClose">关 闭</el-button>
|
||||
</template>
|
||||
</el-result>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 会员登录-->
|
||||
<el-dialog
|
||||
title="会员信息"
|
||||
:visible.sync="dialogVisiblevip"
|
||||
@ -883,8 +898,11 @@
|
||||
oilGunList:[],
|
||||
// 支付方式列表
|
||||
payList:[],
|
||||
// 倒计时
|
||||
timestamp: 15,
|
||||
dialogVisible: false,
|
||||
dialogVisiblej: false,
|
||||
dialogVisiblejLoading: false,
|
||||
dialogVisiblevip:false,
|
||||
dialogVisibleamount:false,
|
||||
dialogVisibleMember:false,
|
||||
@ -2299,6 +2317,7 @@
|
||||
},
|
||||
// 重置油品订单
|
||||
resetting(){
|
||||
this.seekZero = 0;
|
||||
this.oilOrder = [];
|
||||
this.oilActualPay = 0;
|
||||
this.oilTotal = 0;
|
||||
@ -2339,7 +2358,6 @@
|
||||
|
||||
// 校验油罐内油是否足够
|
||||
getOilTank(this.form.tankId).then(res => {
|
||||
console.log(res)
|
||||
if (res.data.storedQuantity-this.form.liters<0){
|
||||
this.$modal.msgError("所加油的升数大于油罐内的升数,请重新选择加油升数")
|
||||
return;
|
||||
@ -2546,7 +2564,7 @@
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!this.authCode){
|
||||
if (!this.authCode && ((+this.oilActualPay) + (+this.goodsActualPay))>0){
|
||||
this.$modal.msgError("请先扫码");
|
||||
return;
|
||||
}
|
||||
@ -2654,6 +2672,7 @@
|
||||
_this.oilOrder = []
|
||||
_this.goodsOrder = []
|
||||
_this.amount = 0
|
||||
_this.seekZero = 0;
|
||||
};
|
||||
this.userNo = ""
|
||||
this.map = {
|
||||
@ -2724,6 +2743,7 @@
|
||||
if (response.data!=null){
|
||||
if (response.data.status == "unpaid"){
|
||||
_this.isQuery = true;
|
||||
_this.dialogVisiblejLoading = true
|
||||
}
|
||||
if (response.data.status == "paid"){
|
||||
_this.isPay = true;
|
||||
@ -2749,7 +2769,8 @@
|
||||
let timer2 = setInterval(function () {
|
||||
if (_this.isQuery || !_this.dialogVisiblej) {
|
||||
_this.loading = false;
|
||||
_this.isPay = true;
|
||||
// _this.isPay = true;
|
||||
// _this.countdown()
|
||||
clearInterval(timer);
|
||||
clearTimeout(timer3);
|
||||
|
||||
@ -2764,7 +2785,22 @@
|
||||
this.isPaySuccess = false;
|
||||
}, 10000)
|
||||
},
|
||||
|
||||
// 倒计时刷新
|
||||
countdown(){
|
||||
let _this = this
|
||||
let timer = setInterval(() => {
|
||||
// countdown减1
|
||||
_this.timestamp--;
|
||||
// 如果倒计时为0,清除定时器
|
||||
if(_this.timestamp === 0) {
|
||||
clearInterval(timer)
|
||||
_this.timestamp = 15
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
handClose(){
|
||||
this.dialogVisiblejLoading = false
|
||||
// this.resetting1()
|
||||
this.authCode = "";
|
||||
this.userNo = ""
|
||||
|
@ -110,8 +110,9 @@
|
||||
<el-table-column prop="payUser" label="付款用户"> </el-table-column>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
|
||||
<el-tag v-if="scope.row.status === 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.status === 'paid'">已支付</el-tag>
|
||||
<el-tag type="danger" v-else-if="scope.row.status === 'refund'">已退款</el-tag>
|
||||
<el-tag type="danger" v-else>支付失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -129,6 +130,7 @@
|
||||
@click="patchwork(scope.row)"
|
||||
type="primary" plain round>补打</el-button>
|
||||
<el-button style="width: 60px" size="mini"
|
||||
v-if = "scope.row.status !== 'refund'"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
type="danger" plain round>退款</el-button>
|
||||
</template>
|
||||
@ -356,23 +358,48 @@ import {refundApi} from "@/api/cashier/refund";
|
||||
},
|
||||
// 退款
|
||||
handleRefund(id){
|
||||
this.dialogRefund = true;
|
||||
cashierOrder(id).then( response => {
|
||||
this.cashierOrder = response.data
|
||||
})
|
||||
//退款确定
|
||||
this.$confirm('是否将该收银台下的订单全部退款, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.dialogRefund = true;
|
||||
cashierOrder(id).then( response => {
|
||||
this.cashierOrder = response.data
|
||||
if (response.data.status === "refund") {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '该订单已经退款'
|
||||
});
|
||||
this.dialogRefund = false;
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
refundConfirmed() {
|
||||
this.dialogRefund = false;
|
||||
// 退款确定
|
||||
// cashierOrder
|
||||
console.log("cashierOrder",this.cashierOrder)
|
||||
let map={
|
||||
orderNo: this.cashierOrder.orderNo,
|
||||
storeId: this.cashierOrder.storeId,
|
||||
type: "cashierOrder"
|
||||
refundRemark:this.radio1 +"-"+ this.refundRemark,
|
||||
type: "canRefund"
|
||||
}
|
||||
refundApi(map).then(res=>{
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '退款成功'
|
||||
});
|
||||
this.getList();
|
||||
this.getOrderStatistics();
|
||||
this.getStaffList();
|
||||
|
||||
})
|
||||
},
|
||||
|
@ -140,6 +140,7 @@
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
|
||||
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>
|
||||
<el-tag type="danger" v-else-if="scope.row.status === 'refund'">已退款</el-tag>
|
||||
<el-tag type="danger" v-else>支付失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -154,17 +155,14 @@
|
||||
<span>{{ parseTime(scope.row.payTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-button-->
|
||||
<!-- size="mini"-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-edit"-->
|
||||
<!-- >更多操作</el-button>-->
|
||||
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button style="width: 60px" size="mini"
|
||||
v-if = "scope.row.status !== 'refund'"
|
||||
@click="handleRefund(scope.row.id)"
|
||||
type="danger" plain round>退款</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
@ -225,10 +223,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getOrderGoods, listOrder,orderStatisticsApi} from "@/api/cashier/goodsorder";
|
||||
import {getGoodsOrder, getOrderGoods, listOrder, orderStatisticsApi} from "@/api/cashier/goodsorder";
|
||||
import {queryStaffs} from "@/api/cashier/staff";
|
||||
import {getDicts} from "@/api/dict/data";
|
||||
import { exportExcelGoodsOrderApi } from "@/api/order/exportExcel";
|
||||
import {cashierOrder} from "@/api/cashier/cashierorder";
|
||||
import {refundApi, getOrderInfoApi} from "@/api/cashier/refund";
|
||||
|
||||
export default {
|
||||
name: "order_Cashier",
|
||||
@ -262,6 +262,7 @@ export default {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
orderGoods:'',
|
||||
// 支付列表
|
||||
payList:[],
|
||||
dialogRefund: false,
|
||||
@ -299,6 +300,70 @@ export default {
|
||||
this.orderStatistics = res.data;
|
||||
})
|
||||
},
|
||||
|
||||
// 退款
|
||||
async handleRefund(id){
|
||||
|
||||
await getGoodsOrder({"id":id}).then( response => {
|
||||
this.goods = response.data
|
||||
if (response.data.status === "refund") {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '该订单已经退款'
|
||||
});
|
||||
this.dialogRefund = false;
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
let title = '是否将该收银台下的订单全部退款'
|
||||
await getOrderInfoApi({orderNo: this.goods.orderNo,
|
||||
type: 'goods'}).then(res=>{
|
||||
if (res.code === 200) {
|
||||
if (res.data.type === "1") {
|
||||
title = '该订单下有其它商品订单,是否一并退款'
|
||||
this.goods.payAmount = res.data.money
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
this.$confirm(title+', 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.dialogRefund = true;
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消退款'
|
||||
});
|
||||
this.dialogRefund = false;
|
||||
});
|
||||
|
||||
},
|
||||
// 退款接口
|
||||
refundConfirmed() {
|
||||
this.dialogRefund = false;
|
||||
console.log("cashierOrder",this.goods)
|
||||
let map={
|
||||
orderNo: this.goods.orderNo,
|
||||
storeId: this.goods.storeId,
|
||||
refundRemark:this.radio1 +"-"+ this.refundRemark,
|
||||
type: "canRefund"
|
||||
}
|
||||
refundApi(map).then(res=>{
|
||||
if (res.code === 200){
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '退款成功'
|
||||
});
|
||||
this.created()
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 根据员工id查询员工信息
|
||||
queryStaf(list,id){
|
||||
let name = "";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user