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

111 lines
4.2 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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) {
//页码大于1AJAX调用分页
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'));
}
}
}