diff --git a/src/main/java/com/yupi/springbootinit/common/PageRequest.java b/src/main/java/com/yupi/springbootinit/common/PageRequest.java index f17de55..6a0e96e 100644 --- a/src/main/java/com/yupi/springbootinit/common/PageRequest.java +++ b/src/main/java/com/yupi/springbootinit/common/PageRequest.java @@ -1,6 +1,8 @@ package com.yupi.springbootinit.common; import com.yupi.springbootinit.constant.CommonConstant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -10,25 +12,20 @@ import lombok.Data; * @from 编程导航知识星球 */ @Data +@ApiModel("分页信息基础类") public class PageRequest { /** * 当前页号 */ + @ApiModelProperty(value = "当前页数", example = " 1") private int current = 1; /** * 页面大小 */ - private int pageSize = 10; + @ApiModelProperty(value = "当前页面大小", example = " 20") + private int pageSize = 20; - /** - * 排序字段 - */ - private String sortField; - /** - * 排序顺序(默认升序) - */ - private String sortOrder = CommonConstant.SORT_ORDER_ASC; } diff --git a/src/main/java/com/yupi/springbootinit/controller/HostInfoController.java b/src/main/java/com/yupi/springbootinit/controller/HostInfoController.java index d041fab..ffb25e0 100644 --- a/src/main/java/com/yupi/springbootinit/controller/HostInfoController.java +++ b/src/main/java/com/yupi/springbootinit/controller/HostInfoController.java @@ -1,6 +1,7 @@ package com.yupi.springbootinit.controller; import cn.dev33.satoken.stp.StpUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yupi.springbootinit.common.BaseResponse; import com.yupi.springbootinit.common.ResultUtils; import com.yupi.springbootinit.model.dto.host.HostInfoDTO; @@ -26,10 +27,9 @@ public class HostInfoController { @Resource private HostInfoService hostInfoService; - @PostMapping("hosts_info") - public BaseResponse> hostsInfo(@RequestBody HostInfoDTO hostInfoDTO){ - List hostsVOList=hostInfoService.getConditionHosts(hostInfoDTO); - return ResultUtils.success(hostsVOList); + public BaseResponse> hostsInfo(@RequestBody HostInfoDTO hostInfoDTO){ + Page conditionHosts = hostInfoService.getConditionHosts(hostInfoDTO); + return ResultUtils.success(conditionHosts); } } diff --git a/src/main/java/com/yupi/springbootinit/mapper/NewHostsMapper.java b/src/main/java/com/yupi/springbootinit/mapper/NewHostsMapper.java index 9df0f32..a91308d 100644 --- a/src/main/java/com/yupi/springbootinit/mapper/NewHostsMapper.java +++ b/src/main/java/com/yupi/springbootinit/mapper/NewHostsMapper.java @@ -1,8 +1,13 @@ package com.yupi.springbootinit.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.entity.NewHosts; import java.util.List; + +import com.yupi.springbootinit.model.vo.hosts.NewHostsVO; import org.apache.ibatis.annotations.Param; /* @@ -23,4 +28,6 @@ public interface NewHostsMapper extends BaseMapper { int updateByPrimaryKey(NewHosts record); int batchInsert(@Param("list") List list); + + Page selectPageByCondition(@Param("page") Page page, @Param("hostInfoDTO") HostInfoDTO hostInfoDTO); } \ No newline at end of file diff --git a/src/main/java/com/yupi/springbootinit/model/dto/host/HostInfoDTO.java b/src/main/java/com/yupi/springbootinit/model/dto/host/HostInfoDTO.java index 81e554f..c40c9d4 100644 --- a/src/main/java/com/yupi/springbootinit/model/dto/host/HostInfoDTO.java +++ b/src/main/java/com/yupi/springbootinit/model/dto/host/HostInfoDTO.java @@ -1,7 +1,12 @@ package com.yupi.springbootinit.model.dto.host; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yupi.springbootinit.common.PageRequest; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; import java.util.Date; /* @@ -9,80 +14,157 @@ import java.util.Date; * @date: 2025/6/10 18:58 */ @Data -public class HostInfoDTO { +@ApiModel("主播信息DTO类") +public class HostInfoDTO extends PageRequest implements Serializable { /** * 主键 */ + @ApiModelProperty(value = "主键ID", example = "1") private Long id; /** * 主播id */ + @ApiModelProperty(value = "主播ID", example = "host123") private String hostsId; /** * 主播等级 */ + @ApiModelProperty(value = "主播等级", example = "A") private String hostsLevel; /** * 主播金币 */ + @ApiModelProperty(value = "主播当前金币数", example = "5000") private Integer hostsCoins; + /** + * 主播金币最大值 + */ + @ApiModelProperty(value = "主播金币查询最大值", example = "10000") + private Integer hostsCoinsMax; + + /** + * 主播金币最小值 + */ + @ApiModelProperty(value = "主播金币查询最小值", example = "1000") + private Integer hostsCoinsMin; + /** * 邀请类型 */ + @ApiModelProperty(value = "邀请类型(1:普票 2:金票)", example = "1") private Integer invitationType; /** * 粉丝数量 */ + @ApiModelProperty(value = "粉丝数量", example = "10000") private Integer fans; + /** + * 粉丝数量最大值 + */ + @ApiModelProperty(value = "粉丝数量查询最大值", example = "50000") + private Integer fansMax; + + /** + * 粉丝数量最小值 + */ + @ApiModelProperty(value = "粉丝数量查询最小值", example = "1000") + private Integer fansMin; + /** * 关注数量 */ + @ApiModelProperty(value = "关注数量", example = "500") private Integer fllowernum; + /** + * 关注数量最大值 + */ + @ApiModelProperty(value = "关注数量查询最大值", example = "1000") + private Integer fllowernumMax; + + /** + * 关注数量最小值 + */ + @ApiModelProperty(value = "关注数量查询最小值", example = "100") + private Integer fllowernumMin; + /** * 昨日金币 */ + @ApiModelProperty(value = "主播昨日金币数", example = "2000") private Integer yesterdayCoins; + /** + * 昨日金币最大值 + */ + @ApiModelProperty(value = "昨日金币查询最大值", example = "5000") + private Integer yesterdayCoinsMax; + + /** + * 昨日金币最小值 + */ + @ApiModelProperty(value = "昨日金币查询最小值", example = "500") + private Integer yesterdayCoinsMin; + /** * 主播国家 */ + @ApiModelProperty(value = "主播所在国家", example = "美国") private String country; /** * 直播类型 娱乐,游戏 */ + @ApiModelProperty(value = "直播类型(娱乐/游戏)", example = "娱乐") private String hostsKind; /** * 租户 Id */ + @ApiModelProperty(value = "租户ID", example = "1001") private Long tenantId; /** * 入库人 */ + @ApiModelProperty(value = "数据创建人ID", example = "101") private Integer creator; /** * 数据插入时间 */ + @ApiModelProperty(value = "创建时间(yyyy-MM-dd)", example = "2023-01-01") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTime; /** - * 更新人 + * 数据插入最大 */ - private String updater; + @ApiModelProperty(value = "创建时间查询上限(yyyy-MM-dd)", example = "2023-12-31") + private Date createTimeMax; /** - * 更新时间 + * 数据插入最小 */ - private Date updateTime; + @ApiModelProperty(value = "创建时间查询下限(yyyy-MM-dd)", example = "2023-01-01") + private Date createTimeMin; + + /** + * 排序规则 + */ + @ApiModelProperty(value = "排序方式(asc/desc)", example = "desc") + private String sort; + + /** + * 按照何种业务排序 + */ + @ApiModelProperty(value = "排序字段(createTime/hostsCoins/fans等)", example = "hostsCoins") + private String sortName; } diff --git a/src/main/java/com/yupi/springbootinit/model/vo/hosts/NewHostsVO.java b/src/main/java/com/yupi/springbootinit/model/vo/hosts/NewHostsVO.java index 8c9f7db..c02433d 100644 --- a/src/main/java/com/yupi/springbootinit/model/vo/hosts/NewHostsVO.java +++ b/src/main/java/com/yupi/springbootinit/model/vo/hosts/NewHostsVO.java @@ -2,6 +2,7 @@ package com.yupi.springbootinit.model.vo.hosts; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @@ -15,42 +16,49 @@ public class NewHostsVO { /** * 主键 */ - @TableId(value = "id", type = IdType.AUTO) + @TableId(value = "id") private Long id; /** * 主播id */ + @TableId(value = "hosts_id") private String hostsId; /** * 主播等级 */ + @TableId(value = "hosts_level") private String hostsLevel; /** * 主播金币 */ + @TableId(value = "hosts_coins") private Integer hostsCoins; /** * 邀请类型 */ + @TableId(value = "invitation_type") private Integer invitationType; /** * 粉丝数量 */ + @TableId(value = "fans") private Integer fans; /** * 关注数量 */ + @TableId(value = "fllowernum") private Integer fllowernum; /** * 昨日金币 */ + @TableId(value = "yesterday_coins") private Integer yesterdayCoins; /** @@ -61,21 +69,14 @@ public class NewHostsVO { /** * 直播类型 娱乐,游戏 */ + @TableId(value = "hosts_kind") private String hostsKind; - /** - * 租户 Id - */ - private Long tenantId; - - /** - * 入库人 - */ - private Long creator; - /** * 数据插入时间 */ + @TableId(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; } \ No newline at end of file diff --git a/src/main/java/com/yupi/springbootinit/service/HostInfoService.java b/src/main/java/com/yupi/springbootinit/service/HostInfoService.java index 402cccb..a5a59aa 100644 --- a/src/main/java/com/yupi/springbootinit/service/HostInfoService.java +++ b/src/main/java/com/yupi/springbootinit/service/HostInfoService.java @@ -1,6 +1,7 @@ package com.yupi.springbootinit.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.entity.NewHosts; @@ -16,5 +17,5 @@ import java.util.concurrent.CompletableFuture; public interface HostInfoService extends IService { - List getConditionHosts(HostInfoDTO hostInfoDTO); + Page getConditionHosts(HostInfoDTO hostInfoDTO); } diff --git a/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java b/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java index 69a1a7b..a8d009f 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/HostInfoServiceImpl.java @@ -1,7 +1,11 @@ package com.yupi.springbootinit.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; +import com.yupi.springbootinit.common.BaseResponse; +import com.yupi.springbootinit.common.ResultUtils; import com.yupi.springbootinit.mapper.NewHostsMapper; import com.yupi.springbootinit.model.dto.host.HostInfoDTO; import com.yupi.springbootinit.model.entity.NewHosts; @@ -12,7 +16,9 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StopWatch; +import org.springframework.web.bind.annotation.RequestBody; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -27,10 +33,12 @@ import java.util.concurrent.CompletableFuture; @Transactional(rollbackFor = Exception.class) public class HostInfoServiceImpl extends ServiceImpl implements HostInfoService { + @Resource + private NewHostsMapper newHostsMapper; @Override - public List getConditionHosts(HostInfoDTO hostInfoDTO) { - - return List.of(); + public Page getConditionHosts(@RequestBody HostInfoDTO hostInfoDTO) { + Page page = new Page<>(hostInfoDTO.getCurrent(),hostInfoDTO.getPageSize()); + return newHostsMapper.selectPageByCondition(page, hostInfoDTO); } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index fff6c02..fd5da89 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -8,7 +8,7 @@ spring: # todo 需替换配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?rewriteBatchedStatements=true + url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true username: root password: 123asd # Redis 配置 diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 67c0989..b46a616 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -8,7 +8,7 @@ spring: # todo 需替换配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?rewriteBatchedStatements=true + url: jdbc:mysql://localhost:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true username: root password: 123asd # Redis 配置 diff --git a/src/main/resources/mapper/NewHostsMapper.xml b/src/main/resources/mapper/NewHostsMapper.xml index 5279c82..17202fb 100644 --- a/src/main/resources/mapper/NewHostsMapper.xml +++ b/src/main/resources/mapper/NewHostsMapper.xml @@ -20,6 +20,23 @@ + + + + + + + + + + + + + + + + + id, hosts_id, hosts_level, hosts_coins, Invitation_type, fans, fllowernum, yesterday_coins, @@ -222,4 +239,91 @@ #{item.tenantId,jdbcType=BIGINT}, #{item.creator,jdbcType=INTEGER}) + + \ No newline at end of file