diff --git a/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeOrderStatisticsVo.java b/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeOrderStatisticsVo.java index fd731fe..77702c4 100644 --- a/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeOrderStatisticsVo.java +++ b/ebike-feign/src/main/java/com/ebike/feign/model/vo/FeignEbikeOrderStatisticsVo.java @@ -1,15 +1,14 @@ package com.ebike.feign.model.vo; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.io.Serial; import java.io.Serializable; import java.math.BigDecimal; -import java.time.LocalDateTime; +import java.time.LocalDate; +import java.util.List; /** * @author yanglei @@ -21,24 +20,11 @@ import java.time.LocalDateTime; @AllArgsConstructor public class FeignEbikeOrderStatisticsVo implements Serializable { - @Serial - private static final long serialVersionUID = 1L; + private List operatorId; - /** - * 运营商id - */ - private Long operatorId; + private List times; - /** - * 订单数量 - */ - private Integer orderCount; + private List orderCounts; - /** - * 订单金额 - */ - private BigDecimal orderAmount; - - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime createTime; + private List orderAmounts; } diff --git a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java index d98683e..c166ac1 100644 --- a/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java +++ b/ebike-operations/src/main/java/com/cdzy/operations/controller/EbikeStatisticsController.java @@ -33,8 +33,8 @@ public class EbikeStatisticsController { */ @PostMapping("/getOrderStatistics") public JsonResult getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) { - Long staffId = StpUtil.getLoginIdAsLong(); - CommonStaffInfo staffInfo = StpUtil.getSession().getModel(staffId.toString(), CommonStaffInfo.class); + long staffId = StpUtil.getLoginIdAsLong(); + CommonStaffInfo staffInfo = StpUtil.getSession().getModel(String.valueOf(staffId), CommonStaffInfo.class); dto.setOperatorId(staffInfo.getOperatorId()); JsonResult jsonResult = userFeignClient.getOrderStatistics(dto); if (jsonResult.getCode() != Code.SUCCESS) { diff --git a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java index a5f3ff7..601ee19 100644 --- a/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java +++ b/ebike-user/src/main/java/com/cdzy/user/controller/EbikeOrderController.java @@ -168,7 +168,7 @@ public class EbikeOrderController { */ @PostMapping("/api/getOrderStatistics") public JsonResult getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) { - List result = ebikeOrderService.getOrderStatistics(dto); + FeignEbikeOrderStatisticsVo result = ebikeOrderService.getOrderStatistics(dto); return JsonResult.success(result); } } diff --git a/ebike-user/src/main/java/com/cdzy/user/mapper/EbikeOrderMapper.java b/ebike-user/src/main/java/com/cdzy/user/mapper/EbikeOrderMapper.java index 1d53009..99a53b1 100644 --- a/ebike-user/src/main/java/com/cdzy/user/mapper/EbikeOrderMapper.java +++ b/ebike-user/src/main/java/com/cdzy/user/mapper/EbikeOrderMapper.java @@ -1,8 +1,8 @@ package com.cdzy.user.mapper; import com.cdzy.user.model.entity.EbikeOrder; +import com.cdzy.user.model.vo.EbikeOrderStatisticsVo; import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo; -import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo; import com.mybatisflex.core.BaseMapper; import java.time.LocalDateTime; @@ -33,5 +33,5 @@ public interface EbikeOrderMapper extends BaseMapper { * @param endTime 结束时间 * @return 订单数据及订单金额 */ - List getOrderStatistics(Long operatorId, LocalDateTime startTime, LocalDateTime endTime); + List getOrderStatistics(Long operatorId, LocalDateTime startTime, LocalDateTime endTime); } diff --git a/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderStatisticsVo.java b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderStatisticsVo.java new file mode 100644 index 0000000..071a246 --- /dev/null +++ b/ebike-user/src/main/java/com/cdzy/user/model/vo/EbikeOrderStatisticsVo.java @@ -0,0 +1,38 @@ +package com.cdzy.user.model.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author yanglei + * @since 2026-01-16 15:43 + */ +@Data +public class EbikeOrderStatisticsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 运营商id + */ + private Long operatorId; + + /** + * 订单数量 + */ + private Integer orderCount; + + /** + * 订单金额 + */ + private BigDecimal orderAmount; + + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime createTime; +} diff --git a/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java b/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java index a5c8f1b..d3cc2cd 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/EbikeOrderService.java @@ -123,5 +123,5 @@ public interface EbikeOrderService extends IService { * @param dto 订单请求参数 * @return 订单数据及订单金额 */ - List getOrderStatistics(FeignEbikeOrderStatisticsDto dto); + FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto); } diff --git a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java index ec7ccec..119112d 100644 --- a/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java +++ b/ebike-user/src/main/java/com/cdzy/user/service/impl/EbikeOrderServiceImpl.java @@ -20,6 +20,7 @@ import com.cdzy.user.model.entity.EbikeOrderDetail; import com.cdzy.user.model.entity.EbikePayment; import com.cdzy.user.model.vo.EbikeBikeInfoVo; import com.cdzy.user.model.vo.EbikeOrderDetailVo; +import com.cdzy.user.model.vo.EbikeOrderStatisticsVo; import com.cdzy.user.model.vo.EbikePaymentCostDetailVo; import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo; import com.cdzy.user.model.vo.EbikeUserAllOrdersVo; @@ -51,6 +52,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; import static com.cdzy.user.model.entity.table.EbikeOrderTableDef.EBIKE_ORDER; import static com.cdzy.user.model.entity.table.EbikeRefundTableDef.EBIKE_REFUND; @@ -356,14 +358,20 @@ public class EbikeOrderServiceImpl extends ServiceImpl getOrderStatistics(FeignEbikeOrderStatisticsDto dto) { + public FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto) { TimeRangeEnum timeRange = TimeRangeEnum.fromCode(dto.getTimeRange()); LocalDateTime[] range = timeRange.getRange(); - return this.mapper.getOrderStatistics( + List orderStatistics = this.mapper.getOrderStatistics( dto.getOperatorId(), range[0], range[1] ); + return FeignEbikeOrderStatisticsVo.builder() + .operatorId(orderStatistics.stream().map(EbikeOrderStatisticsVo::getOperatorId).collect(Collectors.toList())) + .times(orderStatistics.stream().map(vo -> vo.getCreateTime().toLocalDate()).collect(Collectors.toList())) + .orderCounts(orderStatistics.stream().map(EbikeOrderStatisticsVo::getOrderCount).collect(Collectors.toList())) + .orderAmounts(orderStatistics.stream().map(EbikeOrderStatisticsVo::getOrderAmount).collect(Collectors.toList())) + .build(); } /** diff --git a/ebike-user/src/main/resources/mapper/EbikeOrderMapper.xml b/ebike-user/src/main/resources/mapper/EbikeOrderMapper.xml index 42c1c1b..97b99e5 100644 --- a/ebike-user/src/main/resources/mapper/EbikeOrderMapper.xml +++ b/ebike-user/src/main/resources/mapper/EbikeOrderMapper.xml @@ -56,7 +56,7 @@ - SELECT operator_id AS operatorId, create_time::date::timestamp AS createTime,