Files
repo-backend/app/Http/Controllers/Admin/InviteController.php
T

240 lines
6.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\AccountLog;
use App\Users;
use App\Setting;
use Illuminate\Support\Facades\DB;
use Symfony\Component\HttpFoundation\Request;
use Illuminate\Support\Facades\Input;
class InviteController extends Controller{
//邀请返佣
public function return(){
return view("admin.invite.return");
}
public function returnList(Request $request){
$limit = $request->get('limit',10);
$account = $request->get('account','');
$list = New AccountLog();
if (!empty($account)) {
$list = $list->whereHas('user', function($query) use ($account) {
$query->where("phone",'like','%'.$account.'%')->orwhere('email','like','%'.$account.'%');
} );
}
$list = $list->where('type', AccountLog::INVITATION_TO_RETURN)-> orderBy('id','desc')->paginate($limit);
return response()->json(['code' => 0, 'data' => $list->items(), 'count' => $list->total()]);
}
public function del(Request $request){
$id = $request->get('id');
$accountlog = AccountLog::find($id);
if(empty($accountlog)){
$this->error("记录未找到");
}
try {
$accountlog->delete();
return $this->success('删除成功');
} catch (\Exception $ex) {
return $this->error($ex->getMessage());
}
}
//会员推荐关系图
public function childs(){
return view("admin.invite.childs");
}
public function getTree()
{
$data = Users::orderBy('id','asc')->get()->toArray();
$list=$this->getSubTree($data);
return response()->json(['code' => 0, 'data' => $list]);
}
public function getSubTree($data, $id = 0, $level = 0)
{
$list = array();
foreach ($data as $key => $value) {
$val=[];
$val['parent_id'] = strval($value['parent_id']);
if ($val['parent_id'] == $id) {
$val['id'] = $value['id'];
$val['name'] = $value['account_number'];
$val['level'] = $level;
$val['children'] =self::getSubTree($data, $value['id'], $level + 1);
$list[] = $val;
}
}
return $list;
}
//邀请背景图
public function bgIndex(){
return view("admin.invite.bgIndex");
}
public function bgList(Request $request){
$limit = $request->get('limit',10);
$list = New InviteBg();
$list = $list->orderBy('id','desc')->paginate($limit);
return response()->json(['code' => 0, 'data' => $list->items(), 'count' => $list->total()]);
}
public function bgdel(Request $request){
$id = $request->get('id');
$bg = InviteBg::find($id);
if(empty($bg)){
$this->error("图片未找到");
}
try {
$bg->delete();
return $this->success('删除成功');
} catch (\Exception $ex) {
return $this->error($ex->getMessage());
}
}
public function edit(Request $request){
$id = $request->get('id',0);
if (empty($id)){
$bg=New InviteBg();
$bg->create_time=time();
}else{
$bg = InviteBg::find($id);
}
return view('admin.invite.edit',['res'=>$bg]);
}
public function doedit(){
$id = Input::get("id");
$pic= Input::get("pic");
if(empty($pic)){
return $this->error('图片必须上传');
}
if (empty($id)){
$bg=New InviteBg();
$bg->create_time=time();
}else{
$bg = InviteBg::find($id);
}
$bg->pic=$pic;
try {
$bg->save();
return $this->success('操作成功');
} catch (\Exception $ex) {
return $this->error($ex->getMessage());
}
}
public function share(){
$share_title = Setting::getValueByKey('share_title','');
$share_content = Setting::getValueByKey('share_content','');
$share_url = Setting::getValueByKey('share_url','');
return view('admin.invite.share',['title'=>$share_title,'content'=>$share_content,'url'=>$share_url]);
}
public function postShare(Request $request){
$title = Input::get("share_title");
$content= Input::get("share_content");
$url= Input::get("share_url");
if(empty($title) || empty($content) || empty($url)){
return $this->error('请填写完整信息');
}
$data = $request->all();
try {
foreach ($data as $key => $value) {
Setting::updateValueByKey($key,$value);
}
return $this->success('操作成功');
} catch (\Exception $exception) {
return $this->error($exception->getMessage());
}
}
public function getTopUsers(Request $request)
{
$page = $request->get('page',1);
$limit = $request->get('limit',10);
$lists = DB::table('users')
->where('parent_id',0)
->select('id','account_number','parent_id')
->paginate($limit);
foreach ($lists->items() as &$item) {
$item->hasChildren = false;
$count = DB::table('users')->where('parent_id',$item->id)->count();
if ($count > 0){
$item->hasChildren = true;
}
}
unset($item);
$result = array('data' => $lists->items(), 'page' => $page, 'pages' => $lists->lastPage(), 'total' => $lists->total());
return $this->success($result);
}
public function getSonByPid(Request $request)
{
$pid = $request->get('pid');
$lists = DB::table('users')
->where('parent_id',$pid)
->select('id','account_number','parent_id')
->get();
foreach ($lists as &$item) {
$item->hasChildren = false;
$count = DB::table('users')->where('parent_id',$item->id)->count();
if ($count > 0){
$item->hasChildren = true;
}
}
unset($item);
return $this->success($lists);
}
}
?>