123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <?php
- /**
- * Created by PhpStorm
- * User raingad@foxmail.com
- * Date 2022/12/14 17:24
- */
- namespace app\manage\controller;
- use app\BaseController;
- use app\enterprise\model\{User as UserModel,GroupUser,Friend};
- use app\manage\model\Config;
- use think\facade\Db;
- class User extends BaseController
- {
- // 获取用户列表
- public function index()
- {
- $map = [];
- $model=new UserModel();
- $param = $this->request->param();
- //搜索关键词
- if ($keyword = $this->request->param('keywords')) {
- $model = $model->whereLike('realname|account|name_py|email', '%' . $keyword . '%');
- }
- // 排序
- $order='user_id DESC';
- if ($param['order_field'] ?? '') {
- $order = orderBy($param['order_field'],$param['order_type'] ?? 1);
- }
- $list = $this->paginate($model->where($map)->order($order));
- if ($list) {
- $data = $list->toArray()['data'];
- foreach($data as $k=>$v){
- $data[$k]['avatar']=avatarUrl($v['avatar'],$v['realname'],$v['user_id'],120);
- $data[$k]['location']=$v['last_login_ip'] ? implode(" ", \Ip::find($v['last_login_ip'])) : '--';
- $data[$k]['reg_location']=$v['register_ip'] ? implode(" ", \Ip::find($v['register_ip'])) : '--';
- $data[$k]['last_login_time']=$v['last_login_time'] ? date('Y-m-d H:i:s',$v['last_login_time']) : '--';
- unset($data[$k]['password']);
- }
- }
- return success('', $data, $list->total(), $list->currentPage());
- }
- // 添加用户
- public function add()
- {
- try{
- $data = $this->request->param();
- $user=new UserModel();
- $verify=$user->checkAccount($data);
- if(!$verify){
- return warning($user->getError());
- }
- $salt=\utils\Str::random(4);
- $data['password'] = password_hash_tp($data['password'],$salt);
- $data['salt'] =$salt;
- $data['register_ip'] =$this->request->ip();
- $data['name_py'] = pinyin_sentence($data['realname']);
- $user->save($data);
- $data['user_id']=$user->user_id;
- return success('添加成功', $data);
- }catch (\Exception $e){
- return error('添加失败');
- }
- }
- // 修改用户
- public function edit()
- {
- try{
- $data = $this->request->param();
- $user=new UserModel();
- $verify=$user->checkAccount($data);
- if(!$verify){
- return warning($user->getError());
- }
- $user=UserModel::find($data['user_id']);
- $user->account =$data['account'];
- $user->realname =$data['realname'];
- $user->email =$data['email'];
- $user->remark=$data['remark'];
- $user->sex =$data['sex'];
- // 只有超管才能设置管理员
- if($this->userInfo['user_id']==1){
- $user->role =$data['role'];
- }
- $user->status =$data['status'];
- $user->name_py= pinyin_sentence($data['realname']);
- $user->save();
- return success('修改成功', $data);
- }catch (\Exception $e){
- return error('修改失败');
- }
- }
- // 删除用户
- public function del()
- {
- $user_id = $this->request->param('user_id');
- $user=UserModel::find($user_id);
- if(!$user || $user->user_id==1){
- return warning('用户不存在');
- }
- Db::startTrans();
- try{
- // 删除其好友关系
- Friend::where('create_user', $user_id)->whereOr(['friend_user_id'=>$user_id])->delete();
- // 删除其群组关系
- GroupUser::where('user_id', $user_id)->delete();
- UserModel::destroy($user_id);
- Db::commit();
- return success('删除成功');
- }catch (\Exception $e){
- Db::rollback();
- return error($e->getMessage());
- }
- }
- // 修改用户状态
- public function setStatus()
- {
- $user_id = $this->request->param('user_id');
- $user=UserModel::find($user_id);
- if(!$user){
- return warning('用户不存在');
- }
- try{
- $status = $this->request->param('status',0);
- UserModel::where('user_id', $user_id)->update(['status'=>$status]);
- return success('修改成功');
- }catch (\Exception $e){
- return error('修改失败');
- }
- }
- // 获取用户信息
- public function detail()
- {
- $user_id = $this->request->param('user_id');
- $user=UserModel::find($user_id);
- if(!$user){
- return error('用户不存在');
- }
- $user->avatar=avatarUrl($user->avatar,$user->realname,$user->user_id,120);
- $location='';
- if($user->last_login_ip){
- $location=implode(" ", \Ip::find($user->last_login_ip));
- }
- $user->location=$location;
- $user->password='';
- return success('', $user);
- }
- // 设置用户角色
- public function setRole()
- {
- $user_id = $this->request->param('user_id');
- $user=UserModel::find($user_id);
- if(!$user){
- return warning('用户不存在');
- }
- try{
- $role = $this->request->param('role');
- UserModel::where('user_id', $user_id)->update(['role'=>$role]);
- return success('修改成功');
- }catch (\Exception $e){
- return error('修改失败');
- }
- }
- // 修改密码
- public function editPassword()
- {
- $user_id = $this->request->param('user_id');
- $user=UserModel::find($user_id);
- if(!$user){
- return warning('用户不存在');
- }
- try{
- $password = $this->request->param('password','');
- if($password){
- $salt=$user->salt;
- $user->password= password_hash_tp($password,$salt);
- }
- $user->save();
- return success('修改成功');
- }catch (\Exception $e){
- return error('修改失败');
- }
- }
- }
|