Browse Source

一些功能

Kirin 3 years ago
parent
commit
7f9fdbb872

+ 1 - 0
app/Request.php

@@ -16,6 +16,7 @@ use Spatie\Macroable\Macroable;
 /**
  * @method user()
  * @method uid()
+ * @method store_id()
  */
 class Request extends \think\Request
 {

+ 3 - 2
app/admin/controller/merchant/SystemStore.php

@@ -163,14 +163,15 @@ class SystemStore extends AuthController
         $res = StoreCart::setCart($uid, $product['product_id'], $date['num'], $date['uni'], 'product', 1);
         if ($res) {
             $cartId = $res->id;
-            $cartGroup = StoreCart::getUserProductCartList($uid, [$cartId], 1);
+            $cartGroup = StoreCart::getUserProductCartList($uid, [$cartId], 1, $this->store_id);
             if (count($cartGroup['invalid'])) JsonService::fail($cartGroup['invalid'][0]['productInfo']['store_name'] . '已失效!');
             if (!$cartGroup['valid']) JsonService::fail('请提交购买的商品');
             $cartInfo = $cartGroup['valid'];
             $priceGroup = StoreOrder::getOrderPriceGroup($cartInfo, 0);
             $other = [
                 'offlinePostage' => sys_config('offline_postage'),
-                'integralRatio' => sys_config('integral_ratio')
+                'integralRatio' => sys_config('integral_ratio'),
+                'store_id' => $this->store_id,
             ];
             $orderKey = StoreOrder::cacheOrderInfo($uid, $cartInfo, $priceGroup, $other);
             if (!$orderKey) JsonService::fail('生成订单错误!');

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

@@ -50,7 +50,7 @@ class StoreOrderController
         list($cartId) = UtilService::postMore(['cartId'], $request, true);
         if (!is_string($cartId) || !$cartId) return app('json')->fail('请提交购买的商品');
         $uid = $request->uid();
-        $cartGroup = StoreCart::getUserProductCartList($uid, $cartId, 1);
+        $cartGroup = StoreCart::getUserProductCartList($uid, $cartId, 1, $request->store_id());
         if (count($cartGroup['invalid'])) return app('json')->fail($cartGroup['invalid'][0]['productInfo']['store_name'] . '已失效!');
         if (!$cartGroup['valid']) return app('json')->fail('请提交购买的商品');
         $cartInfo = $cartGroup['valid'];
@@ -61,7 +61,8 @@ class StoreOrderController
         }
         $other = [
             'offlinePostage' => sys_config('offline_postage'),
-            'integralRatio' => sys_config('integral_ratio')
+            'integralRatio' => sys_config('integral_ratio'),
+            'store_id' => $request->store_id(),
         ];
         $usableCoupons = StoreCouponUser::getUsableCouponList($uid, $cartGroup, $priceGroup['totalPrice']);
         $usableCoupon = isset($usableCoupons[0]) ? $usableCoupons[0] : null;
@@ -141,7 +142,7 @@ class StoreOrderController
             if (StoreOrder::getIsOrderPink($pinkId, $request->uid()))
                 return app('json')->status('ORDER_EXIST', '订单生成失败,你已经参加该团了,请先支付订单', ['orderId' => StoreOrder::getStoreIdPink($pinkId, $request->uid())]);
         }
-        $priceGroup = StoreOrder::cacheKeyCreateOrder($request->uid(), $key, $addressId, $payType, (int)$useIntegral, $couponId, $mark, $combinationId, $pinkId, $seckill_id, $bargainId, $integral_id, true, 0, $shipping_type);
+        $priceGroup = StoreOrder::cacheKeyCreateOrder($request->uid(), $key, $addressId, $payType, (int)$useIntegral, $couponId, $mark, $combinationId, $pinkId, $seckill_id, $bargainId, $integral_id, true, 0, $shipping_type, '', '', $request->store_id());
         if ($priceGroup)
             return app('json')->status('NONE', 'ok', $priceGroup);
         else

+ 1 - 1
app/api/controller/store/StoreCartController.php

@@ -22,7 +22,7 @@ class StoreCartController
      */
     public function lst(Request $request)
     {
-        return app('json')->successful(StoreCart::getUserProductCartList($request->uid()));
+        return app('json')->successful(StoreCart::getUserProductCartList($request->uid(), '', 0, $request->store_id()));
     }
 
     /**

+ 1 - 1
app/api/controller/store/StoreCouponsController.php

@@ -119,6 +119,6 @@ class StoreCouponsController
      */
     public function order(Request $request, $cartId, $price)
     {
-        return app('json')->successful(StoreCouponUser::beUsableCouponList($request->uid(), $cartId, $price));
+        return app('json')->successful(StoreCouponUser::beUsableCouponList($request->uid(), $cartId, $price,$request->store_id()));
     }
 }

