!146 修复秒杀活动相同商品参与时,删除其他活动商品信息问题

Merge pull request !146 from OceansDeep/feature/pg
This commit is contained in:
OceansDeep 2022-04-07 08:31:23 +00:00 committed by Gitee
commit 3439b7aee5
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 36 additions and 2 deletions

View File

@ -2,9 +2,9 @@ package cn.lili.controller.common;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.system.service.RegionService;
import cn.lili.modules.system.entity.dos.Region;
import cn.lili.modules.system.entity.vo.RegionVO;
import cn.lili.modules.system.service.RegionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -38,6 +38,11 @@ public class RegionController {
return ResultUtil.data(regionService.getRegion(cityCode,townName));
}
@GetMapping(value = "/name")
@ApiOperation(value = "根据名字获取地区地址id")
public ResultMessage<String> getItemByLastName(String lastName) {
return ResultUtil.data(regionService.getItemByLastName(lastName));
}
@GetMapping(value = "/item/{id}")
@ApiImplicitParam(name = "id", value = "地区ID", required = true, dataType = "String", paramType = "path")

View File

@ -184,6 +184,7 @@ public class SeckillApplyServiceImpl extends ServiceImpl<SeckillApplyMapper, Sec
//保存促销活动商品信息
if (!promotionGoodsList.isEmpty()) {
PromotionGoodsSearchParams searchParams = new PromotionGoodsSearchParams();
searchParams.setPromotionId(seckillId);
searchParams.setStoreId(storeId);
searchParams.setPromotionType(PromotionTypeEnum.SECKILL.name());
searchParams.setSkuIds(promotionGoodsList.stream().map(PromotionGoods::getSkuId).collect(Collectors.toList()));

View File

@ -562,7 +562,8 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
*/
private List<FunctionScoreQueryBuilder.FilterFunctionBuilder> buildKeywordSearch(String keyword) {
List<FunctionScoreQueryBuilder.FilterFunctionBuilder> filterFunctionBuilders = new ArrayList<>();
MatchQueryBuilder goodsNameQuery = QueryBuilders.matchQuery("goodsName", keyword).operator(Operator.AND);
// operator AND 需全部分词匹配 OR 需配置 minimumShouldMatch最小分词匹配数不设置默认为1
MatchQueryBuilder goodsNameQuery = QueryBuilders.matchQuery("goodsName", keyword).operator(Operator.OR).minimumShouldMatch("2");
//分词匹配
filterFunctionBuilders.add(new FunctionScoreQueryBuilder.FilterFunctionBuilder(goodsNameQuery,
ScoreFunctionBuilders.weightFactorFunction(10)));

View File

@ -36,6 +36,14 @@ public interface RegionService extends IService<Region> {
@Cacheable(key = "#id")
List<Region> getItem(String id);
/**
* 根据最后一级名称获取改所有上级地区id
*
* @param lastName 最后一级名称
* @return 全部地区id
*/
String getItemByLastName(String lastName);
/**
* 获取地址
*

View File

@ -61,6 +61,25 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
}
}
/**
* 根据最后一级名称获取改所有上级地区id
*
* @param lastName 最后一级名称
* @return 全部地区id
*/
@Override
public String getItemByLastName(String lastName) {
StringBuilder sql = new StringBuilder();
LambdaQueryWrapper<Region> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Region::getName, lastName);
Region region = this.getOne(lambdaQueryWrapper, false);
if (region != null) {
sql.append(region.getPath()).append(",").append(region.getId());
return sql.toString().replace(",0,","");
}
return null;
}
@Override
public List<Region> getItem(String id) {
LambdaQueryWrapper<Region> lambdaQueryWrapper = new LambdaQueryWrapper<>();