feat():分页功能

dev2
WeiRan 2024-08-26 09:03:30 +08:00
parent e27db94c4d
commit 058c678343
5 changed files with 46 additions and 4 deletions

View File

@ -63,6 +63,8 @@ public class ProductListResp {
private Date createTime; private Date createTime;
/** /**
* *
* @param product * @param product

View File

@ -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;
/**
* @Authorweiran
* @Packagecom.muyu.cloud.market.domin.resp
* @Projectcloud-market
* @nameProductTotalListResp
* @Date2024/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;
}
}

View File

@ -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));
} }

View File

@ -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);
/** /**
* *

View File

@ -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);
} }