glhcp/server/app/admin/controller/user/User.php

221 lines
7.2 KiB
PHP

<?php
namespace app\admin\controller\user;
use app\admin\logic\user\BusinessTeamLogic;
use app\admin\logic\user\TagLogic;
use app\api\logic\LoginLogic;
use app\common\basics\AdminBase;
use app\admin\logic\user\LevelLogic;
use app\admin\logic\user\UserLogic;
use app\common\model\user\UserLevel;
use app\common\server\JsonServer;
use app\common\enum\ClientEnum;
use app\admin\validate\user\UserValidate;
use think\exception\ValidateException;
use think\facade\Validate;
class User extends AdminBase
{
public function lists(){
if ($this->request->isAjax()) {
$get = $this->request->get();
return JsonServer::success('', UserLogic::lists($get));
}
return view('', [
'level_list' => LevelLogic::getLevelList(),
'tag_list' => TagLogic::getTagList(),
'client_list' => ClientEnum::getClient(true),
'team_list' => BusinessTeamLogic::getBusinessTeamList()
]);
}
public function add()
{
if($this->request->isAjax()) {
try{
$input = input('post.');
$rule = [
'password|密码' => 'require|min:2|max:50',
'password_confirm|确认密码' => 'require|min:2|max:50',
'phone|手机' => 'require|mobile',
];
$validate = Validate::rule($rule);
if (!$validate->check($input)) {
return JsonServer::error($validate->getError());
}
if ($input['password'] != $input['password_confirm']) {
return JsonServer::error('两次密码不一致');
}
if (\app\common\model\user\User::where('mobile', $input['phone'])->where('del', 0)->count()>0) {
return JsonServer::error('此手机号已被使用');
}
$post = [
'mobile' => $input['phone'],
'password' => $input['password'],
'client' => ClientEnum::backend,
];
LoginLogic::register($post);
if (!empty(LoginLogic::getError())) {
return JsonServer::error(LoginLogic::getError());
}
return JsonServer::success('添加成功');
}catch(ValidateException $e) {
return JsonServer::error($e->getError());
}catch(\Exception $e) {
return JsonServer::error($e->getMessage());
}
return JsonServer::error('添加失败');
}
return view();
}
public function setTag(){
if($this->request->isAjax()){
$post = $this->request->post();
try{
validate(UserValidate::class)->scene('setTag')->check($post);
}catch(ValidateException $e) {
return JsonServer::error($e->getMessage());
}
$result = UserLogic::setTag($post);
if($result === true) {
return JsonServer::success('设置成功');
}
return JsonServer::error(UserLogic::getError());
}
return view('', [
'tag_list' => json_encode(TagLogic::getTagList())
]);
}
public function edit(){
if($this->request->isAjax()){
$post = $this->request->post();
try{
validate(UserValidate::class)->scene('edit')->check($post);
}catch(ValidateException $e) {
return JsonServer::error($e->getMessage());
}
$result = UserLogic::edit($post);
if($result === true) {
return JsonServer::success('编辑成功');
}
return JsonServer::error(UserLogic::getError());
}
$id = $this->request->get('id', '', 'intval');
$detail = UserLogic::getUser($id);
return view('', [
'info' => $detail,
'tag_list' => json_encode(TagLogic::getTagList()),
'team_list' => json_encode(BusinessTeamLogic::getBusinessTeamList([$id]))
]);
}
public function info(){
$id = $this->request->get('id', '', 'intval');
$detail = UserLogic::getInfo($id);
return view('', [
'detail' => $detail
]);
}
public function adjustAccount(){
if ($this->request->isAjax()) {
$post = $this->request->post();
try{
validate(UserValidate::class)->scene('adjustAccount')->check($post);
}catch(ValidateException $e) {
return JsonServer::error($e->getError());
}
$result = UserLogic::adjustAccount($post);
if($result === true) {
return JsonServer::success('调整成功');
}
return JsonServer::error(UserLogic::getError());
}
$id = $this->request->get('id', '', 'intval');
return view('', [
'info' => UserLogic::getUser($id)
]);
}
public function adjustLevel(){
if ($this->request->isPost()) {
$params = $this->request->post();
$result = UserLogic::adjustLevel($params);
if ($result) {
return JsonServer::success('调整成功');
}
return JsonServer::error(UserLogic::getError());
}
$id = $this->request->get('id/d');
$levels = UserLevel::where('del', 0)->order('growth_value', 'asc')->column('id,name', 'id');
$userLevel = \app\common\model\user\User::where('id', $id)->value('level');
$userLevelName = isset($levels[$userLevel]) ? $levels[$userLevel]['name'] : '无等级';
return view('', [
'levels' => $levels,
'user_level_name' => $userLevelName,
'user_id' => $id
]);
}
public function adjustFirstLeader()
{
if($this->request->isPost()) {
$params = $this->request->post();
$result = UserLogic::adjustFirstLeader($params);
if ($result) {
return JsonServer::success('调整成功');
}
return JsonServer::error(UserLogic::getError());
}
$id = $this->request->get('id/d');
$user = \app\common\model\user\User::field('id,sn,nickname,first_leader')->findOrEmpty($id)->toArray();
$firstLeader = \app\common\model\user\User::getUserInfo($user['first_leader']);
return view('', [
'user_id' => $id,
'user' => $user,
'first_leader' => $firstLeader
]);
}
public function userLists()
{
if ($this->request->isPost()) {
$params = $this->request->post();
$lists = UserLogic::userLists($params);
return JsonServer::success('', $lists);
}
return view();
}
/**
* @notes 推荐下级
* @return \think\response\View
* @author Tab
* @date 2021/9/8 20:40
*/
public function fans()
{
if ($this->request->isPost()) {
$params = $this->request->post();
$result = UserLogic::fans($params);
return JsonServer::success('', $result);
}
$id = $this->request->get('id/d');
return view('', ['id' => $id]);
}
}