From 92c873eda099b869e15108a79bf5223d3f0264a6 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期三, 06 八月 2025 09:40:44 +0800
Subject: [PATCH] 调整商品可以进行排序
---
framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java | 17 +++++++++++++++++
manager-api/src/main/java/cn/lili/controller/goods/GoodsManagerController.java | 12 ++++++++++--
framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java | 3 ++-
framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java | 4 ++++
framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java | 3 ++-
framework/src/main/java/cn/lili/elasticsearch/BaseElasticsearchService.java | 3 +++
framework/src/main/java/cn/lili/modules/goods/entity/dto/GoodsOperationDTO.java | 2 ++
consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java | 3 ++-
framework/src/main/java/cn/lili/modules/goods/service/GoodsService.java | 6 ++++++
9 files changed, 48 insertions(+), 5 deletions(-)
diff --git a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java
index 78a065f..ea86173 100644
--- a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java
+++ b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java
@@ -124,7 +124,7 @@
@Override
@RetryOperation
public void onMessage(MessageExt messageExt) {
-
+ log.info("鑾峰彇鍒扮殑淇℃伅涓簕},鑾峰彇鍒扮殑鏍囩涓簕}",new String(messageExt.getBody()), GoodsTagsEnum.valueOf(messageExt.getTags()).name());
switch (GoodsTagsEnum.valueOf(messageExt.getTags())) {
//鏌ョ湅鍟嗗搧
case VIEW_GOODS:
@@ -408,6 +408,7 @@
goodsIndex.setMarketEnable(goods.getMarketEnable());
goodsIndex.setPreSaleBeginDate(goods.getPreSaleBeginDate());
goodsIndex.setPreSaleEndDate(goods.getPreSaleEndDate());
+ goodsIndex.setGoodsSort(goods.getGoodsSort());
this.settingUpGoodsIndexOtherParam(goodsIndex);
return goodsIndex;
}
diff --git a/framework/src/main/java/cn/lili/elasticsearch/BaseElasticsearchService.java b/framework/src/main/java/cn/lili/elasticsearch/BaseElasticsearchService.java
index 0b2d077..c9fed7c 100644
--- a/framework/src/main/java/cn/lili/elasticsearch/BaseElasticsearchService.java
+++ b/framework/src/main/java/cn/lili/elasticsearch/BaseElasticsearchService.java
@@ -202,6 +202,9 @@
" \"skuSource\": {\n" +
" \"type\": \"long\"\n" +
" },\n" +
+ " \"goodsSort\": {\n" +
+ " \"type\": \"long\"\n" +
+ " },\n" +
" \"goodsId\": {\n" +
" \"type\": \"text\",\n" +
" \"fields\": {\n" +
diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java b/framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java
index f233523..2cda83b 100644
--- a/framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java
+++ b/framework/src/main/java/cn/lili/modules/goods/entity/dos/Goods.java
@@ -172,6 +172,9 @@
private Date preSaleBeginDate;
@ApiModelProperty(value = "鎶芥垚姣斾緥")
private BigDecimal commission;
+
+ @ApiModelProperty(value = "鍟嗗搧鎺掑簭")
+ private Integer goodsSort;
public Goods() {
}
@@ -192,6 +195,7 @@
this.preSaleEndDate = goodsOperationDTO.getPreSaleEndDate();
this.preSaleBeginDate = goodsOperationDTO.getPreSaleBeginDate();
this.commission = goodsOperationDTO.getCommission();
+ this.goodsSort = goodsOperationDTO.getGoodsSort();
if (goodsOperationDTO.getGoodsParamsDTOList() != null && goodsOperationDTO.getGoodsParamsDTOList().isEmpty()) {
this.params = JSONUtil.toJsonStr(goodsOperationDTO.getGoodsParamsDTOList());
}
diff --git a/framework/src/main/java/cn/lili/modules/goods/entity/dto/GoodsOperationDTO.java b/framework/src/main/java/cn/lili/modules/goods/entity/dto/GoodsOperationDTO.java
index d96d861..b47e599 100644
--- a/framework/src/main/java/cn/lili/modules/goods/entity/dto/GoodsOperationDTO.java
+++ b/framework/src/main/java/cn/lili/modules/goods/entity/dto/GoodsOperationDTO.java
@@ -156,6 +156,8 @@
@DecimalMax(value = "100",message = "鎶芥垚姣斾緥蹇呴』灏忎簬100")
@DecimalMin(value = "0",message = "鎶芥垚姣斾緥蹇呴』澶т簬0")
private BigDecimal commission;
+ @ApiModelProperty(value = "鍟嗗搧鎺掑簭")
+ private Integer goodsSort;
public String getGoodsName() {
//瀵瑰晢鍝佸鍚嶇О鍋氫竴涓瀬闄愬鐞嗐�傝繖閲屾病鏈夌敤xss杩囨护鏄洜涓簒ss杩囨护涓哄叏灞�杩囨护锛屽奖鍝嶅緢澶с��
diff --git a/framework/src/main/java/cn/lili/modules/goods/service/GoodsService.java b/framework/src/main/java/cn/lili/modules/goods/service/GoodsService.java
index ee92e1d..f3c9054 100644
--- a/framework/src/main/java/cn/lili/modules/goods/service/GoodsService.java
+++ b/framework/src/main/java/cn/lili/modules/goods/service/GoodsService.java
@@ -1,15 +1,19 @@
package cn.lili.modules.goods.service;
+import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
+import cn.lili.modules.goods.entity.dto.GoodsSortDTO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.entity.vos.GoodsVO;
import cn.lili.modules.store.entity.dos.Store;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.bind.annotation.RequestBody;
+import javax.validation.Valid;
import java.util.List;
/**
@@ -132,6 +136,8 @@
* @return 鏇存柊缁撴灉
*/
Boolean managerUpdateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason);
+
+ Boolean goodsSort( GoodsSortDTO req);
/**
* 鍒犻櫎鍟嗗搧
*
diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java
index 48a6b24..8fb237a 100644
--- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java
@@ -18,6 +18,7 @@
import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
+import cn.lili.modules.goods.entity.dto.GoodsSortDTO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.entity.vos.GoodsSkuVO;
@@ -423,6 +424,22 @@
@Override
@Transactional(rollbackFor = Exception.class)
+ public Boolean goodsSort(GoodsSortDTO req) {
+ boolean result;
+ //妫�娴嬬鐞嗗憳鏉冮檺
+ this.checkManagerAuthority();
+ LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.set(Goods::getGoodsSort,req.getSort());
+ updateWrapper.eq(Goods::getId, req.getGoodsId());
+ result = this.update(updateWrapper);
+ List<String> goodsIds = new ArrayList<>();
+ goodsIds.add(req.getGoodsId());
+ this.updateEsGoods(goodsIds);
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
@SystemLogPoint(description = "鍒犻櫎鍟嗗搧", customerLog = "'鎿嶄綔瀵硅薄:['+#goodsIds+']'")
public Boolean deleteGoods(List<String> goodsIds) {
diff --git a/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java b/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java
index acb53be..7924f31 100644
--- a/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java
+++ b/framework/src/main/java/cn/lili/modules/search/entity/dos/EsGoodsIndex.java
@@ -296,7 +296,8 @@
@Field(type = FieldType.Text)
@ApiModelProperty("鍟嗗搧淇冮攢娲诲姩闆嗗悎JSON锛宬ey 涓� 淇冮攢娲诲姩绫诲瀷锛寁alue 涓� 淇冮攢娲诲姩瀹炰綋淇℃伅 ")
private String promotionMapJson;
-
+ @ApiModelProperty(value = "鍟嗗搧鎺掑簭")
+ private Integer goodsSort;
public EsGoodsIndex(GoodsSku sku) {
if (sku != null) {
diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
index 53454ff..b0a4a72 100644
--- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java
@@ -103,6 +103,7 @@
NativeSearchQuery searchQuery = searchQueryBuilder.build();
searchQuery.setTrackTotalHits(true);
log.info("searchGoods DSL:{}", searchQuery.getQuery().toString());
+ log.info("searchGoods sort:{}", searchQuery.getElasticsearchSorts().toString());
SearchHits<EsGoodsIndex> search = restTemplate.search(searchQuery, EsGoodsIndex.class);
return SearchHitSupport.searchPageFor(search, searchQuery.getPageable());
}
@@ -476,7 +477,7 @@
if (pageVo != null && CharSequenceUtil.isNotEmpty(pageVo.getOrder()) && CharSequenceUtil.isNotEmpty(pageVo.getSort())) {
- nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort(pageVo.getSort()).order(SortOrder.valueOf(pageVo.getOrder().toUpperCase())));
+ nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort(pageVo.getSort()).order(SortOrder.valueOf(pageVo.getOrder().toUpperCase())).missing("_last"));
} else {
nativeSearchQueryBuilder.withSort(SortBuilders.scoreSort().order(SortOrder.DESC));
}
diff --git a/manager-api/src/main/java/cn/lili/controller/goods/GoodsManagerController.java b/manager-api/src/main/java/cn/lili/controller/goods/GoodsManagerController.java
index c25f8a7..d73f452 100644
--- a/manager-api/src/main/java/cn/lili/controller/goods/GoodsManagerController.java
+++ b/manager-api/src/main/java/cn/lili/controller/goods/GoodsManagerController.java
@@ -10,6 +10,7 @@
import cn.lili.modules.goods.entity.dos.Goods;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
+import cn.lili.modules.goods.entity.dto.GoodsSortDTO;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.entity.vos.GoodsSkuVO;
@@ -25,11 +26,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* 绠$悊绔�,鍟嗗搧绠$悊鎺ュ彛
@@ -115,6 +115,14 @@
}
throw new ServiceException(ResultCode.GOODS_UNDER_ERROR);
}
+ @DemoSite
+ @PostMapping(value = "/goods/sort")
+ public ResultMessage<Object> goodsSort(@RequestBody @Valid GoodsSortDTO req) {
+ if (Boolean.TRUE.equals(goodsService.goodsSort(req))) {
+ return ResultUtil.success();
+ }
+ throw new RuntimeException("淇敼鎺掑簭澶辫触");
+ }
@PreventDuplicateSubmissions
@ApiOperation(value = "绠$悊鍛樺鏍稿晢鍝�", notes = "绠$悊鍛樺鏍稿晢鍝�")
--
Gitblit v1.8.0