From f9e4883831956328e73f4df77c8d6887a0f8d70b Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 11 五月 2026 10:41:46 +0800
Subject: [PATCH] 小程序 接口开发
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 58 +++++++++++++++++++++++++---------------------------------
1 files changed, 25 insertions(+), 33 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 f7e17dc..71ef791 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
@@ -372,17 +372,9 @@
.eq(GoodsSku::getIsdeleted,Constants.ZERO)
.in(GoodsSku::getGoodsId,idList));
}
- long shopNum = shopMapper.selectCount(new QueryWrapper<Shop>().lambda()
- .eq(Shop::getIsdeleted,Constants.ZERO)
- .eq(Shop::getStatus,Constants.ZERO));
- MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>();
- queryWrapper.selectAll(Goods.class);
- queryWrapper.select("(select count(s.id) from shop_goods_relation s " +
- "left join shop g on s.SHOP_ID =g.id " +
- "where g.status=0 and s.ISDELETED=0 and s.GOODS_ID=t.id) as pricedShopNum ");
- queryWrapper.eq(GoodsSku::getIsdeleted,Constants.ZERO);
- queryWrapper.in(Goods::getId,idList);
- List<Goods> goodsList= goodsAdminJoinMapper.selectJoinList(Goods.class,queryWrapper);
+ List<Goods> goodsList= goodsMapper.selectList(new QueryWrapper<Goods>().lambda()
+ .eq(Goods::getIsdeleted,Constants.ZERO)
+ .in(Goods::getId,idList));
if(goodsList==null || goodsList.size() == 0){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍟嗗搧淇℃伅鏌ヨ鏃犳晥 ");
}
@@ -409,14 +401,6 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鍟嗗搧鍟嗗搧灏氭湭璁剧疆闆跺敭浠凤紝鏃犳硶涓婃灦");
}
}
- if(Constants.formatLongNum(goods.getPricedShopNum()) < shopNum){
- //榛樿sku淇℃伅
- s =false;
- if(idList.size()==1){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), goods.getName()+":鏈夋湭璁剧疆渚涜揣浠风殑缁忛攢鍟嗭紝鏃犳硶涓婃灦");
- }
-
- }
if(s){
idList2.add(param.getId());
}
@@ -432,7 +416,7 @@
if(successNum != idList.size()){
if( idList.size()>1){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鎴愬姛涓婃灦鍟嗗搧鏁帮細銆�"+successNum+"銆戯紝涓婃灦澶辫触锛氥��"+(idList.size()-successNum)+"銆戜釜鍟嗗搧,璇风‘淇濆緟涓婃灦鍟嗗搧鐨勫潎閿�鍞环鍜屼緵璐т环宸茶缃�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鎴愬姛涓婃灦鍟嗗搧鏁帮細銆�"+successNum+"銆戯紝涓婃灦澶辫触锛氥��"+(idList.size()-successNum)+"銆戜釜鍟嗗搧,璇风‘淇濆緟涓婃灦鍟嗗搧鐨勯攢鍞环宸茶缃�");
}else {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode()," 涓婃灦澶辫触");
}
@@ -889,9 +873,9 @@
queryWrapper.eq(pageWrap.getModel().getBrandId() != null, Goods::getBrandId, pageWrap.getModel().getBrandId());
queryWrapper.eq(pageWrap.getModel().getStatus() != null, Goods::getStatus, pageWrap.getModel().getStatus());
queryWrapper.in(pageWrap.getModel().getIdList() != null && pageWrap.getModel().getIdList().size()>0, Goods::getId, pageWrap.getModel().getIdList());
- if(pageWrap.getModel().getShopId() !=null){
- queryWrapper.orderByAsc("shopPrice");
- }
+// if(pageWrap.getModel().getShopId() !=null){
+// queryWrapper.orderByAsc("shopPrice");
+// }
queryWrapper.orderByDesc(Goods::getId);
IPage<Goods> result = goodsAdminJoinMapper.selectJoinPage(page, Goods.class, queryWrapper);
initResult(result.getRecords(),pageWrap.getModel().getShopId()==null);
@@ -972,7 +956,8 @@
GoodsRequest model = pageWrap.getModel();
MPJLambdaWrapper<Goods> wrapper = new MPJLambdaWrapper<Goods>()
.selectAll(Goods.class)
- .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getMinPrice)
+ .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0 ),0) ",Goods::getMinPrice)
+ .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0 ),0) ",Goods::getLinePrice)
.leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
.eq(Goods::getIsdeleted,Constants.ZERO)
.eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()),
@@ -988,10 +973,10 @@
.like(StringUtils.isNotBlank(model.getGoodsName()),Goods::getName,model.getGoodsName());
if(Objects.nonNull(model.getShopId())){
wrapper.select(" ifnull( ( select sgr.PRICE from shop_goods_relation sgr where sgr.GOODS_ID = t.ID and sgr.ISDELETED = 0 and sgr.`STATUS` = 0 and sgr.SHOP_ID = "+model.getShopId()+" ) ,0) ",Goods::getExFactoryPrice);
- wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where gd.GOODS_ID = t.`id` and go.DISTRIBUTION_SHOP_ID = "+model.getShopId()+" ),0) ",Goods::getRealSaleNum);
+ wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` and go.DISTRIBUTION_SHOP_ID = "+model.getShopId()+" ),0) ",Goods::getRealSaleNum);
}else{
- wrapper.select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd where gd.GOODS_ID = t.id )) ",Goods::getRealSaleNum);
+ wrapper.select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` ),0) ",Goods::getRealSaleNum);
}
if(Objects.nonNull(model.getSortInfo())){
@@ -999,11 +984,11 @@
if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){
wrapper.orderByDesc("t.CREATE_DATE");
}else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){
- wrapper.orderByAsc("(realSaleNum + t.SALENUM)");
+ wrapper.orderByAsc("(realSaleNum + ifnull(t.SALENUM,0))");
}else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){
wrapper.orderByAsc("minPrice");
}else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){
- wrapper.orderByDesc("(realSaleNum + t.SALENUM)");
+ wrapper.orderByDesc("(realSaleNum + ifnull(t.SALENUM,0))");
}else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){
wrapper.orderByDesc("minPrice");
}
@@ -1055,14 +1040,21 @@
List<GoodsSkuResponse> goodsSkuResponseList = goodsSkuMapper.getSkuResponseList(goodsResponse.getId());
Integer sumStock = Constants.ZERO;
+ Boolean noRestrictions = true;
for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) {
goodsSkuResponse.setStock(Objects.isNull(goodsSkuResponse.getStock())?Constants.ZERO:goodsSkuResponse.getStock());
sumStock = sumStock + goodsSkuResponse.getStock();
+ if(StringUtils.isNotBlank(goodsSkuResponse.getStockStr())){
+ noRestrictions = false;
+ }
}
//鐪熷疄閿�閲� = realSaleNum - saleNum;
//鐪熷疄搴撳瓨= sumStock - (realSaleNum - saleNum)
- goodsResponse.setStock(sumStock);
- goodsResponse.setRealSaleNum(goodsResponse.getRealSaleNum()+sumStock);
+ if(noRestrictions){
+ goodsResponse.setStock(-Constants.ONE);
+ }else{
+ goodsResponse.setStock(sumStock);
+ }
goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList);
//Sku鍩虹淇℃伅
List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId());
@@ -1084,9 +1076,9 @@
Goods goodsResponse = goodsMapper.selectOne(
new MPJLambdaWrapper<Goods>()
.selectAll(Goods.class)
- .select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd where gd.GOODS_ID = t.id )) ",Goods::getRealSaleNum)
- .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getMinPrice)
- .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getLinePrice)
+ .select(" ifnull(( select sum(gd.GOODS_NUM) from goodsorder_detail gd inner join goodsorder go on gd.ORDER_ID = go.id where go.PAY_STATUS = 1 and gd.GOODS_ID = t.`id` ),0) ",Goods::getRealSaleNum)
+ .select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0),0) ",Goods::getMinPrice)
+ .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id and gs.ISDELETED = 0),0) ",Goods::getLinePrice)
.leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
// .eq(Goods::getIsdeleted,Constants.ZERO)
// .eq(Goods::getStatus, Constants.ZERO)
--
Gitblit v1.9.3