From 2b19bdf9b00a9cc49adb62d47cf0ff5c32323111 Mon Sep 17 00:00:00 2001 From: wenhui <1455474577@qq.com> Date: Fri, 18 Mar 2022 14:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=95=B0=E6=8D=AE=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E8=AE=A2=E5=8D=95=E8=B6=8B=E5=8A=BF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XhpcDataBigScreenController.java | 7 ++ .../xhpc/databigscreen/domain/Condition.java | 3 +- .../xhpc/databigscreen/domain/OrderTrend.java | 45 +++++++++++ .../mapper/XhpcHistoryOrderMapper.java | 12 +++ .../service/XhpcDataBigScreenService.java | 3 + .../impl/XhpcDataBigScreenServiceImpl.java | 81 +++++++++++++++++++ .../mapper/XhpcHistoryOrderMapper.xml | 41 +++++++++- 7 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/OrderTrend.java diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/controller/XhpcDataBigScreenController.java b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/controller/XhpcDataBigScreenController.java index 8b64b442..ac8e1e4e 100644 --- a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/controller/XhpcDataBigScreenController.java +++ b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/controller/XhpcDataBigScreenController.java @@ -4,6 +4,7 @@ import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.databigscreen.domain.CoreParam; import com.xhpc.databigscreen.domain.OrderRatio; +import com.xhpc.databigscreen.domain.OrderTrend; import com.xhpc.databigscreen.domain.RealtimeOrders; import com.xhpc.databigscreen.service.XhpcDataBigScreenService; import org.springframework.web.bind.annotation.GetMapping; @@ -28,6 +29,12 @@ public class XhpcDataBigScreenController extends BaseController { @Resource XhpcDataBigScreenService xhpcDataBigScreenService; + @GetMapping("/orders-trend") + public R queryOrdersTrend(CoreParam coreParam) { + + return xhpcDataBigScreenService.queryOrderTrend(coreParam); + } + /** * query realtime orders by coreParam * diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/Condition.java b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/Condition.java index fa71d70e..2e4933dd 100644 --- a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/Condition.java +++ b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/Condition.java @@ -16,6 +16,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class Condition extends CoreParam { - private String currentTime; + private String currentPage; + private String items; } diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/OrderTrend.java b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/OrderTrend.java new file mode 100644 index 00000000..79b5d4eb --- /dev/null +++ b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/domain/OrderTrend.java @@ -0,0 +1,45 @@ +package com.xhpc.databigscreen.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@NoArgsConstructor +@Data +public class OrderTrend { + + + /** + * totalItems + */ + @JsonProperty("totalItems") + private Long totalItems; + /** + * data + */ + @JsonProperty("data") + private List data; + + /** + * DataDTO + */ + @NoArgsConstructor + @Data + public static class DataDTO { + + /** + * time + */ + @JsonProperty("time") + private String time; + /** + * orderNumber + */ + @JsonProperty("orderNumber") + private Long orderNumber; + + } + +} diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/mapper/XhpcHistoryOrderMapper.java b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/mapper/XhpcHistoryOrderMapper.java index c7ab019e..7a53171c 100644 --- a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/mapper/XhpcHistoryOrderMapper.java +++ b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/mapper/XhpcHistoryOrderMapper.java @@ -4,6 +4,7 @@ import com.xhpc.databigscreen.pojo.XhpcHistoryOrder; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; public interface XhpcHistoryOrderMapper { @@ -53,4 +54,15 @@ public interface XhpcHistoryOrderMapper { @Param("userType") Integer userType, @Param("operatorId3rdptyEvcs") String operatorId3rdptyEvcs); + /** + * query order trend of recent 15 day + * + * @author WH + * @date 2022/3/18 10:31 + * @since version-1.0 + */ + List> selectOrderTrendByTenantIdsAndChargingStationIds( + @Param("tenantIdList") List tenantIdList, + @Param("chargingStationIdList") List chargingStationIdList); + } \ No newline at end of file diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/XhpcDataBigScreenService.java b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/XhpcDataBigScreenService.java index c4615095..07917ae3 100644 --- a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/XhpcDataBigScreenService.java +++ b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/XhpcDataBigScreenService.java @@ -3,6 +3,7 @@ package com.xhpc.databigscreen.service; import com.xhpc.common.core.domain.R; import com.xhpc.databigscreen.domain.CoreParam; import com.xhpc.databigscreen.domain.OrderRatio; +import com.xhpc.databigscreen.domain.OrderTrend; import com.xhpc.databigscreen.domain.RealtimeOrders; import java.util.List; @@ -68,4 +69,6 @@ public interface XhpcDataBigScreenService { */ R queryRealtimeOrders(CoreParam coreParam); + R queryOrderTrend(CoreParam coreParam); + } diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/impl/XhpcDataBigScreenServiceImpl.java b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/impl/XhpcDataBigScreenServiceImpl.java index 31fde462..44cc5a99 100644 --- a/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/impl/XhpcDataBigScreenServiceImpl.java +++ b/xhpc-modules/xhpc-data-big-screen/src/main/java/com/xhpc/databigscreen/service/impl/XhpcDataBigScreenServiceImpl.java @@ -6,6 +6,7 @@ import com.xhpc.common.util.MyDateUtil; import com.xhpc.common.util.UserTypeUtil; import com.xhpc.databigscreen.domain.CoreParam; import com.xhpc.databigscreen.domain.OrderRatio; +import com.xhpc.databigscreen.domain.OrderTrend; import com.xhpc.databigscreen.domain.RealtimeOrders; import com.xhpc.databigscreen.mapper.XhpcAppUserMapper; import com.xhpc.databigscreen.mapper.XhpcChargingStationMapper; @@ -467,6 +468,86 @@ public class XhpcDataBigScreenServiceImpl implements XhpcDataBigScreenService { } } + @Override + public R queryOrderTrend(CoreParam coreParam) { + + String tenantIdsStr = null; + List> xhpcChargingStationList = null; + List tenantIdList = null; + String[] tenantIdArray = null; + //judge care param function + switch (coreParam.getParamType()) { + case 0: + tenantIdsStr = coreParam.getTenantIds(); + if (!"".equals(tenantIdsStr) && tenantIdsStr != null) { + tenantIdArray = tenantIdsStr.split(","); + tenantIdList = Arrays.stream(tenantIdArray).collect(Collectors.toList()); + return getOrderTrend(tenantIdList, null); + } else { + return getOrderTrend(tenantIdList, null); + } + //query charging station infos of whole area + case 1: + Integer areaCode = coreParam.getAreaCode(); + tenantIdsStr = coreParam.getTenantIds(); + if (!"".equals(tenantIdsStr) && tenantIdsStr != null) { + tenantIdArray = tenantIdsStr.split(","); + tenantIdList = Arrays.stream(tenantIdArray).collect(Collectors.toList()); + xhpcChargingStationList = xhpcChargingStationMapper.selectByTenantIdAndAreaCode(tenantIdList, areaCode); + ArrayList chargingStationIdList = new ArrayList<>(); + for (Map chargingStation : xhpcChargingStationList) { + chargingStationIdList.add((Long) chargingStation.get(ConstantClass.CHARGING_STATION_ID)); + } + return getOrderTrend(tenantIdList, chargingStationIdList); + } else { + xhpcChargingStationList = xhpcChargingStationMapper.selectByTenantIdAndAreaCode(tenantIdList, areaCode); + ArrayList chargingStationIdList = new ArrayList<>(); + for (Map chargingStation : xhpcChargingStationList) { + chargingStationIdList.add((Long) chargingStation.get(ConstantClass.CHARGING_STATION_ID)); + } + return getOrderTrend(tenantIdList, chargingStationIdList); + } + case 2: + //query location info of special charging station of special tenant + tenantIdsStr = coreParam.getTenantIds(); + if (!"".equals(tenantIdsStr) && tenantIdsStr != null) { + tenantIdArray = tenantIdsStr.split(","); + tenantIdList = Arrays.stream(tenantIdArray).collect(Collectors.toList()); + String chargingStationIdStr = coreParam.getChargingStationIds(); + long chargingStationId = Long.parseLong(chargingStationIdStr); + xhpcChargingStationList = xhpcChargingStationMapper.selectByTenantIdAndChargingStationId(tenantIdList, chargingStationId); + ArrayList chargingStationIdList = new ArrayList<>(); + for (Map chargingStation : xhpcChargingStationList) { + chargingStationIdList.add((Long) chargingStation.get(ConstantClass.CHARGING_STATION_ID)); + } + return getOrderTrend(tenantIdList, chargingStationIdList); + } else { + return R.fail("传入的参数有误"); + } + default: + return R.fail("param type is invalid"); + } + } + + private R getOrderTrend(List tenantIdList, ArrayList chargingStationIdList) { + + List> orderTrendList = xhpcHistoryOrderMapper.selectOrderTrendByTenantIdsAndChargingStationIds(tenantIdList, chargingStationIdList); + OrderTrend orderTrend = new OrderTrend(); + orderTrend.setData(new ArrayList<>()); + orderTrend.setTotalItems(0L); + if (orderTrendList.isEmpty()) { + return R.ok(orderTrend); + } + for (Map orderTrendMap : orderTrendList) { + OrderTrend.DataDTO dataDTO = new OrderTrend.DataDTO(); + dataDTO.setTime((String) orderTrendMap.get("current_time")); + dataDTO.setOrderNumber((Long) orderTrendMap.get("sum")); + orderTrend.getData().add(dataDTO); + } + orderTrend.setTotalItems((long) orderTrendList.size()); + return R.ok(orderTrend); + } + /** * 获取实时订单数据 * diff --git a/xhpc-modules/xhpc-data-big-screen/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-data-big-screen/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index 2e4add4b..94abd528 100644 --- a/xhpc-modules/xhpc-data-big-screen/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-data-big-screen/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -169,12 +169,51 @@ - AND tenant_id IN + AND charging_station_id IN #{chargingStationId} + delete from xhpc_history_order