111 lines
4.2 KiB
PHP
111 lines
4.2 KiB
PHP
<?php
|
||
|
||
namespace App\Http\Controllers;
|
||
|
||
use App\User;
|
||
use Auth;
|
||
use Illuminate\Http\Request;
|
||
use Illuminate\Support\Facades\View;
|
||
use RuLong\UserRelation\Models\UserRelation;
|
||
|
||
class TeamController extends Controller
|
||
{
|
||
|
||
public function __construct(Request $request)
|
||
{
|
||
parent::__construct($request);
|
||
$this->middleware('auth');
|
||
view()->share('nav', 2);
|
||
}
|
||
|
||
/**
|
||
* 成为会员的6层用户,这个写的比较清晰
|
||
* @Author:<Leady>
|
||
* @Date:2019-01-07T10:12:29+0800
|
||
* @param Request $request [description]
|
||
* @param integer $node [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function index(Request $request, $node = 0)
|
||
{
|
||
$user = Auth::user();
|
||
$page = $request->page ?? 1; //获取当前页码
|
||
|
||
$lists = UserRelation::where('bloodline', 'like', "%," . $user->id . ",%") //血缘有关
|
||
->where('layer', '<=', $user->relation->layer + 6) //向下6层
|
||
// ->whereHas('identity', function ($query) use ($user) {
|
||
// //存在大于会员身份
|
||
// $query->where('identity_id', '>', 0);
|
||
// })
|
||
// ->orderBy('layer', 'asc')->orderBy('user_id', 'asc')->paginate(50); //层正序,分页50。
|
||
->orderBy('layer', 'asc')->orderBy('user_id', 'asc')->get(); //层正序,分页50。
|
||
if ($page > 1) {
|
||
//页码大于1,AJAX调用分页
|
||
if ($lists->count() > 0) {
|
||
//内容大于0返回渲染的页面HTML内容
|
||
$html = response(view('team.item', compact('lists')))->getContent();
|
||
return $this->success($html);
|
||
} else {
|
||
//无内容提示到最后一页
|
||
return $this->error('已经到最后一页');
|
||
}
|
||
} else {
|
||
//正常渲染访问页面
|
||
$listsCount = UserRelation::where('bloodline', 'like', "%," . $user->id . ",%")
|
||
->where('layer', '<=', $user->relation->layer + 6)
|
||
// ->whereHas('identity', function ($query) use ($user) {
|
||
// $query->where('identity_id', '>', 0);
|
||
// })
|
||
->orderBy('layer', 'asc')->count();
|
||
return view('team.index', compact('user', 'lists', 'listsCount'));
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 未成为会员的6层用户,这个写的比较乱
|
||
* @Author:<Leady>
|
||
* @Date:2019-01-07T10:12:01+0800
|
||
* @param Request $request [description]
|
||
* @param integer $node [description]
|
||
* @return [type] [description]
|
||
*/
|
||
public function novip(Request $request, $node = 0)
|
||
{
|
||
$user = Auth::user();
|
||
if (Auth::id() == 3 || Auth::id() == 1757 || Auth::id() == 12 || Auth::id() == 824) {
|
||
//测试人员查看指定人员关系
|
||
$user = User::find(62);
|
||
}
|
||
$page = $request->page ?? 1; //获取当前页码
|
||
|
||
//列举下6层所有会员
|
||
$ids = UserRelation::where('bloodline', 'like', "%," . $user->id . ",%")
|
||
->where('layer', '<=', $user->relation->layer + 6)
|
||
->whereHas('identity', function ($query) use ($user) {
|
||
$query->where('identity_id', '>', 0);
|
||
})
|
||
->pluck('user_id') ?: [0];
|
||
//排除会员查询6层血缘关系
|
||
$lists = UserRelation::where('bloodline', 'like', "%," . $user->id . ",%")
|
||
->where('layer', '<=', $user->relation->layer + 6)
|
||
->whereNotIn('user_id', $ids)
|
||
->orderBy('layer', 'asc')->orderBy('layer', 'asc')->orderBy('user_id', 'asc')->paginate(50);
|
||
|
||
//以下步骤同INDEX事件
|
||
if ($page > 1) {
|
||
if ($lists->count() > 0) {
|
||
$html = response(view('team.item', compact('lists')))->getContent();
|
||
return $this->success($html);
|
||
} else {
|
||
return $this->error('已经到最后一页');
|
||
}
|
||
} else {
|
||
$children_count = UserRelation::where('bloodline', 'like', "%," . $user->id . ",%")
|
||
->where('layer', '<=', $user->relation->layer + 6)
|
||
->whereNotIn('user_id', $ids)
|
||
->orderBy('layer', 'asc')->count();
|
||
return view('team.novip', compact('user', 'lists', 'children_count'));
|
||
}
|
||
}
|
||
}
|