mirror of
https://github.com/v2board/v2board.git
synced 2025-02-04 12:39:12 +08:00
coupon plan limit
This commit is contained in:
parent
3cdfc69b5d
commit
bbb42c0d46
@ -12,22 +12,21 @@ class CouponController extends Controller
|
|||||||
{
|
{
|
||||||
public function fetch(Request $request)
|
public function fetch(Request $request)
|
||||||
{
|
{
|
||||||
|
$coupons = Coupon::all();
|
||||||
|
foreach ($coupons as $k => $v) {
|
||||||
|
if ($coupons[$k]['limit_plan_ids']) $coupons[$k]['limit_plan_ids'] = json_decode($coupons[$k]['limit_plan_ids']);
|
||||||
|
}
|
||||||
return response([
|
return response([
|
||||||
'data' => Coupon::all()
|
'data' => $coupons
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function save(CouponSave $request)
|
public function save(CouponSave $request)
|
||||||
{
|
{
|
||||||
$params = $request->only([
|
$params = $request->only(array_keys(CouponSave::RULES));
|
||||||
'name',
|
if (isset($params['limit_plan_ids'])) {
|
||||||
'type',
|
$params['limit_plan_ids'] = json_encode($params['limit_plan_ids']);
|
||||||
'value',
|
}
|
||||||
'started_at',
|
|
||||||
'ended_at',
|
|
||||||
'limit_use'
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (!$request->input('id')) {
|
if (!$request->input('id')) {
|
||||||
$params['code'] = Helper::randomChar(8);
|
$params['code'] = Helper::randomChar(8);
|
||||||
if (!Coupon::create($params)) {
|
if (!Coupon::create($params)) {
|
||||||
|
@ -26,6 +26,13 @@ class CouponController extends Controller
|
|||||||
if (time() > $coupon->ended_at) {
|
if (time() > $coupon->ended_at) {
|
||||||
abort(500, '优惠券已过期');
|
abort(500, '优惠券已过期');
|
||||||
}
|
}
|
||||||
|
if ($coupon->limit_plan_ids) {
|
||||||
|
$limitPlanIds = json_decode($coupon->limit_plan_ids);
|
||||||
|
info($limitPlanIds);
|
||||||
|
if (!in_array($request->input('plan_id'), $limitPlanIds)) {
|
||||||
|
abort(500, '这个计划无法使用该优惠码');
|
||||||
|
}
|
||||||
|
}
|
||||||
return response([
|
return response([
|
||||||
'data' => $coupon
|
'data' => $coupon
|
||||||
]);
|
]);
|
||||||
|
@ -6,6 +6,15 @@ use Illuminate\Foundation\Http\FormRequest;
|
|||||||
|
|
||||||
class CouponSave extends FormRequest
|
class CouponSave extends FormRequest
|
||||||
{
|
{
|
||||||
|
const RULES = [
|
||||||
|
'name' => 'required',
|
||||||
|
'type' => 'required|in:1,2',
|
||||||
|
'value' => 'required|integer',
|
||||||
|
'started_at' => 'required|integer',
|
||||||
|
'ended_at' => 'required|integer',
|
||||||
|
'limit_use' => 'nullable|integer',
|
||||||
|
'limit_plan_ids' => 'nullable|array'
|
||||||
|
];
|
||||||
/**
|
/**
|
||||||
* Get the validation rules that apply to the request.
|
* Get the validation rules that apply to the request.
|
||||||
*
|
*
|
||||||
@ -13,14 +22,7 @@ class CouponSave extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return self::RULES;
|
||||||
'name' => 'required',
|
|
||||||
'type' => 'required|in:1,2',
|
|
||||||
'value' => 'required|integer',
|
|
||||||
'started_at' => 'required|integer',
|
|
||||||
'ended_at' => 'required|integer',
|
|
||||||
'limit_use' => 'nullable|integer'
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function messages()
|
public function messages()
|
||||||
@ -35,7 +37,8 @@ class CouponSave extends FormRequest
|
|||||||
'started_at.integer' => '开始时间格式有误',
|
'started_at.integer' => '开始时间格式有误',
|
||||||
'ended_at.required' => '结束时间不能为空',
|
'ended_at.required' => '结束时间不能为空',
|
||||||
'ended_at.integer' => '结束时间格式有误',
|
'ended_at.integer' => '结束时间格式有误',
|
||||||
'limit_use.integer' => '使用次数格式有误'
|
'limit_use.integer' => '使用次数格式有误',
|
||||||
|
'limit_plan_ids.array' => '指定订阅格式有误'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,6 +43,12 @@ class CouponService
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($this->coupon->limit_plan_ids) {
|
||||||
|
$limitPlanIds = json_decode($this->coupon->limit_plan_ids);
|
||||||
|
if (!in_array($order->plan_id, $limitPlanIds)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
public/assets/admin/umi.js
vendored
2
public/assets/admin/umi.js
vendored
File diff suppressed because one or more lines are too long
2
public/assets/user/umi.js
vendored
2
public/assets/user/umi.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user