feat(product-model): 支持报价产品模型的分页查询
- 将搜索方法searchForQuotation的返回类型由List改为分页类型IPage - 修改Mapper接口和XML,实现基于分页的查询逻辑 - Controller层响应数据类型调整为PageData以支持分页展示 - 在请求对象QuotationProductModelSearchRequest中继承分页请求参数,规范分页请求 - 优化SQL查询条件,修正部分拼写错误和缩进格式 - 统一分页参数传递,提升查询性能与用户体验
This commit is contained in:
parent
e8935e3619
commit
73c0431076
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
@Data
|
||||
public class QuotationProductModelSearchRequest {
|
||||
public class QuotationProductModelSearchRequest extends PageRequest{
|
||||
|
||||
/**
|
||||
* 模块id
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue