Commit 90bdc1fd83ae642a377ea5d506fb71d767ac0a49

Authored by puhui999
1 parent 8c9b483a

fix: 修复公众号统计接口字符串日期转 localDateTime 报错的问题

yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/statistics/vo/MpStatisticsGetReqVO.java
1 1 package cn.iocoder.yudao.module.mp.controller.admin.statistics.vo;
2 2  
3 3 import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotNull;
4 5 import lombok.Data;
5 6 import org.springframework.format.annotation.DateTimeFormat;
6 7  
7   -import jakarta.validation.constraints.NotNull;
8 8 import java.time.LocalDateTime;
9 9  
10 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
... ... @@ -17,7 +17,7 @@ public class MpStatisticsGetReqVO {
17 17 @NotNull(message = "公众号账号的编号不能为空")
18 18 private Long accountId;
19 19  
20   - @Schema(description = "查询时间范围")
  20 + @Schema(description = "查询时间范围", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]")
21 21 @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
22 22 @NotNull(message = "查询时间范围不能为空")
23 23 private LocalDateTime[] date;
... ...
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/statistics/MpStatisticsConvert.java
... ... @@ -11,10 +11,16 @@ import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary;
11 11 import org.mapstruct.Mapper;
12 12 import org.mapstruct.Mapping;
13 13 import org.mapstruct.Mappings;
  14 +import org.mapstruct.Named;
14 15 import org.mapstruct.factory.Mappers;
15 16  
  17 +import java.time.LocalDate;
  18 +import java.time.LocalDateTime;
  19 +import java.time.format.DateTimeFormatter;
16 20 import java.util.List;
17 21  
  22 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
  23 +
18 24 @Mapper
19 25 public interface MpStatisticsConvert {
20 26  
... ... @@ -27,7 +33,7 @@ public interface MpStatisticsConvert {
27 33 List<MpStatisticsUpstreamMessageRespVO> convertList03(List<WxDataCubeMsgResult> list);
28 34  
29 35 @Mappings({
30   - @Mapping(source = "refDate", target = "refDate", dateFormat = "yyyy-MM-dd"),
  36 + @Mapping(target = "refDate", expression = "java(dateFormat0(bean.getRefDate()))"),
31 37 @Mapping(source = "msgUser", target = "messageUser"),
32 38 @Mapping(source = "msgCount", target = "messageCount"),
33 39 })
... ... @@ -35,6 +41,12 @@ public interface MpStatisticsConvert {
35 41  
36 42 List<MpStatisticsInterfaceSummaryRespVO> convertList04(List<WxDataCubeInterfaceResult> list);
37 43  
38   - @Mapping(source = "refDate", target = "refDate", dateFormat = "yyyy-MM-dd")
  44 + @Mapping(target = "refDate", expression = "java(dateFormat0(bean.getRefDate()))")
39 45 MpStatisticsInterfaceSummaryRespVO convert(WxDataCubeInterfaceResult bean);
  46 +
  47 + @Named("dateFormat0")
  48 + default LocalDateTime dateFormat0(String date) {
  49 + return LocalDate.parse(date, DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY)).atStartOfDay();
  50 + }
  51 +
40 52 }
... ...