first commit
This commit is contained in:
294
app/Admin/Controllers/UserController.php
Normal file
294
app/Admin/Controllers/UserController.php
Normal file
@@ -0,0 +1,294 @@
|
||||
<?php
|
||||
|
||||
namespace App\Admin\Controllers;
|
||||
|
||||
use App\Models\Config;
|
||||
use App\Models\User;
|
||||
use Carbon\Carbon;
|
||||
use Encore\Admin\Controllers\HasResourceActions;
|
||||
use Encore\Admin\Facades\Admin;
|
||||
use Encore\Admin\Form;
|
||||
use Encore\Admin\Form\Tools;
|
||||
use Encore\Admin\Grid;
|
||||
use Encore\Admin\Layout\Content;
|
||||
use Illuminate\Http\Request;
|
||||
use RuLong\Identity\Models\Identity;
|
||||
use RuLong\Identity\Models\IdentityLog;
|
||||
use RuLong\Identity\Models\UserIdentity;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
use HasResourceActions;
|
||||
|
||||
/**
|
||||
* Index interface.
|
||||
*
|
||||
* @param Content $content
|
||||
* @return Content
|
||||
*/
|
||||
public function index(Content $content)
|
||||
{
|
||||
return $content
|
||||
->header('会员管理')
|
||||
->body($this->grid());
|
||||
}
|
||||
|
||||
/**
|
||||
* Show interface.
|
||||
* @param mixed $id
|
||||
* @param Content $content
|
||||
* @return Content
|
||||
*/
|
||||
public function show(User $user, Content $content)
|
||||
{
|
||||
}
|
||||
|
||||
//空升
|
||||
public function emptys(User $user, Content $content)
|
||||
{
|
||||
return $content
|
||||
->header('空升')
|
||||
->body($this->UserEmptyForm($user));
|
||||
}
|
||||
|
||||
//执行空升
|
||||
public function DoEmpty(User $user, Request $request)
|
||||
{
|
||||
$identity_id = $request->identity_id;
|
||||
if ($identity_id == 6) {
|
||||
$identity = UserIdentity::where('identity_id', 6)->first();
|
||||
if ($identity) {
|
||||
$identity->user->identityUpdate(1, 'EmptyUp');
|
||||
}
|
||||
}
|
||||
|
||||
$user->identityUpdate($identity_id, 'EmptyUp');
|
||||
|
||||
if ($identity_id == 1) {
|
||||
$year = Config::where('name', 'upgrade_time')->value('value') ?? 1;
|
||||
$user->vipd_at = Carbon::now();
|
||||
$user->vip_end_at = Carbon::now()->addYear($year);
|
||||
$user->save();
|
||||
}
|
||||
admin_toastr('升级成功');
|
||||
return redirect()->intended('/admin/user');
|
||||
}
|
||||
|
||||
//空升记录
|
||||
public function logs(Content $content)
|
||||
{
|
||||
return $content
|
||||
->header('空升记录')
|
||||
->body($this->emptyGrid());
|
||||
}
|
||||
|
||||
public function emptyGrid()
|
||||
{
|
||||
$grid = new Grid(new IdentityLog);
|
||||
$grid->disableRowSelector();
|
||||
|
||||
$grid->filter(function ($filter) {
|
||||
$filter->disableIdFilter();
|
||||
|
||||
$filter->column(1 / 3, function ($filter) {
|
||||
$filter->where(function ($query) {
|
||||
$query->whereHas('user.info', function ($query) {
|
||||
$query->where('nickname', 'like', "%{$this->input}%");
|
||||
});
|
||||
}, '空升用户');
|
||||
});
|
||||
$filter->column(1 / 3, function ($filter) {
|
||||
$filter->between('created_at', '空升时间')->datetime();
|
||||
});
|
||||
$filter->column(1 / 3, function ($filter) {
|
||||
$filter->equal('channel', '升级途径')->select([
|
||||
'EmptyUp' => '后台升级',
|
||||
'AutoUp' => '自动升级',
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
$grid->disableCreateButton();
|
||||
|
||||
$grid->actions(function ($actions) {
|
||||
$actions->disableDelete();
|
||||
$actions->disableEdit();
|
||||
$actions->disableView();
|
||||
});
|
||||
|
||||
$grid->paginate(10);
|
||||
|
||||
$grid->model()->where('other', 'like', "%EmptyUp%")->orderBy('created_at', 'desc')->with(['user']);
|
||||
|
||||
$grid->id('Id')->sortable();
|
||||
|
||||
$grid->column('用户')->display(function () {
|
||||
return $this->user->info->nickname;
|
||||
});
|
||||
|
||||
$grid->column('空升前')->display(function () {
|
||||
return $this->before_identity_title;
|
||||
});
|
||||
|
||||
$grid->column('空升后')->display(function () {
|
||||
return $this->identity_title;
|
||||
});
|
||||
|
||||
$grid->column('类型')->display(function () {
|
||||
return $this->channel_text;
|
||||
});
|
||||
|
||||
$grid->created_at('升级时间');
|
||||
|
||||
return $grid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a grid builder.
|
||||
*
|
||||
* @return Grid
|
||||
*/
|
||||
protected function grid()
|
||||
{
|
||||
$grid = new Grid(new User);
|
||||
|
||||
$grid->disableCreateButton();
|
||||
$grid->disableRowSelector();
|
||||
|
||||
$grid->actions(function ($actions) {
|
||||
$actions->disableDelete();
|
||||
$actions->disableEdit();
|
||||
$actions->disableView();
|
||||
$actions->append('<p><a href="' . route('user.empty', $this->getRouteKey()) . '" class="btn btn-xs btn-default">空升</a></p>');
|
||||
$actions->append('<p><a href="' . route('user.remark', $actions->getKey()) . '" class="btn btn-xs btn-default">备注</a></p>');
|
||||
// $actions->append('<a href="/admin/users/remark' . $this->getRouteKey() . '/recharge">备注</a>');
|
||||
});
|
||||
|
||||
$grid->paginate(10);
|
||||
|
||||
$grid->model()->orderBy('id', 'desc')->with(['info', 'account', 'orders']);
|
||||
|
||||
$grid->id('Id')->sortable();
|
||||
|
||||
$grid->filter(function ($filter) {
|
||||
$filter->disableIdFilter();
|
||||
|
||||
$filter->column(1 / 2, function ($filter) {
|
||||
$filter->like('info.nickname', '会员昵称');
|
||||
});
|
||||
|
||||
$filter->column(1 / 2, function ($filter) {
|
||||
$filter->where(function ($query) {
|
||||
$query->whereHas('info', function ($query) {
|
||||
$query->where('mobile', $this->input);
|
||||
});
|
||||
}, '会员手机号');
|
||||
});
|
||||
});
|
||||
|
||||
$grid->column('头像 昵称')->display(function () {
|
||||
$avatar = '<img src="' . $this->info->avatar . '" alt="" style="width:40px;height:40px;border-radius:50%" />';
|
||||
return $avatar . ' ' . $this->info->nickname;
|
||||
});
|
||||
|
||||
$grid->column('手机号')->display(function () {
|
||||
return $this->info->mobile;
|
||||
});
|
||||
|
||||
$grid->column('备注')->display(function () {
|
||||
return $this->info->remark;
|
||||
});
|
||||
|
||||
$grid->column('企业名')->display(function () {
|
||||
return $this->info->company;
|
||||
});
|
||||
|
||||
$grid->column('企业注册地')->display(function () {
|
||||
return $this->info->area;
|
||||
});
|
||||
|
||||
$grid->column('推荐人')->display(function () {
|
||||
return $this->parent ? $this->parent->info->nickname . '(' . $this->parent->id . ')' : '';
|
||||
});
|
||||
|
||||
$grid->column('账户')->display(function () {
|
||||
$ret = '余额:' . $this->account->cash;
|
||||
return $ret;
|
||||
});
|
||||
|
||||
$grid->column('等级')->display(function () {
|
||||
return $this->identity_text;
|
||||
});
|
||||
|
||||
$grid->vip_end_at('会员到期时间');
|
||||
$grid->created_at('注册时间');
|
||||
|
||||
return $grid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a form builder.
|
||||
*
|
||||
* @return Form
|
||||
*/
|
||||
protected function UserEmptyForm($user)
|
||||
{
|
||||
$identitys = Identity::where('id', '!=', $user->identity->identity_id)->orderBy('id', 'asc')->pluck('title', 'id')->toArray();
|
||||
$identitys[0] = '普通用户';
|
||||
ksort($identitys);
|
||||
$form = new Form(new User);
|
||||
$form->text('title', '当前等级')->value($user->identity_text)->readonly();
|
||||
$form->select('identity_id', '目标等级')->options($identitys)->required();
|
||||
$form->disableReset();
|
||||
$form->setAction('/admin/user/' . $user->id . '/empty');
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加备注
|
||||
* @param Content $content [description]
|
||||
* @param User $user [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public function remark(Request $request, Content $content, User $user)
|
||||
{
|
||||
if ($request->isMethod('POST')) {
|
||||
try {
|
||||
$user->info->remark = $request->remark;
|
||||
$user->info->save();
|
||||
admin_toastr('设置成功');
|
||||
return redirect()->action('\App\Admin\Controllers\UserController@index');
|
||||
} catch (\Exception $e) {
|
||||
admin_toastr($e->getMessage(), 'error');
|
||||
}
|
||||
} else {
|
||||
return $content
|
||||
->header('设置备注')
|
||||
->description($user->info->nickname)
|
||||
->body($this->UserInfoForm($user));
|
||||
}
|
||||
}
|
||||
|
||||
protected function UserInfoForm($user)
|
||||
{
|
||||
$form = new Form(new User);
|
||||
$form->tools(function (Tools $tools) {
|
||||
$tools->disableList();
|
||||
$tools->disableDelete();
|
||||
$tools->disableView();
|
||||
});
|
||||
$form->footer(function ($footer) {
|
||||
$footer->disableReset();
|
||||
$footer->disableViewCheck();
|
||||
$footer->disableEditingCheck();
|
||||
$footer->disableCreatingCheck();
|
||||
});
|
||||
$form->setAction(route('user.remark', ['user' => $user]));
|
||||
$form->setTitle(' ');
|
||||
$form->setWidth(1, 2);
|
||||
|
||||
$form->text('remark', '备注')->value($user->info->remark);
|
||||
|
||||
return $form->render();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user