diff --git a/src/main/java/com/link/domain/PageQuery.java b/src/main/java/com/link/domain/PageQuery.java index 9435159..69f6be7 100644 --- a/src/main/java/com/link/domain/PageQuery.java +++ b/src/main/java/com/link/domain/PageQuery.java @@ -11,6 +11,8 @@ import java.util.List; @NoArgsConstructor public class PageQuery { - private Long total; + private Integer page; + private Integer pageSize; + private Integer total; private List list; } diff --git a/src/main/java/com/link/domain/dto/UserCountDTO.java b/src/main/java/com/link/domain/dto/UserCountDTO.java index 3a91356..dec2d02 100644 --- a/src/main/java/com/link/domain/dto/UserCountDTO.java +++ b/src/main/java/com/link/domain/dto/UserCountDTO.java @@ -17,4 +17,9 @@ public class UserCountDTO { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime startTime; + + public Integer getStart(){ + return (page-1)*pageSize; + } + } diff --git a/src/main/java/com/link/mapper/UserCountMapper.java b/src/main/java/com/link/mapper/UserCountMapper.java index 3606b11..ec2c2ca 100644 --- a/src/main/java/com/link/mapper/UserCountMapper.java +++ b/src/main/java/com/link/mapper/UserCountMapper.java @@ -12,9 +12,15 @@ import java.util.List; @Mapper @Qualifier("hljwSqlSessionTemplate") public interface UserCountMapper { - List getEmailUserCount(@Param("startTime") LocalDateTime startTime,@Param("page") Integer page,@Param("pageSize") Integer pageSize); + List getEmailUserList(@Param("startTime") LocalDateTime startTime,@Param("page") Integer page,@Param("pageSize") Integer pageSize); - List getGoogleUserCount(@Param("startTime") LocalDateTime startTime,@Param("page") Integer page,@Param("pageSize") Integer pageSize); + Integer getEmailUserTotal(@Param("startTime") LocalDateTime startTime); - List getMessageUserCount(@Param("startTime") LocalDateTime startTime,@Param("page") Integer page,@Param("pageSize") Integer pageSize); + List getGoogleUserList(@Param("startTime") LocalDateTime startTime,@Param("page") Integer page,@Param("pageSize") Integer pageSize); + + Integer getGoogleUserTotal(@Param("startTime") LocalDateTime startTime); + + List getMessageUserList(@Param("startTime") LocalDateTime startTime,@Param("page") Integer page,@Param("pageSize") Integer pageSize); + + Integer getMessageUserTotal(@Param("startTime") LocalDateTime startTime); } diff --git a/src/main/java/com/link/serviceImpl/UserCountServiceImpl.java b/src/main/java/com/link/serviceImpl/UserCountServiceImpl.java index a70e1f4..c66fca7 100644 --- a/src/main/java/com/link/serviceImpl/UserCountServiceImpl.java +++ b/src/main/java/com/link/serviceImpl/UserCountServiceImpl.java @@ -23,10 +23,12 @@ public class UserCountServiceImpl implements UserCountService { private UserCountMapper userCountMapper; @Override public PageQuery getEmailUserCount(UserCountDTO dto) { - List userCountVOList =userCountMapper.getEmailUserCount(dto.getStartTime(),dto.getPage(),dto.getPageSize()); - PageInfo pageInfo = new PageInfo<>(userCountVOList); + List userCountVOList =userCountMapper.getEmailUserList(dto.getStartTime(),dto.getStart(),dto.getPageSize()); + Integer userCountVOTotal= userCountMapper.getEmailUserTotal(dto.getStartTime()); PageQuery result = new PageQuery(); - result.setTotal(pageInfo.getTotal()); + result.setPage(dto.getStart()); + result.setPageSize(dto.getPageSize()); + result.setTotal(userCountVOTotal); result.setList(userCountVOList); return result; } @@ -34,20 +36,24 @@ public class UserCountServiceImpl implements UserCountService { @Override public PageQuery getGoogleUserCount(UserCountDTO dto) { - List userCountVOList =userCountMapper.getGoogleUserCount(dto.getStartTime(),dto.getPage(),dto.getPageSize()); - PageInfo pageInfo = new PageInfo<>(userCountVOList); + List userCountVOList =userCountMapper.getGoogleUserList(dto.getStartTime(),dto.getStart(),dto.getPageSize()); + Integer userCountVOTotal= userCountMapper.getGoogleUserTotal(dto.getStartTime()); PageQuery result = new PageQuery(); - result.setTotal(pageInfo.getTotal()); + result.setPage(dto.getStart()); + result.setPageSize(dto.getPageSize()); + result.setTotal(userCountVOTotal); result.setList(userCountVOList); return result; } @Override public PageQuery getMessageUserCount(UserCountDTO dto) { - List userCountVOList =userCountMapper.getMessageUserCount(dto.getStartTime(),dto.getPage(),dto.getPageSize()); - PageInfo pageInfo = new PageInfo<>(userCountVOList); + List userCountVOList =userCountMapper.getMessageUserList(dto.getStartTime(),dto.getStart(),dto.getPageSize()); + Integer userCountVOTotal= userCountMapper.getMessageUserTotal(dto.getStartTime()); PageQuery result = new PageQuery(); - result.setTotal(pageInfo.getTotal()); + result.setPage(dto.getStart()); + result.setPageSize(dto.getPageSize()); + result.setTotal(userCountVOTotal); result.setList(userCountVOList); return result; } diff --git a/src/main/resources/com/link/mapper/UserCountMapper.xml b/src/main/resources/com/link/mapper/UserCountMapper.xml index 7b3cc9c..464210e 100644 --- a/src/main/resources/com/link/mapper/UserCountMapper.xml +++ b/src/main/resources/com/link/mapper/UserCountMapper.xml @@ -2,7 +2,7 @@ - + order by t1 desc limit #{page}, #{pageSize}; - + select count(*) + from( + + ) as total; + + + select t1 as businessDate,count(*) as userCount from - (select distinct case when hh < 28800 then date_format(date_add(tt,interval -1 day),'%Y-%m-%d') else date_format(tt,'%Y-%m-%d') end t1,hh,openId,date_format(tt,'%Y-%m-%d %H:%i') tt from ( + (select distinct case when hh <28800 then date_format(date_add(tt,interval -1 day),'%Y-%m-%d') else date_format(tt,'%Y-%m-%d') end t1,hh,openId,date_format(tt,'%Y-%m-%d %H:%i') tt from ( select timestampdiff(second,date_format(tt,'%Y-%m-%d 00:00:00'),tt) hh,openId,tt from ( select distinct openId,date_format(from_unixtime(time),'%Y-%m-%d %H:%i') tt,time from fx_member_google where 1=1 and time is not null )a)b)c - where tt>= #{startTime} + where tt>=#{startTime} group by t1 + + + - + select count(*) + from( + + ) as total; + + + select t1 as businessDate,count(*) as userCount from (select distinct case when hh < 28800 then date_format(date_add(tt,interval -1 day),'%Y-%m-%d') else date_format(tt,'%Y-%m-%d') end t1,hh,username,date_format(tt,'%Y-%m-%d %H:%i') tt from ( select timestampdiff(second,date_format(tt,'%Y-%m-%d 00:00:00'),tt) hh,username,tt from ( select username,min(date_format(from_unixtime(time),'%Y-%m-%d %H:%i')) tt from fx_code where 1=1 group by username )a)b)c - where tt>= #{startTime} + where tt>=#{startTime} group by t1 + + + + + \ No newline at end of file