156 lines
5.1 KiB
PHP
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'));
|
|
}
|
|
|
|
}
|
|
}
|