Merge branch 'main' of http://122.51.230.86:3000/dianliang/oil-station
This commit is contained in:
commit
0edf36a6d3
@ -163,3 +163,20 @@ export function getDataBoard(query) {
|
||||
});
|
||||
}
|
||||
|
||||
// 油站首页数据分析
|
||||
export function getDataAnalysis(query) {
|
||||
return request({
|
||||
url: 'business/allOrderInfo/getDataAnalysis',
|
||||
method: 'get',
|
||||
params:query
|
||||
});
|
||||
}
|
||||
// 油站首页数据展示
|
||||
export function getDataShow(query) {
|
||||
return request({
|
||||
url: 'business/allOrderInfo/getDataShow',
|
||||
method: 'get',
|
||||
params:query
|
||||
});
|
||||
}
|
||||
|
||||
|
BIN
fuintAdmin/src/assets/images/telindex.png
Normal file
BIN
fuintAdmin/src/assets/images/telindex.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
BIN
fuintAdmin/src/assets/images/zdy.png
Normal file
BIN
fuintAdmin/src/assets/images/zdy.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 575 B |
@ -2,16 +2,15 @@
|
||||
<div class="home-index">
|
||||
<el-carousel height="230px">
|
||||
<el-carousel-item v-for="(item,index) in bannerList" :key="index">
|
||||
<div class="bannser">
|
||||
<div class="bannser">-
|
||||
|
||||
<!-- <img src="../../assets/images/banner.png" alt="" >-->
|
||||
<img :src="imagePath+item.productImage" alt="" >
|
||||
</div>
|
||||
</el-carousel-item>
|
||||
</el-carousel>
|
||||
<div class="b-bs">
|
||||
<div class="left-box">
|
||||
<div>核心数据</div>
|
||||
<div class="h-tt">核心数据</div>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<div class="san-box">
|
||||
<div class="r-title">{{ storeTotal.allAmount || 0 }}</div>
|
||||
@ -37,7 +36,7 @@
|
||||
<div>通知中心</div>
|
||||
<div style="font-size: 12px;color: #BBBBBB;cursor: pointer; display: flex;align-items: center" @click="goList()" >更多 <i class="el-icon-arrow-right"></i> </div>
|
||||
</div>
|
||||
<!-- <div class="hang_" v-for="(item,index) in 4" :key="index" >【到期提醒】百业兴智慧油站系统将于2024年07月10日到期...</div>-->
|
||||
<!-- <div class="hang_" v-for="(item,index) in 4" :key="index" >【到期提醒】百业兴智慧油站系统将于2024年07月10日到期...</div>-->
|
||||
<div class="hang_" v-for="(item,index) in noticeList" :key="index" >【{{ item.notificationType }}】{{ item.templateContent }}</div>
|
||||
<div class="hang_" v-if="this.noticeList.length==0">暂无通知</div>
|
||||
</div>
|
||||
@ -45,12 +44,22 @@
|
||||
<div class="b-bs">
|
||||
<div class="left-box-t">
|
||||
<div class="d-s">
|
||||
<div class="h-tt" >数据看板</div>
|
||||
<div class="q-anniu">近一周</div>
|
||||
<div class="h-tt" style="margin-right: 15px" >数据看板</div>
|
||||
<el-dropdown placement="bottom-start" >
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item>今日</el-dropdown-item>
|
||||
<el-dropdown-item>昨日</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
<el-dropdown-item>近一月</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == true}" @click="timeShow = true" > <img src="../assets/images/zdy.png" style="width: 14px; height: 14px" > 自定义</div>
|
||||
<div style="margin-right: 40px">
|
||||
<el-date-picker
|
||||
v-model="value1"
|
||||
type="datetimerange"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
@ -63,28 +72,28 @@
|
||||
<div class="k-box">
|
||||
<div class="d-s" style="font-size: 12px;color: #999999;">
|
||||
<div class="sian"></div>
|
||||
<div>油品销售金额(元)/交易笔数</div>
|
||||
<div style="color: #333">油品销售金额(元)/交易笔数</div>
|
||||
</div>
|
||||
<div class="num-size">{{ storeAmount.oilAmount || 0 }}/{{ storeAmount.oilNum || 0 }}</div>
|
||||
</div>
|
||||
<div class="k-box">
|
||||
<div class="d-s" style="font-size: 12px;color: #999999;">
|
||||
<div class="sian"></div>
|
||||
<div>会员充值金额(元)/充值笔数</div>
|
||||
<div style="color: #333">会员充值金额(元)/充值笔数</div>
|
||||
</div>
|
||||
<div class="num-size">{{ storeAmount.userRechargeAmount || 0 }}/{{ storeAmount.userRechargeNum || 0 }}</div>
|
||||
</div>
|
||||
<div class="k-box">
|
||||
<div class="d-s" style="font-size: 12px;color: #999999;">
|
||||
<div class="sian"></div>
|
||||
<div>便利店销售金额(元)/交易笔数</div>
|
||||
<div style="color: #333">便利店销售金额(元)/交易笔数</div>
|
||||
</div>
|
||||
<div class="num-size">{{ storeAmount.minimartAmount || 0 }}/{{ storeAmount.minimartNum || 0 }}</div>
|
||||
</div>
|
||||
<div class="k-box">
|
||||
<div class="d-s" style="font-size: 12px;color: #999999;">
|
||||
<div class="sian"></div>
|
||||
<div>积分商城销售金额(元)/兑换笔数</div>
|
||||
<div style="color: #333">积分商城销售金额(元)/兑换笔数</div>
|
||||
</div>
|
||||
<div class="num-size">{{ storeAmount.pointMallAmount || 0 }}/{{ storeAmount.pointMallNum || 0 }}</div>
|
||||
</div>
|
||||
@ -97,7 +106,7 @@
|
||||
</div>
|
||||
<div class="h-r-ba"></div>
|
||||
<div>
|
||||
<!-- <div class="h-tt" >活跃油站</div>-->
|
||||
<!-- <div class="h-tt" >活跃油站</div>-->
|
||||
<div class="d-s" style="justify-content: space-between">
|
||||
<div id="cccc" style="width: 300px;height: 200px;margin-right: 50px"></div>
|
||||
<div id="ccct" style="width: 300px;height: 200px;"></div>
|
||||
@ -105,57 +114,114 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-box-t">
|
||||
<div class="h-tt" >硬件设备</div>
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
<div class="right-box-t" >
|
||||
<div class="h-tt" >
|
||||
<div>硬件设备</div>
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
title="联系人:某某某"
|
||||
width="200"
|
||||
trigger="hover"
|
||||
content="联系电话:1352415811">
|
||||
<img slot="reference" style="width: 28px; height: 28px " src="../assets/images/telindex.png">
|
||||
</el-popover>
|
||||
</div>
|
||||
<div style="height: 90%;overflow: auto;scrollbar-width: none;">
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
</div>
|
||||
<div style="font-size: 14px">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-bs">
|
||||
<div class="left-box-t">
|
||||
<div>数据展示</div>
|
||||
<div class="d-s">
|
||||
<div class="h-tt" style="margin-right: 15px" >油品交易分析</div>
|
||||
<el-dropdown placement="bottom-start" >
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item>今日</el-dropdown-item>
|
||||
<el-dropdown-item>昨日</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
<el-dropdown-item>近一月</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == true}" @click="timeShow = true" > <img src="../assets/images/zdy.png" style="width: 14px; height: 14px" > 自定义</div>
|
||||
<div style="margin-right: 40px">
|
||||
<el-date-picker
|
||||
v-model="value1"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@blur="getStoreAmount">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right-box-t">
|
||||
<div style="font-size: 16px;font-weight: bold">员工排行</div>
|
||||
<div style="font-size: 16px;font-weight: bold"><span style="margin-right: 15px">员工排行</span> <el-dropdown placement="bottom-start" >
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item>今日</el-dropdown-item>
|
||||
<el-dropdown-item>昨日</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
<el-dropdown-item>近一月</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown></div>
|
||||
<div class="hui-box">
|
||||
<div style="width: 10%">排名</div>
|
||||
<div>员工姓名</div>
|
||||
<div style="width: 25%">会员充值金额(元)</div>
|
||||
<div style="width: 25%">油品销售金额(元)</div>
|
||||
<div>总销售额(元)</div>
|
||||
<div style="width: 25%">会员充值金额</div>
|
||||
<div style="width: 25%">油品销售金额</div>
|
||||
<div>总销售额</div>
|
||||
</div>
|
||||
<div class="hang-box" v-for="(item,index) in employeList" :key="index">
|
||||
<div style="width: 10%">{{index +1}}</div>
|
||||
<div>{{ item.realName }}</div>
|
||||
<div style="width: 25%">{{item.cardSum}}</div>
|
||||
<div style="width: 25%">{{item.oilSum}}</div>
|
||||
<div>{{item.totalSum}}</div>
|
||||
<div style="overflow: auto; scrollbar-width: none; height: 74% ">
|
||||
<div class="hang-box" v-for="(item,index) in employeList" :key="index">
|
||||
<div style="width: 10%">{{index +1}}</div>
|
||||
<div>{{ item.realName }}</div>
|
||||
<div style="width: 25%">{{item.cardSum}}</div>
|
||||
<div style="width: 25%">{{item.oilSum}}</div>
|
||||
<div>{{item.totalSum}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom_">
|
||||
<div class="h-tt" style="margin-bottom: 15px" >数据统计</div>
|
||||
<div class="d-s">
|
||||
<div class="anniu-h" :class="{ 'anniu-act': index == 0 }" v-for="(item,index) in timeList" :key="index">
|
||||
{{item}}
|
||||
<div class="h-tt" style="margin-right: 15px" >数据统计</div>
|
||||
<el-dropdown placement="bottom-start" >
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item>今日</el-dropdown-item>
|
||||
<el-dropdown-item>昨日</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
<el-dropdown-item>近一月</el-dropdown-item>
|
||||
<el-dropdown-item>近一周</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<div class="h-anniu" :class="{'q-anniu' : timeShow == true}" @click="timeShow = true" > <img src="../assets/images/zdy.png" style="width: 14px; height: 14px" > 自定义</div>
|
||||
<div style="margin-right: 40px">
|
||||
<el-date-picker
|
||||
v-model="value1"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@blur="getStoreAmount">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<el-date-picker
|
||||
v-model="value2"
|
||||
type="datetimerange"
|
||||
range-separator="至"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
|
||||
<div id="ctct" style="width: 100%; height: 315px;background: linear-gradient( 360deg, #F8F0E7 0%, #FFFFFF 100%); "></div>
|
||||
|
||||
</div>
|
||||
@ -178,6 +244,8 @@ export default {
|
||||
props:["accountId"],
|
||||
data(){
|
||||
return{
|
||||
xShow:false,
|
||||
timeShow:false,
|
||||
form: {},
|
||||
timeList:[
|
||||
"今日",
|
||||
@ -222,7 +290,7 @@ export default {
|
||||
created() {
|
||||
let nowDate = new Date();
|
||||
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
|
||||
this.value1 = [parseTime(oneWeekAgo),parseTime(nowDate)]
|
||||
this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)]
|
||||
this.getStoreTotal()
|
||||
// this.selectChildByDeptIdApi()
|
||||
this.getStoreAmount()
|
||||
@ -232,7 +300,7 @@ export default {
|
||||
start.setMinutes(0)
|
||||
start.setSeconds(0)
|
||||
start.setMilliseconds(0)
|
||||
this.value2 = [start,new Date()];
|
||||
this.value2 = [start, new Date()];
|
||||
this.getStoreList()
|
||||
this.getHardwareList()
|
||||
this.getNoticeList()
|
||||
@ -241,16 +309,16 @@ export default {
|
||||
mounted() {
|
||||
// this.initChart()
|
||||
},
|
||||
methods:{
|
||||
goList(){
|
||||
methods: {
|
||||
goList() {
|
||||
this.$router.push('/notificationList/index')
|
||||
},
|
||||
// 获取员工排行信息
|
||||
getEmployeList() {
|
||||
this.employeLoading = true
|
||||
employeeSalesApi().then(res=>{
|
||||
if(res.code == 200) {
|
||||
if (res.data.length >=10) {
|
||||
employeeSalesApi().then(res => {
|
||||
if (res.code == 200) {
|
||||
if (res.data.length >= 10) {
|
||||
this.employeList = res.data.slice(0, 10);
|
||||
} else {
|
||||
this.employeList = res.data
|
||||
@ -261,45 +329,45 @@ export default {
|
||||
|
||||
})
|
||||
},
|
||||
getNoticeList(){
|
||||
getNoticeList() {
|
||||
getNotificationlogList({pageNo: 1, pageSize: 4}).then(res => {
|
||||
this.noticeList = res.data.records
|
||||
})
|
||||
},
|
||||
getHardwareList(){
|
||||
getListApi({page: 1, pageSize: 3,status:'1'}).then(res=>{
|
||||
getHardwareList() {
|
||||
getListApi({page: 1, pageSize: 3, status: '1'}).then(res => {
|
||||
this.hardwareList = res.data.records;
|
||||
this.hardwareList.forEach(item => {
|
||||
if (item.image.includes(",")){
|
||||
if (item.image.includes(",")) {
|
||||
item.image = item.image.split(",")[0]
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getStoreList(){
|
||||
selectStoreAmount(this.addDateRange({},this.value2)).then(res => {
|
||||
getStoreList() {
|
||||
selectStoreAmount(this.addDateRange({}, this.value2)).then(res => {
|
||||
this.storeList = res.data
|
||||
this.initChart()
|
||||
})
|
||||
},
|
||||
// 选择机构信息
|
||||
chooseDept(){
|
||||
chooseDept() {
|
||||
this.options.forEach(item => {
|
||||
if (item.deptId == this.value){
|
||||
if (item.deptId == this.value) {
|
||||
this.queryParams.ancestors = item.ancestors
|
||||
}
|
||||
})
|
||||
this.getStoreAmount()
|
||||
},
|
||||
// banner图
|
||||
selectBannerList(){
|
||||
selectBannerList() {
|
||||
let queryParams = {
|
||||
pageNo:1,
|
||||
pageSize:10,
|
||||
systemPosition:"首页",
|
||||
bannerStatus:true
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
systemPosition: "首页",
|
||||
bannerStatus: true
|
||||
}
|
||||
getBannerListApi(queryParams).then(res=>{
|
||||
getBannerListApi(queryParams).then(res => {
|
||||
this.bannerList = res.data.records
|
||||
})
|
||||
},
|
||||
@ -310,28 +378,28 @@ export default {
|
||||
})
|
||||
},
|
||||
// 核心数据
|
||||
getStoreTotal(){
|
||||
getStoreTotal() {
|
||||
getTotalAmount().then(res => {
|
||||
this.storeTotal = res.data
|
||||
})
|
||||
},
|
||||
getStoreAmount(){
|
||||
getDataBoard(this.addDateRange(this.queryParams,this.value1)).then(res => {
|
||||
getStoreAmount() {
|
||||
getDataBoard(this.addDateRange(this.queryParams, this.value1)).then(res => {
|
||||
this.storeAmount = res.data
|
||||
this.initChart()
|
||||
})
|
||||
},
|
||||
countPercentage(upNum,downNum){
|
||||
countPercentage(upNum, downNum) {
|
||||
let percentage = 0;
|
||||
percentage = (upNum / downNum)*100
|
||||
percentage = (upNum / downNum) * 100
|
||||
return percentage.toFixed(2)
|
||||
},
|
||||
initChart() {
|
||||
const chart = echarts.init(document.getElementById('ccc'))
|
||||
const chart1 = echarts.init(document.getElementById('cccc'))
|
||||
const chart2= echarts.init(document.getElementById('ccct'))
|
||||
const chart3= echarts.init(document.getElementById('ctct'))
|
||||
const chart4= echarts.init(document.getElementById('cccf'))
|
||||
const chart2 = echarts.init(document.getElementById('ccct'))
|
||||
const chart3 = echarts.init(document.getElementById('ctct'))
|
||||
const chart4 = echarts.init(document.getElementById('cccf'))
|
||||
let dataList = []
|
||||
let allTotal = 0
|
||||
if (this.storeAmount.oilNameList) {
|
||||
@ -352,7 +420,7 @@ export default {
|
||||
let rechargeBalanceList = []
|
||||
let consumeBalanceList = []
|
||||
let userBalanceList = []
|
||||
if (this.storeList.length>0) {
|
||||
if (this.storeList.length > 0) {
|
||||
this.storeList.forEach(item => {
|
||||
storeNameList.push(item.storeName)
|
||||
oilAmountList.push(item.oilAmount)
|
||||
@ -417,8 +485,14 @@ export default {
|
||||
data: [
|
||||
// { value: 28, name: '28%' },
|
||||
// { value: 72, name: '72%' },
|
||||
{ value: this.countPercentage(Number(this.storeAmount.oilNum),Number(this.storeAmount.oilNum)+Number(this.storeAmount.noOilNum)), name: "油品交易占比" },
|
||||
{ value: this.countPercentage(Number(this.storeAmount.noOilNum),Number(this.storeAmount.oilNum)+Number(this.storeAmount.noOilNum)), name: "非油品交易占比" },
|
||||
{
|
||||
value: this.countPercentage(Number(this.storeAmount.oilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.noOilNum)),
|
||||
name: "油品交易占比"
|
||||
},
|
||||
{
|
||||
value: this.countPercentage(Number(this.storeAmount.noOilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.noOilNum)),
|
||||
name: "非油品交易占比"
|
||||
},
|
||||
|
||||
],
|
||||
emphasis: {
|
||||
@ -452,10 +526,22 @@ export default {
|
||||
// { value: 72, name: '积分商城交易占比' },
|
||||
// { value: 28, name: '油品交易占比' },
|
||||
// { value: 72, name: '便利店交易占比' },
|
||||
{ value: this.countPercentage(Number(this.storeAmount.userNum),Number(this.storeAmount.oilNum)+Number(this.storeAmount.userNum)+Number(this.storeAmount.integralNum)+Number(this.storeAmount.goodNum)), name: '会员充值占比' },
|
||||
{ value: this.countPercentage(Number(this.storeAmount.integralNum),Number(this.storeAmount.oilNum)+Number(this.storeAmount.userNum)+Number(this.storeAmount.integralNum)+Number(this.storeAmount.goodNum)), name: '积分商城交易占比' },
|
||||
{ value: this.countPercentage(Number(this.storeAmount.oilNum),Number(this.storeAmount.oilNum)+Number(this.storeAmount.userNum)+Number(this.storeAmount.integralNum)+Number(this.storeAmount.goodNum)), name: '油品交易占比' },
|
||||
{ value: this.countPercentage(Number(this.storeAmount.goodNum),Number(this.storeAmount.oilNum)+Number(this.storeAmount.userNum)+Number(this.storeAmount.integralNum)+Number(this.storeAmount.goodNum)), name: '便利店交易占比' },
|
||||
{
|
||||
value: this.countPercentage(Number(this.storeAmount.userNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
|
||||
name: '会员充值占比'
|
||||
},
|
||||
{
|
||||
value: this.countPercentage(Number(this.storeAmount.integralNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
|
||||
name: '积分商城交易占比'
|
||||
},
|
||||
{
|
||||
value: this.countPercentage(Number(this.storeAmount.oilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
|
||||
name: '油品交易占比'
|
||||
},
|
||||
{
|
||||
value: this.countPercentage(Number(this.storeAmount.goodNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
|
||||
name: '便利店交易占比'
|
||||
},
|
||||
|
||||
],
|
||||
emphasis: {
|
||||
@ -480,7 +566,7 @@ export default {
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: ['Evaporation','油品交易额','非油品交易额', '会员充值金额','会员消费金额', '会员余额']
|
||||
data: ['Evaporation', '油品交易额', '非油品交易额', '会员充值金额', '会员消费金额', '会员余额']
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
@ -635,7 +721,7 @@ export default {
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: ['Evaporation','油品交易额','非油品交易额', '会员充值金额','会员消费金额', '会员余额']
|
||||
data: ['Evaporation', '油品交易额', '非油品交易额', '会员充值金额', '会员消费金额', '会员余额']
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
@ -794,34 +880,39 @@ export default {
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
.app-container{
|
||||
.app-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #f4f5f9;
|
||||
}
|
||||
.d-s{
|
||||
|
||||
.d-s {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.bannser{
|
||||
|
||||
.bannser {
|
||||
width: 100%;
|
||||
height: 230px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
img{
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
}
|
||||
.b-bs{
|
||||
|
||||
.b-bs {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.left-box{
|
||||
|
||||
.left-box {
|
||||
width: 74%;
|
||||
background: #FFFFFF;
|
||||
border-radius: 10px 10px 10px 10px;
|
||||
@ -833,7 +924,8 @@ export default {
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
}
|
||||
.left-box-t{
|
||||
|
||||
.left-box-t {
|
||||
width: 74%;
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
@ -843,7 +935,8 @@ export default {
|
||||
height: 380px;
|
||||
|
||||
}
|
||||
.right-box{
|
||||
|
||||
.right-box {
|
||||
width: 25%;
|
||||
border-radius: 8px;
|
||||
background: #fff;
|
||||
@ -852,7 +945,8 @@ export default {
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
}
|
||||
.right-box-t{
|
||||
|
||||
.right-box-t {
|
||||
width: 25%;
|
||||
border-radius: 8px;
|
||||
background: #fff;
|
||||
@ -860,32 +954,36 @@ export default {
|
||||
height: 380px;
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
|
||||
|
||||
}
|
||||
.san-box{
|
||||
|
||||
.san-box {
|
||||
width: 24%;
|
||||
height: 120px;
|
||||
height: 100px;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8px;
|
||||
background: #fe8c4a;
|
||||
margin: 15px 0px;
|
||||
margin-right: 15px;
|
||||
margin: 15px auto;
|
||||
|
||||
box-sizing: border-box;
|
||||
padding: 20px 40px;
|
||||
}
|
||||
.r-title{
|
||||
|
||||
.r-title {
|
||||
font-weight: bold;
|
||||
font-size: 42px;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
}
|
||||
.r-size{
|
||||
|
||||
.r-size {
|
||||
font-size: 14px;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
}
|
||||
.title_{
|
||||
|
||||
.title_ {
|
||||
font-size: 16px;
|
||||
color: #333333;
|
||||
font-weight: bold;
|
||||
@ -894,82 +992,109 @@ export default {
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
}
|
||||
.hang_{
|
||||
|
||||
.hang_ {
|
||||
width: 100%;
|
||||
white-space: nowrap; //不换行
|
||||
overflow: hidden; //超出部分隐藏
|
||||
text-overflow: ellipsis; //文本溢出显示省略号
|
||||
white-space: nowrap; //不换行
|
||||
overflow: hidden; //超出部分隐藏
|
||||
text-overflow: ellipsis; //文本溢出显示省略号
|
||||
font-size: 14px;
|
||||
color: #777777;
|
||||
color: #333;
|
||||
margin: 14px auto;
|
||||
}
|
||||
.h-tt{
|
||||
|
||||
.h-tt {
|
||||
font-size: 16px;
|
||||
color: #333333;
|
||||
font-weight: bold;
|
||||
margin-right: 40px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.q-anniu{
|
||||
|
||||
.q-anniu {
|
||||
width: 80px;
|
||||
height: 26px;
|
||||
background: #FF9655;
|
||||
background: #FF9655 !important;
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
color: #fff !important;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.k-box{
|
||||
width: 220px;
|
||||
.h-anniu {
|
||||
width: 80px;
|
||||
height: 26px;
|
||||
background: #fafafa;
|
||||
border-radius: 4px 4px 4px 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
margin-right: 20px;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
color: #555555;
|
||||
}
|
||||
|
||||
.k-box {
|
||||
width: 24%;
|
||||
height: 68px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #e1e0e0;
|
||||
box-sizing: border-box;
|
||||
margin: 0 auto;
|
||||
padding: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.num-size{
|
||||
|
||||
.num-size {
|
||||
font-weight: bold;
|
||||
font-size: 24px;
|
||||
color: #555555;
|
||||
}
|
||||
.sian{
|
||||
|
||||
.sian {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background: #2BBCFF;
|
||||
border-radius: 50%;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.hui-hang{
|
||||
|
||||
.hui-hang {
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
background: #F4F5F9;
|
||||
margin: 15px auto;
|
||||
}
|
||||
.h-r-ba{
|
||||
|
||||
.h-r-ba {
|
||||
height: 170px;
|
||||
margin: 0px 50px;
|
||||
width: 5px;
|
||||
background: #f4f5f9;
|
||||
}
|
||||
.r-img{
|
||||
|
||||
.r-img {
|
||||
width: 84px;
|
||||
height: 70px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.bottom_{
|
||||
|
||||
.bottom_ {
|
||||
width: 100%;
|
||||
border-radius: 10px;
|
||||
background: #fff;
|
||||
background: #fff;
|
||||
box-sizing: border-box;
|
||||
padding: 20px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.anniu-h{
|
||||
|
||||
.anniu-h {
|
||||
width: 80px;
|
||||
height: 26px;
|
||||
background: #FAFAFA;
|
||||
@ -981,49 +1106,59 @@ export default {
|
||||
color: #777777;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.anniu-act{
|
||||
|
||||
.anniu-act {
|
||||
background: #FF9655 !important;
|
||||
border: 1px solid #FF9655 !important;
|
||||
color: #fff;
|
||||
}
|
||||
.la-left{
|
||||
|
||||
.la-left {
|
||||
width: 73%;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.la-right{
|
||||
|
||||
.la-right {
|
||||
height: 25%;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.hui-box{
|
||||
|
||||
.hui-box {
|
||||
background: #F4F5F9;
|
||||
border-radius: 8px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
justify-content: space-between;
|
||||
margin: 10px auto;
|
||||
div{
|
||||
|
||||
div {
|
||||
width: 20%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.hang-box{
|
||||
|
||||
.hang-box {
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
padding: 5px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin: 10px auto;
|
||||
div{
|
||||
margin: 0px auto;
|
||||
|
||||
div {
|
||||
width: 20%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.home-index{
|
||||
|
||||
.home-index {
|
||||
|
||||
}
|
||||
</style>
|
||||
|
@ -138,16 +138,19 @@
|
||||
</el-popover>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
<div style="height: 90%;overflow:auto;">
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom_">
|
||||
|
@ -148,16 +148,19 @@
|
||||
</el-popover>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
<div style="height: 90%;overflow:auto;">
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom_">
|
||||
|
@ -131,16 +131,19 @@
|
||||
</div>
|
||||
<div class="right-box-t">
|
||||
<div class="h-tt" >硬件设备</div>
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
<div style="height: 90%;overflow: auto">
|
||||
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
|
||||
<!-- <div class="r-img">-->
|
||||
<!-- <img src="../../assets/images/pcin.png" style="width: 84px;height: 70px">-->
|
||||
<!-- </div>-->
|
||||
<!-- <div>容大(RT RONGTA)RP76II针式76mm小票打印机加油站二三联票据 RP76II/USB口</div>-->
|
||||
<div class="r-img">
|
||||
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
<div>{{ item.name }}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom_">
|
||||
|
@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -309,6 +310,29 @@ public class AllOrderInfoController extends BaseController {
|
||||
return getSuccessResult(allOrderInfoService.getDataBoard(map));
|
||||
}
|
||||
|
||||
/**
|
||||
* 油站首页数据分析
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getDataAnalysis")
|
||||
public ResponseObject getDataAnalysis(Map<String, String> map){
|
||||
return getSuccessResult(allOrderInfoService.getDataAnalysis(map));
|
||||
}
|
||||
|
||||
/**
|
||||
* 油站首页数据展示
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getDataShow")
|
||||
public ResponseObject getDataShow(String startTime, String endTime) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("startTime", startTime);
|
||||
map.put("endTime", endTime);
|
||||
return getSuccessResult(allOrderInfoService.getDataShow(map));
|
||||
}
|
||||
|
||||
/**
|
||||
* 消费记录(小程序)
|
||||
* @param pageNo
|
||||
|
@ -140,4 +140,6 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
|
||||
OilOrderVo getInfoByOrderNo(String orderNo);
|
||||
|
||||
Double selectSumMoeny(@Param("orderNos") List<String> orderNos);
|
||||
|
||||
double selectSumMoneyByDayAndOilNumber(@Param("oilName") String oilName, @Param("day") String day, @Param("storeId") Integer storeId);
|
||||
}
|
||||
|
@ -804,4 +804,8 @@
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="selectSumMoneyByDayAndOilNumber" resultType="java.lang.Double">
|
||||
select IFNULL(SUM(pay_amount), 0) from oil_order
|
||||
where DATE(pay_time) = #{day} and oils = #{oilName} and store_id = #{storeId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -157,6 +157,13 @@ public interface AllOrderInfoService {
|
||||
*/
|
||||
List<HomeDataAnalysisVo> getDataAnalysis(Map<String, String> map);
|
||||
|
||||
/**
|
||||
* 油站首页数据展示
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
HomeDataShowVo getDataShow(Map<String, String> map);
|
||||
|
||||
/**
|
||||
* 消费记录
|
||||
* @param page
|
||||
|
@ -1737,14 +1737,15 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
|
||||
|
||||
//查询所有油品
|
||||
List<OilNumber> oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper<OilNumber>()
|
||||
.eq(OilNumber::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(OilNumber::getState, "1")
|
||||
.eq(OilNumber::getIfDelete, "0"));
|
||||
// List<OilNumber> oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper<OilNumber>()
|
||||
// .eq(OilNumber::getStoreId, nowAccountInfo.getStoreId())
|
||||
// .eq(OilNumber::getState, "启用")
|
||||
// .ne(OilNumber::getIfDelete, "1"));
|
||||
List<OilNumber> oilNumbers = oilNumberMapper.selectAllOil(nowAccountInfo.getStoreId());
|
||||
|
||||
LambdaQueryWrapper<OilOrder> oilOrderQuery = new LambdaQueryWrapper<OilOrder>();
|
||||
oilOrderQuery.eq(OilOrder::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(OilOrder::getUserId, nowAccountInfo.getId())
|
||||
.eq(OilOrder::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(OilOrder::getOrderStatus, "paid");
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
oilOrderQuery.between(OilOrder::getCreateTime, startTime, endTime);
|
||||
@ -1754,7 +1755,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
//油号之间占比
|
||||
for (OilNumber oilNumber : oilNumbers) {
|
||||
HomeDataAnalysisVo homeDataAnalysisVo = new HomeDataAnalysisVo();
|
||||
homeDataAnalysisVo.setName(oilNumber.getOilName());
|
||||
homeDataAnalysisVo.setName(oilNumber.getOilNames() + oilNumber.getOilType() + "占比");
|
||||
homeDataAnalysisVo.setType(1);
|
||||
List<OilOrder> oilList = new ArrayList<>();
|
||||
for (OilOrder oilOrder : oilOrders) {
|
||||
@ -1762,9 +1763,9 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
oilList.add(oilOrder);
|
||||
}
|
||||
}
|
||||
DecimalFormat df = new DecimalFormat("#.00");
|
||||
String formattedResult = df.format(oilList.size());
|
||||
homeDataAnalysisVo.setValue(Double.parseDouble(formattedResult) / oilNumbers.size());
|
||||
double averageValue = (Double.parseDouble(String.valueOf(oilList.size())) / oilOrders.size()) * 100;
|
||||
String formattedResult = getFormattedResult(averageValue);
|
||||
homeDataAnalysisVo.setValue(Double.parseDouble(formattedResult));
|
||||
list.add(homeDataAnalysisVo);
|
||||
}
|
||||
|
||||
@ -1780,10 +1781,10 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
Integer oilAllOrderInfos = 0;
|
||||
Integer productionAllOrderInfos = 0;
|
||||
|
||||
//油品交易占比
|
||||
Double shareOfOilTransactions = 0.0;
|
||||
//非油品交易占比
|
||||
Double shareOfNonOilTransactions = 0.0;
|
||||
// //油品交易占比
|
||||
// shareOfOilTransactions = 0.0;
|
||||
// //非油品交易占比
|
||||
// shareOfNonOilTransactions = 0.0;
|
||||
for (AllOrderInfo allOrderInfo : allOrderInfos) {
|
||||
if ("1".equals(allOrderInfo.getType())) {
|
||||
oilAllOrderInfos += 1;
|
||||
@ -1791,8 +1792,9 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
productionAllOrderInfos += 1;
|
||||
}
|
||||
}
|
||||
shareOfOilTransactions = Double.parseDouble(String.valueOf(oilAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)));
|
||||
shareOfNonOilTransactions = Double.parseDouble(String.valueOf(productionAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)));
|
||||
Double i = ((double)oilAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)) * 100;
|
||||
Double shareOfOilTransactions = Double.valueOf((getFormattedResult(i)));
|
||||
Double shareOfNonOilTransactions = Double.valueOf(getFormattedResult(((double)productionAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)) * 100));
|
||||
|
||||
HomeDataAnalysisVo oilhomeDataAnalysisVo = new HomeDataAnalysisVo();
|
||||
oilhomeDataAnalysisVo.setName("油品交易占比");
|
||||
@ -1825,33 +1827,97 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
oilRecharge += 1;
|
||||
}
|
||||
}
|
||||
Integer sum = mtUser + product + oilRecharge + pointMall;
|
||||
|
||||
HomeDataAnalysisVo mtUserVo = new HomeDataAnalysisVo();
|
||||
mtUserVo.setName("会员充值占比");
|
||||
mtUserVo.setType(3);
|
||||
mtUserVo.setValue(Double.parseDouble(String.valueOf(mtUser / allOrderInfos.size())));
|
||||
mtUserVo.setValue(Double.parseDouble(getFormattedResult(((double)mtUser / sum) * 100)));
|
||||
list.add(mtUserVo);
|
||||
|
||||
HomeDataAnalysisVo productVo = new HomeDataAnalysisVo();
|
||||
productVo.setName("商品交易占比");
|
||||
productVo.setType(3);
|
||||
productVo.setValue(Double.parseDouble(String.valueOf(product / allOrderInfos.size())));
|
||||
productVo.setValue(Double.parseDouble(getFormattedResult(((double)product / sum) * 100)));
|
||||
list.add(productVo);
|
||||
|
||||
HomeDataAnalysisVo oilRechargeVo = new HomeDataAnalysisVo();
|
||||
oilRechargeVo.setName("油品充值占比");
|
||||
oilRechargeVo.setName("油品交易占比");
|
||||
oilRechargeVo.setType(3);
|
||||
oilRechargeVo.setValue(Double.parseDouble(String.valueOf(oilRecharge / allOrderInfos.size())));
|
||||
oilRechargeVo.setValue(Double.parseDouble(getFormattedResult(((double)oilRecharge / sum) * 100)));
|
||||
list.add(oilRechargeVo);
|
||||
|
||||
HomeDataAnalysisVo pointMallVo = new HomeDataAnalysisVo();
|
||||
pointMallVo.setName("积分商城交易占比");
|
||||
pointMallVo.setType(3);
|
||||
pointMallVo.setValue(Double.parseDouble(String.valueOf(pointMall / allOrderInfos.size())));
|
||||
pointMallVo.setValue(Double.parseDouble(getFormattedResult((double)pointMall / sum * 100)));
|
||||
list.add(pointMallVo);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 油站首页数据展示
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public HomeDataShowVo getDataShow(Map<String, String> map) {
|
||||
HomeDataShowVo homeDataShowVo = new HomeDataShowVo();
|
||||
String startTime = map.get("startTime");
|
||||
String endTime = map.get("endTime");
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
//查询出所有油号
|
||||
List<OilNumber> oilNumbers = oilNumberMapper.selectAllOil(nowAccountInfo.getStoreId());
|
||||
List<String> oilNames = oilNumbers.stream().map(oil -> oil.getOilNames() + oil.getOilType()).collect(Collectors.toList());
|
||||
homeDataShowVo.setOilNames(oilNames);
|
||||
//根据开始时间与结束时间获取所有天数
|
||||
List<String> days = getAllDatesBetween(startTime, endTime);
|
||||
List<Map<String, Object>> oilData = new ArrayList<>();
|
||||
for (String day : days) {
|
||||
Map<String, Object> mapData = new HashMap<>();
|
||||
mapData.put("day", day);
|
||||
List<Double> oilPrices = new ArrayList<>();
|
||||
for (OilNumber oilNumber : oilNumbers) {
|
||||
//查询油品交易总金额
|
||||
double price = oilOrderMapper.selectSumMoneyByDayAndOilNumber(oilNumber.getOilName(), day, nowAccountInfo.getStoreId());
|
||||
oilPrices.add(price);
|
||||
}
|
||||
mapData.put("oilPrices", oilPrices);
|
||||
oilData.add(mapData);
|
||||
}
|
||||
homeDataShowVo.setOilData(oilData);
|
||||
}
|
||||
return homeDataShowVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间段内的所有日期
|
||||
* @param startTime
|
||||
* @return
|
||||
*/
|
||||
public List<String> getAllDatesBetween(String startTime, String endTime) {
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate startDate = LocalDate.parse(startTime, formatter);
|
||||
LocalDate endDate = LocalDate.parse(endTime, formatter);
|
||||
|
||||
List<String> dateList = new ArrayList<>();
|
||||
while (!startDate.isAfter(endDate)) {
|
||||
dateList.add(startDate.format(formatter));
|
||||
startDate = startDate.plusDays(1);
|
||||
}
|
||||
|
||||
return dateList;
|
||||
}
|
||||
|
||||
private static String getFormattedResult(double averageValue) {
|
||||
DecimalFormat df = new DecimalFormat("#.00");
|
||||
String formattedResult = df.format(averageValue);
|
||||
return formattedResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 消费记录
|
||||
*
|
||||
|
@ -438,7 +438,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
Integer staffId = null;
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId"))) {
|
||||
staffId = Integer.valueOf(map.get("staffId"));
|
||||
}else {
|
||||
} else {
|
||||
staffId = nowAccountInfo.getStaffId();
|
||||
}
|
||||
// 会员消费金额(储值卡需要减少的金额)
|
||||
@ -456,7 +456,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
isMember = true;
|
||||
}
|
||||
// 使用积分数量
|
||||
Integer usePoint = Integer.valueOf(ObjectUtil.isNotEmpty(map.get("usePoint")) ? map.get("usePoint") :"0");
|
||||
Integer usePoint = Integer.valueOf(ObjectUtil.isNotEmpty(map.get("usePoint")) ? map.get("usePoint") : "0");
|
||||
// 积分金额
|
||||
Double pointAmount = Double.valueOf(ObjectUtil.isNotEmpty(map.get("pointAmount")) ? map.get("pointAmount") : "0.0");
|
||||
// 终端
|
||||
@ -493,20 +493,20 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
}
|
||||
|
||||
// 查看会员储值卡余额是否足够付款
|
||||
if (payType.equals("card_value")){
|
||||
if (ObjectUtil.isEmpty(userId)){
|
||||
if (payType.equals("card_value")) {
|
||||
if (ObjectUtil.isEmpty(userId)) {
|
||||
orders.put("error", "请先选择会员信息");
|
||||
return orders;
|
||||
}
|
||||
UserBalance userBalance = userBalanceService.selectUserBalance(userId, nowAccountInfo.getChainStoreId());
|
||||
if (userBalance.getCardBalance()<oilActualPay){
|
||||
if (userBalance.getCardBalance() < oilActualPay) {
|
||||
orders.put("error", "余额不足,请分开支付");
|
||||
return orders;
|
||||
}
|
||||
List<String> oilIds = cardValueRuleService.getOilIds(storeId);
|
||||
boolean flag = false;
|
||||
for (String oilId : oilIds) {
|
||||
if (oilId.equals(JSONObject.parseObject(oilOrder).get("oils").toString())){
|
||||
if (oilId.equals(JSONObject.parseObject(oilOrder).get("oils").toString())) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
@ -517,13 +517,13 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
}
|
||||
|
||||
// 查看会员囤油卡余额是否足够付款
|
||||
if (payType.equals("fule_card")){
|
||||
if (ObjectUtil.isEmpty(userId)){
|
||||
if (payType.equals("fule_card")) {
|
||||
if (ObjectUtil.isEmpty(userId)) {
|
||||
orders.put("error", "请先选择会员信息");
|
||||
return orders;
|
||||
}
|
||||
Double fuelAmount = userFuelService.selectByUserIdAndOilId(userId, Integer.valueOf(JSONObject.parseObject(oilOrder).get("oils").toString()), storeId);
|
||||
if (fuelAmount<oilActualPay){
|
||||
if (fuelAmount < oilActualPay) {
|
||||
orders.put("error", "余额不足,请分开支付");
|
||||
return orders;
|
||||
}
|
||||
@ -616,7 +616,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
if (payType.equals("CASH") || payType.equals("after_pay") || payType.equals("card_value")) {
|
||||
order.setPayTime(new Date());
|
||||
order.setOrderStatus("paid");
|
||||
if(ObjectUtil.isNotEmpty(userId)) this.insertCardBalance(consumeAmount, userId, storeId, orderNo);
|
||||
if (ObjectUtil.isNotEmpty(userId)) this.insertCardBalance(consumeAmount, userId, storeId, orderNo);
|
||||
this.addOilTracks(order, storeId);
|
||||
if (ObjectUtil.isNotEmpty(userId)) {
|
||||
this.updateGrowthValue(oilAmount, oilActualPay, userId, Integer.valueOf(jsonObject.get("oils").toString()), storeId, orderNo);
|
||||
@ -628,7 +628,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
}
|
||||
|
||||
baseMapper.insert(order);
|
||||
if (order.getOrderStatus().equals("paid")){
|
||||
if (order.getOrderStatus().equals("paid")) {
|
||||
this.updateCardAndActiveById(storeId, userId, order.getId());
|
||||
}
|
||||
}
|
||||
@ -747,12 +747,11 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
public void updateCardAndActiveById(Integer storeId, Integer userId, Integer orderId) {
|
||||
if (ObjectUtil.isNotEmpty(userId)) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("userId",userId.toString());
|
||||
map.put("storeId",storeId.toString());
|
||||
map.put("orderId",orderId.toString());
|
||||
map.put("userId", userId.toString());
|
||||
map.put("storeId", storeId.toString());
|
||||
map.put("orderId", orderId.toString());
|
||||
payCenterService.cashRegisterSpendWisely(map);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -763,10 +762,10 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
// 油品订单金额
|
||||
Double oilAmount = Double.valueOf(map.get("oilAmount"));
|
||||
// 将油品订单信息的json数据转换为数组
|
||||
List<JSONObject> oilOrders = null;
|
||||
JSONObject oilOrders = null;
|
||||
|
||||
if (!map.get("oilOrder").equals("[]")) {
|
||||
oilOrders = JSONArray.parseArray(map.get("oilOrder"), JSONObject.class);
|
||||
if (ObjectUtil.isNotEmpty(map.get("oilOrder"))) {
|
||||
oilOrders = JSONObject.parseObject(map.get("oilOrder"));
|
||||
// 二维码支付
|
||||
if (authCode.contains("9E")) {
|
||||
String[] split = authCode.split("9E");
|
||||
@ -1134,7 +1133,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
* @param oilOrders 油品订单
|
||||
* @return 是否成功
|
||||
*/
|
||||
private Map<String, String> updateUserBalanceAndInsetOrder1(int userId, Map<String, String> map, Double oilAmount, List<JSONObject> oilOrders, Integer storeId) {
|
||||
private Map<String, String> updateUserBalanceAndInsetOrder1(int userId, Map<String, String> map, Double oilAmount, JSONObject oilOrders, Integer storeId) {
|
||||
Map<String, String> res = new HashMap<>();
|
||||
LJStore store = storeService.selectStoreByStoreId(storeId);
|
||||
// 根据userId查询用户储值卡信息
|
||||
@ -1149,180 +1148,74 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
String orderNo = "2345" + timestamp + randomString;
|
||||
AccountInfo accountInfo = TokenUtil.getNowAccountInfo();
|
||||
|
||||
// 油品实付金额
|
||||
Double oilActualPay = Double.valueOf(map.get("oilActualPay"));
|
||||
// 储值卡消费金额 没有默认传0
|
||||
Double balanceAmount = Double.valueOf(ObjectUtil.isNotEmpty(map.get("balanceAmount")) ? map.get("balanceAmount") : "0");
|
||||
// 囤油卡消费升数 没有默认传0
|
||||
Double oilCardAmount = Double.valueOf(ObjectUtil.isNotEmpty(map.get("oilCardAmount")) ? map.get("oilCardAmount") : "0");
|
||||
// 储值卡余额
|
||||
Double cardBalance = balance.getCardBalance();
|
||||
|
||||
CardFuelRecord cardFuelRecord = new CardFuelRecord();
|
||||
cardFuelRecord.setMtUserId(userId);
|
||||
List<CardFuelRecord> recordByUserId = cardFuelRecordService.getRecordByUserId(cardFuelRecord);
|
||||
// 判断油品消费升数是否可使用
|
||||
Double fuelAmount = userFuelService.selectByUserIdAndOilId(userId, Integer.valueOf(oilOrders.get("oils").toString()), storeId);
|
||||
|
||||
// 锁价后应付金额
|
||||
Double lockupAmount = 0.0;
|
||||
for (CardFuelRecord fuelRecord : recordByUserId) {
|
||||
for (int i = 0; i < oilOrders.size(); i++) {
|
||||
if (fuelRecord.getOilName().equals(oilOrders.get(i).get("oilName"))) {
|
||||
lockupAmount += fuelRecord.getLockupPrice() * Double.valueOf(oilOrders.get(i).get("liters").toString());
|
||||
}
|
||||
}
|
||||
if (fuelAmount < oilCardAmount && cardBalance < oilActualPay) {
|
||||
res.put("error", "余额不足,请分开支付");
|
||||
return res;
|
||||
}
|
||||
|
||||
String status = "unpaid";
|
||||
|
||||
if (lockupAmount > 0.0) {
|
||||
OilOrder order = new OilOrder();
|
||||
OilOrder oilOrder = null;
|
||||
|
||||
// 添加收银台订单信息
|
||||
CashierOrder cashierOrder = new CashierOrder();
|
||||
boolean flag = false;
|
||||
if (cardBalance >= lockupAmount) {
|
||||
flag = true;
|
||||
status = "paid";
|
||||
} else {
|
||||
flag = false;
|
||||
status = "payFail";
|
||||
}
|
||||
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);
|
||||
order.setPayAmount(amount);
|
||||
order.setOrderNo(orderNo);
|
||||
} else {
|
||||
order.setOrderType("子订单");
|
||||
order.setOrderAmount(amount);
|
||||
order.setPayAmount(0.0);
|
||||
order.setOrderNo(orderNo + "1");
|
||||
}
|
||||
order.setStoreId(accountInfo.getStoreId());
|
||||
order.setUserId(userId);
|
||||
order.setCommissionAmount(Double.valueOf(map.get("commissionAmount")));
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId")))
|
||||
order.setStaffId(Integer.valueOf(map.get("staffId")));
|
||||
order.setTerminal(map.get("terminal"));
|
||||
order.setOils((String) oilOrders.get(i).get("oilName"));
|
||||
order.setOilGunNum(oilOrders.get(i).get("gunName").toString());
|
||||
order.setOilNum(oilNum);
|
||||
order.setPayUser(userVo1.getMobile());
|
||||
order.setPayType(map.get("payType"));
|
||||
order.setInvoicing("未开票");
|
||||
order.setOrderStatus(status);
|
||||
if (flag) order.setPayTime(new Date());
|
||||
|
||||
this.addOilTrack(oilOrders.get(i), accountInfo.getStoreId());
|
||||
if (ObjectUtil.isNotEmpty(this.selectOilOrderByOrderNo(orderNo))) {
|
||||
baseMapper.updateById(order);
|
||||
} else {
|
||||
baseMapper.insert(order);
|
||||
}
|
||||
|
||||
oilOrder = this.selectOilOrderByOrderNo(orderNo);
|
||||
this.updateGrowthValue1(oilAmount, 0.0, userId, Integer.valueOf(oilOrder.getOils()), 0.0, storeId, orderNo);
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId")))
|
||||
cashierOrder.setStaffId(Integer.valueOf(map.get("staffId")));
|
||||
cashierOrder.setStoreId(accountInfo.getStoreId());
|
||||
cashierOrder.setPayUser(userVo1.getMobile());
|
||||
cashierOrder.setAmount(oilAmount);
|
||||
cashierOrder.setOilPayAmount(oilAmount);
|
||||
cashierOrder.setPayAmount(oilAmount);
|
||||
cashierOrder.setStatus(status);
|
||||
cashierOrder.setPayTime(new Date());
|
||||
cashierOrder.setOrderNo(orderNo);
|
||||
cashierOrder.setOilOrderAmount(oilAmount);
|
||||
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, oilAmount, 0.0, map.get("payType"), userId, "PC", "1", status);
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId")))
|
||||
staffCommissionService.countStaffCommission(Integer.valueOf(map.get("staffId")), storeId, oilAmount, oilAmount, "1", orderNo);
|
||||
res.put("success", "success");
|
||||
} else {
|
||||
res.put("error", "储值卡余额不足!");
|
||||
}
|
||||
|
||||
OilOrder order = new OilOrder();
|
||||
|
||||
// 添加收银台/油品订单信息
|
||||
CashierOrder cashierOrder = new CashierOrder();
|
||||
Double amount = oilAmount;
|
||||
Double oilPrice = Double.valueOf(oilOrders.get("oilPrice").toString());
|
||||
Double oilNum = amount / oilPrice;
|
||||
order.setOrderType("主订单");
|
||||
order.setOrderAmount(amount);
|
||||
order.setPayAmount(oilActualPay);
|
||||
order.setOrderNo(orderNo);
|
||||
order.setStoreId(accountInfo.getStoreId());
|
||||
order.setUserId(userId);
|
||||
order.setStaffId(accountInfo.getStaffId());
|
||||
order.setTerminal(map.get("terminal"));
|
||||
order.setOils(oilOrders.get("oils").toString());
|
||||
order.setOilGunNum(oilOrders.get("oilGunNum").toString());
|
||||
order.setOilNum(oilNum);
|
||||
order.setPayUser(userVo1.getMobile());
|
||||
order.setPayType(map.get("payType"));
|
||||
order.setInvoicing("未开票");
|
||||
order.setOrderStatus("paid");
|
||||
order.setPayTime(new Date());
|
||||
this.addOilTracks(order, accountInfo.getStoreId());
|
||||
if (ObjectUtil.isNotEmpty(this.selectOilOrderByOrderNo(orderNo))) {
|
||||
baseMapper.updateById(order);
|
||||
} else {
|
||||
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);
|
||||
order.setPayAmount(amount);
|
||||
order.setOrderNo(orderNo);
|
||||
} else {
|
||||
order.setOrderType("子订单");
|
||||
order.setOrderAmount(amount);
|
||||
order.setPayAmount(0.0);
|
||||
order.setOrderNo(orderNo + "1");
|
||||
}
|
||||
order.setStoreId(accountInfo.getStoreId());
|
||||
order.setUserId(userId);
|
||||
order.setCommissionAmount(Double.valueOf(map.get("commissionAmount")));
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId")))
|
||||
order.setStaffId(Integer.valueOf(map.get("staffId")));
|
||||
order.setTerminal(map.get("terminal"));
|
||||
order.setOils((String) oilOrders.get(i).get("oilName"));
|
||||
order.setOilGunNum(oilOrders.get(i).get("gunName").toString());
|
||||
order.setOilNum(oilNum);
|
||||
order.setPayUser(userVo1.getMobile());
|
||||
order.setPayType(map.get("payType"));
|
||||
order.setInvoicing("未开票");
|
||||
order.setOrderStatus("paid");
|
||||
order.setPayTime(new Date());
|
||||
|
||||
this.addOilTrack(oilOrders.get(i), accountInfo.getStoreId());
|
||||
if (ObjectUtil.isNotEmpty(this.selectOilOrderByOrderNo(orderNo))) {
|
||||
baseMapper.updateById(order);
|
||||
} else {
|
||||
baseMapper.insert(order);
|
||||
}
|
||||
}
|
||||
OilOrder oilOrder = this.selectOilOrderByOrderNo(orderNo);
|
||||
|
||||
// 添加收银台订单信息
|
||||
CashierOrder cashierOrder = new CashierOrder();
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId")))
|
||||
cashierOrder.setStaffId(Integer.valueOf(map.get("staffId")));
|
||||
cashierOrder.setStoreId(accountInfo.getStoreId());
|
||||
cashierOrder.setPayUser(userVo1.getMobile());
|
||||
cashierOrder.setAmount(oilAmount);
|
||||
cashierOrder.setOilPayAmount(oilAmount);
|
||||
cashierOrder.setPayAmount(oilAmount);
|
||||
cashierOrder.setStatus("paid");
|
||||
cashierOrder.setPayTime(new Date());
|
||||
cashierOrder.setOrderNo(orderNo);
|
||||
cashierOrder.setOilOrderAmount(oilAmount);
|
||||
cashierOrder.setTerminal(map.get("terminal"));
|
||||
cashierOrder.setOilOrderId(oilOrder.getId());
|
||||
cashierOrder.setSeekZero(0.0);
|
||||
cashierOrder.setPayType(map.get("payType"));
|
||||
cashierOrderService.insertCashierOrder(cashierOrder);
|
||||
this.updateGrowthValue1(oilAmount, oilAmount, userId, Integer.valueOf(oilOrder.getOils()), 0.0, storeId, orderNo);
|
||||
this.insertAllOrderInfo(orderNo, accountInfo.getStoreId(), oilAmount, oilAmount, 0.0, map.get("payType"), userId, "PC", "1", "paid");
|
||||
if (ObjectUtil.isNotEmpty(map.get("staffId")))
|
||||
staffCommissionService.countStaffCommission(Integer.valueOf(map.get("staffId")), storeId, oilAmount, oilAmount, "1", orderNo);
|
||||
res.put("success", "success");
|
||||
} else {
|
||||
res.put("error", "储值卡余额不足!");
|
||||
}
|
||||
baseMapper.insert(order);
|
||||
}
|
||||
|
||||
this.updateGrowthValue1(oilAmount, 0.0, userId, Integer.valueOf(order.getOils()), 0.0, storeId, orderNo);
|
||||
|
||||
cashierOrder.setStaffId(order.getStaffId());
|
||||
cashierOrder.setStoreId(accountInfo.getStoreId());
|
||||
cashierOrder.setPayUser(userVo1.getMobile());
|
||||
cashierOrder.setAmount(oilAmount);
|
||||
cashierOrder.setOilPayAmount(oilAmount);
|
||||
cashierOrder.setPayAmount(oilAmount);
|
||||
cashierOrder.setStatus("paid");
|
||||
cashierOrder.setPayTime(new Date());
|
||||
cashierOrder.setOrderNo(orderNo);
|
||||
cashierOrder.setOilOrderAmount(oilAmount);
|
||||
cashierOrder.setTerminal(map.get("terminal"));
|
||||
cashierOrder.setOilOrderId(order.getId());
|
||||
cashierOrder.setSeekZero(0.0);
|
||||
cashierOrder.setPayType(map.get("payType"));
|
||||
cashierOrderService.insertCashierOrder(cashierOrder);
|
||||
this.insertAllOrderInfo(orderNo, storeId, oilAmount, oilAmount, 0.0, map.get("payType"), userId, "PC", "1", "paid");
|
||||
staffCommissionService.countStaffCommission(accountInfo.getStaffId(), storeId, oilAmount, oilAmount, "1", orderNo);
|
||||
res.put("success", "success");
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
@ -1468,13 +1361,13 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
OilName oilName = oilNameService.selectOilNameById(oilId);
|
||||
LJStore store = storeService.selectStoreByStoreId(storeId);
|
||||
if (oilName.getOilType().equals("汽油")) {
|
||||
userBalanceService.growthValue(userid,store.getChainStoreId(),storeId,"1",oilAmount,"油品订单消费",orderNo);
|
||||
userBalanceService.growthValue(userid, store.getChainStoreId(), storeId, "1", oilAmount, "油品订单消费", orderNo);
|
||||
}
|
||||
if (oilName.getOilType().equals("柴油")) {
|
||||
userBalanceService.growthValue(userid,store.getChainStoreId(),storeId,"2",oilAmount,"油品订单消费",orderNo);
|
||||
userBalanceService.growthValue(userid, store.getChainStoreId(), storeId, "2", oilAmount, "油品订单消费", orderNo);
|
||||
}
|
||||
if (oilName.getOilType().equals("天然气")) {
|
||||
userBalanceService.growthValue(userid,store.getChainStoreId(),storeId,"3",oilAmount,"油品订单消费",orderNo);
|
||||
userBalanceService.growthValue(userid, store.getChainStoreId(), storeId, "3", oilAmount, "油品订单消费", orderNo);
|
||||
}
|
||||
this.insertCardBalance(oilActualPay, userid, storeId, orderNo);
|
||||
}
|
||||
@ -1893,13 +1786,13 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
OilName oilName = oilNameService.selectOilNameById(oilId);
|
||||
LJStore store = storeService.selectStoreByStoreId(storeId);
|
||||
if (oilName.getOilType().equals("汽油")) {
|
||||
userBalanceService.growthValue(userid,store.getChainStoreId(),storeId,"1",oilAmount,"油品订单消费",orderNo);
|
||||
userBalanceService.growthValue(userid, store.getChainStoreId(), storeId, "1", oilAmount, "油品订单消费", orderNo);
|
||||
}
|
||||
if (oilName.getOilType().equals("柴油")) {
|
||||
userBalanceService.growthValue(userid,store.getChainStoreId(),storeId,"2",oilAmount,"油品订单消费",orderNo);
|
||||
userBalanceService.growthValue(userid, store.getChainStoreId(), storeId, "2", oilAmount, "油品订单消费", orderNo);
|
||||
}
|
||||
if (oilName.getOilType().equals("天然气")) {
|
||||
userBalanceService.growthValue(userid,store.getChainStoreId(),storeId,"3",oilAmount,"油品订单消费",orderNo);
|
||||
userBalanceService.growthValue(userid, store.getChainStoreId(), storeId, "3", oilAmount, "油品订单消费", orderNo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
package com.fuint.business.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class HomeDataShowVo {
|
||||
private List<String> oilNames;
|
||||
private List<Map<String, Object>> oilData;
|
||||
}
|
@ -41,6 +41,8 @@ public class OilNumber extends BaseEntity {
|
||||
public Integer id; //id(主键)
|
||||
public Integer upOrDown;//油价涨幅 1-升 2-降
|
||||
public String amplitudeOfChange; //涨幅
|
||||
@TableField(exist = false)
|
||||
public String oilNames;
|
||||
|
||||
|
||||
|
||||
|
@ -63,5 +63,7 @@ public interface OilNumberMapper extends BaseMapper<OilNumber> {
|
||||
List<OilNumberNameVo> selectOilNumberNameByStoreId(@Param("storeId") Integer storeId);
|
||||
|
||||
double getOilPriceById(@Param("oilId") Integer oilId,@Param("storeId") Integer storeId);
|
||||
|
||||
List<OilNumber> selectAllOil(Integer storeId);
|
||||
}
|
||||
|
||||
|
@ -155,4 +155,11 @@
|
||||
<select id="getOilPriceById" resultType="double">
|
||||
select oil_price from oil_number where oil_name = #{oilId} and store_id = #{storeId}
|
||||
</select>
|
||||
<select id="selectAllOil" resultType="com.fuint.business.petrolStationManagement.entity.OilNumber"
|
||||
parameterType="java.lang.Integer">
|
||||
select oin.*, ona.oil_name oilNames
|
||||
from oil_number oin
|
||||
left join oil_name ona on oin.oil_name = ona.id
|
||||
where oin.store_id = #{storeId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -109,7 +109,7 @@
|
||||
deduction: [{
|
||||
key: "oilStorageCard",
|
||||
value: "优先使用囤油卡付款",
|
||||
desc: "若囤油卡升数不足进行支付,则会与储值卡组合付款"
|
||||
desc: "若囤油卡升数不足时,则无法使用囤油卡支付"
|
||||
},
|
||||
{
|
||||
key: "balance",
|
||||
|
Loading…
Reference in New Issue
Block a user