WIN-2308041133\Administrator пре 1 месец
родитељ
комит
b05a16f4d2

+ 2 - 0
app/admin/controller/store/StoreProduct.php

@@ -344,6 +344,7 @@ class StoreProduct extends AuthController
             ['mer_use', 0],
             ['is_postage', 0],
             ['is_good', 0],
+            ['dealer_visible_grade', 0],
 //            ['description', ''],
             ['spec_type', 0],
             ['video_link', ''],
@@ -598,6 +599,7 @@ class StoreProduct extends AuthController
             ['mer_use', 0],
             ['is_postage', 0],
             ['is_good', 0],
+            ['dealer_visible_grade', 0],
             ['is_wholesale',0],
             ['mer_id',0]
         ]);

+ 17 - 1
app/admin/view/store/store_product/create.php

@@ -1041,6 +1041,21 @@
                                             </div>
                                         </div>
                                     </div>
+                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
+                                        <div class="grid-demo grid-demo-bg1">
+                                            <div class="layui-form-item">
+                                                <label class="layui-form-label" title="0=所有人都可查看商品规格 1=仅经销商及以上可查看">特供规格可见</label>
+                                                <div class="layui-input-block">
+                                                    <input type="radio" name="dealer_visible_grade" lay-filter="dealer_visible_grade" value="1"
+                                                           title="经销商可见"
+                                                           :checked="formData.dealer_visible_grade == 1 ? true : false">
+                                                    <input type="radio" name="dealer_visible_grade" lay-filter="dealer_visible_grade" value="0"
+                                                           title="不限制"
+                                                           :checked="formData.dealer_visible_grade == 0 ? true : false">
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
 
                                     <!-- 活动优先级 -->
 <!--                                    <div class="layui-row layui-col-space15">-->
@@ -1160,6 +1175,7 @@
                 is_new: 0,
                 is_wholesale: 0,
                 is_good: 0,
+                dealer_visible_grade: 0,
                 store_type: 1,
                 is_sub: 0,
                 items: [
@@ -1199,7 +1215,7 @@
             activity: {'秒杀': '#1E9FFF', '砍价': '#189688', '拼团': '#FEB900'},
             attr: [],//临时属性
             newRule: false,//是否添加新规则
-            radioRule: ['store_type', 'is_sub', 'is_show', 'is_hot', 'is_benefit', 'is_new', 'is_good', 'is_best','is_wholesale', 'spec_type'],//radio 当选规则
+            radioRule: ['store_type', 'is_sub', 'is_show', 'is_hot', 'is_benefit', 'is_new', 'is_good', 'is_best','is_wholesale', 'dealer_visible_grade', 'spec_type'],//radio 当选规则
             rule: { //多图选择规则
                 slider_image: {
                     maxLength: 5

+ 10 - 0
app/api/controller/store/StoreProductController.php

@@ -133,6 +133,16 @@ class StoreProductController
         $storeInfo['code_base'] = QrcodeService::getWechatQrcodePath($id . '_product_detail_wap.jpg', '/detail/' . $id);
         $uid = $request->uid();
         $data['uid'] = $uid;
+
+        // 检查特供规格可见性:dealer_visible_grade >= 1 时仅经销商及以上可见
+        $dealerVisibleGrade = StoreProduct::where('id', $id)->value('dealer_visible_grade') ?: 0;
+        if ($dealerVisibleGrade >= 1) {
+            $isDealer = $uid ? (User::where('uid', $uid)->value('dealer') > 0) : false;
+            if (!$isDealer) {
+                return app('json')->fail('此商品仅经销商及以上等级可查看', 410);
+            }
+        }
+
         $storeInfo['description'] = htmlspecialchars_decode(StoreDescription::getDescription($id));
         //替换windows服务器下正反斜杠问题导致图片无法显示
         $storeInfo['description'] = preg_replace_callback('#<img.*?src="([^"]*)"[^>]*>#i', function ($imagsSrc) {

+ 1 - 1
app/models/store/StoreProduct.php

@@ -61,7 +61,7 @@ class StoreProduct extends BaseModel
         return htmlspecialchars_decode($value);
     }
 
-    public static function getValidProduct($productId, $field = 'min_integral,max_integral,add_time,browse,cate_id,code_path,cost,ficti,give_integral,id,image,is_sub,is_bargain,is_benefit,is_best,is_del,is_hot,is_new,is_postage,is_seckill,is_show,is_pick,keyword,mer_id,mer_use,ot_price,postage,price,sales,slider_image,sort,stock,store_info,store_name,unit_name,vip_price,spec_type,IFNULL(sales,0) + IFNULL(ficti,0) as fsales,video_link')
+    public static function getValidProduct($productId, $field = 'min_integral,max_integral,add_time,browse,cate_id,code_path,cost,ficti,give_integral,id,image,is_sub,is_bargain,is_benefit,is_best,is_del,is_hot,is_new,is_postage,is_seckill,is_show,is_pick,keyword,mer_id,mer_use,ot_price,postage,price,sales,slider_image,sort,stock,store_info,store_name,unit_name,vip_price,spec_type,dealer_visible_grade,IFNULL(sales,0) + IFNULL(ficti,0) as fsales,video_link')
     {
         $Product = self::where('is_del', 0)->where('is_show', 1)->where('id', $productId)->field($field)->find();
         if ($Product) return $Product->toArray();