From 0a206f3acb9af0ec9db650861d34a256cda1c960 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 26 二月 2026 17:48:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 136 ++++++++++++++++++++++++++++++++-------------
1 files changed, 97 insertions(+), 39 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index ec2bf51..ecb5f69 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -60,6 +60,9 @@
@Autowired
private ShopGoodsRelationMapper shopGoodsRelationMapper;
+ @Autowired
+ private SearchHistoryMapper searchHistoryMapper;
+
@Autowired
@@ -129,7 +132,7 @@
dealBatchMultiFiles(goods, goods.getFileList(), user,false);
return goods.getId();
}
- private void dealDefaultGoodsSku(Goods goods) {
+ private Integer dealDefaultGoodsSku(Goods goods) {
Date date = goods.getEditDate();
Integer userId = goods.getEditor();
Sku sku = new Sku();
@@ -183,6 +186,8 @@
goodsSkuAttr.setGoodsSkuId(goodsSku.getId());
goodsSkuAttr.setSkuAttrId(skuAttr.getId());
goodsSkuAttrMapper.insert(goodsSkuAttr);
+
+ return goodsSku.getId();
}
public void dealBatchMultiFiles(Goods goods, List<Multifile> fileList, LoginUserInfo user,boolean update) {
@@ -448,6 +453,16 @@
goods.setLabels( StringUtils.removeEnd( goods.getLabels().replace("锛�",","),","));
}
goodsMapper.updateById(goods);
+ boolean needUpdatesku = true;
+ if(goods.getSkuPrice()!=null){
+ GoodsSku queryGoodsSku=new GoodsSku();
+ queryGoodsSku.setGoodsId(goods.getId());
+ queryGoodsSku.setIsdeleted(Constants.ZERO);
+ GoodsSku goodsSku=goodsSkuMapper.selectOne(new QueryWrapper<>(queryGoodsSku).last("limit 1"));
+ if(goodsSku !=null && Constants.formatBigdecimal(goodsSku.getPrice()).compareTo(goods.getSkuPrice()) ==0){
+ needUpdatesku = false;//浠锋牸鏈彉鍖栨棤闇�閲嶆柊鐢熸垚渚涜揣浠�
+ }
+ }
//娓呯┖鍘熸湁鐨剆ku鏁版嵁
skuMapper.update(null,new UpdateWrapper<Sku>().lambda()
.set(Sku::getIsdeleted,Constants.ONE)
@@ -457,7 +472,21 @@
.set(GoodsSku::getIsdeleted,Constants.ONE)
.eq(GoodsSku::getIsdeleted,Constants.ZERO)
.eq(GoodsSku::getGoodsId,goods.getId()));
- dealDefaultGoodsSku(goods);//鏂板缓sku淇℃伅
+ Integer skuId = dealDefaultGoodsSku(goods);//鏂板缓sku淇℃伅
+ if(needUpdatesku){ //鍏堝垹闄ゅ師鏉ョ殑鏁版嵁
+ shopGoodsRelationMapper.delete(new QueryWrapper<ShopGoodsRelation>().lambda()
+ .eq(ShopGoodsRelation::getGoodsId,goods.getId())
+ );
+ }else{
+ //鍚﹀垯鏇存柊鎵�鏈変緵璐т环鍏宠仈鍏崇郴涓殑skuID
+ shopGoodsRelationMapper.update(null,new UpdateWrapper<ShopGoodsRelation>().lambda()
+ .eq(ShopGoodsRelation::getGoodsId,goods.getId())
+ .set(ShopGoodsRelation::getGoodsSkuId,skuId)
+ );
+ }
+
+
+
dealBatchMultiFiles(goods, goods.getFileList(), user,true);
}
@@ -922,7 +951,6 @@
@Override
public IPage<GoodsInfoResponse> getGoodsPage(PageWrap<GoodsRequest> pageWrap) {
GoodsRequest model = pageWrap.getModel();
-
QueryWrapper<GoodsRequest> wrapper = new QueryWrapper<GoodsRequest>()
.eq("g.ISDELETED",Constants.ZERO)
.eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()),
@@ -956,7 +984,38 @@
goodsMapper.goodsPageForShop(pageWrap.toPage(),wrapper,model.getShopId()) ;
if (!CollectionUtils.isEmpty(page.getRecords())){
String preFixPath = systemDictDataBiz.getPreFixPath(Constants.RESOURCE_PATH, Constants.GOODS_FILE);
- page.getRecords().forEach(s->s.setImgurl(preFixPath+s.getImgurl()));
+
+
+ for (GoodsInfoResponse goodsInfoResponse:page.getRecords()
+ ) {
+ goodsInfoResponse.setImgurl(StringUtils.isNotBlank(goodsInfoResponse.getImgurl())?(preFixPath+goodsInfoResponse.getImgurl()):null);
+ if(Objects.isNull(model.getShopId())){
+ //sku鍩虹淇℃伅
+ this.getSkuInfo(goodsInfoResponse);
+ }
+ if(StringUtils.isNotBlank(goodsInfoResponse.getBrandIds())){
+ List<Labels> allBrands = labelsMapper.selectList(new QueryWrapper<Labels>().lambda()
+ .in(Labels::getId,getNumIdByIdsString(goodsInfoResponse.getBrandIds()))
+ .eq(Labels::getType,Constants.LabelsType.APPLICABLE_BRAND.getKey())
+ .eq(Labels::getIsdeleted,Constants.ZERO)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(allBrands)){
+ goodsInfoResponse.setBrandNames(String.join("/",allBrands.stream().map(i->i.getName()).collect(Collectors.toList())));
+ }
+ }
+ }
+ }
+ if(StringUtils.isNotBlank(model.getGoodsName())&&Objects.nonNull(model.getMemberId())){
+ searchHistoryMapper.delete(new QueryWrapper<SearchHistory>().lambda()
+ .eq(SearchHistory::getMemberId,model.getMemberId())
+ .eq(SearchHistory::getContent,model.getGoodsName())
+ );
+ SearchHistory searchHistory = new SearchHistory();
+ searchHistory.setIsdeleted(Constants.ZERO);
+ searchHistory.setContent(model.getGoodsName());
+ searchHistory.setMemberId(model.getMemberId());
+ searchHistory.setType(Constants.ZERO);
+ searchHistoryMapper.insert(searchHistory);
}
return page;
}
@@ -971,41 +1030,42 @@
List<GoodsSkuResponse> goodsSkuResponseList = goodsSkuMapper.getSkuResponseList(goodsResponse.getId());
- String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+// String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
Integer sumStock = Constants.ZERO;
for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) {
- if(StringUtils.isBlank(goodsSkuResponse.getImgurl())){
- goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getGoodsImgUrl());
- }else{
- goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getImgurl());
- }
- //澶勭悊鏁版嵁涓嬫爣
- String goodsSkuName = goodsSkuResponse.getName();
- List<String> strList = Arrays.asList(goodsSkuName.split(";"));
- StringBuffer indexData = new StringBuffer();
- for (int i = 0; i < strList.size(); i++) {
- //鏌ヨsku淇℃伅
- Sku sku = skuMapper.selectOne(new QueryWrapper<Sku>()
- .eq("GOODS_ID",goodsResponse.getId())
- .eq("SORTNUM",i+1)
- .last(" limit 1 ")
- );
- if(Objects.isNull(sku)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
- }
- //鏌ヨSKU_ATTR
- SkuAttr skuAttr = skuAttrMapper.selectOne(new QueryWrapper<SkuAttr>()
- .eq("SKU_ID",sku.getId())
- .eq("NAME",strList.get(i))
- .last(" limit 1 ")
- );
- if(Objects.isNull(skuAttr)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
- }
- indexData.append("," + ( skuAttr.getSortnum()-1));
- }
- goodsSkuResponse.setIndexData(indexData.toString().substring(1));
+ goodsSkuResponse.setStock(Objects.isNull(goodsSkuResponse.getStock())?Constants.ZERO:goodsSkuResponse.getStock());
+// if(StringUtils.isBlank(goodsSkuResponse.getImgurl())){
+// goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getGoodsImgUrl());
+// }else{
+// goodsSkuResponse.setImgurl(fullUrl + goodsSkuResponse.getImgurl());
+// }
+// //澶勭悊鏁版嵁涓嬫爣
+// String goodsSkuName = goodsSkuResponse.getName();
+// List<String> strList = Arrays.asList(goodsSkuName.split(";"));
+// StringBuffer indexData = new StringBuffer();
+// for (int i = 0; i < strList.size(); i++) {
+// //鏌ヨsku淇℃伅
+// Sku sku = skuMapper.selectOne(new QueryWrapper<Sku>()
+// .eq("GOODS_ID",goodsResponse.getId())
+// .eq("SORTNUM",i)
+// .last(" limit 1 ")
+// );
+// if(Objects.isNull(sku)){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
+// }
+// //鏌ヨSKU_ATTR
+// SkuAttr skuAttr = skuAttrMapper.selectOne(new QueryWrapper<SkuAttr>()
+// .eq("SKU_ID",sku.getId())
+// .eq("NAME",strList.get(i))
+// .last(" limit 1 ")
+// );
+// if(Objects.isNull(skuAttr)){
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"SKU淇℃伅寮傚父,璇峰埛鏂版煡鐪�");
+// }
+// indexData.append("," + ( skuAttr.getSortnum()-1));
+// }
+// goodsSkuResponse.setIndexData(indexData.toString().substring(1));
sumStock = sumStock + goodsSkuResponse.getStock();
}
//鐪熷疄閿�閲� = realSaleNum - saleNum;
@@ -1023,7 +1083,6 @@
}
goodsResponse.setSkuResponsesList(skuResponseList);
}
-
@Override
public GoodsInfoResponse getGoodsInfo(Integer goodsId,Integer memberId) {
@@ -1056,7 +1115,6 @@
.eq(Collect::getObjType,Constants.ONE)
)>Constants.ZERO?Constants.ONE:Constants.ZERO);
}
-
return goodsResponse;
}
--
Gitblit v1.9.3