Kirin 2 năm trước cách đây
mục cha
commit
7e414c70d7

+ 1 - 0
app/admin/controller/system/SystemStore.php

@@ -148,6 +148,7 @@ class SystemStore extends AuthController
             ['sh_step', 0],
             ['sh_step_money', 0],
             ['sharing', 0],
+            ['store_user', 0],
         ]);
         SystemStoreModel::beginTrans();
         try {

+ 10 - 0
app/admin/view/system/system_store/add.php

@@ -147,6 +147,15 @@
                                     </i-Col>
                                 </Row>
                             </Form-Item>
+                            <Form-Item>
+                                <Row>
+                                    <i-Col span="13">
+                                        <span>采购门店:</span>
+                                        <i-Radio v-model="radio" label="1">是</i-Radio>
+                                        <i-Radio v-model="radio" label="0">否</i-Radio>
+                                    </i-Col>
+                                </Row>
+                            </Form-Item>
                             <Form-Item>
                                 <Row>
                                     <i-Col span="13">
@@ -221,6 +230,7 @@
                         sh_step:storeData.sh_step || 0,
                         sh_step_money:storeData.sh_step_money || 0,
                         sharing:storeData.sharing || 0,
+                        store_user:storeData.store_user || 0,
                     },
                     visible:false,
                 }

+ 4 - 1
app/api/controller/order/StoreOrderController.php

@@ -50,7 +50,10 @@ class StoreOrderController
         list($cartId) = UtilService::postMore(['cartId'], $request, true);
         if (!is_string($cartId) || !$cartId) return app('json')->fail('请提交购买的商品');
         $uid = $request->uid();
+        $user = User::getUserinfo($uid);
         $cartGroup = StoreCart::getUserProductCartList($uid, $cartId, 1, $request->store_id());
+        if (!$cartGroup) return app('json')->fail(StoreCart::getErrorInfo());
+        if ($cartGroup['only_store_user'] && !$user['admin_id']) return app('json')->fail('非门店用户不可采购');
         if (count($cartGroup['invalid'])) return app('json')->fail($cartGroup['invalid'][0]['productInfo']['store_name'] . '已失效!');
         if (!$cartGroup['valid']) return app('json')->fail('请提交购买的商品');
         $cartInfo = $cartGroup['valid'];
@@ -63,6 +66,7 @@ class StoreOrderController
             'offlinePostage' => sys_config('offline_postage'),
             'integralRatio' => sys_config('integral_ratio'),
             'store_id' => $request->store_id(),
+            'only_store_user' => $cartGroup['only_store_user']
         ];
         $usableCoupons = StoreCouponUser::getUsableCouponList($uid, $cartGroup, $priceGroup['totalPrice']);
         $usableCoupon = isset($usableCoupons[0]) ? $usableCoupons[0] : null;
@@ -373,7 +377,6 @@ class StoreOrderController
     }
 
 
-
     public function gift($uni, Request $request)
     {
         list($uid) = UtilService::postMore([['uid', 0]], $request, true);

+ 9 - 4
app/models/store/StoreCart.php

@@ -182,7 +182,7 @@ class StoreCart extends BaseModel
 
     public static function getUserProductCartList($uid, $cartIds = '', $status = 0, $store_id = 0)
     {
-        $productInfoField = 'id,image,price,ot_price,vip_price,postage,give_integral,sales,stock,store_name,unit_name,is_show,is_del,is_postage,cost,is_sub,temp_id,store_type,give_coupon';
+        $productInfoField = 'id,image,price,ot_price,vip_price,postage,give_integral,sales,stock,store_name,unit_name,is_show,is_del,is_postage,cost,is_sub,temp_id,store_type,give_coupon,only_store_user';
         $seckillInfoField = 'id,image,price,ot_price,postage,give_integral,sales,stock,title as store_name,unit_name,is_show,is_del,is_postage,cost,temp_id,weight,volume,start_time,stop_time,time_id';
         $bargainInfoField = 'id,image,min_price as price,price as ot_price,postage,give_integral,sales,stock,title as store_name,unit_name,status as is_show,is_del,is_postage,cost,temp_id,weight,volume';
         $combinationInfoField = 'id,image,price,postage,sales,stock,title as store_name,is_show,is_del,is_postage,cost,temp_id,weight,volume';
@@ -198,6 +198,7 @@ class StoreCart extends BaseModel
         $list = $model->select()->toArray();
         if (!count($list)) return compact('valid', 'invalid');
         $now = time();
+        $only_store_user = false;
         foreach ($list as $k => $cart) {
             if ($cart['seckill_id']) {
                 $product = StoreSeckill::field($seckillInfoField)
@@ -220,7 +221,9 @@ class StoreCart extends BaseModel
             }
             $product['image'] = set_file_url($product['image']);
             $cart['productInfo'] = $product;
-
+            if ($product['only_store_user'] ?? 0) {
+                $only_store_user = true;
+            }
             //商品不存在
             if (!$product) {
                 $model->where('id', $cart['id'])->update(['is_del' => 1]);
@@ -307,12 +310,14 @@ class StoreCart extends BaseModel
             }
         }
         foreach ($valid as $k => $cart) {
+            if ($only_store_user && !($cart['productInfo']['only_store_user'] ?? 0)) {
+                return self::setErrorInfo('采购商品不可和其他商品一起结算');
+            }
             if ($cart['trueStock'] < $cart['cart_num']) {
                 $cart['cart_num'] = $cart['trueStock'];
                 $model->where('id', $cart['id'])->update(['cart_num' => $cart['cart_num']]);
                 $valid[$k] = $cart;
             }
-
             unset($valid[$k]['uid'], $valid[$k]['is_del'], $valid[$k]['is_new'], $valid[$k]['is_pay'], $valid[$k]['add_time']);
             if (isset($valid[$k]['productInfo'])) {
                 unset($valid[$k]['productInfo']['is_del'], $valid[$k]['productInfo']['is_del'], $valid[$k]['productInfo']['is_show']);
@@ -325,7 +330,7 @@ class StoreCart extends BaseModel
             }
         }
 
-        return compact('valid', 'invalid');
+        return compact('valid', 'invalid', 'only_store_user');
     }
 
     /**