1
0
Files
lkafu/app/Agent/Controllers/CardController.php
2020-08-06 14:45:56 +08:00

102 lines
3.4 KiB
PHP

<?php
namespace App\Agent\Controllers;
use App\Models\CardOrder;
use App\Models\CardOrderExpress;
use App\Rules\Checkmobile;
use Auth;
use Config;
use Illuminate\Http\Request;
use RuLong\Area\Models\UserAddress;
/**
* 提货卡管理
*/
class CardController extends Controller
{
public function index(Request $request)
{
$user = Auth::guard('agent')->user();
$status = $request->status;
$lists = $user
->mycard()
->when($status, function ($q) use ($status) {
$q->where('status', $status);
})->paginate();
if ($request->isMethod('POST')) {
if ($lists->isNotEmpty()) {
$html = response(view('Agent::card.more', compact('lists')))->getContent();
return $this->success($html);
} else {
return $this->error('没有数据了');
}
} else {
$data = [
'all' => $user->mycard()->count(),
'residue' => $user->mycard()->where('active_id', 0)->count(),
'5' => $user->mycard()->where('status', 5)->count(),
'2' => $user->mycard()->where('status', 2)->count(),
'3' => $user->mycard()->where('status', 3)->count(),
'4' => $user->mycard()->where('status', 4)->count(),
];
return view('Agent::card.index', compact('user', 'data', 'lists', 'status'));
}
}
//进卡
public function buy(Request $request)
{
$user = Auth::guard('agent')->user();
if ($request->isMethod('POST')) {
if ($user->identity_id < 2) {
return $this->error('您没有购卡权限');
}
$request->validate([
'num' => 'required',
'name' => 'required',
'mobile' => ['required', new Checkmobile],
'address' => 'required',
], [
'num.required' => '进货数量不能为空',
'name.required' => '收货人姓名必须填写',
'mobile.required' => '收货人电话必须填写',
'address.required' => '收货人地址必须填写',
]);
$num = $request->num;
$card_price = Config::get('card_price', 15);
$price = $num * $card_price;
$data = [
'user_id' => $user->id,
'num' => $num,
'price' => $price,
'remark' => $request->remark ?? '',
];
if ($cardOrder = CardOrder::create($data)) {
$address = [
'name' => $request->name,
'mobile' => $request->mobile,
'address' => $request->address,
];
$express = new CardOrderExpress(['instance' => $address]);
$cardOrder->express()->save($express);
} else {
return $this->error('下单失败');
}
return $this->success('订单创建成功', route('Agent.pay.order', $cardOrder->order_id));
} else {
$address = UserAddress::where('user_id', $user->id)->orderBy('is_default', 'desc')->first() ?? '';
return view('Agent::card.buy', compact('user', 'address'));
}
}
}