Bläddra i källkod

修复商品逻辑

hyq 6 år sedan
förälder
incheckning
d33fe00154

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java

@@ -23,5 +23,5 @@ public interface GoodsDao extends BaseDao<GoodsEntity> {
 
     List<GoodsEntity> querySame(Map<String, Object> map);
 
-    GoodsEntity queryObjectByProdBarcode(@Param("prodBarcode") String prodBarcode, @Param("merchSn") String merchSn,@Param("goodsId")Long id);
+    List<GoodsEntity> queryObjectByProdBarcode(@Param("prodBarcode") String prodBarcode, @Param("merchSn") String merchSn,@Param("goodsId")Long id);
 }

+ 33 - 8
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -146,14 +146,27 @@ public class GoodsServiceImpl implements GoodsService {
                 throw new RRException(r.get("msg").toString());
             }
         }
+        ThirdMerchantBizEntity thirdMerchantBizEntity = thirdMerchantBizDao.getThirdMerchangByCode(goods.getThirdPartyMerchCode());
+        if(thirdMerchantBizEntity == null){
+            throw new RRException("第三方商户信息不存在");
+        }
 
+        if(Dict.orderBizType.item_00.getItem().equalsIgnoreCase(goods.getGoodsBizType())){
+            if(Dict.isStockShare.item_1.getItem().equalsIgnoreCase(thirdMerchantBizEntity.getIsStockShare())){
+                builder.put("goodsNumber", "商品库存");
+            }
+        }
+        r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
         // 商品轮播图
         List<GoodsGalleryEntity> galleryEntityList = goods.getGoodsImgList();
         if (galleryEntityList == null || galleryEntityList.size() <= 0) {
             throw new RRException("至少添加一张商品轮播图!");
         }
-        GoodsEntity prodbarGoods = goodsDao.queryObjectByProdBarcode(goods.getProdBarcode(),goods.getMerchSn(),null);
-        if(prodbarGoods != null){
+        List<GoodsEntity> prodbarGoodsList = goodsDao.queryObjectByProdBarcode(goods.getProdBarcode(),goods.getMerchSn(),null);
+        if(prodbarGoodsList != null && prodbarGoodsList.size() > 0){
             throw new RRException("不能有重复的产品条码信息!");
         }
 
@@ -306,14 +319,28 @@ public class GoodsServiceImpl implements GoodsService {
                 throw new RRException(r.get("msg").toString());
             }
         }
+        GoodsEntity goodsEntity = goodsDao.queryObject(goods.getId());
+        if(goodsEntity != null){
+            if(Dict.orderBizType.item_00.getItem().equalsIgnoreCase(goods.getGoodsBizType())){
+                if(Dict.isStockShare.item_1.getItem().equalsIgnoreCase(goodsEntity.getIsStockShare())){
+                    builder.put("goodsNumber", "商品库存");
+                }
+            }
+            r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+            if (Integer.valueOf(r.get("code").toString()) != 0) {
+                throw new RRException(r.get("msg").toString());
+            }
+        }else{
+            throw new RRException("商品不存在");
+        }
 
         // 商品轮播图
         List<GoodsGalleryEntity> galleryEntityList = goods.getGoodsImgList();
         if (galleryEntityList == null || galleryEntityList.size() <= 0) {
             throw new RRException("至少保留一张商品轮播图!");
         }
