|
@@ -60,15 +60,21 @@ class CheckOrder extends Command
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private function orderHandle($order)
|
|
|
+ private function orderHandle(Order $order)
|
|
|
{
|
|
|
$user = User::find($order->user_id);
|
|
|
- return $this->buy($order, $user);
|
|
|
+ $plan = Plan::find($order->plan_id);
|
|
|
+ switch ($plan->type) {
|
|
|
+ // cycle
|
|
|
+ case 0: return $this->buyByCycle($order, $user, $plan);
|
|
|
+ // onetime
|
|
|
+ case 1: return $this->buyByOneTime($order, $user, $plan);
|
|
|
+ }
|
|
|
+ return $this->buy($order, $user, $plan);
|
|
|
}
|
|
|
|
|
|
- private function buy($order, $user)
|
|
|
+ private function buyByCycle(Order $order, User $user, Plan $plan)
|
|
|
{
|
|
|
- $plan = Plan::find($order->plan_id);
|
|
|
// change plan process
|
|
|
if ($order->type == 3) {
|
|
|
$user->expired_at = time();
|
|
@@ -83,7 +89,24 @@ class CheckOrder extends Command
|
|
|
$user->plan_id = $plan->id;
|
|
|
$user->group_id = $plan->group_id;
|
|
|
$user->expired_at = $this->getTime($order->cycle, $user->expired_at);
|
|
|
+ if ($user->save()) {
|
|
|
+ $order->status = 3;
|
|
|
+ $order->save();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ private function buyByOneTime(Order $order, User $user, Plan $plan)
|
|
|
+ {
|
|
|
+ if ($order->refund_amount) {
|
|
|
+ $user->balance = $user->balance + $order->refund_amount;
|
|
|
+ }
|
|
|
+ $user->transfer_enable = $plan->transfer_enable * 1073741824;
|
|
|
+ $user->enable = 1;
|
|
|
+ $user->u = 0;
|
|
|
+ $user->d = 0;
|
|
|
+ $user->plan_id = $plan->id;
|
|
|
+ $user->group_id = $plan->group_id;
|
|
|
+ $user->expired_at = 0;
|
|
|
if ($user->save()) {
|
|
|
$order->status = 3;
|
|
|
$order->save();
|