$globalLimit, // 全局限购数量 'user_global_purchased' => 0, // 用户已购买总数 'user_global_remaining' => $globalLimit, // 用户剩余可购买总数 'daily_limit' => $dailyLimit, // 每日限购数量 'user_daily_purchased' => 0, // 用户今日已购买数 'user_daily_remaining' => $dailyLimit, // 用户今日剩余可购买数 'user_test' => 0, 'coupon_limit' => $daily_coupon_limit, 'user_coupon_purchased' => 0, // 用户今日已购买数 'user_coupon_remaining' => $daily_coupon_limit, // 用户今日剩余可购买数 ]; if ($userId <= 0 || $goods == null) { return $limitInfo; } $goodsId = $goods['id']; $goodsType = $goods['type']; $dailyLimit = $goods['daily_xiangou']; $globalLimit = $goods['quanju_xiangou']; // 公共查询条件 $commonConditions = [ 'goods_id' => $goodsId, 'num' => $goodsNum, 'order_type' => $goodsType, 'user_id' => $userId, 'parent_goods_list_id' => 0 ]; // 处理全局限购 if ($globalLimit > 0) { $userGlobalPurchased = OrderList::field('id') ->where($commonConditions) ->where('shang_id', 'between', $shangCountId) ->count(); $limitInfo['global_limit'] = $globalLimit; $limitInfo['user_global_purchased'] = $userGlobalPurchased; $limitInfo['user_global_remaining'] = max(0, $globalLimit - $userGlobalPurchased); } $day = strtotime(date('Y-m-d')); // 处理每日限购 if ($dailyLimit > 0) { $userDailyPurchased = OrderList::field('id') ->where($commonConditions) ->where('shang_id', 'between', $shangCountId) ->where('addtime', '>=', $day) ->count(); $limitInfo['user_daily_purchased'] = $userDailyPurchased; $limitInfo['user_daily_remaining'] = max(0, $dailyLimit - $userDailyPurchased); $limitInfo['daily_limit'] = $dailyLimit; } if ($daily_coupon_limit > 0) { $user_coupon_purchased = Order::field('id') ->where('status', '=', 1) ->where('coupon_id', '>', 0) ->where('user_id', '=', $userId) ->where('pay_time', '>=', $day) ->count(); $limitInfo['user_coupon_purchased'] = $user_coupon_purchased; $limitInfo['user_coupon_remaining'] = max(0, $daily_coupon_limit - $user_coupon_purchased); $limitInfo['coupon_limit'] = $daily_coupon_limit; } return $limitInfo; } }