From 77fc61a25c14071584e45731476207959137d6b6 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 04 三月 2026 17:17:39 +0800
Subject: [PATCH] 小程序 接口开发
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 146 +++++++++++++++++++++++++-----------------------
1 files changed, 75 insertions(+), 71 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 ecb5f69..0ce6f17 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
@@ -354,7 +354,23 @@
.set(Goods::getEditor,user.getId())
.set(Goods::getStatus,Constants.ONE )
.in(Goods::getId,idList));
+
+ //鎵归噺涓嬫灦 sku鏁版嵁
+ goodsSkuMapper.update(null,new UpdateWrapper<GoodsSku>().lambda()
+ .set(GoodsSku::getEditDate,new Date() )
+ .set(GoodsSku::getEditor,user.getId())
+ .set(GoodsSku::getStatus,Constants.ONE )
+ .eq(GoodsSku::getIsdeleted,Constants.ZERO)
+ .in(GoodsSku::getGoodsId,idList));
return;
+ }else{
+ //鎵归噺涓婃灦 sku鏁版嵁
+ goodsSkuMapper.update(null,new UpdateWrapper<GoodsSku>().lambda()
+ .set(GoodsSku::getEditDate,new Date() )
+ .set(GoodsSku::getEditor,user.getId())
+ .set(GoodsSku::getStatus,Constants.ZERO )
+ .eq(GoodsSku::getIsdeleted,Constants.ZERO)
+ .in(GoodsSku::getGoodsId,idList));
}
long shopNum = shopMapper.selectCount(new QueryWrapper<Shop>().lambda()
.eq(Shop::getIsdeleted,Constants.ZERO)
@@ -658,6 +674,7 @@
}
Multifile find = new Multifile();
find.setObjId(id);
+ find.setObjType(Constants.MultiFile.PLATFORM_GOOD_ROTATION.getKey());
find.setIsdeleted(Constants.ZERO);
List<Multifile> fileList= multifileMapper.selectList(new QueryWrapper<>(find));
goods.setFileList(fileList);
@@ -824,8 +841,9 @@
public List<Goods> findList(Goods goods) {
QueryWrapper<Goods> wrapper = new QueryWrapper<>(goods);
wrapper.lambda()
- .in(goods.getIdList() != null && goods.getIdList().size()>0, Goods::getId, goods.getIdList())
- .eq( Goods::getIsdeleted, Constants.ZERO);
+ .in(goods.getIdList() != null && goods.getIdList().size()>0, Goods::getId, goods.getIdList())
+ .like(goods.getZhuanquId()!=null,Goods::getZhuanquIds,"["+goods.getZhuanquId()+"]")
+ .eq( Goods::getIsdeleted, Constants.ZERO);
return goodsMapper.selectList(wrapper);
}
@@ -860,6 +878,7 @@
" INNER JOIN goods g on g.id=gs.GOODS_ID " +
" where gs.STOCK<=0 and gs.ISDELETED=0 and g.id=t.id ");
}
+
queryWrapper.eq(!Constants.equalsInteger(pageWrap.getModel().getTabStatus(), 3), Goods::getIsdeleted, Constants.ZERO);
queryWrapper.eq(Constants.equalsInteger(pageWrap.getModel().getTabStatus(), 3), Goods::getIsdeleted, Constants.ONE);
@@ -949,45 +968,52 @@
* @return
*/
@Override
- public IPage<GoodsInfoResponse> getGoodsPage(PageWrap<GoodsRequest> pageWrap) {
+ public IPage<Goods> getGoodsPage(PageWrap<GoodsRequest> pageWrap) {
GoodsRequest model = pageWrap.getModel();
- QueryWrapper<GoodsRequest> wrapper = new QueryWrapper<GoodsRequest>()
- .eq("g.ISDELETED",Constants.ZERO)
+ 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.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getLinePrice)
+ .leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
+ .eq(Goods::getIsdeleted,Constants.ZERO)
.eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()),
- "g.CATEGORY_ID", model.getCategoryId())
+ Goods::getCategoryId, model.getCategoryId())
//閫傜敤鍝佺墝 閫傜敤绯诲垪
.apply(!Objects.isNull(model) && Objects.nonNull(model.getApplicableBrandId()),
- " find_in_set( '["+model.getApplicableBrandId()+"]' , g.BRAND_IDS ) ")
+ " find_in_set( '["+model.getApplicableBrandId()+"]' , t.BRAND_IDS ) ")
.apply(!Objects.isNull(model) && Objects.nonNull(model.getSeriesBrandId()),
- " find_in_set( '["+model.getSeriesBrandId()+"]' , g.SERIAL_IDS ) ")
- .eq("g.STATUS", Constants.ZERO)
- .like(StringUtils.isNotBlank(model.getGoodsName()),"g.NAME",model.getGoodsName());
+ " find_in_set( '["+model.getSeriesBrandId()+"]' , t.SERIAL_IDS ) ")
+ .apply(!Objects.isNull(model) && Objects.nonNull(model.getQualityId()),
+ " find_in_set( '["+model.getQualityId()+"]' , t.ZHUANQU_IDS ) ")
+ .eq(Goods::getStatus, Constants.ZERO)
+ .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);
- if(Objects.nonNull(model.getSortInfo())){
- //鎺掑簭鏂瑰紡锛�0=缁煎悎鎺掑簭锛�1=閿�閲忕敱浣庡埌楂� 锛�2=浠锋牸鐢变綆鍒伴珮锛�3=閿�閲忕敱楂樺埌浣庯紱4=浠锋牸鐢遍珮鍒颁綆
- if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){
- wrapper.orderByDesc("g.CREATE_DATE");
- }else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){
- wrapper.orderByAsc("realSaleNum");
- }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){
- wrapper.orderByAsc("g.price");
- }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){
- wrapper.orderByDesc("realSaleNum");
- }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){
- wrapper.orderByDesc("g.price");
- }
- }
- IPage<GoodsInfoResponse> page =
- Objects.isNull(model.getShopId())?
- goodsMapper.goodsPage(pageWrap.toPage(),wrapper)
- :
- goodsMapper.goodsPageForShop(pageWrap.toPage(),wrapper,model.getShopId()) ;
+ }else{
+ wrapper.select(" (( select ifnull(sum(GOODS_NUM),0) from goodsorder_detail gd where gd.GOODS_ID = t.id )) ",Goods::getRealSaleNum);
+ }
+
+ if(Objects.nonNull(model.getSortInfo())){
+ //鎺掑簭鏂瑰紡锛�0=缁煎悎鎺掑簭锛�1=閿�閲忕敱浣庡埌楂� 锛�2=浠锋牸鐢变綆鍒伴珮锛�3=閿�閲忕敱楂樺埌浣庯紱4=浠锋牸鐢遍珮鍒颁綆
+ 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)");
+ }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){
+ wrapper.orderByAsc("minPrice");
+ }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){
+ wrapper.orderByDesc("(realSaleNum + t.SALENUM)");
+ }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){
+ wrapper.orderByDesc("minPrice");
+ }
+ }
+ IPage<Goods> page =
+ goodsMapper.selectJoinPage(pageWrap.toPage(), Goods.class, wrapper);
if (!CollectionUtils.isEmpty(page.getRecords())){
String preFixPath = systemDictDataBiz.getPreFixPath(Constants.RESOURCE_PATH, Constants.GOODS_FILE);
-
-
- for (GoodsInfoResponse goodsInfoResponse:page.getRecords()
- ) {
+ for (Goods goodsInfoResponse:page.getRecords()) {
goodsInfoResponse.setImgurl(StringUtils.isNotBlank(goodsInfoResponse.getImgurl())?(preFixPath+goodsInfoResponse.getImgurl()):null);
if(Objects.isNull(model.getShopId())){
//sku鍩虹淇℃伅
@@ -1026,51 +1052,17 @@
* @param goodsResponse
* @return
*/
- public void getSkuInfo(GoodsInfoResponse goodsResponse) {
+ public void getSkuInfo(Goods goodsResponse) {
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();
Integer sumStock = Constants.ZERO;
for (GoodsSkuResponse goodsSkuResponse:goodsSkuResponseList) {
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;
//鐪熷疄搴撳瓨= sumStock - (realSaleNum - saleNum)
- goodsResponse.setStock(sumStock - goodsResponse.getRealSaleNum() + goodsResponse.getSaleNum());
+ goodsResponse.setStock(sumStock);
goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList);
//Sku鍩虹淇℃伅
List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId());
@@ -1085,10 +1077,22 @@
}
@Override
- public GoodsInfoResponse getGoodsInfo(Integer goodsId,Integer memberId) {
+ public Goods getGoodsInfo(Integer goodsId,Integer memberId) {
String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
- GoodsInfoResponse goodsResponse = goodsMapper.getGoodsInfo(goodsId);
+// GoodsInfoResponse goodsResponse = goodsMapper.getGoodsInfo(goodsId);
+ 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)
+ .leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
+// .eq(Goods::getIsdeleted,Constants.ZERO)
+// .eq(Goods::getStatus, Constants.ZERO)
+ .eq(Goods::getId,goodsId)
+ .last("limit 1")
+ );
if(Objects.isNull(goodsResponse)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
--
Gitblit v1.9.3