Merge branch 'main' of http://122.51.230.86:3000/dianliang/oil-station
This commit is contained in:
commit
872cfdc423
@ -92,6 +92,7 @@ export const constantRoutes = [
|
||||
name: 'resourceOilstore',
|
||||
meta: { title: '系统首页1', icon: 'dashboard', affix: true }
|
||||
},
|
||||
|
||||
// {
|
||||
// path: 'resource_oilstore',
|
||||
// component: () => import('@/views/index'),
|
||||
|
@ -465,27 +465,27 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="适用商品" prop="productLimit">
|
||||
<div class="d-s" style="cursor: pointer">
|
||||
<div class="d-s" @click="ruleForm.productLimit = 1">
|
||||
<img src="../../../assets/images/wx.png" v-if="ruleForm.productLimit != 1" style="width: 20px;height: 20px;">
|
||||
<img src="../../../assets/images/xz.png" v-if="ruleForm.productLimit == 1" style="width: 20px;height: 20px;">
|
||||
<div>不限</div>
|
||||
</div>
|
||||
<div class="d-s" @click="ruleForm.productLimit = 2">
|
||||
<img src="../../../assets/images/wx.png" v-if="ruleForm.productLimit != 2" style="width: 20px;height: 20px;">
|
||||
<img src="../../../assets/images/xz.png" v-if="ruleForm.productLimit == 2" style="width: 20px;height: 20px;">
|
||||
<div>自定义</div>
|
||||
<el-select v-if="ruleForm.productLimit == 2" v-model="ruleForm.productIds" placeholder="请选择商品名称(可多选)" style="margin-left: 10px">
|
||||
<el-option
|
||||
v-for="item in goodsList"
|
||||
:key="item.id+''"
|
||||
:label="item.name"
|
||||
:value="item.id+''"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="适用商品" prop="productLimit">-->
|
||||
<!-- <div class="d-s" style="cursor: pointer">-->
|
||||
<!-- <div class="d-s" @click="ruleForm.productLimit = 1">-->
|
||||
<!-- <img src="../../../assets/images/wx.png" v-if="ruleForm.productLimit != 1" style="width: 20px;height: 20px;">-->
|
||||
<!-- <img src="../../../assets/images/xz.png" v-if="ruleForm.productLimit == 1" style="width: 20px;height: 20px;">-->
|
||||
<!-- <div>不限</div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="d-s" @click="ruleForm.productLimit = 2">-->
|
||||
<!-- <img src="../../../assets/images/wx.png" v-if="ruleForm.productLimit != 2" style="width: 20px;height: 20px;">-->
|
||||
<!-- <img src="../../../assets/images/xz.png" v-if="ruleForm.productLimit == 2" style="width: 20px;height: 20px;">-->
|
||||
<!-- <div>自定义</div>-->
|
||||
<!-- <el-select v-if="ruleForm.productLimit == 2" v-model="ruleForm.productIds" placeholder="请选择商品名称(可多选)" style="margin-left: 10px">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in goodsList"-->
|
||||
<!-- :key="item.id+''"-->
|
||||
<!-- :label="item.name"-->
|
||||
<!-- :value="item.id+''"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
|
||||
<el-form-item>
|
||||
|
@ -88,7 +88,7 @@ export default {
|
||||
|
||||
<style scoped lang="scss">
|
||||
.app-container{
|
||||
height: 100%;
|
||||
|
||||
}
|
||||
.banner-box{
|
||||
width: 100%;
|
||||
|
135
fuintAdmin/src/views/notificationList/index.vue
Normal file
135
fuintAdmin/src/views/notificationList/index.vue
Normal file
@ -0,0 +1,135 @@
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div class="top-box">
|
||||
<span style="cursor: pointer" @click="goback()">当前位置:首页--通知公告</span>
|
||||
</div>
|
||||
<div class="hui_box">
|
||||
|
||||
<div class="top_new">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" style="width: 100%" :inline="true" >
|
||||
|
||||
<el-form-item label="" prop="payUser">
|
||||
<el-input
|
||||
v-model="queryParams.payUser"
|
||||
placeholder="请输入通知内容的关键词"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="payUser">
|
||||
<el-input
|
||||
v-model="queryParams.payUser"
|
||||
placeholder="请选择通知类型"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item >
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="height: 32px;width: 20%;display: flex;justify-content: flex-end">
|
||||
<el-button type="primary" icon="el-icon-search" @click="">查询</el-button>
|
||||
<el-button icon="el-icon-refresh" @click="">重置</el-button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
:data="list"
|
||||
border
|
||||
style="width: 100%">
|
||||
<el-table-column type="index" width="50" align="center" label="序号"/>
|
||||
<el-table-column label="通知类型" align="center" prop="orderNo" width="220"/>
|
||||
<el-table-column label="通知内容" align="center" prop="terminal"/>
|
||||
|
||||
<el-table-column label="创建人" align="center" prop="terminal"/>
|
||||
<el-table-column label="创建时间" align="center" prop="terminal"/>
|
||||
<el-table-column label="发送时间" align="center" prop="terminal"/>
|
||||
</el-table>
|
||||
<div class="pagination-box">
|
||||
<el-pagination
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.page"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@current-change="getList">
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "order_Goods",
|
||||
data() {
|
||||
return {
|
||||
List:[],
|
||||
beginTime:'',
|
||||
endTime:'',
|
||||
queryParams: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
total:0
|
||||
}
|
||||
|
||||
},
|
||||
methods:{
|
||||
getList(){
|
||||
|
||||
},
|
||||
goback(){
|
||||
this.$router.go(-1)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.top_new{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
border-radius: 8px;
|
||||
box-sizing: border-box;
|
||||
height: 64px;
|
||||
margin-bottom: 5px;
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.table-box {
|
||||
width: 100%;
|
||||
height: 66vh;
|
||||
overflow: auto;
|
||||
background: #FFF;
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
min-height: 78vh;
|
||||
}
|
||||
.hui_box{
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
background: #f6f8f9;
|
||||
}
|
||||
.top-box{
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 400;
|
||||
font-size: 12px;
|
||||
color: #666666;
|
||||
|
||||
padding-left: 25px;
|
||||
}
|
||||
</style>
|
@ -138,7 +138,7 @@
|
||||
size="mini"
|
||||
type="text"
|
||||
@click="returnRecord(scope.row.id)"
|
||||
>归还详情</el-button>
|
||||
>170px</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="home-index">
|
||||
<el-carousel height="230px">
|
||||
<el-carousel-item v-for="(item,index) in bannerList" :key="index">
|
||||
<div class="bannser">
|
||||
@ -35,7 +35,7 @@
|
||||
<div class="right-box">
|
||||
<div class="title_">
|
||||
<div>通知中心</div>
|
||||
<div style="font-size: 12px;color: #BBBBBB;display: flex;align-items: center">更多 <i class="el-icon-arrow-right"></i> </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 noticeList" :key="index" >【{{ item.notificationType }}】{{ item.templateContent }}</div>
|
||||
@ -55,19 +55,9 @@
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="getStoreAmount">
|
||||
@blur="getStoreAmount">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<!-- <div style="margin-right: 40px">-->
|
||||
<!-- <el-select v-model="value" clearable placeholder="请选择" @change="chooseDept()">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in options"-->
|
||||
<!-- :key="item.deptId"-->
|
||||
<!-- :label="item.deptName"-->
|
||||
<!-- :value="item.deptId">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<div class="d-s" style="margin-top: 15px">
|
||||
<div class="k-box">
|
||||
@ -75,34 +65,34 @@
|
||||
<div class="sian"></div>
|
||||
<div>油品销售金额(元)/交易笔数</div>
|
||||
</div>
|
||||
<div class="num-size">{{ storeAmount.storeTotal || 0 }}/{{ storeAmount.refundTotal || 0 }}</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>
|
||||
<div class="num-size">{{ storeAmount.tradeAmount || 0 }}/{{ storeAmount.tradeTotal || 0 }}</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>
|
||||
<div class="num-size">{{ storeAmount.refundAmount || 0 }}/{{ storeAmount.refundTotal || 0 }}</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>
|
||||
<div class="num-size">{{ storeAmount.averagePrice || 0 }}/{{ storeAmount.refundTotal || 0 }}</div>
|
||||
<div class="num-size">{{ storeAmount.pointMallAmount || 0 }}/{{ storeAmount.pointMallNum || 0 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hui-hang"></div>
|
||||
<div class="d-s" >
|
||||
<div>
|
||||
<div class="h-tt" >活跃油站</div>
|
||||
<div class="h-tt" >数据分析</div>
|
||||
<div id="ccc" style="width: 300px;height: 200px; "></div>
|
||||
</div>
|
||||
<div class="h-r-ba"></div>
|
||||
@ -252,6 +242,9 @@ export default {
|
||||
// this.initChart()
|
||||
},
|
||||
methods:{
|
||||
goList(){
|
||||
this.$router.push('/notificationList/index')
|
||||
},
|
||||
// 获取员工排行信息
|
||||
getEmployeList() {
|
||||
this.employeLoading = true
|
||||
@ -804,7 +797,6 @@ export default {
|
||||
.app-container{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
/* height: 100vh; */
|
||||
background: #f4f5f9;
|
||||
}
|
||||
.d-s{
|
||||
@ -827,10 +819,10 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 20px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
.left-box{
|
||||
width: 73%;
|
||||
width: 74%;
|
||||
background: #FFFFFF;
|
||||
border-radius: 10px 10px 10px 10px;
|
||||
border: 1px solid #FFFFFF;
|
||||
@ -842,7 +834,7 @@ export default {
|
||||
padding: 15px;
|
||||
}
|
||||
.left-box-t{
|
||||
width: 73%;
|
||||
width: 74%;
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
@ -869,6 +861,7 @@ export default {
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
.san-box{
|
||||
width: 24%;
|
||||
@ -880,9 +873,6 @@ export default {
|
||||
margin-right: 15px;
|
||||
box-sizing: border-box;
|
||||
padding: 20px 40px;
|
||||
//display: flex;
|
||||
//align-items: center;
|
||||
//justify-content: space-between;
|
||||
}
|
||||
.r-title{
|
||||
font-weight: bold;
|
||||
@ -1032,5 +1022,8 @@ export default {
|
||||
width: 20%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.home-index{
|
||||
|
||||
}
|
||||
</style>
|
||||
|
@ -3,6 +3,8 @@ package com.fuint.business.marketingActivity.cardValueRule.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fuint.business.marketingActivity.cardValueRule.entity.CardValueRule;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 储值卡规则(CardValueRule)表服务接口
|
||||
*
|
||||
@ -10,6 +12,11 @@ import com.fuint.business.marketingActivity.cardValueRule.entity.CardValueRule;
|
||||
* @since 2024-09-08 18:19:04
|
||||
*/
|
||||
public interface CardValueRuleService extends IService<CardValueRule> {
|
||||
|
||||
/**
|
||||
* 根据店铺id查询储值卡规则的油品id列表
|
||||
* @param storeId
|
||||
* @return
|
||||
*/
|
||||
List<String> getOilIds(Integer storeId);
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,19 @@
|
||||
package com.fuint.business.marketingActivity.cardValueRule.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.marketingActivity.cardValueRule.mapper.CardValueRuleMapper;
|
||||
import com.fuint.business.marketingActivity.cardValueRule.entity.CardValueRule;
|
||||
import com.fuint.business.marketingActivity.cardValueRule.service.CardValueRuleService;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 储值卡规则(CardValueRule)表服务实现类
|
||||
*
|
||||
@ -15,5 +23,17 @@ import org.springframework.stereotype.Service;
|
||||
@Service("cardValueRuleService")
|
||||
public class CardValueRuleServiceImpl extends ServiceImpl<CardValueRuleMapper, CardValueRule> implements CardValueRuleService {
|
||||
|
||||
@Override
|
||||
public List<String> getOilIds(Integer storeId) {
|
||||
List<String> list = new ArrayList<String>();
|
||||
LambdaQueryWrapper<CardValueRule> queryWrapper =new LambdaQueryWrapper<CardValueRule>();
|
||||
queryWrapper.eq(CardValueRule::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
|
||||
.eq(CardValueRule::getType,"0").last("limit 1");
|
||||
CardValueRule one = baseMapper.selectOne(queryWrapper);
|
||||
if (ObjectUtil.isNotEmpty(one) && ObjectUtil.isNotEmpty(one.getOilNumber())){
|
||||
list = Arrays.asList(one.getOilNumber().split(","));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -319,12 +319,22 @@ public class AllOrderInfoController extends BaseController {
|
||||
@GetMapping("queryByPageUni")
|
||||
public ResponseObject queryByPageUni(@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,
|
||||
@Param("integralDetail") AllOrderInfo allOrderInfo) {
|
||||
@Param("integralDetail") AllOrderInfoUniVo allOrderInfo) {
|
||||
Page page = new Page(pageNo, pageSize);
|
||||
IPage<AllOrderInfoUniVo> iPageList = this.allOrderInfoService.queryByPageUni(page, allOrderInfo);
|
||||
return getSuccessResult(iPageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取消费金额(小程序)
|
||||
* @param storeId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("getConsumptionMoney")
|
||||
public ResponseObject getConsumptionMoney(AllOrderInfoUniVo allOrderInfo){
|
||||
return getSuccessResult(allOrderInfoService.getConsumptionMoney(allOrderInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单号查询(小程序)
|
||||
*
|
||||
|
@ -102,5 +102,5 @@ public interface AllOrderInfoMapper extends BaseMapper<AllOrderInfo> {
|
||||
|
||||
// IPage<CardValueOrdersVo> getBlanceANdOrder(Page page, @Param("order") CardValueOrdersDTO allOrderInfo);
|
||||
|
||||
IPage<AllOrderInfoUniVo> queryAllByLimit(Page page, @Param("allOrderInfo") AllOrderInfo allOrderInfo);
|
||||
IPage<AllOrderInfoUniVo> queryAllByLimit(Page page, @Param("allOrderInfo") AllOrderInfoUniVo allOrderInfo);
|
||||
}
|
@ -138,4 +138,6 @@ public interface OilOrderMapper extends BaseMapper<OilOrder> {
|
||||
List<OilOrderVo> selectOilsCount(@Param("oilOrderVo") OilOrderVo oilOrderVo,@Param("storeIds") List<Integer> storeIds);
|
||||
|
||||
OilOrderVo getInfoByOrderNo(String orderNo);
|
||||
|
||||
Double selectSumMoeny(@Param("orderNos") List<String> orderNos);
|
||||
}
|
||||
|
@ -784,20 +784,36 @@
|
||||
when type = 6 then '收银台订单'
|
||||
when type = 7 then '挂账订单'
|
||||
when type = 8 then 'pos'
|
||||
else '未知' end as type_name
|
||||
else '未知' end as typeName,
|
||||
case when pay_type = 'ALIPAY' then '支付宝'
|
||||
when pay_type = 'WECHAT' then '微信'
|
||||
when pay_type = 'UNIONPAY' then '银联二维码'
|
||||
when pay_type = 'CASH' then '现金'
|
||||
when pay_type = 'APPLET_CODE' then '小程序码'
|
||||
when pay_type = 'card_value' then '储值卡'
|
||||
when pay_type = 'fule_card' then '囤油卡'
|
||||
when pay_type = 'car_card_value' then '车队卡'
|
||||
when pay_type = 'car_fule_card' then '车队囤油卡'
|
||||
when pay_type = 'after_pay' then '挂账'
|
||||
else '未知' end as payType
|
||||
from all_order_info a
|
||||
join mt_store m
|
||||
on a.store_id = m.id
|
||||
<where>
|
||||
a.status = "paid"
|
||||
<if test="allOrderInfo.storeId != null">
|
||||
a.store_id = #{allOrderInfo.storeId}
|
||||
and a.store_id = #{allOrderInfo.storeId}
|
||||
</if>
|
||||
<if test="allOrderInfo.userId != null">
|
||||
and a.user_id = #{allOrderInfo.userId}
|
||||
</if>
|
||||
<if test="allOrderInfo.status != null">
|
||||
and a.status = #{allOrderInfo.status}
|
||||
<if test="allOrderInfo.startTime != null">
|
||||
and a.pay_time between #{allOrderInfo.startTime} and #{allOrderInfo.endTime}
|
||||
</if>
|
||||
<if test="allOrderInfo.content != null and allOrderInfo.content != ''">
|
||||
and a.content like concat('%',#{allOrderInfo.content},'%')
|
||||
</if>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
<select id="getOneByOrderId" resultType="com.fuint.business.order.vo.AllOrderActivityVo">
|
||||
|
@ -797,4 +797,11 @@
|
||||
</where>
|
||||
limit 1
|
||||
</select>
|
||||
<select id="selectSumMoeny" resultType="java.lang.Double">
|
||||
select sum(pay_amount) from oil_order
|
||||
where order_no in
|
||||
<foreach collection="orderNos" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -7,10 +7,7 @@ import com.fuint.business.order.dto.AllOrderInfoDto;
|
||||
import com.fuint.business.order.entity.AllOrderInfo;
|
||||
import com.fuint.business.order.entity.CashierOrder;
|
||||
import com.fuint.business.order.entity.HandoverRecord;
|
||||
import com.fuint.business.order.vo.AllOrderActivityVo;
|
||||
import com.fuint.business.order.vo.AllOrderInfoUniVo;
|
||||
import com.fuint.business.order.vo.AllOrderInfoVo;
|
||||
import com.fuint.business.order.vo.CardBalanceChangeVo;
|
||||
import com.fuint.business.order.vo.*;
|
||||
import com.fuint.framework.exception.BusinessCheckException;
|
||||
import com.fuint.system.dept.vo.SysDeptVo;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -153,13 +150,27 @@ public interface AllOrderInfoService {
|
||||
*/
|
||||
Map<String ,Object> getDataBoard(Map<String,String> map);
|
||||
|
||||
/**
|
||||
* 油站首页数据分析
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
List<HomeDataAnalysisVo> getDataAnalysis(Map<String, String> map);
|
||||
|
||||
/**
|
||||
* 消费记录
|
||||
* @param page
|
||||
* @param allOrderInfo
|
||||
* @return
|
||||
*/
|
||||
IPage<AllOrderInfoUniVo> queryByPageUni(Page page, AllOrderInfo allOrderInfo);
|
||||
IPage<AllOrderInfoUniVo> queryByPageUni(Page page, AllOrderInfoUniVo allOrderInfo);
|
||||
|
||||
/**
|
||||
* 获取消费金额(小程序)
|
||||
* @param storeId
|
||||
* @return
|
||||
*/
|
||||
Double getConsumptionMoney(AllOrderInfoUniVo allOrderInfo);
|
||||
|
||||
// 根据订单id 查询订单 并且有且只有一个关联油品订单
|
||||
AllOrderActivityVo getOneByOrderId(Integer orderId);
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.fuint.business.order.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
@ -31,7 +32,9 @@ import com.fuint.business.order.vo.*;
|
||||
import com.fuint.business.order.vo.Excel.*;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilGun;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilName;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilNumber;
|
||||
import com.fuint.business.petrolStationManagement.entity.OilTracking;
|
||||
import com.fuint.business.petrolStationManagement.mapper.OilNumberMapper;
|
||||
import com.fuint.business.petrolStationManagement.service.OilGunService;
|
||||
import com.fuint.business.petrolStationManagement.service.OilNameService;
|
||||
import com.fuint.business.petrolStationManagement.service.OilTankService;
|
||||
@ -86,6 +89,8 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
|
||||
@Resource
|
||||
AllOrderInfoMapper allOrderInfoMapper;
|
||||
@Autowired
|
||||
OilNumberMapper oilNumberMapper;
|
||||
|
||||
|
||||
@Override
|
||||
@ -150,6 +155,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
row = baseMapper.insert(allOrderInfo);
|
||||
return row;
|
||||
}
|
||||
|
||||
// 支付通道分析 下面列表数据
|
||||
public IPage<AllOrderInfoVo> getFenxiByDaili(Page page, AllOrderInfo allOrderInfo) {
|
||||
if (ObjectUtil.isEmpty(allOrderInfo.getDeptId())) {
|
||||
@ -213,6 +219,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
|
||||
return fenxiByDailiTypeBydata;
|
||||
}
|
||||
|
||||
// 支付通道分析 上面 统计数据
|
||||
@Override
|
||||
public Map<String, Object> getFenxiByDailiBydata(AllOrderInfo allOrderInfo) {
|
||||
@ -1616,6 +1623,8 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getDataBoard(Map<String, String> map) {
|
||||
map.put("startTime", map.get("params[beginTime]"));
|
||||
map.put("endTime", map.get("params[endTime]"));
|
||||
Map<String, Object> map1 = new HashMap<>();
|
||||
// 油品销售金额
|
||||
Double oilAmount = 0.0;
|
||||
@ -1642,6 +1651,65 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
oilAmount = Double.valueOf(sumAndNum.get("payMoney").toString());
|
||||
oilNum = Integer.valueOf(sumAndNum.get("allNum").toString());
|
||||
|
||||
String startTime = map.get("startTime");
|
||||
String endTime = map.get("endTime");
|
||||
|
||||
|
||||
LambdaQueryWrapper<AllOrderInfo> queryWrapper = new LambdaQueryWrapper<AllOrderInfo>()
|
||||
.eq(AllOrderInfo::getStatus, "paid")
|
||||
.eq(AllOrderInfo::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
|
||||
.like(AllOrderInfo::getContent, "充值");
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
queryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
|
||||
}
|
||||
|
||||
//查询会员充值信息
|
||||
List<AllOrderInfo> allOrderInfos = baseMapper.selectList(queryWrapper);
|
||||
//会员充值笔数
|
||||
userRechargeNum = allOrderInfos.size();
|
||||
//会员充值金额
|
||||
userRechargeAmount = allOrderInfos.stream().mapToDouble(AllOrderInfo::getPayMoney).sum();
|
||||
|
||||
|
||||
LambdaQueryWrapper<AllOrderInfo> proQueryWrapper = new LambdaQueryWrapper<AllOrderInfo>()
|
||||
.eq(AllOrderInfo::getStatus, "paid")
|
||||
.eq(AllOrderInfo::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
|
||||
.in(AllOrderInfo::getType, "2", "6");
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
proQueryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
|
||||
}
|
||||
//查询便利店信息
|
||||
allOrderInfos = baseMapper.selectList(proQueryWrapper);
|
||||
//便利店笔数
|
||||
minimartNum = allOrderInfos.size();
|
||||
List<String> orderNos = allOrderInfos.stream()
|
||||
.filter(order -> "6".equals(order.getType()))
|
||||
.map(AllOrderInfo::getOrderNo).collect(Collectors.toList());
|
||||
//总金额
|
||||
minimartAmount = allOrderInfos.stream().mapToDouble(AllOrderInfo::getPayMoney).sum();
|
||||
if (CollectionUtil.isNotEmpty(orderNos)) {
|
||||
//根据订单号集合查询油品总金额
|
||||
Double oilMoney = oilOrderMapper.selectSumMoeny(orderNos);
|
||||
//便利店金额
|
||||
minimartAmount = minimartAmount - oilMoney;
|
||||
DecimalFormat df = new DecimalFormat("#.00");
|
||||
String formattedResult = df.format(minimartAmount);
|
||||
minimartAmount = Double.parseDouble(formattedResult);
|
||||
}
|
||||
|
||||
|
||||
LambdaQueryWrapper<AllOrderInfo> pointQueryWrapper = new LambdaQueryWrapper<AllOrderInfo>()
|
||||
.eq(AllOrderInfo::getStatus, "paid")
|
||||
.eq(AllOrderInfo::getStoreId, TokenUtil.getNowAccountInfo().getStoreId())
|
||||
.eq(AllOrderInfo::getType, "4");
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
pointQueryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
|
||||
}
|
||||
|
||||
//查询积分商城信息
|
||||
allOrderInfos = baseMapper.selectList(pointQueryWrapper);
|
||||
pointMallNum = allOrderInfos.size();
|
||||
pointMallAmount = allOrderInfos.stream().mapToDouble(order -> order.getPayMoney() == null ? 0 : order.getPayMoney()).sum();
|
||||
map1.put("oilAmount", oilAmount);
|
||||
map1.put("oilNum", oilNum);
|
||||
map1.put("userRechargeAmount", userRechargeAmount);
|
||||
@ -1654,6 +1722,136 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
return map1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 油站首页数据分析
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<HomeDataAnalysisVo> getDataAnalysis(Map<String, String> map) {
|
||||
List<HomeDataAnalysisVo> list = new ArrayList<>();
|
||||
String startTime = map.get("startTime");
|
||||
String endTime = map.get("endTime");
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
|
||||
|
||||
//查询所有油品
|
||||
List<OilNumber> oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper<OilNumber>()
|
||||
.eq(OilNumber::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(OilNumber::getState, "1")
|
||||
.eq(OilNumber::getIfDelete, "0"));
|
||||
|
||||
LambdaQueryWrapper<OilOrder> oilOrderQuery = new LambdaQueryWrapper<OilOrder>();
|
||||
oilOrderQuery.eq(OilOrder::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(OilOrder::getUserId, nowAccountInfo.getId())
|
||||
.eq(OilOrder::getOrderStatus, "paid");
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
oilOrderQuery.between(OilOrder::getCreateTime, startTime, endTime);
|
||||
}
|
||||
List<OilOrder> oilOrders = oilOrderMapper.selectList(oilOrderQuery);
|
||||
|
||||
//油号之间占比
|
||||
for (OilNumber oilNumber : oilNumbers) {
|
||||
HomeDataAnalysisVo homeDataAnalysisVo = new HomeDataAnalysisVo();
|
||||
homeDataAnalysisVo.setName(oilNumber.getOilName());
|
||||
homeDataAnalysisVo.setType(1);
|
||||
List<OilOrder> oilList = new ArrayList<>();
|
||||
for (OilOrder oilOrder : oilOrders) {
|
||||
if (oilNumber.getOilName().equals(oilOrder.getOils())) {
|
||||
oilList.add(oilOrder);
|
||||
}
|
||||
}
|
||||
DecimalFormat df = new DecimalFormat("#.00");
|
||||
String formattedResult = df.format(oilList.size());
|
||||
homeDataAnalysisVo.setValue(Double.parseDouble(formattedResult) / oilNumbers.size());
|
||||
list.add(homeDataAnalysisVo);
|
||||
}
|
||||
|
||||
//查询订单表
|
||||
LambdaQueryWrapper<AllOrderInfo> allOrderInfoLambdaQueryWrapper = new LambdaQueryWrapper<AllOrderInfo>();
|
||||
allOrderInfoLambdaQueryWrapper.eq(AllOrderInfo::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(AllOrderInfo::getStoreId, nowAccountInfo.getStoreId())
|
||||
.eq(AllOrderInfo::getStatus, "paid");
|
||||
if (ObjectUtil.isNotEmpty(startTime) && ObjectUtil.isNotEmpty(endTime)) {
|
||||
allOrderInfoLambdaQueryWrapper.between(AllOrderInfo::getCreateTime, startTime, endTime);
|
||||
}
|
||||
List<AllOrderInfo> allOrderInfos = baseMapper.selectList(allOrderInfoLambdaQueryWrapper);
|
||||
Integer oilAllOrderInfos = 0;
|
||||
Integer productionAllOrderInfos = 0;
|
||||
|
||||
//油品交易占比
|
||||
Double shareOfOilTransactions = 0.0;
|
||||
//非油品交易占比
|
||||
Double shareOfNonOilTransactions = 0.0;
|
||||
for (AllOrderInfo allOrderInfo : allOrderInfos) {
|
||||
if ("1".equals(allOrderInfo.getType())) {
|
||||
oilAllOrderInfos += 1;
|
||||
} else if ("2".equals(allOrderInfo.getType()) || "3".equals(allOrderInfo.getType()) || "4".equals(allOrderInfo.getType()) || "5".equals(allOrderInfo.getType())) {
|
||||
productionAllOrderInfos += 1;
|
||||
}
|
||||
}
|
||||
shareOfOilTransactions = Double.parseDouble(String.valueOf(oilAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)));
|
||||
shareOfNonOilTransactions = Double.parseDouble(String.valueOf(productionAllOrderInfos / (oilAllOrderInfos + productionAllOrderInfos)));
|
||||
|
||||
HomeDataAnalysisVo oilhomeDataAnalysisVo = new HomeDataAnalysisVo();
|
||||
oilhomeDataAnalysisVo.setName("油品交易占比");
|
||||
oilhomeDataAnalysisVo.setType(2);
|
||||
oilhomeDataAnalysisVo.setValue(shareOfOilTransactions);
|
||||
list.add(oilhomeDataAnalysisVo);
|
||||
|
||||
HomeDataAnalysisVo noOilhomeDataAnalysisVo = new HomeDataAnalysisVo();
|
||||
noOilhomeDataAnalysisVo.setName("非油品交易占比");
|
||||
noOilhomeDataAnalysisVo.setType(2);
|
||||
noOilhomeDataAnalysisVo.setValue(shareOfNonOilTransactions);
|
||||
list.add(noOilhomeDataAnalysisVo);
|
||||
|
||||
//会员充值占比 便利店交易占比 油品交易占比 积分商城交易占比
|
||||
Integer mtUser = 0;
|
||||
Integer product = 0;
|
||||
Integer oilRecharge = 0;
|
||||
Integer pointMall = 0;
|
||||
for (AllOrderInfo allOrderInfo : allOrderInfos) {
|
||||
if ("3".equals(allOrderInfo.getType()) || "5".equals(allOrderInfo.getType())) {
|
||||
mtUser += 1;
|
||||
} else if ("2".equals(allOrderInfo.getType())) {
|
||||
product += 1;
|
||||
} else if ("1".equals(allOrderInfo.getType())) {
|
||||
oilRecharge += 1;
|
||||
} else if ("4".equals(allOrderInfo.getType())) {
|
||||
pointMall += 1;
|
||||
} else if ("6".equals(allOrderInfo.getType())) {
|
||||
product += 1;
|
||||
oilRecharge += 1;
|
||||
}
|
||||
}
|
||||
|
||||
HomeDataAnalysisVo mtUserVo = new HomeDataAnalysisVo();
|
||||
mtUserVo.setName("会员充值占比");
|
||||
mtUserVo.setType(3);
|
||||
mtUserVo.setValue(Double.parseDouble(String.valueOf(mtUser / allOrderInfos.size())));
|
||||
list.add(mtUserVo);
|
||||
|
||||
HomeDataAnalysisVo productVo = new HomeDataAnalysisVo();
|
||||
productVo.setName("商品交易占比");
|
||||
productVo.setType(3);
|
||||
productVo.setValue(Double.parseDouble(String.valueOf(product / allOrderInfos.size())));
|
||||
list.add(productVo);
|
||||
|
||||
HomeDataAnalysisVo oilRechargeVo = new HomeDataAnalysisVo();
|
||||
oilRechargeVo.setName("油品充值占比");
|
||||
oilRechargeVo.setType(3);
|
||||
oilRechargeVo.setValue(Double.parseDouble(String.valueOf(oilRecharge / allOrderInfos.size())));
|
||||
list.add(oilRechargeVo);
|
||||
|
||||
HomeDataAnalysisVo pointMallVo = new HomeDataAnalysisVo();
|
||||
pointMallVo.setName("积分商城交易占比");
|
||||
pointMallVo.setType(3);
|
||||
pointMallVo.setValue(Double.parseDouble(String.valueOf(pointMall / allOrderInfos.size())));
|
||||
list.add(pointMallVo);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 消费记录
|
||||
*
|
||||
@ -1662,13 +1860,50 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<AllOrderInfoUniVo> queryByPageUni(Page page, AllOrderInfo allOrderInfo) {
|
||||
public IPage<AllOrderInfoUniVo> queryByPageUni(Page page, AllOrderInfoUniVo allOrderInfo) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
allOrderInfo.setUserId(nowAccountInfo.getId());
|
||||
allOrderInfo.setStatus("paid");
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo.getStartTime())) {
|
||||
DateTime parse = DateUtil.parse(allOrderInfo.getStartTime(), "yyyy-MM");
|
||||
allOrderInfo.setStartTime(DateUtil.beginOfMonth(parse).toString());
|
||||
allOrderInfo.setEndTime(DateUtil.endOfMonth(parse).toString());
|
||||
}
|
||||
// allOrderInfo.setStatus("paid");
|
||||
return this.allOrderInfoMapper.queryAllByLimit(page, allOrderInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取消费金额(小程序)
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Double getConsumptionMoney(AllOrderInfoUniVo allOrderInfo) {
|
||||
Integer id = TokenUtil.getNowAccountInfo().getId();
|
||||
LambdaQueryWrapper<AllOrderInfo> allOrderInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
allOrderInfoLambdaQueryWrapper.eq(AllOrderInfo::getStoreId, allOrderInfo.getStoreId())
|
||||
.eq(AllOrderInfo::getStatus, "paid")
|
||||
.eq(AllOrderInfo::getUserId, id);
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo.getStartTime())) {
|
||||
DateTime parse = DateUtil.parse(allOrderInfo.getStartTime(), "yyyy-MM");
|
||||
allOrderInfo.setStartTime(DateUtil.beginOfMonth(parse).toString());
|
||||
allOrderInfo.setEndTime(DateUtil.endOfMonth(parse).toString());
|
||||
allOrderInfoLambdaQueryWrapper.between(AllOrderInfo::getPayTime, allOrderInfo.getStartTime(), allOrderInfo.getEndTime());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(allOrderInfo.getContent())) {
|
||||
allOrderInfoLambdaQueryWrapper.like(AllOrderInfo::getContent, allOrderInfo.getContent());
|
||||
}
|
||||
List<AllOrderInfo> paid = baseMapper.selectList(allOrderInfoLambdaQueryWrapper);
|
||||
|
||||
//计算实付金额
|
||||
double sum = paid.stream()
|
||||
.filter(order -> !Optional.ofNullable(order.getContent()).orElse("").contains("充值"))
|
||||
.mapToDouble(order -> order.getPayMoney() != null ? order.getPayMoney() : 0.0)
|
||||
.sum();
|
||||
return sum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AllOrderActivityVo getOneByOrderId(Integer orderId) {
|
||||
AllOrderActivityVo allOrderInfoVo = allOrderInfoMapper.getOneByOrderId(orderId);
|
||||
@ -1737,6 +1972,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
|
||||
|
||||
/**
|
||||
* 将支付金额转换为万圆
|
||||
*
|
||||
* @param payMoney
|
||||
*/
|
||||
public Double convertPayMoneyToWanYuan(Double payMoney) {
|
||||
|
@ -41,6 +41,7 @@ import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord;
|
||||
import com.fuint.business.marketingActivity.cardValue.mapper.CardValueRecordMapper;
|
||||
import com.fuint.business.marketingActivity.cardValueChildrens.entity.CardValudChildrens;
|
||||
import com.fuint.business.marketingActivity.cardValueChildrens.service.CardValudChildrensService;
|
||||
import com.fuint.business.marketingActivity.cardValueRule.service.CardValueRuleService;
|
||||
import com.fuint.business.marketingActivity.favorableRecords.entity.FavorableRecords;
|
||||
import com.fuint.business.marketingActivity.favorableRecords.service.FavorableRecordsService;
|
||||
import com.fuint.business.member.mapper.LJStaffMapper;
|
||||
@ -71,10 +72,7 @@ import com.fuint.business.userManager.entity.ChainStoreConfig;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
import com.fuint.business.userManager.entity.LJUserGrade;
|
||||
import com.fuint.business.userManager.entity.UserBalance;
|
||||
import com.fuint.business.userManager.service.ChainStoreConfigService;
|
||||
import com.fuint.business.userManager.service.LJUserGradeService;
|
||||
import com.fuint.business.userManager.service.LJUserService;
|
||||
import com.fuint.business.userManager.service.UserBalanceService;
|
||||
import com.fuint.business.userManager.service.*;
|
||||
import com.fuint.business.userManager.vo.LJUserVo;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.StringUtils;
|
||||
@ -196,6 +194,10 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
@Autowired
|
||||
@Lazy
|
||||
private PayCenterService payCenterService;
|
||||
@Autowired
|
||||
private IMtUserFuelService userFuelService;
|
||||
@Autowired
|
||||
private CardValueRuleService cardValueRuleService;
|
||||
|
||||
@Override
|
||||
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order) {
|
||||
@ -490,6 +492,43 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
|
||||
return orders;
|
||||
}
|
||||
|
||||
// 查看会员储值卡余额是否足够付款
|
||||
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){
|
||||
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())){
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if (!flag) {
|
||||
orders.put("error", "此油品不支持储值卡支付");
|
||||
return orders;
|
||||
}
|
||||
}
|
||||
|
||||
// 查看会员囤油卡余额是否足够付款
|
||||
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){
|
||||
orders.put("error", "余额不足,请分开支付");
|
||||
return orders;
|
||||
}
|
||||
}
|
||||
|
||||
// 添加商品订单信息
|
||||
if (!goodsOrder.equals("[]")) {
|
||||
LJOrder ljOrder = new LJOrder();
|
||||
|
@ -8,4 +8,6 @@ import weixin.popular.bean.pay.OrderInfo;
|
||||
public class AllOrderInfoUniVo extends AllOrderInfo {
|
||||
private String typeName;
|
||||
private String storeName;
|
||||
private String startTime;
|
||||
private String endTime;
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
package com.fuint.business.order.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class HomeDataAnalysisVo {
|
||||
private String name;
|
||||
private Double value;
|
||||
private Integer type;
|
||||
}
|
@ -12,5 +12,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
* @since 2024-09-24
|
||||
*/
|
||||
public interface IMtUserFuelService extends IService<MtUserFuel> {
|
||||
|
||||
/**
|
||||
* 根据用户id和油号id查询油量信息
|
||||
* @param userId
|
||||
* @param oilId
|
||||
* @return
|
||||
*/
|
||||
Double selectByUserIdAndOilId(Integer userId, Integer oilId, Integer storeId);
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.fuint.business.userManager.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.fuint.business.userManager.entity.MtUserFuel;
|
||||
import com.fuint.business.userManager.mapper.MtUserFuelMapper;
|
||||
import com.fuint.business.userManager.service.IMtUserFuelService;
|
||||
@ -17,4 +19,15 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class MtUserFuelServiceImpl extends ServiceImpl<MtUserFuelMapper, MtUserFuel> implements IMtUserFuelService {
|
||||
|
||||
@Override
|
||||
public Double selectByUserIdAndOilId(Integer userId, Integer oilId, Integer storeId) {
|
||||
Double fuelAmount = 0.0;;
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq("mt_user_id", userId);
|
||||
queryWrapper.eq("oil_name", oilId);
|
||||
queryWrapper.eq("store_id", storeId);
|
||||
MtUserFuel mtUserFuel = baseMapper.selectOne(queryWrapper);
|
||||
if (ObjectUtil.isNotEmpty(mtUserFuel) && ObjectUtil.isNotEmpty(mtUserFuel.getFuelAmount())) fuelAmount = mtUserFuel.getFuelAmount();
|
||||
return fuelAmount;
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,8 @@ env.profile=dev
|
||||
#env.properties.path=D:/workspaces/oil-stations/fuintBackend/configure/
|
||||
#env.properties.path=F:/work/oilSystem/fuintBackend/configure/
|
||||
#env.properties.path=D:/oil/new-oil/oilSystem/fuintBackend/configure/
|
||||
#env.properties.path=D:/code/bulidmap/oil-station/fuintBackend/configure
|
||||
env.properties.path=D:/Code/yuzhan/oil-station/fuintBackend/configure
|
||||
env.properties.path=D:/code/bulidmap/oil-station/fuintBackend/configure
|
||||
#env.properties.path=D:/Code/yuzhan/oil-station/fuintBackend/configure
|
||||
#env.properties.path=/www/wwwroot/shenlanshuke/oilAdmin/
|
||||
|
||||
# \u6570\u636E\u5E93\u914D\u7F6E
|
||||
@ -18,7 +18,6 @@ spring.task.scheduling.pool.size=5
|
||||
logging.level.com.fuint=info
|
||||
multipart.max-file-size=20mb
|
||||
multipart.max-request-size=20mb
|
||||
|
||||
# \u6700\u5927\u4E0A\u4F20\u6587\u4EF6
|
||||
spring.servlet.multipart.max-file-size=10MB
|
||||
spring.servlet.multipart.max-request-size=10MB
|
||||
|
@ -230,7 +230,7 @@
|
||||
<div slot="header" class="clearfix">
|
||||
<div style="position: relative;">
|
||||
<div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
|
||||
<h2>单据号:{{record.orderNo}}</h2>
|
||||
<h2>单据号123:{{record.orderNo}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
@ -167,36 +167,27 @@
|
||||
size="55%"
|
||||
:before-close="handleClose">
|
||||
<div style="display: grid; place-items: center;">
|
||||
<el-card style="background-color: #f5f5f5;width: 90%">
|
||||
<div slot="header" class="clearfix">
|
||||
<div style="position: relative;">
|
||||
<div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
|
||||
<h2>单据号:{{record.orderNo}}</h2>
|
||||
</div>
|
||||
<div class="top_pop">
|
||||
<div class="wrap_box">
|
||||
<div class="three_box">
|
||||
<div class="or_num">订单号:{{record.orderNo}}</div>
|
||||
<div class="or_num">联系电话:{{record.contactMobile}}</div>
|
||||
</div>
|
||||
<br>
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>操作员工:</span>
|
||||
<span>{{ record.realName }}</span>
|
||||
<div class="three_box">
|
||||
<div class="or_num">挂账单位:{{record.unitName}}</div>
|
||||
<div class="or_num">操作人:{{ record.realName }}</div>
|
||||
</div>
|
||||
<div class="three_box">
|
||||
<div class="or_num">挂账人:{{record.personCredit}}</div>
|
||||
<div class="or_num">操作账号:xxxx-xx-xx xx:x</div>
|
||||
</div>
|
||||
</div>
|
||||
<div >
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>挂账单位</span>
|
||||
<span>{{record.unitName}}</span>
|
||||
</div>
|
||||
<div style="display: flex; justify-content: space-between;margin: 10px 0">
|
||||
<span>挂账人</span>
|
||||
<span>{{record.personCredit}}</span>
|
||||
</div>
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>联系电话</span>
|
||||
<span>{{record.contactMobile}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 15px;width: 90%">
|
||||
|
||||
|
||||
</div>
|
||||
<div style="margin-top: 15px;width: 96%">
|
||||
<el-table ref="tables"
|
||||
border
|
||||
v-loading="loading"
|
||||
:data="returnRecordList">
|
||||
<el-table-column label="单据号" align="center" prop="orderNo" width="200"></el-table-column>
|
||||
@ -240,7 +231,7 @@
|
||||
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</div>
|
||||
@ -577,4 +568,18 @@ import {exportExcelCashierApi, exportExcelHangBillApi} from "@/api/order/exportE
|
||||
padding: 15px;
|
||||
height: 85vh;
|
||||
}
|
||||
.top_pop{
|
||||
width: 96%;
|
||||
}
|
||||
.wrap_box{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.three_box{
|
||||
width: 33%;
|
||||
}
|
||||
.or_num{
|
||||
font-size: 14px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
</style>
|
||||
|
@ -3,8 +3,11 @@
|
||||
<view class="Candywrapper">
|
||||
<view class="card_box">
|
||||
|
||||
<view style="margin: 13px 0px;">当前积分</view>
|
||||
<view class="r-num">{{ cardBalance.points || 0 }}</view>
|
||||
<view >消费金额(元)</view>
|
||||
<view class="r-num">{{ cardBalance || 0 }}</view>
|
||||
<view style="margin-top: 10rpx;">
|
||||
<view>消费次数: {{ total || 0 }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tab-bs">
|
||||
<view class="w_box" @click="show1 = true">类型筛选
|
||||
@ -21,14 +24,13 @@
|
||||
</view>
|
||||
<view style="width: 85%;">
|
||||
<view class="right-box">
|
||||
<view class="l-text">{{ item.changeReason }}</view>
|
||||
<view class="r-text" v-if="item.changeType==1">{{ item.pointsChange }}</view>
|
||||
<view class="r-text" v-else-if="item.changeType==0">-{{ item.pointsChange }}</view>
|
||||
<view class="r-text" v-else>0</view>
|
||||
<view class="l-text">{{ item.typeName }}</view>
|
||||
<view class="r-text" v-if="item.content && item.content.includes('充值')">{{ item.payMoney }}</view>
|
||||
<view class="r-text" v-else>-{{ item.payMoney }}</view>
|
||||
</view>
|
||||
<view class="right-box">
|
||||
<view class="">会员积分</view>
|
||||
<view class="">余额{{ item.currentPoints || 0 }}</view>
|
||||
<view class="">{{ item.payType }}</view>
|
||||
<!-- <view class="">余额{{ item.currentPoints || 0 }}</view>-->
|
||||
</view>
|
||||
<view class="right-box">
|
||||
<view class="">{{ item.storeName }}</view>
|
||||
@ -98,7 +100,7 @@ export default {
|
||||
pageNo: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
cardBalance: {},
|
||||
cardBalance: 0,
|
||||
show: false,
|
||||
show1: false,
|
||||
value1: Number(new Date()),
|
||||
@ -107,45 +109,20 @@ export default {
|
||||
label: '全部类型',
|
||||
value: null
|
||||
}, {
|
||||
label: '消费有礼',
|
||||
value: ''
|
||||
label: '油品',
|
||||
value: '订单'
|
||||
}, {
|
||||
label: '充值有礼',
|
||||
value: ''
|
||||
label: '会员充值',
|
||||
value: '充值'
|
||||
}, {
|
||||
label: '积分兑换',
|
||||
value: ''
|
||||
}, {
|
||||
label: '开卡有礼',
|
||||
value: ''
|
||||
}, {
|
||||
label: '邀请有礼',
|
||||
value: ''
|
||||
}, {
|
||||
label: '生日有礼',
|
||||
value: ''
|
||||
}, {
|
||||
label: '推荐会员充值有礼',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '推荐会员推荐有礼',
|
||||
value: ''
|
||||
}, {
|
||||
label: '每日签到',
|
||||
value: ''
|
||||
}, {
|
||||
label: '大转盘抽奖',
|
||||
value: ''
|
||||
}, {
|
||||
label: '九宫格抽奖',
|
||||
value: ''
|
||||
}
|
||||
]
|
||||
value: '积分'
|
||||
}]
|
||||
],
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 30,
|
||||
content: "",
|
||||
type: "",
|
||||
storeId: uni.getStorageSync("storeId"),
|
||||
changeReason: "",
|
||||
@ -183,10 +160,11 @@ export default {
|
||||
methods: {
|
||||
// 获取余额信息
|
||||
getUserBalance() {
|
||||
console.log('this.queryParams:', this.queryParams.storeId)
|
||||
request({
|
||||
url: '/business/userManager/user/getUserBalanceApplet',
|
||||
url: 'business/allOrderInfo/getConsumptionMoney',
|
||||
method: 'get',
|
||||
params: this.query
|
||||
params: this.queryParams
|
||||
}).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.cardBalance = res.data
|
||||
@ -194,8 +172,9 @@ export default {
|
||||
})
|
||||
},
|
||||
getList() {
|
||||
console.log('this.queryParams:', this.queryParams)
|
||||
request({
|
||||
url: '/business/integral/integralDetail/queryByPageUni',
|
||||
url: '/business/allOrderInfo/queryByPageUni',
|
||||
method: 'get',
|
||||
params: this.queryParams
|
||||
}).then(res => {
|
||||
@ -208,11 +187,13 @@ export default {
|
||||
confirm(e) {
|
||||
this.queryParams.pageNo = 1
|
||||
if (e.value[0] == '全部类型') {
|
||||
this.queryParams.type = null
|
||||
this.queryParams.content = null
|
||||
} else {
|
||||
this.queryParams.type = e.value[0].type
|
||||
this.queryParams.content = e.value[0].value
|
||||
}
|
||||
console.log('this.queryParams:', this.queryParams.content)
|
||||
this.getList()
|
||||
this.getUserBalance()
|
||||
this.show1 = false
|
||||
},
|
||||
cancel() {
|
||||
@ -230,7 +211,9 @@ export default {
|
||||
confirm1(e) {
|
||||
this.queryParams.startTime = this.timestampToString(e.value)
|
||||
this.queryParams.pageNo = 1
|
||||
console.log('this.queryParams:', this.queryParams)
|
||||
this.getList()
|
||||
this.getUserBalance()
|
||||
this.show = false
|
||||
},
|
||||
cancel1() {
|
||||
|
Loading…
Reference in New Issue
Block a user