feat():分页功能
parent
e27db94c4d
commit
058c678343
|
@ -63,6 +63,8 @@ public class ProductListResp {
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据库对象构建为返回结果对象
|
* 数据库对象构建为返回结果对象
|
||||||
* @param product
|
* @param product
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.muyu.cloud.market.domin.resp;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:weiran
|
||||||
|
* @Package:com.muyu.cloud.market.domin.resp
|
||||||
|
* @Project:cloud-market
|
||||||
|
* @name:ProductTotalListResp
|
||||||
|
* @Date:2024/8/26 8:32
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Tag(name="数据总数列表",description = "数据和总数的响应")
|
||||||
|
public class ProductTotalListResp {
|
||||||
|
|
||||||
|
private List<ProductListResp> productListResps;
|
||||||
|
|
||||||
|
private long total;
|
||||||
|
|
||||||
|
public static ProductTotalListResp of(List<ProductListResp> productList, long total) {
|
||||||
|
ProductTotalListResp response = new ProductTotalListResp();
|
||||||
|
response.setProductListResps(productList);
|
||||||
|
response.setTotal(total);
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import com.muyu.cloud.market.domin.req.ProductAddReq;
|
||||||
import com.muyu.cloud.market.domin.req.ProductListReq;
|
import com.muyu.cloud.market.domin.req.ProductListReq;
|
||||||
import com.muyu.cloud.market.domin.req.ProductUpdReq;
|
import com.muyu.cloud.market.domin.req.ProductUpdReq;
|
||||||
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
||||||
|
import com.muyu.cloud.market.domin.resp.ProductTotalListResp;
|
||||||
import com.muyu.cloud.market.service.ProductApiService;
|
import com.muyu.cloud.market.service.ProductApiService;
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
@ -40,7 +41,7 @@ public class ProductApiController {
|
||||||
*/
|
*/
|
||||||
@PostMapping(path ="/list")
|
@PostMapping(path ="/list")
|
||||||
@Operation(summary = "产品列表",description = "查询全部产品信息")
|
@Operation(summary = "产品列表",description = "查询全部产品信息")
|
||||||
public Result<List<ProductListResp>> selectList(@Validated @RequestBody ProductListReq productListReq){
|
public Result<ProductTotalListResp> selectList(@Validated @RequestBody ProductListReq productListReq){
|
||||||
return Result.success(productApiService.selectList(productListReq));
|
return Result.success(productApiService.selectList(productListReq));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.muyu.cloud.market.domin.Product;
|
import com.muyu.cloud.market.domin.Product;
|
||||||
import com.muyu.cloud.market.domin.req.ProductListReq;
|
import com.muyu.cloud.market.domin.req.ProductListReq;
|
||||||
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
||||||
|
import com.muyu.cloud.market.domin.resp.ProductTotalListResp;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -21,7 +22,7 @@ public interface ProductApiService extends IService<Product> {
|
||||||
* @param productListReq
|
* @param productListReq
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<ProductListResp> selectList(ProductListReq productListReq);
|
ProductTotalListResp selectList(ProductListReq productListReq);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询热点产品
|
* 查询热点产品
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.muyu.cloud.market.domin.Product;
|
import com.muyu.cloud.market.domin.Product;
|
||||||
import com.muyu.cloud.market.domin.req.ProductListReq;
|
import com.muyu.cloud.market.domin.req.ProductListReq;
|
||||||
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
||||||
|
import com.muyu.cloud.market.domin.resp.ProductTotalListResp;
|
||||||
import com.muyu.cloud.market.mapper.ProductApiMapper;
|
import com.muyu.cloud.market.mapper.ProductApiMapper;
|
||||||
import com.muyu.cloud.market.service.ProductApiService;
|
import com.muyu.cloud.market.service.ProductApiService;
|
||||||
import com.muyu.common.core.utils.StringUtils;
|
import com.muyu.common.core.utils.StringUtils;
|
||||||
|
@ -29,7 +30,7 @@ public class ProductApiServiceImpl extends ServiceImpl<ProductApiMapper, Product
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<ProductListResp> selectList(ProductListReq productListReq) {
|
public ProductTotalListResp selectList(ProductListReq productListReq) {
|
||||||
Integer pageNum = productListReq.getPageNum();
|
Integer pageNum = productListReq.getPageNum();
|
||||||
Integer pageSize = productListReq.getPageSize();
|
Integer pageSize = productListReq.getPageSize();
|
||||||
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
@ -37,12 +38,14 @@ public class ProductApiServiceImpl extends ServiceImpl<ProductApiMapper, Product
|
||||||
Product::getProductName,productListReq.getProductName());
|
Product::getProductName,productListReq.getProductName());
|
||||||
queryWrapper.eq(StringUtils.isNotEmpty(productListReq.getProductState()),
|
queryWrapper.eq(StringUtils.isNotEmpty(productListReq.getProductState()),
|
||||||
Product::getProductState,productListReq.getProductState());
|
Product::getProductState,productListReq.getProductState());
|
||||||
|
long count = this.count(queryWrapper);
|
||||||
queryWrapper.orderByDesc(Product::getProductSales);
|
queryWrapper.orderByDesc(Product::getProductSales);
|
||||||
queryWrapper.last("LIMIT " + ((pageNum - 1) * pageSize) + ", " + pageSize);
|
queryWrapper.last("LIMIT " + ((pageNum - 1) * pageSize) + ", " + pageSize);
|
||||||
List<Product> productList = this.list(queryWrapper);
|
List<Product> productList = this.list(queryWrapper);
|
||||||
return productList.stream()
|
List<ProductListResp> productListResps = productList.stream()
|
||||||
.map(product -> ProductListResp.productListRespbuild(product))
|
.map(product -> ProductListResp.productListRespbuild(product))
|
||||||
.toList();
|
.toList();
|
||||||
|
return ProductTotalListResp.of(productListResps, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue