feat(product-model): 支持报价产品模型的分页查询

- 将搜索方法searchForQuotation的返回类型由List改为分页类型IPage
- 修改Mapper接口和XML,实现基于分页的查询逻辑
- Controller层响应数据类型调整为PageData以支持分页展示
- 在请求对象QuotationProductModelSearchRequest中继承分页请求参数,规范分页请求
- 优化SQL查询条件,修正部分拼写错误和缩进格式
- 统一分页参数传递,提升查询性能与用户体验
This commit is contained in:
曹鹏飞 2026-05-18 17:47:11 +08:00
parent e8935e3619
commit 73c0431076
6 changed files with 15 additions and 11 deletions

View File

@ -6,7 +6,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class QuotationProductModelSearchRequest {
public class QuotationProductModelSearchRequest extends PageRequest{
/**
* 模块id

View File

@ -1,6 +1,7 @@
package com.nflg.mobilebroken.quotation.controller.app;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.request.QuotationProductModelSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.ProductModelInfoVO;
import com.nflg.mobilebroken.common.pojo.vo.QuotationProductModelInfoVO;
@ -29,7 +30,7 @@ public class ProductModelController extends ControllerBase {
* 搜索
*/
@PostMapping("/search")
public ApiResult<List<QuotationProductModelSearchVO>> search(@Valid @RequestBody QuotationProductModelSearchRequest request){
public ApiResult<PageData<QuotationProductModelSearchVO>> search(@Valid @RequestBody QuotationProductModelSearchRequest request){
return ApiResult.success(productModelService.searchForQuotation(request, MultilingualUtil.getLanguage()));
}

View File

@ -1,6 +1,7 @@
package com.nflg.mobilebroken.repository.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.nflg.mobilebroken.common.pojo.request.ModelConfigSearchRequest;
import com.nflg.mobilebroken.common.pojo.request.ProductModelSearchRequest;
@ -34,7 +35,7 @@ public interface ProductModelMapper extends BaseMapper<ProductModel> {
Page<ProductModel> searchForQuotation(ModelConfigSearchRequest request, Page<?> page);
List<QuotationProductModelSearchVO> searchForQuotation1(QuotationProductModelSearchRequest request, String language);
IPage<QuotationProductModelSearchVO> searchForQuotation1(QuotationProductModelSearchRequest request, String language, Page<?> page);
QuotationProductModelInfoVO getInfoForQuotation(Long id, String language);
}

View File

@ -1,5 +1,6 @@
package com.nflg.mobilebroken.repository.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.mobilebroken.common.pojo.request.*;
@ -54,7 +55,7 @@ public interface IProductModelService extends IService<ProductModel> {
List<ProductModel> getEffectives();
List<QuotationProductModelSearchVO> searchForQuotation(QuotationProductModelSearchRequest request, String language);
IPage<QuotationProductModelSearchVO> searchForQuotation(QuotationProductModelSearchRequest request, String language);
QuotationProductModelInfoVO getInfoForQuotation(Long id, String language);
}

View File

@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
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.nflg.mobilebroken.common.constant.PublishState;
@ -410,8 +411,8 @@ public class ProductModelServiceImpl extends ServiceImpl<ProductModelMapper, Pro
}
@Override
public List<QuotationProductModelSearchVO> searchForQuotation(QuotationProductModelSearchRequest request, String language) {
return baseMapper.searchForQuotation1(request,language);
public IPage<QuotationProductModelSearchVO> searchForQuotation(QuotationProductModelSearchRequest request, String language) {
return baseMapper.searchForQuotation1(request,language,new Page<>(request.getPage(), request.getPageSize()));
}
@Override

View File

@ -66,8 +66,8 @@
SELECT pm.*, pmii.`desc`, pmii.feature
,(SELECT `name` FROM product_type WHERE batch_number=pm.type_number AND state!=2 ORDER BY state DESC LIMIT 1) as 'typeName'
FROM product_model pm
INNER JOIN product_model_intro pmi ON pm.id = pmi.model_id
INNER JOIN product_model_intro_item pmii ON pmi.id = pmii.model_intro_id
INNER JOIN product_model_intro pmi ON pm.id = pmi.model_id
INNER JOIN product_model_intro_item pmii ON pmi.id = pmii.model_intro_id
WHERE pm.state = 1
AND pm.`enable` = 1
AND pmi.state = 1
@ -137,9 +137,9 @@
<if test="request.hasDiscount==true">
AND dis.model_id is not null
</if>
<!-- <if test="request.no!=null and request.no!=''">-->
<!-- AND pm.`no` like concat('%', #{request.no}, '%')-->
<!-- </if>-->
<if test="request.name!=null and request.name!=''">
AND pm.`no` like concat('%', #{request.name}, '%')
</if>
ORDER BY pm.sort,pm.id DESC
</select>