Browse Source

fix: 调整店铺装修页面

周玉环 1 ngày trước cách đây
mục cha
commit
790f30382a

+ 1 - 1
xinkeaboard-server/b2b2c-core/src/main/java/com/slodon/b2b2c/core/util/HttpClientUtil.java

@@ -192,7 +192,7 @@ public class HttpClientUtil {
         CloseableHttpResponse response = httpClient.execute(httpPost);
 
         try {
-            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_CREATED) {
+            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_CREATED || response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                 HttpEntity entity = response.getEntity();
                 result = EntityUtils.toString(entity, StandardCharsets.UTF_8);
                 EntityUtils.consume(entity);

+ 1 - 0
xinkeaboard-server/b2b2c-core/src/main/resources/i18n_en.properties

@@ -379,6 +379,7 @@ labelIds格式错误,请重试=labelIds format error, please try again
 属性值不存在=Property value does not exist
 货品不存在,请重试!=Goods do not exist, please try again!
 商品不存在,请重试!=Commodity does not exist, please try again!
+商品已下架,请重试!=Goods are out of stock, please try again!
 未查询到货品,请重试!=No inquiry into the goods, please try again!
 货品id不能为空=Goods id can not be empty
 城市编码不能为空=City Codes can not be empty

+ 19 - 4
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/admin/GoodsController.java

@@ -1,10 +1,7 @@
 package com.slodon.b2b2c.controller.goods.admin;
 
 import com.slodon.b2b2c.aop.OperationLogger;
-import com.slodon.b2b2c.core.constant.GoodsAnnexStatusConst;
-import com.slodon.b2b2c.core.constant.GoodsCategoryConst;
-import com.slodon.b2b2c.core.constant.GoodsConst;
-import com.slodon.b2b2c.core.constant.RedisConst;
+import com.slodon.b2b2c.core.constant.*;
 import com.slodon.b2b2c.core.controller.BaseController;
 import com.slodon.b2b2c.core.response.JsonResult;
 import com.slodon.b2b2c.core.response.PageVO;
@@ -20,8 +17,11 @@ import com.slodon.b2b2c.goods.pojo.*;
 import com.slodon.b2b2c.member.example.GoodsAnnexExample;
 import com.slodon.b2b2c.model.goods.*;
 import com.slodon.b2b2c.model.seller.StoreLabelBindGoodsModel;
+import com.slodon.b2b2c.model.seller.VendorModel;
 import com.slodon.b2b2c.seller.example.StoreLabelBindGoodsExample;
+import com.slodon.b2b2c.seller.example.VendorExample;
 import com.slodon.b2b2c.seller.pojo.StoreLabelBindGoods;
+import com.slodon.b2b2c.seller.pojo.Vendor;
 import com.slodon.b2b2c.vo.goods.GoodsVO;
 import com.slodon.b2b2c.vo.goods.ProductVO;
 import com.slodon.b2b2c.vo.goods.SellerGoodsDetailVO;
@@ -66,6 +66,9 @@ public class GoodsController extends BaseController {
     @Resource
     private GoodsAnnexModel goodsAnnexModel;
 
+    @Resource
+    private VendorModel vendorModel;
+
 
 
     @ApiOperation("获取商品列表")
@@ -129,6 +132,7 @@ public class GoodsController extends BaseController {
                 example.setCategoryId3(goodsCategoryId);
             }
         }
+        example.setOrderBy("update_time desc");
         List<Goods> goodsList = goodsModel.getGoodsList(example, pager);
         List<GoodsVO> vos = new ArrayList<>();
         if (!CollectionUtils.isEmpty(goodsList)) {
@@ -252,6 +256,17 @@ public class GoodsController extends BaseController {
         String logMsg = "下架商品ID" + goodsIds;
         int number = goodsModel.goodsLockup(goodsLookUpDTO);
 
+        goodsList.forEach(goods -> {
+            VendorExample vendorExample = new VendorExample();
+            vendorExample.setStoreId(goods.getStoreId());
+            vendorExample.setIsStoreAdmin(VendorConst.IS_STORE_ADMIN_1);
+            List<Vendor> vendorList = vendorModel.getVendorList(vendorExample, null);
+            AssertUtil.isTrue(CollectionUtils.isEmpty(vendorList), "获取店铺信息失败");
+            //设置状态为下架
+            goods.setState(GoodsConst.GOODS_STATE_LOWER_BY_SYSTEM);
+            productModel.upsertProduct(goods, vendorList.get(0));
+        });
+
         //删除商品缓存信息
         for (String goodsId : goodsIds.split(",")) {
             objectRedisTemplate.opsForHash().delete(RedisConst.GOODS_DETAIL, String.valueOf(goodsId));

+ 6 - 0
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/front/GoodsDetailsController.java

@@ -137,6 +137,9 @@ public class GoodsDetailsController extends BaseController {
         //缓存不存在,查库并缓存
         Goods goods = goodsModel.getGoodsByGoodsId(goodsId);
         AssertUtil.notNull(goods, "商品不存在,请重试!");
+        if (!goods.getState().equals(GoodsConst.GOODS_STATE_UPPER)) {
+            return SldResponse.fail("商品已下架,请重试!");
+        }
         GoodsExtend goodsExtend = goodsExtendModel.getGoodsExtendByGoodsId(goodsId);
         AssertUtil.notNull(goodsExtend, "商品不存在,请重试!");
 
@@ -266,6 +269,9 @@ public class GoodsDetailsController extends BaseController {
 
         Goods goods = goodsModel.getGoodsByGoodsId(goodsId);
         AssertUtil.notNull(goods, "商品不存在,请重试!");
+        if (!goods.getState().equals(GoodsConst.GOODS_STATE_UPPER)) {
+            return SldResponse.fail("商品已下架,请重试!");
+        }
         GoodsExtend goodsExtend = goodsExtendModel.getGoodsExtendByGoodsId(goodsId);
         AssertUtil.notNull(goodsExtend,  "商品不存在,请重试!");
 

+ 5 - 3
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/controller/goods/seller/GoodsSellerController.java

@@ -35,6 +35,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.lucene.spatial3d.Geo3DDocValuesField;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.util.CollectionUtils;
@@ -441,8 +442,8 @@ public class GoodsSellerController extends BaseController {
         if(insertDTO.getGoodsName().contains("&amp;")){
             insertDTO.setGoodsName(insertDTO.getGoodsName().replace("&amp;","&"));
         }
-        goodsSellerModel.saveGoods(vendor, insertDTO);
-
+        Goods goods = goodsSellerModel.saveGoods(vendor, insertDTO);
+        productModel.upsertProduct(goods, vendor);
         return SldResponse.success("发布商品成功", logMsg);
     }
 
@@ -469,7 +470,8 @@ public class GoodsSellerController extends BaseController {
         if(insertDTO.getGoodsName().contains("&amp;")){
             insertDTO.setGoodsName(insertDTO.getGoodsName().replace("&amp;","&"));
         }
-        goodsSellerModel.editGoods(vendor, insertDTO, goodsDb);
+        Goods goods = goodsSellerModel.editGoods(vendor, insertDTO, goodsDb);
+        productModel.upsertProduct(goods, vendor);
         return SldResponse.success("编辑商品成功", "商品名称" + paramDTO.getGoodsName());
     }
 

+ 5 - 7
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/GoodsSellerModel.java

@@ -136,7 +136,7 @@ public class GoodsSellerModel {
      * @param insertDTO 商品信息
      */
     @Transactional(rollbackFor = Exception.class)
-    public void saveGoods(Vendor vendor, GoodsPublishInsertDTO insertDTO) {
+    public Goods saveGoods(Vendor vendor, GoodsPublishInsertDTO insertDTO) {
         List<GoodsPublishFrontParamDTO.ProductInfo> productList = insertDTO.getProductList();//货品列表
         //-校验sku是否重复
         this.checkSku(productList,insertDTO.getWebSite());
@@ -159,9 +159,6 @@ public class GoodsSellerModel {
         //-保存商品图片表
         this.insertGoodsPicture(insertDTO.getSpecInfoList(), insertDTO.getImageList(), goods, vendor);
 
-        //三方产品创建/更新
-        productModel.upsertProduct(goods, vendor);
-
         //-保存新的商品附件表(goods_annex) insertDTO.getGoodsAnnexList()拿到前台的获取到的附件名称/附件路径的list
         this.insertGoodsAnnex(insertDTO.getGoodsAnnexList(),goods,vendor);
 
@@ -173,6 +170,8 @@ public class GoodsSellerModel {
 
         //-增加店铺商品数量(商品状态为上架时操作)
         this.addStoreGoodsNum(vendor.getStoreId(), goods.getState());
+
+        return goods;
     }
 
     /**
@@ -607,7 +606,7 @@ public class GoodsSellerModel {
      * @param goodsDb
      */
     @Transactional(rollbackFor = Exception.class)
-    public void editGoods(Vendor vendor, GoodsPublishInsertDTO insertDTO, Goods goodsDb) {
+    public Goods editGoods(Vendor vendor, GoodsPublishInsertDTO insertDTO, Goods goodsDb) {
         List<GoodsPublishFrontParamDTO.ProductInfo> productList = insertDTO.getProductList();//前端传来的货品列表
         List<GoodsPublishInsertDTO.ProductInsertInfo> addProductList = new ArrayList<>();//要新增的货品
         List<GoodsPublishInsertDTO.ProductInsertInfo> updateProductList = new ArrayList<>();//要删除的货品
@@ -642,8 +641,6 @@ public class GoodsSellerModel {
             this.updateGoodsAnnex(insertDTO.getGoodsAnnexList(),updateGoods,vendor);
 //        }
 
-         productModel.upsertProduct(updateGoods, vendor);
-
         //-保存商品绑定店铺内部分类表
         this.updateGoodsBindStoreInnerLabels(insertDTO.getStoreInnerLabelList(), updateGoods.getGoodsId(), vendor);
 
@@ -657,6 +654,7 @@ public class GoodsSellerModel {
             //原商品的状态为上架,删除商品缓存数据
             objectRedisTemplate.opsForHash().delete(RedisConst.GOODS_DETAIL, String.valueOf(goodsDb.getGoodsId()));
         }
+        return updateGoods;
     }
 
     /**

+ 9 - 1
xinkeaboard-server/b2b2c-web/src/main/java/com/slodon/b2b2c/model/goods/ProductModel.java

@@ -17,6 +17,7 @@ import com.slodon.b2b2c.goods.pojo.Goods;
 import com.slodon.b2b2c.goods.pojo.GoodsPicture;
 import com.slodon.b2b2c.goods.pojo.Product;
 import com.slodon.b2b2c.investment.constant.InvestmentConst;
+import com.slodon.b2b2c.model.seller.StoreModel;
 import com.slodon.b2b2c.model.seller.VendorModel;
 import com.slodon.b2b2c.seller.pojo.Vendor;
 import lombok.extern.slf4j.Slf4j;
@@ -43,6 +44,9 @@ public class ProductModel {
     private VendorModel vendorModel;
 
     @Resource
+    private StoreModel storeModel;
+
+    @Resource
     private GoodsPictureModel goodsPictureModel;
 
     @Resource
@@ -209,8 +213,11 @@ public class ProductModel {
         String regex = ".*token=([^&]*).*";
         HashMap<String, String> headers = new HashMap<>();
         headers.put(InvestmentConst.CONTENT_TYPE, InvestmentConst.APPLICATION_JSON);
-        if (!StringUtil.isBlank(vendor.getStoreUrlBy9710())){
+        if (!StringUtil.isBlank(vendor.getStoreUrlBy9710())) {
             headers.put(InvestmentConst.AUTHORIZATION, "Token " + vendor.getStoreUrlBy9710().replaceFirst(regex, "$1"));
+        } else {
+            JSONObject jsonObject = storeModel.getStoreUrlsObject(vendor.getStoreId(), vendor.getVendorName());
+            headers.put(InvestmentConst.AUTHORIZATION, "Token " + jsonObject.getStr("9710").replaceFirst(regex, "$1"));
         }
 
         JSONObject param = new JSONObject();
@@ -230,6 +237,7 @@ public class ProductModel {
         }
         param.set("image_urls", image_urls);
         try {
+            log.error("调用第三方接口创建/更新商品 -请求接口: {}, 请求参数: {},请求头: {}", productConfig.getUrl(), param.toString(), com.alibaba.fastjson.JSONObject.toJSONString(headers));
             HttpClientUtil.httpPost201(productConfig.getUrl(), param.toString(), headers);
         } catch (Exception e) {
             log.error("调用第三方接口创建/更新商品失败 -请求接口: {}, 请求参数: {},请求头: {}, 错误信息: {}", productConfig.getUrl(), param.toString(), com.alibaba.fastjson.JSONObject.toJSONString(headers), e.getMessage(), e);