no message

This commit is contained in:
DESKTOP-369JRHT\12997 2024-07-21 17:03:31 +08:00
parent 4de32d74bd
commit c6fa5a5291
37 changed files with 1030 additions and 289 deletions

View File

@ -0,0 +1,67 @@
import request from '@/utils/request'
// 会员充值订单
export function getFenXiUserbalanceListApi(query) {
return request({
url: '/business/userManager/userbalance/listByZt',
method: 'get',
params: query
})
}
export function getFenXiUserbalanceDataApi(query) {
return request({
url: '/business/userManager/userbalance/getUser',
method: 'get',
params: query
})
}
// 油品分析
export function getFenXiOilOrderListApi(query) {
return request({
url: '/business/oilOrder/selectOilOrderFenXiListByZtDz',
method: 'get',
params: query
})
}
export function getFenXiOilOrderDataApi(query) {
return request({
url: '/business/oilOrder/selectOilOrderFenXiDataByZtDz',
method: 'get',
params: query
})
}
// 商品订单
export function getFenXiStoreListApi(query) {
return request({
url: '/business/order/selectOrderFenxiListByZtDz',
method: 'get',
params: query
})
}
export function getFenXiStoreDataApi(query) {
return request({
url: '/business/order/selectOrderFenxiDataByZtDz',
method: 'get',
params: query
})
}
// 积分商城
export function getFenXiIntegralListApi(query) {
return request({
url: '/business/integral/integralOrders/queryByPageFenxiByZtDz',
method: 'get',
params: query
})
}
export function getFenXiIntegralDataApi(query) {
return request({
url: '/business/integral/integralOrders/getIntFenxiDataByZtDz',
method: 'get',
params: query
})
}

View File

