Ver Fonte

PC运营端页面优化

skyline há 1 semana atrás
pai
commit
6992ab01dc

+ 1 - 1
admin-web-new/src/views/admin/dashboard/index.vue

@@ -306,7 +306,7 @@ const loadStationStatToday = () => {
       state.metrics.consumptionAmount.value = fmtMoney(data.todayConsumptionAmount || 0);
       state.metrics.avgOrderPrice.value = fmtMoney(data.avgOrderPrice || 0);
       state.metrics.todayOrders.value = String(data.todayWashOrders || 0);
-      state.metrics.avgDuration.value = String(data.avgOrderDuration || 0);
+      state.metrics.avgDuration.value = ((data.avgOrderDuration || 0) / 60).toFixed(1);
     }
   });
 };

+ 1 - 1
admin-web/src/views/admin/index.vue

@@ -480,7 +480,7 @@ const loadStationStatToday = () => {
       state.homeOne[2].num1 = u.fmt.fmtMoney(todayConsumptionAmount);
       state.homeOne[3].num1 = u.fmt.fmtMoney(avgOrderPrice);
       state.homeOne[4].num1 = todayWashOrders;
-      state.homeOne[5].num1 = avgOrderDuration;
+      state.homeOne[5].num1 = ((avgOrderDuration || 0) / 60).toFixed(1);
 
     }
 

+ 2 - 2
admin-web/src/views/admin/ordering/index.vue

@@ -213,8 +213,8 @@ const state = reactive({
   exportConfig: {},
   columns: [
     {type: 'expand', width: 60, align: 'center', fixed: 'left'},
-    {label: '消费站点', prop: 'stationId', width: 140, query: true, type: 'select', resizable: true},
-    {label: '归属站点', prop: 'userStationId', width: 140, query: true, type: 'select', resizable: true},
+    {label: '消费站点', prop: 'stationId', width: 140, query: true, type: 'select', resizable: true, conf: {url: 'washStation/list', valueKey: 'stationId', labelKey: 'stationName'}},
+    {label: '归属站点', prop: 'userStationId', width: 140, query: true, type: 'select', resizable: true, conf: {url: 'washStation/list', valueKey: 'stationId', labelKey: 'stationName'}},
     {width: 220, label: '订单号', prop: 'orderId', query: true, type: 'text', resizable: true, fixed: 'left'},
     {width: 120, label: '用户手机号', prop: 'mobilePhone', query: true, type: 'text', fixed: 'left'},
     {width: 100, label: '设备编号', prop: 'shortId', query: false, type: 'text', resizable: true},

+ 14 - 7
car-wash-service/src/main/java/com/kym/service/impl/StatServiceImpl.java

@@ -115,19 +115,24 @@ public class StatServiceImpl implements StatService {
      */
     @Override
     public DashboardVo dashboard(String stationId) {
-        // 今日收入:V2结算方案从订单中计算
-        var todayAmountMap = washOrderService.sumAmountByDate(LocalDate.now());
-        var todayIncome = todayAmountMap.getOrDefault(stationId, 0);
-
         // 截止到现在今日的所有洗车订单
         var todayOrders = washOrderService.lambdaQuery()
                 .eq(WashOrder::getStationId, stationId)
                 .ge(WashOrder::getStartTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
                 .list();
 
+        // 今日收入:V2结算方案从订单中计算
+        var todayIncome = todayOrders.stream().mapToInt(WashOrder::getAmountReceived).sum();
+
         // 站点今日注册人数
         var todayRegistrations = userService.countDailyRegister(LocalDate.now(), stationId);
 
+        // 平均洗车消费单价(分)
+       var avgOrderPrice = todayOrders.isEmpty() ? 0 : (int)todayIncome/todayOrders.size();
+       
+        // 平均洗车时长(秒)
+       var avgOrderDuration = todayOrders.isEmpty() ? 0 : (int)todayOrders.stream().mapToInt(WashOrder::getTotalSeconds).sum() / todayOrders.size();
+
         // 月度数据
         var monthAmountMap = washOrderService.sumMonthAmount(LocalDate.now());
         var monthIncome = monthAmountMap.getOrDefault(stationId, 0);
@@ -157,8 +162,10 @@ public class StatServiceImpl implements StatService {
         dashboardVo.setTotalWashOrders(allOrders.size());
         dashboardVo.setTotalRegisteredMembers(totalMembers);
 
-        dashboardVo.setAvgOrderPrice(0); // todo
-        dashboardVo.setAvgOrderDuration(0); // todo
+        
+        dashboardVo.setAvgOrderPrice(avgOrderPrice); 
+        dashboardVo.setAvgOrderDuration(avgOrderDuration); 
+        // 平均洗车频率(次)
         dashboardVo.setAvgWashFrequency(0.0); // todo
 
         return dashboardVo;
@@ -191,4 +198,4 @@ public class StatServiceImpl implements StatService {
 
         return washOrderService.stationTrend(params);
     }
-}
+}