0
0
Files
Babyclass/app/Http/Controllers/SellersController.php
2020-08-04 10:09:42 +08:00

156 lines
5.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Activity;
use App\Models\ActivityLog;
use App\Models\Seller;
use App\Models\SellerLesson;
use App\Models\SellerLessonLog;
use App\Models\SellerTeacher;
use Auth;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View;
use RuLong\Order\Models\Order;
class SellersController extends Controller
{
public function __construct(Request $request)
{
parent::__construct($request);
$this->middleware('auth')->except(['verification']);
view()->share('nav', 1);
}
public function index(Request $request)
{
$sellers = Seller::with(['storage'])->orderBy('sort', 'desc')->get();
return view('sellers.index', compact('sellers'));
}
public function show(Seller $seller)
{
$favorite = \Auth::user()->sellerFavorite()->where('item_id', $seller->id)->first();
$lists = SellerTeacher::where('seller_id', $seller->id)->get();
$user = Auth::user();
return view('sellers.show', compact('seller', 'favorite', 'lists', 'user'));
}
//商户管理
public function seller(Request $request)
{
$type = $request->type ?? 'activity';
$status = $request->status ?? '';
$seller = Auth::user()->seller;
if (!$seller || $seller->type != 'seller') {
return redirect()->route('user.index');
}
if ($type == 'activity') {
$lists = Activity::with('seller')->where('seller_id', $seller->id)->get();
} else {
$lists = ActivityLog::with(['activity.seller'])->whereHas('activity', function ($query) use ($seller) {
$query->where('seller_id', $seller->id);
})->whereHas('order', function ($query) {
$query->whereNotNull('paid_at');
})->when($status, function ($query) use ($status) {
switch ($status) {
case 1:
$query->whereNotNull('used_at');
break;
case 2:
$query->whereNull('used_at');
break;
}
})->orderBy('created_at', 'desc')->get();
}
return view('sellers.seller', compact('type', 'lists', 'status'));
}
//机构管理
public function organ(Request $request)
{
$type = $request->type ?? 'lesson';
$user = Auth::user();
$organ = $user->organ;
//有机构 并且身份是机构负责人
if (!$organ || $user->identity->identity_id !== 3) {
return redirect()->route('user.index');
}
if ($type == 'lesson') {
$lists = SellerLesson::where('seller_id', $organ->id)->get();
} else {
$lists = SellerLessonLog::whereHas('lesson', function ($query) use ($organ) {
$query->where('seller_id', $organ->id);
})->whereHas('order', function ($query) {
$query->whereNotNull('paid_at');
})->orderBy('created_at', 'desc')->get();
}
return view('sellers.organ', compact('type', 'lists'));
}
//机构内课程
public function lessons(Request $request, Seller $seller)
{
$lists = $seller->lesson;
return view('sellers.lessons', compact('seller', 'lists'));
}
//核销
public function verification(Request $request)
{
$orderid = $request->orderid;
$order = Order::with(['details', 'user.info'])->where('id', $orderid)->first();
if ($request->isMethod('POST')) {
if (Auth::guest()) {
return $this->error('您没有登录', route('login'));
}
$user = Auth::user();
if (!$user->seller) {
return $this->error('您没有审核权限');
}
if (!$order->canActivityAudit()) {
return $this->error('订单状态不对');
}
if ($order->item_type != 'ACTIVITY') {
return $this->error('订单类型不对');
}
if (!$order->activitylog) {
return $this->error('没有查到这个服务的购买记录');
}
if (!$order->activitylog->activity) {
return $this->error('没有这个服务');
} elseif ($order->activitylog->activity->status === 0) {
return $this->error('服务还未开始');
} elseif ($order->activitylog->activity->status == '-1') {
return $this->error('服务已经结束');
}
if ($order->activitylog->activity->seller->id != $user->seller->id) {
return $this->error('您没有这个服务的审核权限');
}
if ($order->activitylog()->update(['scan_people_id' => $user->id, 'used_at' => Carbon::today()->toDateTimeString()])) {
$order->used();
return $this->success('审核成功', url()->full());
} else {
return $this->error('审核失败');
}
} else {
return view('sellers.verification', compact('order'));
}
}
}