@ -74,58 +74,44 @@
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">累计交易金额万元</div>
<div class="title_">{{orderStatistics.payAmount}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">累计交易笔数</div>
<div class="title_">{{orderStatistics.count}}</div>
</div>
<div class="k_" id="k_3">
<div class="size_">累计兑换商品数量</div>
<div class="title_">{{orderStatistics.goodsNum}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">累计消耗积分</div>
<div class="title_">{{orderStatistics.cvg}}</div>
</div>
</div>
</el-card>
<el-card class="box-card">
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" 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 type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="商品名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="消耗积分" > </el-table-column>
<el-table-column prop="payTime" align="center" label="数量" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
<el-table-column prop="id" label="序号" width="50" align="center"></el-table-column>
<el-table-column prop="storeName" label="机构名称" width="150" align="center"></el-table-column>
<el-table-column prop="paidInfo" label="累计交易金额 (万元)" width="150" align="center"></el-table-column>
<el-table-column prop="count" label="累计交易笔数" width="150" align="center"></el-table-column>
<el-table-column prop="exchangeQuantity" label="兑换商品数量" width="150" align="center"></el-table-column>
<el-table-column prop="integral" label="累计消费积分" width="150" align="center"></el-table-column>
<el-table-column label="热门商品信息" align="center">
<el-table-column prop="hotProductName" label="商品名称" width="150" align="center"></el-table-column>
<el-table-column prop="exchangeQuantity" label="兑换数量 (件)" width="150" align="center"></el-table-column>
<el-table-column prop="salesAmount" label="销售金额 (元)" width="150" align="center"></el-table-column>
<el-table-column prop="consumptionPoints" label="消费积分" width="150" align="center"></el-table-column>
</el-table-column>
<el-table-column prop="statDate" label="统计日期" width="200" align="center"></el-table-column>
</el-table>
</div>
<pagination
@ -149,6 +135,7 @@ import {
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
import {getFenXiIntegralDataApi, getFenXiIntegralListApi} from "@/api/financialStatement/yunyingfenxi";
export default {
name: "yunyingfenxi-int",
@ -231,14 +218,13 @@ import {
})
},
//
getOrderStatistics() {
let dateRange = []
if (this.beginTime && this.endTime) {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
getFenXiIntegralDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
@ -251,7 +237,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
getFenXiIntegralListApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
@ -295,6 +281,65 @@ import {
.table-box{
width: 100%;
}
.wrap-box{
width: 100%;
display: flex;
align-items: center;
margin-bottom: 15px;
}
.k_{
width: 200px;
height: 80px;
margin-right: 20px;
box-sizing: border-box;
padding: 15px 10px;
color: #333333;
}
.size_{
font-weight: 400;
font-size: 14px;
color: #333333;
margin-bottom: 10px;
}
.title_{
font-weight: 600;
font-size: 24px;
color: #333333;
}
#k_1{
background: url("../imgs/k1.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_2{
background: url("../imgs/k2.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_3{
background: url("../imgs/k3.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_4{
background: url("../imgs/k4.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_5{
background: url("../imgs/k5.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_6{
background: url("../imgs/k6.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_7{
background: url("../imgs/k7.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
</style>

View File

@ -70,52 +70,70 @@
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">累计交易金额万元</div>
<div class="title_">{{orderStatistics.amount}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">累计交易升数</div>
<div class="title_">{{orderStatistics.num}}</div>
</div>
<div class="k_" id="k_3">
<div class="size_">92#汽油交易金额万元</div>
<div class="title_">{{orderStatistics.amount92}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">95#汽油交易金额万元</div>
<div class="title_">{{orderStatistics.amount95}}</div>
</div>
<div class="k_" id="k_5">
<div class="size_">98#汽油交易金额万元</div>
<div class="title_">{{orderStatistics.amount98}}</div>
</div>
<div class="k_" id="k_5">
<div class="size_">0#柴油交易金额万元</div>
<div class="title_">{{orderStatistics.amount0}}</div>
</div>
</div>
</el-card>
<el-card class="box-card">
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
<el-table-column align="center" prop="storeName" label="机构名称"></el-table-column>
<el-table-column align="center" prop="payAmount" label="累计交易金额(万元)"></el-table-column>
<el-table-column align="center" prop="sum" label="累计交易笔数"></el-table-column>
<el-table-column align="center" prop="oilNum" label="累计交易升数"></el-table-column>
<el-table-column align="center" label="92#汽油">
<el-table-column align="center" prop="amount92" label="交易金额(万元)"></el-table-column>
<el-table-column align="center" prop="count92" label="交易笔数"></el-table-column>
<el-table-column align="center" prop="num92" label="交易升数"></el-table-column>
</el-table-column>
<el-table-column align="center" label="95#汽油">
<el-table-column align="center" prop="amount95" label="交易金额(万元)"></el-table-column>
<el-table-column align="center" prop="count95" label="交易笔数"></el-table-column>
<el-table-column prop="num95" label="交易升数"></el-table-column>
</el-table-column>
<el-table-column align="center" label="98#汽油">
<el-table-column align="center" prop="amount98" label="交易金额(万元)"></el-table-column>
<el-table-column align="center" prop="count98" label="交易笔数" ></el-table-column>
<el-table-column align="center" prop="num98" label="交易升数" ></el-table-column>
</el-table-column>
<el-table-column align="center" label="0#柴油">
<el-table-column align="center" prop="amount0" label="交易金额(万元)" ></el-table-column>
<el-table-column align="center" prop="count0" label="交易笔数" ></el-table-column>
<el-table-column align="center" prop="num0" label="交易升数" ></el-table-column>
</el-table-column>
<el-table-column align="center" prop="date" label="统计日期" >
<template>
<!-- {{this.beginTime}} -{{this.endTime}}-->
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" 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 type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="油号" > </el-table-column>
<el-table-column prop="payTime" align="center" label="油枪" > </el-table-column>
<el-table-column prop="payTime" align="center" label="升数" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
</el-table>
</div>
<pagination
@ -139,6 +157,7 @@ import {
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
import {getFenXiOilOrderDataApi, getFenXiOilOrderListApi} from "@/api/financialStatement/yunyingfenxi";
export default {
name: "yunyingfenxi-oil",
@ -175,16 +194,12 @@ import {
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
amount:'0',
num:'0',
amount92:'0',
amount95:'0',
amount98:'0',
amount0:'0',
},
total:0,
}
@ -228,7 +243,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
getFenXiOilOrderDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
@ -241,7 +256,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
getFenXiOilOrderListApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
@ -285,5 +300,65 @@ import {
.table-box{
width: 100%;
}
.wrap-box{
width: 100%;
display: flex;
align-items: center;
margin-bottom: 15px;
}
.k_{
width: 200px;
height: 80px;
margin-right: 20px;
box-sizing: border-box;
padding: 15px 10px;
color: #333333;
}
.size_{
font-weight: 400;
font-size: 14px;
color: #333333;
margin-bottom: 10px;
}
.title_{
font-weight: 600;
font-size: 24px;
color: #333333;
}
#k_1{
background: url("../imgs/k1.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_2{
background: url("../imgs/k2.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_3{
background: url("../imgs/k3.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_4{
background: url("../imgs/k4.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_5{
background: url("../imgs/k5.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_6{
background: url("../imgs/k6.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_7{
background: url("../imgs/k7.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
</style>

View File

@ -74,58 +74,56 @@
<el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- </el-card>-->
<!-- <el-card class="box-card">-->
<div class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">累计交易金额万元</div>
<div class="title_">{{orderStatistics.payAmount}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">累计交易笔数</div>
<div class="title_">{{orderStatistics.count}}</div>
</div>
<div class="k_" id="k_3">
<div class="size_">累计销售商品数量</div>
<div class="title_">{{orderStatistics.goodsNum}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">热销品类数量</div>
<div class="title_">{{orderStatistics.cvg}}</div>
</div>
</div>
</el-card>
<el-card class="box-card">
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
<el-table-column prop="id" label="序号" width="50" align="center"></el-table-column>
<el-table-column prop="storeName" label="机构名称" width="150" align="center"></el-table-column>
<el-table-column prop="payAmounts" label="累计交易金额 (万元)" align="center"></el-table-column>
<el-table-column prop="counts" label="累计交易笔数" align="center"></el-table-column>
<el-table-column prop="goodsNums" label="累计销售商品数量" align="center"></el-table-column>
<el-table-column label="商品信息" align="center">
<el-table-column prop="cvgNum" label="品类数量" width="100" align="center"></el-table-column>
<el-table-column prop="goodsNum" label="商品数量" width="100" align="center"></el-table-column>
<el-table-column prop="payAmounts" label="累计交易金额 (万元)" width="150" align="center"></el-table-column>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
<el-table-column label="热销品类信息" align="center">
<el-table-column prop="cvgName" label="品类名称" width="100" align="center"></el-table-column>
<el-table-column prop="cvgNum" label="销售数量 (件)" width="100" align="center"></el-table-column>
<el-table-column prop="cvgAmount" label="销售金额 (元)" width="150" align="center"></el-table-column>
</el-table-column>
<el-table-column prop="status" align="center" 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 type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="商品品类" > </el-table-column>
<el-table-column prop="payTime" align="center" label="商品名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="数量" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="payTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button style="width: 60px" size="mini"
@click="getOrdersInfo(scope.row)"
type="success" plain round>详情</el-button>
</template>
<el-table-column label="热销商品信息" align="center">
<el-table-column prop="goodsName" label="商品名称" width="100" align="center"></el-table-column>
<el-table-column prop="goodsNum" label="销售数量" width="100" align="center"></el-table-column>
<el-table-column prop="goodsAmount" label="销售金额 (元)" width="150" align="center"></el-table-column>
<!-- <el-table-column prop="supplierName" label="供应商名称" width="100" align="center"></el-table-column>-->
</el-table-column>
<el-table-column prop="statDate" label="统计日期" width="200" align="center"></el-table-column>
</el-table>
</div>
<pagination
@ -149,6 +147,7 @@ import {
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
import {getFenXiStoreDataApi, getFenXiStoreListApi} from "@/api/financialStatement/yunyingfenxi";
export default {
name: "yunyingfenxi-store",
@ -185,16 +184,10 @@ import {
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
count:'0',
cvg:'0',
goodsNum:'0',
payAmount:'0',
},
total:0,
}
@ -238,7 +231,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
getFenXiStoreDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
@ -251,7 +244,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
getFenXiStoreListApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false
@ -295,5 +288,65 @@ import {
.table-box{
width: 100%;
}
.wrap-box{
width: 100%;
display: flex;
align-items: center;
margin-bottom: 15px;
}
.k_{
width: 200px;
height: 80px;
margin-right: 20px;
box-sizing: border-box;
padding: 15px 10px;
color: #333333;
}
.size_{
font-weight: 400;
font-size: 14px;
color: #333333;
margin-bottom: 10px;
}
.title_{
font-weight: 600;
font-size: 24px;
color: #333333;
}
#k_1{
background: url("../imgs/k1.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_2{
background: url("../imgs/k2.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_3{
background: url("../imgs/k3.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_4{
background: url("../imgs/k4.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_5{
background: url("../imgs/k5.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_6{
background: url("../imgs/k6.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
#k_7{
background: url("../imgs/k7.png");
background-size: cover; /* 背景图片铺满盒子 */
background-repeat: no-repeat; /* 禁止背景图片重复 */
}
</style>

View File

@ -13,142 +13,67 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width: 180px">
<el-input placeholder="会员手机号" v-model="queryParams.orderNo"></el-input>
</el-form-item>
<el-form-item label="" prop="payChannel" style="width: 180px">
<el-select
v-model="queryParams.payChannel"
clearable
placeholder="订单类型"
>
<el-option label="小程序" value="applet"/>
<el-option label="收银台" value="cashier"/>
<el-option label="POS端" value="POS"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="payType" style="width: 180px">
<el-select
v-model="queryParams.payType"
clearable
placeholder="支付方式"
>
<el-option label="现金" value="CASH"/>
<el-option label="微信" value="WECHAT"/>
<el-option label="支付宝" value="ALIPAY"/>
<el-option label="余额" value="balance"/>
</el-select>
</el-form-item>
<el-form-item label="" prop="status" style="width: 180px">
<el-select
v-model="queryParams.status"
clearable
placeholder="支付状态"
>
<el-option label="已支付" value="paid"/>
<el-option label="未支付" value="unpaid"/>
<el-option label="已退款" value="refund"/>
</el-select>
</el-form-item>
<el-form-item label="">
<el-date-picker
v-model="beginTime"
style="width: 140px"
type="date"
placeholder="交易开始日期">
</el-date-picker>
<el-date-picker
v-model="endTime"
style="width: 140px"
type="date"
placeholder="交易结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="" style="float: right;">
<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-item class="" style="float: right;">-->
<!-- <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 class="wrap-box">
<div class="k_" id="k_1">
<div class="size_">会员总数</div>
<div class="title_">335</div>
<div class="title_">{{orderStatistics.sumnum}}</div>
</div>
<div class="k_" id="k_2">
<div class="size_">会员总数</div>
<div class="title_">335</div>
<div class="size_">累计充值金额万元</div>
<div class="title_">{{orderStatistics.tongjMoney}}</div>
</div>
<div class="k_" id="k_3">
<div class="size_">会员总</div>
<div class="title_">335</div>
<div class="size_">会员总消费万元</div>
<div class="title_">{{orderStatistics.tongjXfMoney}}</div>
</div>
<div class="k_" id="k_4">
<div class="size_">会员总</div>
<div class="title_">335</div>
<div class="size_">会员总余额万元</div>
<div class="title_">--</div>
</div>
<div class="k_" id="k_5">
<div class="size_">会员总数</div>
<div class="title_">335</div>
<div class="size_">累计囤油卡余额万元</div>
<div class="title_">--</div>
</div>
<div class="k_" id="k_6">
<div class="size_">会员总数</div>
<div class="title_">335</div>
<div class="size_">累计礼品卡余额</div>
<div class="title_">--</div>
</div>
<div class="k_" id="k_7">
<div class="size_">会员总数</div>
<div class="title_">335</div>
<div class="size_">累计储值卡余额 </div>
<div class="title_">{{orderStatistics.balanceSum}}</div>
</div>
</div>
</el-card>
<el-card class="box-card">
<div class="table-box">
<el-table
:data="orderList"
style="width: 100%">
<el-table-column type="index" width="50" align="center" label="序号"/>
<el-table-column prop="payTime" align="center" label="机构名称"> </el-table-column>
<el-table-column prop="orderNo" align="center" label="订单号" > </el-table-column>
<el-table-column prop="goodsMoney" align="center" label="订单金额(万元)"></el-table-column>
<el-table-column prop="payChannel" align="center" label="订单类型">
<template slot-scope="scope">
<span v-if="scope.row.payChannel=='cashier'">收银台</span>
<span v-else-if="scope.row.payChannel=='POS'">POS机</span>
<span v-else-if="scope.row.payChannel=='PC'">平台</span>
<span v-else-if="scope.row.payChannel=='applet'">小程序</span>
<span v-else>其他</span>
</template>
</el-table-column>
<el-table-column prop="payType" align="center" label="支付方式">
<template slot-scope="scope">
<span v-if="scope.row.payType=='CASH'">现金</span>
<span v-else-if="scope.row.payType=='WECHAT'">微信</span>
<span v-else-if="scope.row.payType=='ALIPAY'">支付宝</span>
<span v-else="">余额</span>
</template>
</el-table-column>
<el-table-column prop="status" align="center" 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 type="danger" v-else-if="scope.row.status == 'refund'">已退款</el-tag>
<el-tag type="danger" v-else>支付失败</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="消费信息">
<el-table-column prop="payTime" align="center" label="会员名称" > </el-table-column>
<el-table-column prop="payTime" align="center" label="会员手机号" > </el-table-column>
<el-table-column prop="payTime" align="center" label="卡类型" > </el-table-column>
</el-table-column>
<el-table-column prop="payTime" align="center" label="支付通道">
</el-table-column>
<el-table-column prop="mchntCd" align="center" label="商户号编码" width="150"> </el-table-column>
<el-table-column prop="createTime" align="center" label="订单创建时间" > </el-table-column>
<el-table-column prop="payTime" align="center" label="订单完成时间" > </el-table-column>
<el-table-column prop="userName" align="center" label="会员名称"> </el-table-column>
<el-table-column prop="mobile" align="center" label="会员手机号码" > </el-table-column>
<el-table-column prop="physicalCard" align="center" label="会员卡号"></el-table-column>
<el-table-column prop="storeName" align="center" label="所属机构"> </el-table-column>
<el-table-column prop="gradeName" align="center" label="会员等级" > </el-table-column>
<el-table-column prop="consumeNum" align="center" label="累计充值金额(元)" > </el-table-column>
<el-table-column prop="amount" align="center" label="累计充值次数" > </el-table-column>
<el-table-column prop="leijiMoney" align="center" label="累计消费金额(元)" > </el-table-column>
<el-table-column prop="leijiNum" align="center" label="累计消费笔数" > </el-table-column>
<!-- <el-table-column prop="createTime" align="center" label="囤油卡余额" > </el-table-column>-->
<!-- <el-table-column prop="createTime" align="center" label="电子礼品卡余额" > </el-table-column>-->
<el-table-column prop="cardBalance" align="center" label="储值卡余额" > </el-table-column>
<!-- <el-table-column prop="createTime" align="center" label="累计余额" > </el-table-column>-->
<el-table-column prop="leijiMoneyRef" align="center" label="累计退款金额" > </el-table-column>
<el-table-column prop="leijiNum" align="center" label="累计退款笔数" > </el-table-column>
</el-table>
</div>
@ -172,6 +97,7 @@ import {
getTissueByDataApi,
getTradingPageApi
} from "@/api/allOrder";
import {getFenXiUserbalanceDataApi, getFenXiUserbalanceListApi} from "@/api/financialStatement/yunyingfenxi";
export default {
name: "yunyingfenxi-vip",
@ -208,16 +134,10 @@ import {
deptId:"",
},
orderStatistics:{
CASH:"0",
WECHAT:"0",
ALIPAY:"0",
balance:"0",
CASHCount:"0",
WECHATCount:"0",
ALIPAYCount:"0",
balanceCount:"0",
refBalance:"0",
refBalanceCount:"0",
sumnum:'', //
balanceSum:'', //
tongjMoney:'', //
tongjXfMoney:'', //
},
total:0,
}
@ -261,7 +181,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTissueByDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
getFenXiUserbalanceDataApi(this.addDateRange(this.queryParams, dateRange)).then(res=>{
this.orderStatistics = res.data
console.log("res.data1111",res.data)
})
@ -274,7 +194,7 @@ import {
dateRange.push(this.beginTime.toLocaleDateString())
dateRange.push(this.endTime.toLocaleDateString())
}
getTradingPageApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
getFenXiUserbalanceListApi(this.addDateRange(this.queryParams,dateRange)).then( response => {
this.orderList = response.data.records;
this.total = response.data.total;
this.isSysDate = false

View File

@ -47,11 +47,25 @@ public class IntegralOrdersController extends BaseController {
IPage<IntegralOrdersVO> integralOrdersIPage = this.integralOrdersService.queryByPage(pages, integralOrders);
return getSuccessResult(integralOrdersIPage);
}
@GetMapping("queryByPageByZtDz")
public ResponseObject queryByPageByZtDz(@RequestParam(value = "page",defaultValue = "1") Integer page,
@GetMapping("queryByPageFenxiByZtDz")
public ResponseObject queryByPageFenxiByZtDz(@RequestParam(value = "page",defaultValue = "1") Integer page,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("integralOrders") IntegralOrdersDTO integralOrders) {
Page pages = new Page(page, pageSize);
IPage<IntegralOrdersVO> integralOrdersIPage = this.integralOrdersService.queryByPageFenxiByZtDz(pages, integralOrders);
return getSuccessResult(integralOrdersIPage);
}
@GetMapping("/getIntFenxiDataByZtDz")
public ResponseObject getIntFenxiDataByZtDz( @Param("integralOrders") IntegralOrdersDTO integralOrders) {
return getSuccessResult(this.integralOrdersService.getIntFenxiDataByZtDz(integralOrders));
}
@GetMapping("queryByPageByZtDz")
public ResponseObject queryByPageByZtDz(@RequestParam(value = "page",defaultValue = "1") Integer page,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
@Param("integralOrders") IntegralOrdersDTO integralOrders) {
Page pages = new Page(page, pageSize);
IPage<IntegralOrdersVO> integralOrdersIPage = this.integralOrdersService.queryByPageByZtDz(pages, integralOrders);
return getSuccessResult(integralOrdersIPage);
}

View File

@ -44,6 +44,9 @@ public interface IntegralOrdersMapper {
IPage<IntegralOrdersVO> queryByPageUni(@Param("page") Page page, @Param("integralOrders") IntegralOrdersDTO integralOrders);
IPage<IntegralOrdersVO> queryByPageFenxiByZtDz(@Param("page") Page page, @Param("integralOrders") IntegralOrdersDTO integralOrders);
IntegralOrdersVO getInfoByStoreId(@Param("integralOrders") IntegralOrdersDTO integralOrders);
Map<String, String> getIntFenxiDataByZtDz(IntegralOrdersDTO integralOrders);
/**
* 统计总行数

View File

@ -628,6 +628,41 @@
and io.create_time &gt;= #{time}
</if>
</select>
<select id="queryByPageFenxiByZtDz" resultType="com.fuint.business.integral.vo.IntegralOrdersVO">
select
store_id storeId,
sum(paid_info) paidInfo,
count(*) count,
sum(exchange_quantity) exchangeQuantity,
sum(integral) integral
from integral_orders
group by
store_id
</select>
<select id="getInfoByStoreId" resultType="com.fuint.business.integral.vo.IntegralOrdersVO">
select
ig.gift_name giftName,
sum(io.exchange_quantity) exchangeQuantityBy,
sum(io.paid_info) paidInfoBy,
sum(io.integral) integralBy
from integral_orders io
left join integral_gift ig on io.gift_id = ig.id
where
io.store_id = #{integralOrders.storeId}
group by io.gift_id
limit 1
</select>
<select id="getIntFenxiDataByZtDz" resultType="java.util.Map">
select
sum(paid_info),
count(*),
sum(exchange_quantity),
sum(integral)
from integral_orders
</select>
</mapper>

View File

@ -39,6 +39,8 @@ public interface IntegralOrdersService {
*/
IPage<IntegralOrdersVO> queryByPage(@Param("page") Page page, @Param("integralGift") IntegralOrdersDTO integralOrders);
IPage<IntegralOrdersVO> queryByPageByZtDz(@Param("page") Page page, @Param("integralGift") IntegralOrdersDTO integralOrders);
IPage<IntegralOrdersVO> queryByPageFenxiByZtDz(@Param("page") Page page, @Param("integralGift") IntegralOrdersDTO integralOrders);
Map<String, String> getIntFenxiDataByZtDz(IntegralOrdersDTO integralOrders);
IPage<IntegralOrdersVO> queryByPageUni(@Param("page") Page page, @Param("integralGift") IntegralOrdersDTO integralOrders);

View File

@ -133,6 +133,31 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService {
return integralOrdersVOIPage;
}
@Override
public IPage<IntegralOrdersVO> queryByPageFenxiByZtDz(Page page, IntegralOrdersDTO integralOrders) {
IPage<IntegralOrdersVO> integralOrdersVOIPage = integralOrdersDao.queryByPageFenxiByZtDz(page, integralOrders);
for (IntegralOrdersVO record : integralOrdersVOIPage.getRecords()) {
MtStore mtStore = mtStoreMapper.selectById(record.getStoreId());
IntegralOrdersVO infoByStoreId = integralOrdersDao.getInfoByStoreId(integralOrders);
if (ObjectUtil.isNotEmpty(
infoByStoreId
)) {
record.setGiftName(infoByStoreId.getGiftName());
record.setExchangeQuantityBy(infoByStoreId.getExchangeQuantityBy());
record.setPaidInfoBy(infoByStoreId.getPaidInfoBy());
record.setIntegralBy(infoByStoreId.getIntegralBy());
}
}
return integralOrdersVOIPage;
}
@Override
public Map<String, String> getIntFenxiDataByZtDz(IntegralOrdersDTO integralOrders) {
return integralOrdersDao.getIntFenxiDataByZtDz(integralOrders);
}
@Override
public IPage<IntegralOrdersVO> queryByPageUni(@Param("page") Page page, @Param("integralOrders") IntegralOrdersDTO integralOrders) {

View File

@ -19,4 +19,13 @@ public class IntegralOrdersVO extends IntegralOrders {
private String addrMobile;
private String address;
private String storeName;
// private String paidInfo;
private String count;
// private String exchangeQuantity;
private String exchangeQuantityBy;
private String paidInfoBy;
private String integralBy;
}

View File

@ -9,11 +9,18 @@ import java.io.Serializable;
public class OrderGoodsVO extends OrderGoods implements Serializable {
//商品名称
private String goodsName;
private String cvgName;
//商品售出数量
private Integer goodsNumber;
private Integer cvgNumber;
//今天的销量
private Integer todayCount;
//昨天的销量
private Integer yesTodayCount;
private double expent;
private String cvsNum;
private String goodsNum;
private Double goodsAmount;
private Double cvsAmount;
}

View File

@ -7,6 +7,7 @@ import com.fuint.business.integral.entity.IntegralDetail;
import com.fuint.business.marketingActivity.cardValue.dto.CardValueRecordDTO;
import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord;
import com.fuint.business.marketingActivity.cardValue.vo.Excel.CardValueRecordExcel;
import com.fuint.business.userManager.vo.UserBalanceVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -41,5 +42,7 @@ public interface CardValueRecordMapper extends BaseMapper<CardValueRecord> {
* @return
*/
IPage<CardValueRecord> selectCardValueRecordList(Page page, @Param("cardValueRecord") CardValueRecord cardValueRecord);
Map<String, Object> getAmountAndConsume(UserBalanceVo record);
}

View File

@ -306,6 +306,16 @@
</where>
order by create_time desc
</select>
<select id="getAmountAndConsume" resultType="java.util.Map">
select
count(*) as consumeNum,
sum(amount) as amount
from card_value_record
</select>
<!-- where store_id = #{storeId} and mt_user_id = #{userId}-->
<!-- group by chain_store_id
-->
</mapper>

View File

@ -48,6 +48,19 @@ public class LJOrderController extends BaseController {
IPage<LJOrder> list = orderService.selectOrderListByZtDz(page,order);
return getSuccessResult(list);
}
@GetMapping("/selectOrderFenxiListByZtDz")
public ResponseObject selectOrderFenxiListByZtDz(LJOrderVo order,
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
Page page =new Page(pageNo,pageSize);
IPage<LJOrderVo> list = orderService.selectOrderFenxiListByZtDz(page,order);
return getSuccessResult(list);
}
@GetMapping("/selectOrderFenxiDataByZtDz")
public ResponseObject selectOrderFenxiDataByZtDz(LJOrderVo order){
return getSuccessResult(orderService.selectOrderFenxiDataByZtDz(order));
}
/**
*导出订单
@ -107,5 +120,6 @@ public class LJOrderController extends BaseController {
@GetMapping("/orderStatistics")
public ResponseObject orderStatistics(LJOrder order){
return getSuccessResult(orderService.orderStatistics(order));
}
} // 订单统计
}

View File

@ -50,8 +50,19 @@ public class OilOrderController extends BaseController {
IPage<OilOrder> list = orderService.selectOilOrderListByZtDz(page,order);
return getSuccessResult(list);
}
@GetMapping("/selectOilOrderFenXiListByZtDz")
public ResponseObject selectOilOrderFenXiListByZtDz(OilOrderVo order,
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
Page page =new Page(pageNo,pageSize);
IPage<OilOrderVo> list = orderService.selectOilOrderFenXiListByZtDz(page,order);
return getSuccessResult(list);
}
@GetMapping("/selectOilOrderFenXiDataByZtDz")
public ResponseObject selectOilOrderFenXiDataByZtDz(OilOrderVo order){
return getSuccessResult(orderService.selectOilOrderFenXiDataByZtDz(order));
}
/**
*导出订单
*@paramresponse
@ -104,6 +115,8 @@ public class OilOrderController extends BaseController {
return getSuccessResult(orderService.selectOilOrderById(id));
}
/**
* 批量添加订单信息 并支付
* @param map

View File

@ -110,5 +110,10 @@ public class LJOrder extends BaseEntity implements Serializable {
private Long deptId;
@TableField(exist = false)
private List<Long> storeIds;
private String count;
}

View File

@ -11,10 +11,12 @@ import com.fuint.business.order.entity.HandoverRecord;
import com.fuint.business.order.vo.AllOrderInfoVo;
import com.fuint.business.order.vo.CardBalanceChangeVo;
import com.fuint.business.store.entity.MtStore;
import com.fuint.business.userManager.vo.UserBalanceVo;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
public interface AllOrderInfoMapper extends BaseMapper<AllOrderInfo> {
@ -71,4 +73,7 @@ public interface AllOrderInfoMapper extends BaseMapper<AllOrderInfo> {
Integer selectTotal(@Param("allOrderInfo") AllOrderInfo allOrderInfo);
Double selectAllAmount(@Param("allOrderInfo") AllOrderInfo allOrderInfo);
Map<String, Object> getLeiJiInfo(UserBalanceVo record);
Map<String, Object> getShuJuVipInfo(UserBalanceVo record);
}

View File

@ -38,4 +38,9 @@ public interface LJOrderMapper extends BaseMapper<LJOrder> {
LJOrder getStatisticsByTime(@Param("time") Date time,@Param("goodsId") Integer goodsId,@Param("payType") String payType);
IPage<LJOrderVo> selectOrderFenxiListByZtDz(Page page, LJOrderVo order);
Map<String,Object> selectOrderFenxiDataByZtDz(LJOrderVo order);
Map<String,Object> selectOrderFenxiDataByZtDz2(LJOrderVo order);
}

View File

@ -30,7 +30,10 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
*/
public IPage<OilOrder> selectOilOrderList(Page page, @Param("order") OilOrder order);
public IPage<OilOrder> selectOilOrderListByZtDz(Page page, @Param("order") OilOrder order);
public IPage<OilOrder> selectOilOrderListByZtDz(Page page, @Param("order") OilOrder order);
public IPage<OilOrderVo> selectOilOrderFenXiListByZtDz(Page page, @Param("order") OilOrderVo order);
Map<String, String> selectOilOrderFenXiDataByZtDz(@Param("order") OilOrderVo order);
List<OilOrderExcel> selectOilOrderListExcel(@Param("order") OilOrder order);

View File

@ -3,6 +3,7 @@ package com.fuint.business.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fuint.business.largeSscreen.vo.OrderGoodsVO;
import com.fuint.business.order.entity.OrderGoods;
import com.fuint.business.order.vo.LJOrderVo;
import com.fuint.business.order.vo.OrderGoodsVo;
import org.apache.ibatis.annotations.Param;
@ -28,4 +29,12 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
* @return
*/
List<OrderGoodsVO> selectGoodsSalesRankYestoday(int i);
OrderGoodsVO selectInfoByStoreId(LJOrderVo record);
OrderGoodsVO selectInfoByStoreId1(LJOrderVo record);
OrderGoodsVO selectInfoByStoreId2(LJOrderVo record);
// 热销品类
OrderGoodsVO selectInfoByStoreIdType(LJOrderVo record);
// 热销商品
OrderGoodsVO selectInfoByStoreIdGoods(LJOrderVo record);
}

View File

@ -465,6 +465,28 @@
order by create_time ASC limit 1
</select>
<select id="getLeiJiInfo" resultType="java.util.Map">
SELECT
SUM(CASE WHEN type = 3 THEN pay_money ELSE 0 END) AS leijiMoney, -- 累计消费金额
COUNT(CASE WHEN type = 3 THEN 0 END) AS leijiNum,
SUM(CASE WHEN type = 3 and status = 'refund' THEN ref_money ELSE 0 END) AS leijiMoneyRef, -- 累计退款金额
COUNT(CASE WHEN type = 3 and status = 'refund' THEN 0 END) AS leijiNum
from all_order_info
</select>
<!-- group by user_id-->
<select id="getShuJuVipInfo" resultType="java.util.Map">
SELECT
SUM(CASE WHEN content = "储值卡充值" THEN pay_money ELSE 0 END) AS tongjMoney, -- 累计充值金额
SUM(CASE WHEN type = 3 THEN pay_money ELSE 0 END) AS tongjXfMoney -- 累计消费金额
from all_order_info
</select>
<!-- SUM(CASE WHEN transaction_type = 'sale' THEN amount ELSE 0 END) AS total_sales-->
<!-- COUNT(CASE WHEN pay_type = 'WECHAT' THEN 0 END) AS wechat, &#45;&#45; 微信-->
<!-- WHERE-->
<!-- DATE(pay_time) = CURDATE();-->
<!-- <if test="startTime != null ">&lt;!&ndash; 开始时间检索 &ndash;&gt;-->

View File

@ -217,7 +217,12 @@
<select id="selectOrderListByZtDz" resultType="com.fuint.business.order.entity.LJOrder">
<include refid="selectOrders"></include>
<where>
store_id = #{order.storeId}
<if test="order.storeIds != null">
and store_id in
<foreach collection="order.storeIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="order.staffId != null and order.staffId != ''">
and staff_id = #{order.staffId}
</if>
@ -242,6 +247,31 @@
order by create_time desc
</where>
</select>
<select id="selectOrderFenxiListByZtDz" resultType="com.fuint.business.order.vo.LJOrderVo">
select
store_id storeId,
sum(pay_amount) payAmounts,
count(*) counts,
sum(goods_num) goodsNums
from mt_order
group by store_id
</select>
<select id="selectOrderFenxiDataByZtDz" resultType="java.util.Map">
select
sum(pay_amount) payAmount,
count(*) count,
sum(goods_num) goodsNum
from mt_order
</select>
<select id="selectOrderFenxiDataByZtDz2" resultType="java.util.Map">
select
count(distinct mg.cvs_good_id) cvg
from mt_order mo
left join mt_order_goods mog on mog.goods_id = mo.id
left join mt_goods mg on mog.goods_id = mg.id
</select>
</mapper>

View File

@ -98,7 +98,7 @@
select
sum(order_amount),
sum(discount_amount),
sum(pay_amount),
sum(pay_amount)
-- sum(if(order_status='0',money,0))
from oil_order
where store_id = #{storeId}
@ -690,4 +690,42 @@
</if>
GROUP BY staff_id
</select>
<select id="selectOilOrderFenXiListByZtDz" resultType="com.fuint.business.order.vo.OilOrderVo">
select
store_id storeId,
sum(pay_amount) payAmount,
sum(oil_num) oilNum,
count(*) sum,
SUM(CASE WHEN oils = 8 THEN pay_amount ELSE 0 END) AS amount92,
SUM(CASE WHEN oils = 8 THEN oil_num ELSE 0 END) AS num92,
COUNT(CASE WHEN oils = 8 THEN 1 END) AS count92,
SUM(CASE WHEN oils = 9 THEN pay_amount ELSE 0 END) AS amount95,
SUM(CASE WHEN oils = 9 THEN oil_num ELSE 0 END) AS num95,
COUNT(CASE WHEN oils = 9 THEN 1 END) AS count95,
SUM(CASE WHEN oils = 10 THEN pay_amount ELSE 0 END) AS amount98,
SUM(CASE WHEN oils = 10 THEN oil_num ELSE 0 END) AS num98,
COUNT(CASE WHEN oils = 10 THEN 1 END) AS count98,
SUM(CASE WHEN oils = 2 THEN pay_amount ELSE 0 END) AS amount0,
SUM(CASE WHEN oils = 2 THEN oil_num ELSE 0 END) AS num0,
COUNT(CASE WHEN oils = 2 THEN 1 END) AS count0
from oil_order
group by store_id
</select>
<select id="selectOilOrderFenXiDataByZtDz" resultType="java.util.Map">
select
sum(pay_amount) amount,
sum(oil_num) num,
SUM(CASE WHEN oils = 8 THEN pay_amount ELSE 0 END) AS amount92,
SUM(CASE WHEN oils = 9 THEN pay_amount ELSE 0 END) AS amount95,
SUM(CASE WHEN oils = 10 THEN pay_amount ELSE 0 END) AS amount98,
SUM(CASE WHEN oils = 2 THEN pay_amount ELSE 0 END) AS amount0
from oil_order;
</select>
</mapper>

View File

@ -37,4 +37,43 @@
GROUP BY cg.name
ORDER BY goodsNumber desc
</select>
<select id="selectInfoByStoreId" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
# select sum() from mt_order_goods mog
#
# where mog.store_id = #{store_id}
</select>
<select id="selectInfoByStoreId1" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
select count(*) cvsNum
from cvs_goods where store_id = #{storeId}
</select>
<select id="selectInfoByStoreId2" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
select count(*) goodsNum
from cvs_goods where store_id = #{storeId}
</select>
<select id="selectInfoByStoreIdType" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
SELECT cg.name cvgName, SUM(mog.num) cvgNumber,sum(mog.pay_amount) cvsAmount
from mt_order_goods mog
left join mt_order mo on mo.id = mog.order_id
left join mt_goods mg on mog.goods_id = mg.id
left join cvs_goods cg on mg.cvs_good_id = cg.id
where mo.store_id = #{storeId}
group by cg.id
ORDER BY cvgNumber desc
limit 1
</select>
<select id="selectInfoByStoreIdGoods" resultType="com.fuint.business.largeSscreen.vo.OrderGoodsVO">
SELECT mg.name goodsName, SUM(mog.num) goodsNumber,sum(mog.pay_amount) goodsAmount
from mt_order_goods mog
left join mt_order mo on mo.id = mog.order_id
left join mt_goods mg on mog.goods_id = mg.id
where mo.store_id = #{storeId}
group by mg.id
ORDER BY goodsNumber desc
limit 1
</select>
</mapper>

View File

@ -26,6 +26,7 @@ public interface LJOrderService extends IService<LJOrder> {
*/
public IPage<LJOrder> selectOrderList(Page page, LJOrder order);
public IPage<LJOrder> selectOrderListByZtDz(Page page, LJOrder order);
public IPage<LJOrderVo> selectOrderFenxiListByZtDz(Page page, LJOrderVo order);
void export(HttpServletResponse response, LJOrder order);
@ -65,6 +66,7 @@ public interface LJOrderService extends IService<LJOrder> {
void insertFavorable(LJOrder order);
Map<String, String> orderStatistics(LJOrder order);
Map<String, Object> selectOrderFenxiDataByZtDz(LJOrderVo order);
LJOrder getStatisticsByTime(Date time ,Integer goodsId, String payType);

View File

@ -31,7 +31,8 @@ public interface OilOrderService extends IService<OilOrder> {
*/
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order);
public IPage<OilOrder> selectOilOrderListByZtDz(Page page, OilOrder order);
public IPage<OilOrderVo> selectOilOrderFenXiListByZtDz(Page page, OilOrderVo order);
public Map<String,String> selectOilOrderFenXiDataByZtDz(OilOrderVo order);
void export(HttpServletResponse response, OilOrder order);
/**
@ -50,6 +51,7 @@ public interface OilOrderService extends IService<OilOrder> {
public IPage<OilOrder> selectOilOrderByUserId(Page page, OilOrder order);
public IPage<OilOrderVo> selectOilOrderByUserId2(Page page, OilOrder order);
/**
* 根据订单号查询油品订单信息
* @param orderNo

View File

@ -10,17 +10,20 @@ import com.fuint.business.convenienceSore.entity.CvsGoods;
import com.fuint.business.convenienceSore.entity.LJGoods;
import com.fuint.business.convenienceSore.mapper.CvsGoodsMapper;
import com.fuint.business.convenienceSore.service.LJGoodsService;
import com.fuint.business.largeSscreen.vo.OrderGoodsVO;
import com.fuint.business.marketingActivity.favorableRecords.entity.FavorableRecords;
import com.fuint.business.marketingActivity.favorableRecords.service.FavorableRecordsService;
import com.fuint.business.order.entity.LJOrder;
import com.fuint.business.order.entity.OilOrder;
import com.fuint.business.order.entity.OrderGoods;
import com.fuint.business.order.mapper.LJOrderMapper;
import com.fuint.business.order.mapper.OrderGoodsMapper;
import com.fuint.business.order.service.LJOrderService;
import com.fuint.business.order.service.OrderGoodsService;
import com.fuint.business.order.vo.Excel.LJOrderExcel;
import com.fuint.business.order.vo.LJOrderVo;
import com.fuint.business.order.vo.OrderGoodsVo;
import com.fuint.business.store.entity.MtStore;
import com.fuint.business.store.mapper.MtStoreMapper;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.TokenUtil;
@ -69,7 +72,7 @@ public class LJOrderServiceImpl extends ServiceImpl<LJOrderMapper, LJOrder> impl
List<Long> strings = sysDeptMapper.selectChildByDeptIdR(order.getDeptId());
List<Long> longs = mtStoreMapper.queryStoresByDeptIdsR(strings);
order.setStoreIds(longs);
IPage<LJOrder> ljOrderIPage = baseMapper.selectOrderList(page, order);
IPage<LJOrder> ljOrderIPage = baseMapper.selectOrderListByZtDz(page, order);
for (LJOrder item : ljOrderIPage.getRecords()) {
List<OrderGoodsVo> orderGoodsVos = orderGoodsService.selectOrderGoods(item.getId());
if (ObjectUtil.isNotEmpty(orderGoodsVos)) {
@ -93,6 +96,60 @@ public class LJOrderServiceImpl extends ServiceImpl<LJOrderMapper, LJOrder> impl
return ljOrderIPage;
}
@Resource
OrderGoodsMapper orderGoodsMapper;
@Override
public IPage<LJOrderVo> selectOrderFenxiListByZtDz(Page page, LJOrderVo order) {
if (ObjectUtil.isEmpty(order.getDeptId())) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
order.setDeptId(nowAccountInfo.getDeptId());
}
List<Long> strings = sysDeptMapper.selectChildByDeptIdR(order.getDeptId());
List<Long> longs = mtStoreMapper.queryStoresByDeptIdsR(strings);
order.setStoreIds(longs);
IPage<LJOrderVo> ljOrderIPage = baseMapper.selectOrderFenxiListByZtDz(page, order);
for (LJOrderVo record : ljOrderIPage.getRecords()) {
MtStore mtStore = mtStoreMapper.selectById(record.getStoreId());
if (ObjectUtil.isNotEmpty(mtStore)) {
record.setStoreName(mtStore.getName());
}
// 商品信息
OrderGoodsVO orderGoodsVO = orderGoodsMapper.selectInfoByStoreId1(record);
OrderGoodsVO orderGoodsVO1 = orderGoodsMapper.selectInfoByStoreId2(record);
OrderGoodsVO orderGoodsVO2 = orderGoodsMapper.selectInfoByStoreIdType(record);// 热销品类信息
OrderGoodsVO orderGoodsVO3 = orderGoodsMapper.selectInfoByStoreIdGoods(record);// 热销商品信息
if (ObjectUtil.isNotEmpty(orderGoodsVO)) {
record.setCvsNum(orderGoodsVO.getCvsNum());
}
if (ObjectUtil.isNotEmpty(orderGoodsVO1) && ObjectUtil.isNotEmpty(orderGoodsVO1.getGoodsNum())) {
record.setGoodsNum(Integer.valueOf(orderGoodsVO1.getGoodsNum()));
}
if (ObjectUtil.isNotEmpty(orderGoodsVO2)) {
record.setCvgName(orderGoodsVO2.getCvgName());
record.setCvgNumber(orderGoodsVO2.getCvgNumber());
record.setCvsAmount(orderGoodsVO2.getCvsAmount().toString());
}
if (ObjectUtil.isNotEmpty(orderGoodsVO3)) {
record.setGoodsName(orderGoodsVO3.getGoodsName());
record.setGoodsNumber(orderGoodsVO3.getGoodsNumber());
record.setGoodsAmount(orderGoodsVO3.getGoodsAmount().toString());
}
}
return ljOrderIPage;
}
@Override
public Map<String, Object> selectOrderFenxiDataByZtDz(LJOrderVo order){
Map<String, Object> stringObjectMap = baseMapper.selectOrderFenxiDataByZtDz(order);
Map<String, Object> stringObjectMap2 = baseMapper.selectOrderFenxiDataByZtDz2(order);
stringObjectMap.put("cvg",stringObjectMap2.get("cvg"));
return stringObjectMap;
}
public void export(HttpServletResponse response, LJOrder order) {

View File

@ -200,6 +200,45 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
}
return oilOrderIPage;
}
@Override
public IPage<OilOrderVo> selectOilOrderFenXiListByZtDz(Page page, OilOrderVo order) {
if (ObjectUtil.isEmpty(order.getDeptId())) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
order.setDeptId(nowAccountInfo.getDeptId());
}
List<Long> strings = sysDeptMapper.selectChildByDeptIdR(order.getDeptId());
List<Long> longs = mtStoreMapper.queryStoresByDeptIdsR(strings);
order.setStoreIds(longs);
IPage<OilOrderVo> oilOrderIPage = baseMapper.selectOilOrderFenXiListByZtDz(page, order);
for (OilOrder record : oilOrderIPage.getRecords()) {
MtStore mtStore = mtStoreMapper.selectById(record.getStoreId());
if (ObjectUtil.isNotEmpty(mtStore)) {
record.setStoreName(mtStore.getName());
}
// if (ObjectUtil.isNotEmpty(record.getOilGunNum())) {
// OilGun oilGun = oilGunMapper.queryById(Integer.valueOf(record.getOilGunNum()));
// if (ObjectUtil.isNotEmpty(oilGun)){
// record.setGunName(oilGun.getGunName());
// }
// }
//
// OilName oilName = oilNameMapper.selectOilNameById(Integer.valueOf(record.getOils()));
// if (ObjectUtil.isNotEmpty(oilName)) {
// record.setOilName(oilName.getOilName());
// }
// OilTank oilTank = oilTankMapper.queryById(record.getTankId());
// if (ObjectUtil.isNotEmpty(oilTank)) {
// record.setTankName(oilTank.getTankName());
// }
}
return oilOrderIPage;
}
public Map<String,String> selectOilOrderFenXiDataByZtDz(OilOrderVo order){
return baseMapper.selectOilOrderFenXiDataByZtDz(order);
}
public void export(HttpServletResponse response, OilOrder order) {

View File

@ -6,4 +6,24 @@ import lombok.Data;
@Data
public class LJOrderVo extends LJOrder {
private String storeName;
//商品名称
private String goodsName;
private String cvgName;
//商品售出数量
private Integer goodsNumber;
private Integer cvgNumber;
private String cvsNum;
// private String goodsNum;
private String goodsAmount;
private String cvsAmount;
private String payAmounts;
private String counts;
private String goodsNums;
/**
* 所属店铺ID
*/
private Integer storeId;
}

View File

@ -34,4 +34,17 @@ public class OilOrderVo extends OilOrder {
@TableField(exist = false)
private Double oilCardAmount1;
private String sum;
private String amount92;
private String num92;
private String count92;
private String amount95;
private String num95;
private String count95;
private String amount98;
private String num98;
private String count98;
private String amount0;
private String num0;
private String count0;
}

View File

@ -0,0 +1,35 @@
package com.fuint.business.userManager.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fuint.business.userManager.service.UserBalanceService;
import com.fuint.business.userManager.vo.LJUserVo;
import com.fuint.business.userManager.vo.UserBalanceVo;
import com.fuint.framework.web.BaseController;
import com.fuint.framework.web.ResponseObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/business/userManager/userbalance")
public class UserBalanceController extends BaseController {
@Autowired
UserBalanceService userBalanceService;
@GetMapping("/listByZt")
public ResponseObject listByZt(UserBalanceVo user,
@RequestParam(value = "page",defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
Page page =new Page(pageNo,pageSize);
IPage<UserBalanceVo> list = userBalanceService.listByZt(page,user);
return getSuccessResult(list);
}
@GetMapping("/getUser")
public ResponseObject getUser(UserBalanceVo user){
return getSuccessResult(userBalanceService.getDataByZt(user));
}
}

View File

@ -1,10 +1,14 @@
package com.fuint.business.userManager.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.userManager.entity.UserBalance;
import com.fuint.business.userManager.vo.UserBalanceVo;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
public interface UserBalanceMapper extends BaseMapper<UserBalance> {
int subtractUserBalanceByLock(UserBalanceVo balance);
@ -12,4 +16,8 @@ public interface UserBalanceMapper extends BaseMapper<UserBalance> {
int updateRefuelMoney(UserBalance userBalance);
int addUserBalance(@Param("id") Integer id, @Param("changeCardBalance") Double changeCardBalance);
IPage<UserBalanceVo> listByZt(Page page, UserBalanceVo user);
Map<String,Object> getDataByZt(UserBalanceVo user);
}

View File

@ -31,5 +31,27 @@
card_balance = card_balance +#{changeCardBalance}
where id = #{id}
</update>
<select id="listByZt" resultType="com.fuint.business.userManager.vo.UserBalanceVo">
select
mub.id,
mu.name userName,
mu.mobile mobile,
mu.physical_card physicalCard,
mub.store_id storeId,
mub.card_balance cardBalance,
mub.create_time,
mu.id mtUserId
from mt_user_balance mub
left join mt_user mu on mub.mt_user_id = mu.id
order by mub.create_time desc
</select>
<select id="getDataByZt" resultType="java.util.Map">
select
count(*) sumnum,
sum(mub.card_balance) balanceSum
from mt_user_balance mub
left join mt_user mu on mub.mt_user_id = mu.id
</select>
</mapper>

View File

@ -1,16 +1,23 @@
package com.fuint.business.userManager.service;
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.userManager.entity.UserBalance;
import com.fuint.business.userManager.vo.LJUserVo;
import com.fuint.business.userManager.vo.UserBalanceVo;
import java.util.List;
import java.util.Map;
/**
* 会员储值卡信息 业务层
*/
public interface UserBalanceService extends IService<UserBalance> {
IPage<UserBalanceVo> listByZt(Page page, UserBalanceVo user);
Map<String,Object> getDataByZt(UserBalanceVo user);
/**
* 增加会员储值信息信息
* @param balance

View File

@ -5,14 +5,21 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.TypeReference;
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.marketingActivity.cardValue.entity.CardValueRecord;
import com.fuint.business.marketingActivity.cardValue.mapper.CardValueRecordMapper;
import com.fuint.business.order.mapper.AllOrderInfoMapper;
import com.fuint.business.storeInformation.entity.LJStore;
import com.fuint.business.storeInformation.service.ILJStoreService;
import com.fuint.business.userManager.entity.LJUserGrade;
import com.fuint.business.userManager.entity.UserBalance;
import com.fuint.business.userManager.mapper.LJUserGradeMapper;
import com.fuint.business.userManager.mapper.UserBalanceMapper;
import com.fuint.business.userManager.service.LJUserGradeService;
import com.fuint.business.userManager.service.UserBalanceService;
import com.fuint.business.userManager.vo.LJUserVo;
import com.fuint.business.userManager.vo.UserBalanceVo;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.RedisLock;
@ -39,6 +46,61 @@ public class UserBalanceServiceImpl extends ServiceImpl<UserBalanceMapper, UserB
@Autowired
private ILJStoreService storeService;
@Resource
UserBalanceMapper userBalanceMapper;
@Resource
LJUserGradeMapper ljUserGradeMapper;
@Resource
CardValueRecordMapper cardValueRecordMapper;
@Resource
AllOrderInfoMapper allOrderInfoMapper;
@Override
public IPage<UserBalanceVo> listByZt(Page page, UserBalanceVo user) {
IPage<UserBalanceVo> userBalanceVoIPage = userBalanceMapper.listByZt(page, user);
for (UserBalanceVo record : userBalanceVoIPage.getRecords()) {
LJStore ljStore = storeService.selectStoreByIdUni(record.getStoreId());
if (ObjectUtil.isNotEmpty(ljStore)) {
record.setStoreName(ljStore.getName());
}
// 会员等级
LJUserGrade ljUserGrade = ljUserGradeMapper.selectById(record.getGradeId());
if (ObjectUtil.isNotEmpty(ljUserGrade)) {
record.setGradeName(ljUserGrade.getName());
}else {record.setGradeName("--");}
// 累计充值金额
Map<String, Object> amountAndConsume = cardValueRecordMapper.getAmountAndConsume(record);
if (ObjectUtil.isNotEmpty(amountAndConsume)) {
record.setCountNum(amountAndConsume.get("consumeNum").toString()); // 累计重置次数
record.setAmount(amountAndConsume.get("amount").toString());
}
Map<String, Object> leiJiInfo = allOrderInfoMapper.getLeiJiInfo(record);
if (ObjectUtil.isNotEmpty(leiJiInfo)) {
record.setLeijiMoney(leiJiInfo.get("leijiMoney").toString());// 累计消费金额
record.setLeijiNum(leiJiInfo.get("leijiNum").toString()); // 累计消费次数
record.setLeijiMoneyRef(leiJiInfo.get("leijiMoneyRef").toString()); // 累计退款余额
record.setLeijiNumRef(leiJiInfo.get("leijiNum").toString()); // 累计退款笔数
}
// 电子礼品卡余额
}
return userBalanceVoIPage;
}
public Map<String,Object> getDataByZt(UserBalanceVo user) {
Map<String, Object> dataByZt = userBalanceMapper.getDataByZt(user);
Map<String, Object> leiJiInfo = allOrderInfoMapper.getShuJuVipInfo(user);
dataByZt.put("tongjMoney",leiJiInfo.get("tongjMoney"));
dataByZt.put("tongjXfMoney",leiJiInfo.get("tongjXfMoney"));
return dataByZt;
}
@Override
public int insertUserBalance(UserBalance balance) {
int row = baseMapper.insert(balance);

View File

@ -17,5 +17,28 @@ public class UserBalanceVo extends UserBalance {
* 成长值变化
*/
private Integer changeGrowthValue;
/**
* 会员姓名
*/
private String userName;
/**
* 会员手机号
*/
private String mobile;
/**
* 会员卡号
*/
private String physicalCard;
private String storeName;
private String gradeName;
public String amount;
public String countNum;
public String leijiMoney;
public String leijiNum;
public String leijiMoneyRef;
public String leijiNumRef;
}