|
@@ -2,6 +2,8 @@
|
|
|
|
|
|
namespace App\Http\Controllers\QuickApp\Order;
|
|
|
|
|
|
+use App\Consts\ErrorConst;
|
|
|
+use App\Libs\Utils;
|
|
|
use App\Modules\Activity\Models\Activity;
|
|
|
use App\Modules\Statistic\Services\AdVisitStatService;
|
|
|
use App\Http\Controllers\QuickApp\BaseController;
|
|
@@ -20,6 +22,7 @@ use App\Modules\Book\Services\BookConfigService;
|
|
|
use App\Modules\Book\Services\BookService;
|
|
|
use App\Modules\Channel\Services\PayTemplateService;
|
|
|
use App\Modules\Subscribe\Models\Order;
|
|
|
+use App\Modules\Trade\Models\Order as TradeOrder;
|
|
|
use App\Modules\Trade\Pay\OrderArousePayFactory;
|
|
|
use App\Modules\Trade\Pay\OrderPaySuccess;
|
|
|
use App\Modules\Trade\Services\PayMerchantService;
|
|
@@ -426,6 +429,30 @@ class OrdersController extends BaseController
|
|
|
if ($activity_token) {
|
|
|
$activity = Activity::getActivityBuToken($activity_token);
|
|
|
$activity_id = (int)getProp($activity, 'id');
|
|
|
+
|
|
|
+ // 校验活动次数
|
|
|
+ $settingJson = getProp($activity, 'setting');
|
|
|
+ if ($settingJson) {
|
|
|
+ $setting = json_decode($settingJson, true);
|
|
|
+ $productInfos = getProp($setting, 'product_info', []);
|
|
|
+ $productInfo = collect($productInfos)->firstWhere('product_id', $product_id);
|
|
|
+ $limit = (int)getProp($productInfo, 'limit');
|
|
|
+ if ($limit > 0) {
|
|
|
+ // 查询用户通过该活动已经充值的次数
|
|
|
+ $paidNum = TradeOrder::getActivityOrderNum([
|
|
|
+ 'uid' => $uid,
|
|
|
+ 'begin_time' => getProp($activity, 'start_time'),
|
|
|
+ 'end_time' => getProp($activity, 'end_time'),
|
|
|
+ 'status' => 'PAID',
|
|
|
+ 'activity_id' => $activity_id
|
|
|
+ ]);
|
|
|
+
|
|
|
+ // 活动充值次数限制
|
|
|
+ if ($paidNum >= $limit) {
|
|
|
+ Utils::throwError(ErrorConst::ACTIVITY_CHARGE_OUT_OF_LIMIT);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return compact(
|