@@ -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{
+
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/CardValueRuleService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/CardValueRuleService.java
index 7803cacd8..a9376cbfd 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/CardValueRuleService.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/CardValueRuleService.java
@@ -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
{
-
+ /**
+ * 根据店铺id查询储值卡规则的油品id列表
+ * @param storeId
+ * @return
+ */
+ List getOilIds(Integer storeId);
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/impl/CardValueRuleServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/impl/CardValueRuleServiceImpl.java
index c9e272856..7c9dde49d 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/impl/CardValueRuleServiceImpl.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardValueRule/service/impl/CardValueRuleServiceImpl.java
@@ -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 implements CardValueRuleService {
+ @Override
+ public List getOilIds(Integer storeId) {
+ List list = new ArrayList();
+ LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper();
+ 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;
+ }
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java
index 9ab8e3c1a..c112835f1 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java
@@ -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 iPageList = this.allOrderInfoService.queryByPageUni(page, allOrderInfo);
return getSuccessResult(iPageList);
}
+ /**
+ * 获取消费金额(小程序)
+ * @param storeId
+ * @return
+ */
+ @GetMapping("getConsumptionMoney")
+ public ResponseObject getConsumptionMoney(AllOrderInfoUniVo allOrderInfo){
+ return getSuccessResult(allOrderInfoService.getConsumptionMoney(allOrderInfo));
+ }
+
/**
* 根据订单号查询(小程序)
*
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/AllOrderInfoMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/AllOrderInfoMapper.java
index be37bd970..dc8e25523 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/AllOrderInfoMapper.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/AllOrderInfoMapper.java
@@ -102,5 +102,5 @@ public interface AllOrderInfoMapper extends BaseMapper {
// IPage getBlanceANdOrder(Page page, @Param("order") CardValueOrdersDTO allOrderInfo);
- IPage queryAllByLimit(Page page, @Param("allOrderInfo") AllOrderInfo allOrderInfo);
+ IPage queryAllByLimit(Page page, @Param("allOrderInfo") AllOrderInfoUniVo allOrderInfo);
}
\ No newline at end of file
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/OilOrderMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/OilOrderMapper.java
index 423882df3..f196de7b3 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/OilOrderMapper.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/OilOrderMapper.java
@@ -138,4 +138,6 @@ public interface OilOrderMapper extends BaseMapper {
List selectOilsCount(@Param("oilOrderVo") OilOrderVo oilOrderVo,@Param("storeIds") List storeIds);
OilOrderVo getInfoByOrderNo(String orderNo);
+
+ Double selectSumMoeny(@Param("orderNos") List orderNos);
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml
index 538be5249..758524e34 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/AllOrderInfoMapper.xml
@@ -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
+ a.status = "paid"
- a.store_id = #{allOrderInfo.storeId}
+ and a.store_id = #{allOrderInfo.storeId}
and a.user_id = #{allOrderInfo.userId}
-
- and a.status = #{allOrderInfo.status}
+
+ and a.pay_time between #{allOrderInfo.startTime} and #{allOrderInfo.endTime}
+
+ and a.content like concat('%',#{allOrderInfo.content},'%')
+
+
+
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java
index 01a9fddab..3260267b3 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java
@@ -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 getDataBoard(Map map);
+ /**
+ * 油站首页数据分析
+ * @param map
+ * @return
+ */
+ List getDataAnalysis(Map map);
+
/**
* 消费记录
* @param page
* @param allOrderInfo
* @return
*/
- IPage queryByPageUni(Page page, AllOrderInfo allOrderInfo);
+ IPage queryByPageUni(Page page, AllOrderInfoUniVo allOrderInfo);
+
+ /**
+ * 获取消费金额(小程序)
+ * @param storeId
+ * @return
+ */
+ Double getConsumptionMoney(AllOrderInfoUniVo allOrderInfo);
// 根据订单id 查询订单 并且有且只有一个关联油品订单
AllOrderActivityVo getOneByOrderId(Integer orderId);
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
index 7b372d4c7..152da2055 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java
@@ -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 getFenxiByDaili(Page page, AllOrderInfo allOrderInfo) {
if (ObjectUtil.isEmpty(allOrderInfo.getDeptId())) {
@@ -213,6 +219,7 @@ public class AllOrderInfoServiceImpl extends ServiceImpl getFenxiByDailiBydata(AllOrderInfo allOrderInfo) {
@@ -1616,6 +1623,8 @@ public class AllOrderInfoServiceImpl extends ServiceImpl getDataBoard(Map map) {
+ map.put("startTime", map.get("params[beginTime]"));
+ map.put("endTime", map.get("params[endTime]"));
Map map1 = new HashMap<>();
// 油品销售金额
Double oilAmount = 0.0;
@@ -1642,6 +1651,65 @@ public class AllOrderInfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper()
+ .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 allOrderInfos = baseMapper.selectList(queryWrapper);
+ //会员充值笔数
+ userRechargeNum = allOrderInfos.size();
+ //会员充值金额
+ userRechargeAmount = allOrderInfos.stream().mapToDouble(AllOrderInfo::getPayMoney).sum();
+
+
+ LambdaQueryWrapper proQueryWrapper = new LambdaQueryWrapper()
+ .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 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 pointQueryWrapper = new LambdaQueryWrapper()
+ .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 getDataAnalysis(Map map) {
+ List list = new ArrayList<>();
+ String startTime = map.get("startTime");
+ String endTime = map.get("endTime");
+ AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
+
+
+ //查询所有油品
+ List oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper()
+ .eq(OilNumber::getStoreId, nowAccountInfo.getStoreId())
+ .eq(OilNumber::getState, "1")
+ .eq(OilNumber::getIfDelete, "0"));
+
+ LambdaQueryWrapper oilOrderQuery = new LambdaQueryWrapper();
+ 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 oilOrders = oilOrderMapper.selectList(oilOrderQuery);
+
+ //油号之间占比
+ for (OilNumber oilNumber : oilNumbers) {
+ HomeDataAnalysisVo homeDataAnalysisVo = new HomeDataAnalysisVo();
+ homeDataAnalysisVo.setName(oilNumber.getOilName());
+ homeDataAnalysisVo.setType(1);
+ List 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 allOrderInfoLambdaQueryWrapper = new LambdaQueryWrapper();
+ 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 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 queryByPageUni(Page page, AllOrderInfo allOrderInfo) {
+ public IPage 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 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 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 i
@Autowired
@Lazy
private PayCenterService payCenterService;
+ @Autowired
+ private IMtUserFuelService userFuelService;
+ @Autowired
+ private CardValueRuleService cardValueRuleService;
@Override
public IPage selectOilOrderList(Page page, OilOrder order) {
@@ -490,6 +492,43 @@ public class OilOrderServiceImpl extends ServiceImpl 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() 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 {
-
+ /**
+ * 根据用户id和油号id查询油量信息
+ * @param userId
+ * @param oilId
+ * @return
+ */
+ Double selectByUserIdAndOilId(Integer userId, Integer oilId, Integer storeId);
}
diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/MtUserFuelServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/MtUserFuelServiceImpl.java
index cc1a2b870..9c602176d 100644
--- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/MtUserFuelServiceImpl.java
+++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/MtUserFuelServiceImpl.java
@@ -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 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;
+ }
}
diff --git a/fuintBackend/fuint-application/src/main/resources/application.properties b/fuintBackend/fuint-application/src/main/resources/application.properties
index 2e4d797e4..d847c40c7 100644
--- a/fuintBackend/fuint-application/src/main/resources/application.properties
+++ b/fuintBackend/fuint-application/src/main/resources/application.properties
@@ -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
diff --git a/fuintCashierWeb/src/views/cashier/NewComponents/credit.vue b/fuintCashierWeb/src/views/cashier/NewComponents/credit.vue
index 5685fb3b4..10489aed1 100644
--- a/fuintCashierWeb/src/views/cashier/NewComponents/credit.vue
+++ b/fuintCashierWeb/src/views/cashier/NewComponents/credit.vue
@@ -230,7 +230,7 @@
-
单据号:{{record.orderNo}}
+ 单据号123:{{record.orderNo}}
diff --git a/fuintCashierWeb/src/views/cashier/orderComponents/order_Added.vue b/fuintCashierWeb/src/views/cashier/orderComponents/order_Added.vue
index cebfea0ee..46bbf37c8 100644
--- a/fuintCashierWeb/src/views/cashier/orderComponents/order_Added.vue
+++ b/fuintCashierWeb/src/views/cashier/orderComponents/order_Added.vue
@@ -167,36 +167,27 @@
size="55%"
:before-close="handleClose">
-
-
-
-
-
单据号:{{record.orderNo}}
-
+
+
+
+
订单号:{{record.orderNo}}
+
联系电话:{{record.contactMobile}}
-
-
-
操作员工:
-
{{ record.realName }}
+
+
挂账单位:{{record.unitName}}
+
操作人:{{ record.realName }}
+
+
+
挂账人:{{record.personCredit}}
+
操作账号:xxxx-xx-xx xx:x
-
-
- 挂账单位
- {{record.unitName}}
-
-
- 挂账人
- {{record.personCredit}}
-
-
- 联系电话
- {{record.contactMobile}}
-
-
-
-
+
+
+
+
@@ -240,7 +231,7 @@
-
+
@@ -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;
+ }
diff --git a/gasStation-uni/pagesMy/myorder/myorder.vue b/gasStation-uni/pagesMy/myorder/myorder.vue
index b1003a439..e4d03f756 100644
--- a/gasStation-uni/pagesMy/myorder/myorder.vue
+++ b/gasStation-uni/pagesMy/myorder/myorder.vue
@@ -3,8 +3,11 @@
- 当前积分
- {{ cardBalance.points || 0 }}
+ 消费金额(元)
+ {{ cardBalance || 0 }}
+
+ 消费次数: {{ total || 0 }}
+
类型筛选
@@ -21,14 +24,13 @@
- {{ item.changeReason }}
- {{ item.pointsChange }}
- -{{ item.pointsChange }}
- 0
+ {{ item.typeName }}
+ {{ item.payMoney }}
+ -{{ item.payMoney }}
- 会员积分
- 余额{{ item.currentPoints || 0 }}
+ {{ item.payType }}
+
{{ item.storeName }}
@@ -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() {