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