123 lines
3.5 KiB
PHP
123 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Auth;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\View;
|
|
use RuLong\Order\Models\Order;
|
|
use RuLong\Order\Models\OrderExpress;
|
|
|
|
class GiftController extends Controller
|
|
{
|
|
public function __construct(Request $request)
|
|
{
|
|
parent::__construct($request);
|
|
$this->middleware('auth');
|
|
View::share('nav', 2);
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$orders = Order::where('user_id', Auth::id())
|
|
->Gift()
|
|
->where('state', '<>', Order::ORDER_CLOSED)
|
|
->orderBy('id', 'desc')
|
|
->get();
|
|
|
|
return view('gifts.index', compact('orders'));
|
|
}
|
|
|
|
//活动和优惠券 未支付
|
|
public function unpay()
|
|
{
|
|
$orders = Order::UnAddress()
|
|
->Gift()
|
|
->where('user_id', Auth::id())
|
|
->orderBy('id', 'desc')
|
|
->get();
|
|
return view('gifts.index', compact('orders'));
|
|
}
|
|
|
|
//已支付报名课程和活动
|
|
public function paid()
|
|
{
|
|
$orders = Order::UnDeliver()
|
|
->Gift()
|
|
->where('user_id', Auth::id())
|
|
->orderBy('id', 'desc')
|
|
->get();
|
|
return view('gifts.index', compact('orders'));
|
|
}
|
|
|
|
public function delivered()
|
|
{
|
|
$orders = Order::Delivered()
|
|
->Gift()
|
|
->where('user_id', Auth::id())
|
|
->orderBy('id', 'desc')
|
|
->get();
|
|
return view('gifts.index', compact('orders'));
|
|
}
|
|
|
|
public function signed()
|
|
{
|
|
$orders = Order::Delivered()
|
|
->Gift()
|
|
->where('user_id', Auth::id())
|
|
->orderBy('id', 'desc')
|
|
->get();
|
|
return view('gifts.index', compact('orders'));
|
|
}
|
|
|
|
public function show($orderid)
|
|
{
|
|
$order = Order::where('orderid', $orderid)->firstOrFail();
|
|
return view('orders.show', compact('order'));
|
|
}
|
|
|
|
public function sign($orderid)
|
|
{
|
|
$order = Order::where('orderid', $orderid)->firstOrFail();
|
|
try {
|
|
$order->signin();
|
|
return $this->success('签收成功', route('gifts.signed'));
|
|
} catch (\Exception $e) {
|
|
return $this->error('签收失败' . $e->getmessage());
|
|
}
|
|
}
|
|
|
|
//设置收货地址
|
|
public function address(Request $request, Order $order)
|
|
{
|
|
$callback = $request->callback;
|
|
if ($request->isMethod('post')) {
|
|
if ($request->address_id) {
|
|
$address = \Address::get($request->address_id);
|
|
} else {
|
|
$address = \Address::store(
|
|
[
|
|
'user_id' => Auth::id(),
|
|
'name' => $request->name,
|
|
'mobile' => $request->mobile,
|
|
'province_sn' => $request->province_sn,
|
|
'city_sn' => $request->city_sn,
|
|
'area_sn' => $request->area_sn,
|
|
'address' => $request->address,
|
|
]
|
|
);
|
|
}
|
|
|
|
$express = new OrderExpress(['instance' => $address]);
|
|
$order->express()->save($express);
|
|
$order->state = Order::ORDER_PAID;
|
|
$order->save();
|
|
return $this->success('设置地址成功', $callback);
|
|
} else {
|
|
$provinces = \Area::index(0);
|
|
$address_list = \Address::lists(Auth::id());
|
|
return view('gifts.address', compact('provinces', 'order', 'address_list', 'callback'));
|
|
}
|
|
}
|
|
}
|