feat():分页功能
parent
e27db94c4d
commit
058c678343
|
@ -63,6 +63,8 @@ public class ProductListResp {
|
|||
private Date createTime;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 数据库对象构建为返回结果对象
|
||||
* @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.ProductUpdReq;
|
||||
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.common.core.domain.Result;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
@ -40,7 +41,7 @@ public class ProductApiController {
|
|||
*/
|
||||
@PostMapping(path ="/list")
|
||||
@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));
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import com.muyu.cloud.market.domin.Product;
|
||||
import com.muyu.cloud.market.domin.req.ProductListReq;
|
||||
import com.muyu.cloud.market.domin.resp.ProductListResp;
|
||||
import com.muyu.cloud.market.domin.resp.ProductTotalListResp;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -21,7 +22,7 @@ public interface ProductApiService extends IService<Product> {
|
|||
* @param productListReq
|
||||
* @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.req.ProductListReq;
|
||||
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.service.ProductApiService;
|
||||
import com.muyu.common.core.utils.StringUtils;
|
||||
|
@ -29,7 +30,7 @@ public class ProductApiServiceImpl extends ServiceImpl<ProductApiMapper, Product
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<ProductListResp> selectList(ProductListReq productListReq) {
|
||||
public ProductTotalListResp selectList(ProductListReq productListReq) {
|
||||
Integer pageNum = productListReq.getPageNum();
|
||||
Integer pageSize = productListReq.getPageSize();
|
||||
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
@ -37,12 +38,14 @@ public class ProductApiServiceImpl extends ServiceImpl<ProductApiMapper, Product
|
|||
Product::getProductName,productListReq.getProductName());
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(productListReq.getProductState()),
|
||||
Product::getProductState,productListReq.getProductState());
|
||||
long count = this.count(queryWrapper);
|
||||
queryWrapper.orderByDesc(Product::getProductSales);
|
||||
queryWrapper.last("LIMIT " + ((pageNum - 1) * pageSize) + ", " + pageSize);
|
||||
List<Product> productList = this.list(queryWrapper);
|
||||
return productList.stream()
|
||||
List<ProductListResp> productListResps = productList.stream()
|
||||
.map(product -> ProductListResp.productListRespbuild(product))
|
||||
.toList();
|
||||
return ProductTotalListResp.of(productListResps, count);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue