diff --git a/fuintAdmin/src/api/allOrder.js b/fuintAdmin/src/api/allOrder.js index 87cc1919d..290c5db22 100644 --- a/fuintAdmin/src/api/allOrder.js +++ b/fuintAdmin/src/api/allOrder.js @@ -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 + }); +} + diff --git a/fuintAdmin/src/views/shopowner.vue b/fuintAdmin/src/views/shopowner.vue index 957cb5945..e27d35a4a 100644 --- a/fuintAdmin/src/views/shopowner.vue +++ b/fuintAdmin/src/views/shopowner.vue @@ -2,7 +2,7 @@
-
- +
@@ -10,7 +10,7 @@
-
核心数据
+
核心数据
{{ storeTotal.allAmount || 0 }}
@@ -56,10 +56,12 @@
自定义
+
数据看板
+
近一周
-
油品销售金额(元)/交易笔数
+
油品销售金额(元)/交易笔数
{{ storeAmount.oilAmount || 0 }}/{{ storeAmount.oilNum || 0 }}
-
会员充值金额(元)/充值笔数
+
会员充值金额(元)/充值笔数
{{ storeAmount.userRechargeAmount || 0 }}/{{ storeAmount.userRechargeNum || 0 }}
-
便利店销售金额(元)/交易笔数
+
便利店销售金额(元)/交易笔数
{{ storeAmount.minimartAmount || 0 }}/{{ storeAmount.minimartNum || 0 }}
-
积分商城销售金额(元)/兑换笔数
+
积分商城销售金额(元)/兑换笔数
{{ storeAmount.pointMallAmount || 0 }}/{{ storeAmount.pointMallNum || 0 }}
@@ -133,66 +135,30 @@
{{ item.name }}
+
{{ item.name }}
-
-
-
油品交易分析
- -
近一周
- - 今日 - 昨日 - 近一周 - 近一月 - 近一周 - -
-
自定义
-
- - -
-
+
数据展示
-
员工排行 -
近一周
- - 今日 - 昨日 - 近一周 - 近一月 - 近一周 - -
+
员工排行
排名
员工姓名
-
会员充值金额
-
油品销售金额
-
总销售额
+
会员充值金额(元)
+
油品销售金额(元)
+
总销售额(元)
-
-
-
{{index +1}}
-
{{ item.realName }}
-
{{item.cardSum}}
-
{{item.oilSum}}
-
{{item.totalSum}}
-
+
+
{{index +1}}
+
{{ item.realName }}
+
{{item.cardSum}}
+
{{item.oilSum}}
+
{{item.totalSum}}
-
@@ -305,14 +271,47 @@ export default { this.getHardwareList() this.getNoticeList() this.getEmployeList() + this.getDataAnalysis() + this.getDataShow() }, mounted() { // this.initChart() }, - methods:{ - goList(){ + methods: { + goList() { this.$router.push('/notificationList/index') }, + // 获取数据分析信息 + getDataAnalysis() { + getDataAnalysis().then(res => { + console.log('数据分析的数据',res) + if (res.code == 200) { + for (let i = 0; i < res.data.length; i++) { + if (res.data[i].type == 1) { + this.dataAnalysisOilNumberList.push(res.data[i]) + }else if (res.data[i].type == 2) { + this.dataAnalysisIfOilList.push(res.data[i]) + }else if (res.data[i].type == 3) { + this.dataAnalysisAllList.push(res.data[i]) + } + } + console.log('dataAnalysisOilNumberList',this.dataAnalysisOilNumberList) + console.log('dataAnalysisIfOilList',this.dataAnalysisIfOilList) + console.log('dataAnalysisAllList',this.dataAnalysisAllList) + this.initChart() + } + }) + }, + //获取数据展示 + getDataShow(){ + const a = { + startTime: "2024-01-01", + endTime: "2024-11-01", + } + getDataShow(a).then(res => { + console.log('数据展示的数据',res) + }) + }, // 获取员工排行信息 getEmployeList() { this.employeLoading = true @@ -928,17 +927,17 @@ export default { height: 380px; box-sizing: border-box; padding: 15px; - - + overflow: auto; + scrollbar-width: none; } .san-box{ width: 24%; - height: 100px; + height: 120px; box-sizing: border-box; border-radius: 8px; background: #fe8c4a; - margin: 15px auto; - + margin: 15px 0px; + margin-right: 15px; box-sizing: border-box; padding: 20px 40px; } @@ -968,53 +967,37 @@ export default { overflow: hidden; //超出部分隐藏 text-overflow: ellipsis; //文本溢出显示省略号 font-size: 14px; - color: #333; + color: #777777; margin: 14px auto; } .h-tt{ font-size: 16px; color: #333333; font-weight: bold; - display: flex; - justify-content: space-between; + margin-right: 40px; } .q-anniu{ width: 80px; height: 26px; - background: #FF9655 !important; + background: #FF9655; border-radius: 4px 4px 4px 4px; display: flex; align-items: center; justify-content: center; - color: #fff !important; - font-size: 12px; + color: #fff; cursor: pointer; margin-right: 20px; } -.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%; + width: 220px; 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{ font-weight: bold; @@ -1087,7 +1070,6 @@ export default { box-sizing: border-box; padding: 10px; display: flex; - font-size: 14px; justify-content: space-between; margin: 10px auto; div{ @@ -1097,13 +1079,12 @@ export default { } .hang-box{ border-radius: 8px; - font-size: 14px; width: 100%; box-sizing: border-box; - padding: 5px; + padding: 10px; display: flex; justify-content: space-between; - margin: 0px auto; + margin: 10px auto; div{ width: 20%; text-align: center; 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 c112835f1..5be0c4e8f 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 @@ -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 map){ + return getSuccessResult(allOrderInfoService.getDataAnalysis(map)); + } + + /** + * 油站首页数据展示 + * @param map + * @return + */ + @GetMapping("getDataShow") + public ResponseObject getDataShow(String startTime, String endTime) { + Map map = new HashMap<>(); + map.put("startTime", startTime); + map.put("endTime", endTime); + return getSuccessResult(allOrderInfoService.getDataShow(map)); + } + /** * 消费记录(小程序) * @param pageNo 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 f196de7b3..3795a00d3 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 @@ -140,4 +140,6 @@ public interface OilOrderMapper extends BaseMapper { OilOrderVo getInfoByOrderNo(String orderNo); Double selectSumMoeny(@Param("orderNos") List orderNos); + + double selectSumMoneyByDayAndOilNumber(@Param("oilName") String oilName, @Param("day") String day, @Param("storeId") Integer storeId); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml index 02d82b218..3bdda0435 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/mapper/xml/OilOrderMapper.xml @@ -804,4 +804,8 @@ #{item} + 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 3260267b3..238aa3114 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 @@ -157,6 +157,13 @@ public interface AllOrderInfoService { */ List getDataAnalysis(Map map); + /** + * 油站首页数据展示 + * @param map + * @return + */ + HomeDataShowVo getDataShow(Map map); + /** * 消费记录 * @param page 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 152da2055..89d891208 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 @@ -1737,14 +1737,15 @@ public class AllOrderInfoServiceImpl extends ServiceImpl oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper() - .eq(OilNumber::getStoreId, nowAccountInfo.getStoreId()) - .eq(OilNumber::getState, "1") - .eq(OilNumber::getIfDelete, "0")); +// List oilNumbers = oilNumberMapper.selectList(new LambdaQueryWrapper() +// .eq(OilNumber::getStoreId, nowAccountInfo.getStoreId()) +// .eq(OilNumber::getState, "启用") +// .ne(OilNumber::getIfDelete, "1")); + List oilNumbers = oilNumberMapper.selectAllOil(nowAccountInfo.getStoreId()); LambdaQueryWrapper oilOrderQuery = new LambdaQueryWrapper(); 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 oilList = new ArrayList<>(); for (OilOrder oilOrder : oilOrders) { @@ -1762,9 +1763,9 @@ public class AllOrderInfoServiceImpl extends ServiceImpl 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 oilNumbers = oilNumberMapper.selectAllOil(nowAccountInfo.getStoreId()); + List oilNames = oilNumbers.stream().map(oil -> oil.getOilNames() + oil.getOilType()).collect(Collectors.toList()); + homeDataShowVo.setOilNames(oilNames); + //根据开始时间与结束时间获取所有天数 + List days = getAllDatesBetween(startTime, endTime); + List> oilData = new ArrayList<>(); + for (String day : days) { + Map mapData = new HashMap<>(); + mapData.put("day", day); + List 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 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 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; + } + /** * 消费记录 * diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/vo/HomeDataShowVo.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/vo/HomeDataShowVo.java new file mode 100644 index 000000000..55c25b445 --- /dev/null +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/vo/HomeDataShowVo.java @@ -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 oilNames; + private List> oilData; +} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/entity/OilNumber.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/entity/OilNumber.java index 9592a2e2c..a0ae1799b 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/entity/OilNumber.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/entity/OilNumber.java @@ -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; diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/OilNumberMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/OilNumberMapper.java index 630586720..90ef014da 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/OilNumberMapper.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/OilNumberMapper.java @@ -63,5 +63,7 @@ public interface OilNumberMapper extends BaseMapper { List selectOilNumberNameByStoreId(@Param("storeId") Integer storeId); double getOilPriceById(@Param("oilId") Integer oilId,@Param("storeId") Integer storeId); + + List selectAllOil(Integer storeId); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml index 0207a6404..a0f199aef 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/mapper/xml/OilNumberMapper.xml @@ -155,4 +155,11 @@ +