修改APP端搜索球杆商品接口,增加精准查询参数

This commit is contained in:
杨旭 2025-04-13 22:59:32 +08:00
parent f83ccac538
commit 659871efda
3 changed files with 7 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package com.tmerclub.cloud.common.local.dto; package com.tmerclub.cloud.common.local.dto;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -23,10 +24,12 @@ public class CueProductSearchDTO implements Serializable {
/** /**
* 关联的球杆品牌ID * 关联的球杆品牌ID
*/ */
@NotNull(message = "关联的球杆品牌ID不能为空")
private Long brandId; private Long brandId;
/** /**
* 关联的球杆类型ID * 关联的球杆类型ID
*/ */
@NotNull(message = "关联的球杆类型ID不能为空")
private Long typeId; private Long typeId;
public void setProductName(String productName) { public void setProductName(String productName) {

View File

@ -78,7 +78,9 @@ public class LocalCueProductSearchRequestBuilder {
*/ */
private void keywordSearch(CueProductSearchDTO param, BoolQueryBuilder boolQueryBuilder, Integer lang) { private void keywordSearch(CueProductSearchDTO param, BoolQueryBuilder boolQueryBuilder, Integer lang) {
BoolQueryBuilder keywordShouldQuery = QueryBuilders.boolQuery(); BoolQueryBuilder keywordShouldQuery = QueryBuilders.boolQuery();
if (ObjectUtil.isNotEmpty(param.getProductName())) {
keywordShouldQuery.must(QueryBuilders.wildcardQuery(EsConstant.CUE_PRODUCT_NAME, "*" + param.getProductName() + "*")); keywordShouldQuery.must(QueryBuilders.wildcardQuery(EsConstant.CUE_PRODUCT_NAME, "*" + param.getProductName() + "*"));
}
keywordShouldQuery.must(QueryBuilders.termQuery(EsConstant.CUE_BRAND_ID, param.getBrandId())); keywordShouldQuery.must(QueryBuilders.termQuery(EsConstant.CUE_BRAND_ID, param.getBrandId()));
keywordShouldQuery.must(QueryBuilders.termQuery(EsConstant.CUE_TYPE_ID, param.getTypeId())); keywordShouldQuery.must(QueryBuilders.termQuery(EsConstant.CUE_TYPE_ID, param.getTypeId()));
boolQueryBuilder.must(keywordShouldQuery); boolQueryBuilder.must(keywordShouldQuery);

View File

@ -1,6 +1,5 @@
package com.tmerclub.cloud.search.controller.app; package com.tmerclub.cloud.search.controller.app;
import cn.hutool.core.util.ObjectUtil;
import com.tmerclub.cloud.api.dto.EsPageDTO; import com.tmerclub.cloud.api.dto.EsPageDTO;
import com.tmerclub.cloud.api.vo.EsPageVO; import com.tmerclub.cloud.api.vo.EsPageVO;
import com.tmerclub.cloud.common.local.dto.CueProductSearchDTO; import com.tmerclub.cloud.common.local.dto.CueProductSearchDTO;
@ -38,14 +37,7 @@ public class LocalCueProductSearchController {
*/ */
@GetMapping("/searchCueProductPage") @GetMapping("/searchCueProductPage")
@Operation(summary = "APP端搜索球杆商品接口", description = "APP端搜索球杆商品接口") @Operation(summary = "APP端搜索球杆商品接口", description = "APP端搜索球杆商品接口")
public ServerResponseEntity<EsPageVO<CueProductSearchVO>> searchCueProductPage(@Valid EsPageDTO pageDTO, CueProductSearchDTO cueProductSearchDTO) { public ServerResponseEntity<EsPageVO<CueProductSearchVO>> searchCueProductPage(@Valid EsPageDTO pageDTO, @Valid CueProductSearchDTO cueProductSearchDTO) {
// 判断搜索必要参数是否为空如果为空则返回自定义异常
if (ObjectUtil.isEmpty(cueProductSearchDTO.getProductName()) ||
ObjectUtil.isEmpty(cueProductSearchDTO.getBrandId()) ||
ObjectUtil.isEmpty(cueProductSearchDTO.getTypeId())) {
return ServerResponseEntity.showFailMsg("搜索参数不能为空");
}
EsPageVO<CueProductSearchVO> page = localCueProductSearchManager.page(pageDTO, cueProductSearchDTO); EsPageVO<CueProductSearchVO> page = localCueProductSearchManager.page(pageDTO, cueProductSearchDTO);
return ServerResponseEntity.success(page); return ServerResponseEntity.success(page);
} }