2020-01-01 13:17:19 +08:00
|
|
|
<?php
|
|
|
|
namespace app\index\controller;
|
|
|
|
|
|
|
|
use app\common\controller\BaseController;
|
|
|
|
use app\common\validate\User as userValidate;
|
|
|
|
use think\exception\ValidateException;
|
|
|
|
use think\facade\Db;
|
|
|
|
use think\facade\Request;
|
|
|
|
use think\facade\Session;
|
|
|
|
use think\facade\Cache;
|
2020-10-12 11:19:19 +08:00
|
|
|
use think\facade\Cookie;
|
2020-01-01 13:17:19 +08:00
|
|
|
use think\facade\View;
|
|
|
|
use app\common\model\Article;
|
|
|
|
use app\common\model\Collection;
|
|
|
|
use app\common\model\User as userModel;
|
|
|
|
use think\facade\Config;
|
2020-03-29 19:57:18 +08:00
|
|
|
use taoler\com\Message;
|
2020-01-01 13:17:19 +08:00
|
|
|
|
|
|
|
class User extends BaseController
|
|
|
|
{
|
|
|
|
protected $middleware = [
|
|
|
|
'logincheck' => ['except' => ['home'] ],
|
|
|
|
];
|
|
|
|
|
|
|
|
//用户中心
|
|
|
|
public function index()
|
|
|
|
{
|
2020-03-15 18:38:56 +08:00
|
|
|
$user['user_id'] = Session::get('user_id');
|
2020-01-01 13:17:19 +08:00
|
|
|
$username = session::get('user_name');
|
|
|
|
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
//文章管理
|
|
|
|
public function post()
|
|
|
|
{
|
|
|
|
//发表的帖子
|
|
|
|
$user['user_id'] = session::get('user_id');
|
|
|
|
$username = session::get('user_name');
|
|
|
|
|
|
|
|
$article = Article::withCount('comments')->where('user_id',$user['user_id'])->order('update_time','desc')->paginate([
|
|
|
|
'list_rows'=>10,
|
|
|
|
'page',
|
|
|
|
'path' => 'post',
|
|
|
|
'fragment' => 'index',
|
|
|
|
'var_page' => 'page',
|
|
|
|
]);
|
|
|
|
$page = $article->render();
|
|
|
|
View::assign(['article'=>$article,'page'=>$page]);
|
|
|
|
|
|
|
|
|
|
|
|
//收藏的帖子
|
|
|
|
$collect = Collection::with('article')->where('user_id',$user['user_id'])->order('create_time','desc')->paginate(10);
|
|
|
|
|
|
|
|
$count =$collect->total();
|
|
|
|
View::assign(['collect'=>$collect,'count'=>$count]);
|
|
|
|
|
|
|
|
return View::fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
//取消文章收藏
|
|
|
|
public function colltDel()
|
|
|
|
{
|
|
|
|
$collt = Collection::where('article_id',input('id'))->where('user_id',session::get('user_id'))->find();
|
|
|
|
$result = $collt->delete();
|
|
|
|
if($result){
|
|
|
|
$this->success('取消成功');
|
|
|
|
} else {
|
|
|
|
$this->error('取消失败了');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//用户设置-我的资料
|
|
|
|
public function set()
|
|
|
|
{
|
|
|
|
if(Request::isAjax()){
|
2020-05-23 09:51:24 +08:00
|
|
|
$data = Request::only(['user_id','email','nickname','sex','city','area_id','sign']);
|
2020-03-15 18:38:56 +08:00
|
|
|
$validate = new \app\common\validate\User;
|
2020-01-01 13:17:19 +08:00
|
|
|
$result = $validate->scene('Set')->check($data);
|
|
|
|
if(!$result){
|
|
|
|
$this->error($validate->getError());
|
|
|
|
} else {
|
2020-03-15 18:38:56 +08:00
|
|
|
$user = new \app\common\model\User;
|
2020-01-01 13:17:19 +08:00
|
|
|
$result = $user->setNew($data);
|
|
|
|
if($result==1){
|
2020-05-23 09:51:24 +08:00
|
|
|
Cache::tag('user')->clear();
|
2020-04-24 15:07:26 +08:00
|
|
|
return ['code'=>0,'msg'=>'资料更新成功'];
|
2020-01-01 13:17:19 +08:00
|
|
|
} else {
|
|
|
|
$this->error($result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-05-23 09:51:24 +08:00
|
|
|
$area = Db::name('user_area')->select();
|
|
|
|
View::assign(['area'=>$area]);
|
2020-01-01 13:17:19 +08:00
|
|
|
return View::fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
//更换头像
|
|
|
|
public function uploadHeadImg()
|
|
|
|
{
|
|
|
|
$file = request()->file('file');
|
|
|
|
try {
|
2020-03-18 21:34:13 +08:00
|
|
|
validate(['file'=>'fileSize:204800|fileExt:jpg,png,gif'])
|
2020-03-18 21:30:30 +08:00
|
|
|
->check(['file'=>$file]);
|
2020-01-01 13:17:19 +08:00
|
|
|
$savename = \think\facade\Filesystem::disk('public')->putFile('head_pic',$file);
|
|
|
|
} catch (think\exception\ValidateException $e) {
|
2020-03-18 21:30:30 +08:00
|
|
|
return json(['status'=>-1,'msg'=>$e->getMessage()]);
|
2020-01-01 13:17:19 +08:00
|
|
|
}
|
|
|
|
$upload = Config::get('filesystem.disks.public.url');
|
|
|
|
if($savename){
|
|
|
|
//$name = $file->hashName();
|
|
|
|
$name_path =str_replace('\\',"/",$upload.'/'.$savename);
|
|
|
|
//$image = \think\Image::open("uploads/$name_path");
|
|
|
|
//$image->thumb(168, 168)->save("uploads/$name_path");
|
|
|
|
|
|
|
|
//查出当前用户并把得到的用户头像更新
|
|
|
|
$userId = Session::get('user_id');
|
|
|
|
$result = Db::name('user')
|
|
|
|
->where('id',$userId)
|
|
|
|
->update(['user_img'=>$name_path]);
|
2020-05-15 17:04:04 +08:00
|
|
|
Cache::tag(['user','tagArtDetail','tagArt'])->clear();
|
2020-01-01 13:17:19 +08:00
|
|
|
if($result) {
|
|
|
|
$res = ['status'=>0,'msg'=>'头像更新成功'];
|
|
|
|
} else {
|
|
|
|
$res = ['status'=>1,'msg'=>'头像更新失败'];
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
$res = ['status'=>1,'msg'=>'上传错误'];
|
|
|
|
}
|
|
|
|
return json($res);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function message()
|
|
|
|
{
|
2020-03-28 21:41:07 +08:00
|
|
|
$uid = Session::get('user_id');
|
|
|
|
$msg = Message::receveMsg($uid);
|
|
|
|
|
|
|
|
View::assign('msg',$msg);
|
|
|
|
return View::fetch();
|
2020-01-01 13:17:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
//个人页
|
2020-03-15 18:38:56 +08:00
|
|
|
public function home($id)
|
2020-01-01 13:17:19 +08:00
|
|
|
{
|
|
|
|
//用户
|
2020-05-15 17:04:04 +08:00
|
|
|
$u = Cache::get('user'.$id);
|
|
|
|
if(!$u){
|
|
|
|
$u = Db::name('user')->field('name,nickname,city,sex,sign,user_img,point,vip,create_time')->cache(3600)->find($id);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-01-01 13:17:19 +08:00
|
|
|
//用户发贴
|
2020-03-15 22:19:10 +08:00
|
|
|
$arts = Db::name('user')->alias('u')->join('article a','u.id = a.user_id')->field('u.id,a.id,a.title,a.pv,a.is_hot,a.create_time,a.delete_time')->where('a.delete_time',0)->where('a.user_id',$id)->order(['a.create_time'=>'desc'])->cache(3600)->select();
|
2020-01-01 13:17:19 +08:00
|
|
|
//用户回答
|
2020-03-15 22:19:10 +08:00
|
|
|
$reys = Db::name('comment')->alias('c')->join('article a','c.article_id = a.id')->field('a.id,a.title,c.content,c.create_time,c.delete_time')->where(['a.delete_time'=>0,'c.delete_time'=>0])->where('c.user_id',$id)->order(['c.create_time'=>'desc'])->cache(3600)->select();
|
2020-01-01 13:17:19 +08:00
|
|
|
|
2020-03-15 18:38:56 +08:00
|
|
|
View::assign(['u'=>$u,'arts'=>$arts,'reys'=>$reys]);
|
2020-01-01 13:17:19 +08:00
|
|
|
return View::fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function layout()
|
|
|
|
{
|
|
|
|
return View::fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//邮箱激活
|
|
|
|
public function activate()
|
|
|
|
{
|
|
|
|
$this->isLogin();
|
|
|
|
$user['user_id'] = session::get('user_id');
|
|
|
|
$user = UserModel::find($user['user_id']);
|
|
|
|
$this->assign('user',$user);
|
|
|
|
return view();
|
|
|
|
}
|
|
|
|
|
|
|
|
//修改密码
|
|
|
|
public function setpass()
|
|
|
|
{
|
|
|
|
if(Request::isAjax()){
|
|
|
|
$data = Request::param();
|
|
|
|
$validate = new \app\common\validate\User();
|
|
|
|
$res = $validate->scene('setPass')->check($data);
|
|
|
|
if(!$res){
|
|
|
|
return $this->error($validate->getError());
|
|
|
|
}
|
2020-03-15 18:38:56 +08:00
|
|
|
$user = new \app\common\model\User;
|
2020-01-01 13:17:19 +08:00
|
|
|
$result = $user->setpass($data);
|
|
|
|
if($result == 1) {
|
|
|
|
Session::clear();
|
2020-04-24 15:07:26 +08:00
|
|
|
return $this->success('密码修改成功 请登录', '/login');
|
2020-01-01 13:17:19 +08:00
|
|
|
} else {
|
|
|
|
return $this->error($result);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//退出账户
|
|
|
|
public function logout()
|
|
|
|
{
|
|
|
|
Session::clear();
|
2020-10-16 13:51:56 +08:00
|
|
|
Cookie::delete('auth');
|
|
|
|
//Cookie::delete('user_name');
|
|
|
|
//Cookie::delete('user_id');
|
2020-06-19 16:30:27 +08:00
|
|
|
if(Session::has('user_id')){
|
|
|
|
return json(['code' => -1, 'msg' => '退出失败']);
|
|
|
|
} else {
|
|
|
|
return json(['code' => 200, 'msg' => '退出成功', 'url' => '/']);
|
|
|
|
}
|
2020-01-01 13:17:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|