-        GoodsEntity prodbarGoods = goodsDao.queryObjectByProdBarcode(goods.getProdBarcode(),goods.getMerchSn(),goods.getId());
-        if(prodbarGoods != null){
+        List<GoodsEntity> prodbarGoodsList = goodsDao.queryObjectByProdBarcode(goods.getProdBarcode(),goods.getMerchSn(),goods.getId());
+        if(prodbarGoodsList != null && prodbarGoodsList.size() > 0){
             throw new RRException("不能有重复的产品条码信息!");
         }
         SysUserEntity user = ShiroUtils.getUserEntity();
@@ -353,8 +380,6 @@ public class GoodsServiceImpl implements GoodsService {
             mngChangeEntity.setIsValid(0);
             mngChangeEntity.setMerchSn(goods.getMerchSn());
 
-
-            GoodsEntity goodsEntity = goodsDao.queryObject(goods.getId());
             if(goodsEntity.getGoodsNumber() != goods.getGoodsNumber()) {
                 if (goodsEntity.getGoodsNumber() > goods.getGoodsNumber()) {
                     mngChangeEntity.setChangeNum(goodsEntity.getGoodsNumber() - goods.getGoodsNumber());//变化数
@@ -705,8 +730,8 @@ public class GoodsServiceImpl implements GoodsService {
                     failGoodsTypeList.add(goodsDto.getGoodsBizType());
                 }
                 //校验产品条码是否存在
-                GoodsEntity prodbarGoods = goodsDao.queryObjectByProdBarcode(goodsDto.getProdBarcode(),merchSn,null);
-                if(prodbarGoods != null){
+                List<GoodsEntity> prodbarGoods = goodsDao.queryObjectByProdBarcode(goodsDto.getProdBarcode(),merchSn,null);
+                if(prodbarGoods != null && prodbarGoods.size() > 0){
                     isSuccess = true;
                     failProdbarGoodsSnList.add(goodsDto.getGoodsSn());
                 }else{

+ 2 - 2
kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml

@@ -72,9 +72,9 @@
         when g.id > 0 then 2 else 0 end as goodsType,mb.is_stock_share isStockShare,mb.third_party_merch_code thirdPartyMerchCode
         FROM
             mall_goods a
-        LEFT JOIN mall_goods_group g ON g.goods_id = a.id
+        LEFT JOIN mall_goods_group g ON g.goods_id = a.id AND g.open_status != 3
         left join third_merchant_biz mb on a.third_party_merch_code = mb.third_party_merch_code and mb.merch_sn=a.merch_sn
-        AND g.open_status != 3
+
         WHERE a.id = #{value}
     </select>
 

+ 18 - 15
kmall-admin/src/main/webapp/js/shop/goods.js

@@ -236,12 +236,6 @@ var vm = new Vue({
             opt.value = vm.goods.categoryId;
             opt.flag = 1;
             vm.getAttributes(opt);*/
-            // var opt = {};
-            // opt.value = vm.goods.thirdPartyMerchCode;
-            // vm.showStockShare(opt);
-            // var opt2 = {};
-            // opt2.value = vm.goods.goodsBizType;
-            // vm.changeGoodsBizType(opt2);
 
             vm.thirdMerchantBizList = [];
             vm.getMacro();
@@ -420,6 +414,12 @@ var vm = new Vue({
                 vm.goods = r.goods;
                 vm.goodsBizType = r.goods.goodsBizType;
 
+                // var opt = {};
+                // opt.value = vm.goods.thirdPartyMerchCode;
+                // vm.showStockShare(opt);
+                // var opt2 = {};
+                // opt2.value = vm.goods.goodsBizType;
+                // vm.changeGoodsBizType(opt2);
                 /*vm.categoryId = r.goods.categoryId;
                 // vm.getCategory();
                 var opt = {};
@@ -495,12 +495,14 @@ var vm = new Vue({
         showStockShare:function(opt){
             var thirdMerchantCode = opt.value;
             $.get("../thirdmerchantbiz/infoByCode?thirdMerchantCode=" + thirdMerchantCode, function (r) {
-                vm.share = r.thirdMerchantBiz.isStockShare;
-                if(vm.goods.goodsBizType == '00' && r.thirdMerchantBiz.isStockShare == 1){
-                    vm.isStockShare = true;
-                }else{
-                    vm.isStockShare = false;
-                    vm.goods.goodsNumber= '';
+                if(r.thirdMerchantBiz){
+                    vm.share = r.thirdMerchantBiz.isStockShare;
+                    if(vm.goods.goodsBizType == '00' && r.thirdMerchantBiz.isStockShare == 1){
+                        vm.isStockShare = true;
+                    }else{
+                        vm.isStockShare = false;
+                        vm.goods.goodsNumber= '';
+                    }
                 }
             });
             vm.getSuppliers(thirdMerchantCode);
@@ -512,13 +514,14 @@ var vm = new Vue({
             } else {
                 vm.showInput = true;
             }
-            // console.log(vm.goods.goodsBizType)
-            // console.log(vm.share)
+            // console.log('goodsBizType:'+vm.goods.goodsBizType)
+            // console.log('share:'+vm.share)
             if(vm.goods.goodsBizType == '00' && vm.share == 1){
                 vm.isStockShare = true;
             }else{
                 vm.isStockShare = false;
-                vm.goods.goodsNumber= '';
+                // vm.goods.goodsNumber= '';
+                // console.log('错错错')
             }
 
         },