+ 1 - 1
app/http/middleware/AllowOriginMiddleware.php

@@ -22,7 +22,7 @@ class AllowOriginMiddleware implements MiddlewareInterface
      */
     protected $header = [
         'Access-Control-Allow-Origin' => '*',
-        'Access-Control-Allow-Headers' => 'LatLon,Authori-zation,Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With',
+        'Access-Control-Allow-Headers' => 'store-id,LatLon,Authori-zation,Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With',
         'Access-Control-Allow-Methods' => 'GET,POST,PATCH,PUT,DELETE,OPTIONS,DELETE',
         'Access-Control-Max-Age' => '1728000'
     ];

+ 4 - 0
app/http/middleware/AuthTokenMiddleware.php

@@ -31,6 +31,7 @@ class AuthTokenMiddleware implements MiddlewareInterface
 //        var_dump($request->action());
 //        var_dump($request->controller());
         $token = trim(ltrim($request->header('Authori-zation'), 'Bearer'));
+        $store_id = $request->header('store-id', 0);
         $location = $request->header('LatLon', '0,0');
         if (!$token) $token = trim(ltrim($request->header('Authorization'), 'Bearer'));//正式版,删除此行,某些服务器无法获取到token调整为 Authori-zation
         try {
@@ -72,6 +73,9 @@ class AuthTokenMiddleware implements MiddlewareInterface
         Request::macro('admin_info', function () use (&$adminInfo) {
             return $adminInfo;
         });
+        Request::macro('store_id', function () use (&$store_id) {
+            return $store_id;
+        });
         Request::macro('uid', function () use (&$authInfo) {
             return is_null($authInfo) ? 0 : $authInfo['user']->uid;
         });

+ 6 - 1
app/models/store/StoreCart.php

@@ -9,6 +9,7 @@ namespace app\models\store;
 
 use app\admin\model\store\StoreProductAttrValue;
 use app\admin\model\system\SystemGroupData;
+use app\admin\model\system\SystemStoreProductStock;
 use crmeb\basic\BaseModel;
 use crmeb\services\UtilService;
 use crmeb\traits\ModelTrait;
@@ -166,7 +167,7 @@ class StoreCart extends BaseModel
         return self::where('uid', $uid)->where('id', $cartId)->update(['cart_num' => $cartNum]);
     }
 
-    public static function getUserProductCartList($uid, $cartIds = '', $status = 0)
+    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';
         $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';
@@ -246,6 +247,10 @@ class StoreCart extends BaseModel
                     if (!$attrInfo || !$attrInfo['stock'])
                         $invalid[] = $cart;
                     else {
+                        if ($store_id) {
+                            $stock_info = SystemStoreProductStock::where('store_id', $store_id)->where('unique', $cart['product_attr_unique'])->where('product_id', $cart['productInfo']['id'])->find();
+                            if ($stock_info) $attrInfo['price'] = $stock_info['price'];
+                        }
                         $cart['productInfo']['attrInfo'] = $attrInfo;
                         if ($cart['combination_id'] || $cart['seckill_id'] || $cart['bargain_id'] || $cart['integral_id']) {
                             $cart['truePrice'] = $attrInfo['price'];

+ 2 - 2
app/models/store/StoreCouponUser.php

@@ -203,9 +203,9 @@ class StoreCouponUser extends BaseModel
      * @param $price
      * @return false|\PDOStatement|string|\think\Collection
      */
-    public static function beUsableCouponList($uid, $cartId, $price = 0)
+    public static function beUsableCouponList($uid, $cartId, $price = 0, $store_id = 0)
     {
-        $cartGroup = StoreCart::getUserProductCartList($uid, $cartId, 1);
+        $cartGroup = StoreCart::getUserProductCartList($uid, $cartId, 1, $store_id);
         return self::getUsableCouponList($uid, $cartGroup, $price);
     }
 

+ 4 - 0
app/models/store/StoreOrder.php

@@ -296,6 +296,10 @@ class StoreOrder extends BaseModel
             $cartInfo = $cartGroup['cartInfo'];
             $priceGroup = $cartGroup['priceGroup'];
             $other = $cartGroup['other'];
+            if ($other['store_id'] != $storeId) {
+                self::clearCacheOrderInfo($uid, $key);
+                return self::setErrorInfo('所选门店改变,请刷新当前页面!', true);
+            }
             $payPrice = (float)$priceGroup['totalPrice'];
             $usedIntegral = (float)$priceGroup['totalIntegral'];
             $deposit = (float)$priceGroup['totalDeposit'];