user
This commit is contained in:
parent
546f293aa7
commit
002d647e04
@ -1,121 +0,0 @@
|
||||
<?php
|
||||
namespace app\index\controller;
|
||||
|
||||
use app\common\controller\BaseController;
|
||||
use think\App;
|
||||
use think\facade\View;
|
||||
use think\facade\Request;
|
||||
use think\facade\Db;
|
||||
use app\facade\Article;
|
||||
use app\common\model\Slider;
|
||||
use app\common\lib\Msgres;
|
||||
|
||||
class Index extends BaseController
|
||||
{
|
||||
/**
|
||||
* 首页
|
||||
* @return string
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$types = input('type');
|
||||
|
||||
//幻灯
|
||||
$slider = new Slider();
|
||||
$sliders = $slider->getSliderList(1);
|
||||
//置顶文章
|
||||
$artTop = Article::getArtTop(5);
|
||||
//首页文章列表,显示20个
|
||||
$artList = Article::getArtList(22);
|
||||
//热议文章
|
||||
$artHot = Article::getArtHot(10);
|
||||
//温馨通道
|
||||
$fast_links = $slider->getSliderList(8);
|
||||
//首页赞助
|
||||
$ad_index = $slider->getSliderList(5);
|
||||
//首页右栏图片
|
||||
$ad_comm = $slider->getSliderList(2);
|
||||
//友情链接
|
||||
$friend_links = $slider->getSliderList(9);
|
||||
|
||||
//友情链接申请
|
||||
$adminEmail = Db::name('user')->where('id',1)->cache(true)->value('email');
|
||||
|
||||
$vs = [
|
||||
'slider' => $sliders,
|
||||
'artTop' => $artTop,
|
||||
'artList' => $artList,
|
||||
'artHot' => $artHot,
|
||||
'type' => $types,
|
||||
'ad_index' => $ad_index,
|
||||
'ad_comm' => $ad_comm,
|
||||
'fastlinks' => $fast_links,
|
||||
'flinks' => $friend_links,
|
||||
'adminEmail' => $adminEmail,
|
||||
'jspage' => '',
|
||||
];
|
||||
View::assign($vs);
|
||||
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
//回帖榜
|
||||
public function reply()
|
||||
{
|
||||
$comment = new \app\common\model\Comment();
|
||||
return $comment->reply(20);
|
||||
}
|
||||
|
||||
//搜索功能
|
||||
public function search()
|
||||
{
|
||||
//$t = input('keywords');
|
||||
//halt($t);
|
||||
$ser = Request::only(['keywords']);
|
||||
|
||||
$search = new \app\index\controller\Search();
|
||||
$artList = $search->getSearch($ser['keywords']);
|
||||
$counts = $artList->count();
|
||||
$slider = new Slider();
|
||||
//首页右栏
|
||||
$ad_comm = $slider->getSliderList(2);
|
||||
// 查询热议
|
||||
$artHot = Article::getArtHot(10);
|
||||
|
||||
$searchs = [
|
||||
'artList' => $artList,
|
||||
'keywords' => $ser['keywords'],
|
||||
'counts' => $counts,
|
||||
'ad_comm'=>$ad_comm,
|
||||
'artHot'=>$artHot,
|
||||
'jspage'=>''
|
||||
];
|
||||
View::assign($searchs);
|
||||
return View::fetch('search');
|
||||
}
|
||||
|
||||
public function jump()
|
||||
{
|
||||
$username = Request::param('username');
|
||||
$u = Db::name('user')->whereOr('nickname', $username)->whereOr('name', $username)->find();
|
||||
return redirect((string) url('user/home',['id'=>$u['id']]));
|
||||
|
||||
}
|
||||
|
||||
public function language()
|
||||
{
|
||||
if(request()->isPost()){
|
||||
$language = new \app\common\controller\Language;
|
||||
$lang = $language->select(input('language'));
|
||||
if($lang){
|
||||
return Msgres::success();
|
||||
}
|
||||
}else {
|
||||
return Msgres::error('illegal_request');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,277 +0,0 @@
|
||||
<?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;
|
||||
use think\facade\Cookie;
|
||||
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;
|
||||
use taoler\com\Message;
|
||||
|
||||
class User extends BaseController
|
||||
{
|
||||
protected $middleware = [
|
||||
'logincheck' => ['except' => ['home'] ],
|
||||
];
|
||||
|
||||
//用户中心
|
||||
public function index()
|
||||
{
|
||||
return view();
|
||||
}
|
||||
|
||||
|
||||
//发帖list
|
||||
public function artList()
|
||||
{
|
||||
$article = Article::withCount('comments')->where('user_id',$this->uid)->order('update_time','desc')->paginate(10);
|
||||
//var_dump($article);
|
||||
$count = $article->total();
|
||||
$res = [];
|
||||
if($count){
|
||||
$res['code'] = 0;
|
||||
$res['count'] = $count;
|
||||
foreach($article as $v){
|
||||
$res['data'][] = ['id'=>$v['id'],
|
||||
'title' => htmlspecialchars($v['title']),
|
||||
'url' => (string) url('article/detail',['id'=>$v['id']]),
|
||||
'status' => $v['status'] ? '正常':'待审核',
|
||||
'ctime' => $v['create_time'],
|
||||
'datas' => $v['pv'].'阅/'.$v['comments_count'].'答'
|
||||
];
|
||||
}
|
||||
|
||||
} else {
|
||||
return json(['code'=>-1,'msg'=>'无数据']);
|
||||
}
|
||||
return json($res);
|
||||
}
|
||||
|
||||
//收藏list
|
||||
public function collList(){
|
||||
//收藏的帖子
|
||||
$collect = Collection::with(['article'=>function($query){
|
||||
$query->withCount('comments')->where('status',1);
|
||||
}])->where('user_id',$this->uid)->order('create_time','desc')->paginate(10);
|
||||
$count =$collect->total();
|
||||
$res = [];
|
||||
if($count){
|
||||
$res['code'] = 0;
|
||||
$res['count'] = $count ;
|
||||
foreach($collect as $v){
|
||||
|
||||
$res['data'][] = [
|
||||
'id' =>$v['id'],
|
||||
'title' => htmlspecialchars($v['collect_title']),
|
||||
'url' => (string) url('article/detail',['id'=>$v['article_id']]),
|
||||
'auther' => $v['auther'],
|
||||
'status' => is_null(Db::name('article')->field('id')->where('delete_time',0)->find($v['article_id'])) ? '已失效' : '正常',
|
||||
'ctime' => $v['create_time']
|
||||
];
|
||||
}
|
||||
|
||||
} else {
|
||||
return json(['code'=>-1,'msg'=>'无数据']);
|
||||
}
|
||||
return json($res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//文章管理
|
||||
public function post()
|
||||
{
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
//取消文章收藏
|
||||
public function colltDel()
|
||||
{
|
||||
if(Request::isAjax()){
|
||||
$collt = Collection::where('user_id',$this->uid)->find(input('id'));
|
||||
$result = $collt->delete();
|
||||
if($result){
|
||||
$res = ['code'=>0,'msg'=>'取消成功'];
|
||||
} else {
|
||||
$res = ['code'=>0,'msg'=>'取消失败'];
|
||||
}
|
||||
return json($res);
|
||||
}
|
||||
}
|
||||
|
||||
//用户设置-我的资料
|
||||
public function set()
|
||||
{
|
||||
if(Request::isAjax()){
|
||||
$data = Request::only(['user_id','email','nickname','sex','city','area_id','sign']);
|
||||
$validate = new userValidate;
|
||||
$result = $validate->scene('Set')->check($data);
|
||||
if(!$result){
|
||||
$this->error($validate->getError());
|
||||
} else {
|
||||
//防止重复的email
|
||||
$resEmail = Db::name('user')->where('email',$data['email'])->where('id','<>',$this->uid)->find();
|
||||
if(!is_null($resEmail)){
|
||||
return ['code'=>-1,'msg'=>'email已存在,请更换!'];
|
||||
}
|
||||
//若更换email,需重新激活
|
||||
$mail = Db::name('user')->where('id',$this->uid)->value('email');
|
||||
if($data['email'] !== $mail){
|
||||
$data['active'] = 0;
|
||||
}
|
||||
$user = new userModel;
|
||||
$result = $user->setNew($data);
|
||||
if($result == 1){
|
||||
Cache::tag('user')->clear();
|
||||
return ['code'=>0,'msg'=>'资料更新成功'];
|
||||
} else {
|
||||
$this->error($result);
|
||||
}
|
||||
}
|
||||
}
|
||||
$area = Db::name('user_area')->select();
|
||||
View::assign(['area'=>$area]);
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
//更换头像
|
||||
public function uploadHeadImg()
|
||||
{
|
||||
$uploads = new \app\common\lib\Uploads();
|
||||
$upRes = $uploads->put('file','head_img',1024,'image','uniqid');
|
||||
$upHeadRes = $upRes->getData();
|
||||
if($upHeadRes['status'] == 0){
|
||||
$name_path = $upHeadRes['url'];
|
||||
//$name = $file->hashName();
|
||||
//$image = \think\Image::open("uploads/$name_path");
|
||||
//$image->thumb(168, 168)->save("uploads/$name_path");
|
||||
|
||||
//查出当前用户头像删除原头像并更新
|
||||
$imgPath = Db::name('user')->where('id',$this->uid)->value('user_img');
|
||||
if(file_exists('.'.$imgPath)){
|
||||
$dirPath = dirname('.'.$imgPath);
|
||||
if($dirPath !== './static/res/images/avatar'){ //防止删除默认头像
|
||||
unlink('.'.$imgPath);
|
||||
}
|
||||
}
|
||||
$result = Db::name('user')
|
||||
->where('id',$this->uid)
|
||||
->update(['user_img'=>$name_path]);
|
||||
Cache::tag(['user','tagArtDetail','tagArt'])->clear();
|
||||
if($result) {
|
||||
$res = ['status'=>0,'msg'=>'头像更新成功'];
|
||||
} else {
|
||||
$res = ['status'=>1,'msg'=>'头像更新失败'];
|
||||
}
|
||||
} else {
|
||||
$res = ['status'=>1,'msg'=>'上传错误'];
|
||||
}
|
||||
return json($res);
|
||||
}
|
||||
|
||||
|
||||
public function message()
|
||||
{
|
||||
$uid = Session::get('user_id');
|
||||
$msg = Message::receveMsg($uid);
|
||||
|
||||
View::assign('msg',$msg);
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
//个人页
|
||||
public function home($id)
|
||||
{
|
||||
//用户
|
||||
$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);
|
||||
}
|
||||
|
||||
|
||||
//用户发贴
|
||||
$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();
|
||||
//用户回答
|
||||
$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();
|
||||
|
||||
View::assign(['u'=>$u,'arts'=>$arts,'reys'=>$reys,'jspage'=>'']);
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
|
||||
public function layout()
|
||||
{
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
//邮箱激活
|
||||
public function activate()
|
||||
{
|
||||
//管理员邮箱
|
||||
$adminEmail = Db::name('user')->where('id',1)->cache(true)->value('email');
|
||||
View::assign('adminEmail',$adminEmail);
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
//邮箱激活
|
||||
public function active()
|
||||
{
|
||||
|
||||
if(Request::isPost()){
|
||||
$email = Request::param('email');
|
||||
$url = Request::domain().Request::root().'/active/index?url='.time().md5($email).$this->uid;
|
||||
$content = "Hi亲爱的{$this->showUser($this->uid)['name']}:</br>您正在进行邮箱激活,请在10分钟内完成激活。 <a href='{$url}' target='_blank' >请点击进行激活</a> </br>若无法跳转请复制链接激活:{$url}";
|
||||
$res = mailto($email,'邮箱激活',$content);
|
||||
if($res){
|
||||
return json(['status'=>0]);
|
||||
}else{
|
||||
return json(['status'=>-1,'发送邮件出错!']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//修改密码
|
||||
public function setPass()
|
||||
{
|
||||
if(Request::isAjax()){
|
||||
$data = Request::param();
|
||||
$validate = new userValidate;
|
||||
$res = $validate->scene('setPass')->check($data);
|
||||
if(!$res){
|
||||
return $this->error($validate->getError());
|
||||
}
|
||||
$user = new userModel;
|
||||
$result = $user->setpass($data);
|
||||
if($result == 1) {
|
||||
Session::clear();
|
||||
Cookie::delete('auth');
|
||||
return $this->success('密码修改成功 请登录', (string) url('login/index'));
|
||||
} else {
|
||||
return $this->error($result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//退出账户
|
||||
public function logout()
|
||||
{
|
||||
Session::clear();
|
||||
Cookie::delete('auth');
|
||||
//Cookie::delete('user_name');
|
||||
//Cookie::delete('user_id');
|
||||
if(Session::has('user_id')){
|
||||
return json(['code' => -1, 'msg' => '退出失败']);
|
||||
} else {
|
||||
return json(['code' => 200, 'msg' => '退出成功', 'url' => '/']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -41,7 +41,7 @@ class User extends BaseController
|
||||
$res['count'] = $count;
|
||||
foreach($article as $v){
|
||||
$res['data'][] = ['id'=>$v['id'],
|
||||
'title' => $v['title'],
|
||||
'title' => htmlspecialchars($v['title']),
|
||||
'url' => (string) url('article/detail',['id'=>$v['id']]),
|
||||
'status' => $v['status'] ? '正常':'待审核',
|
||||
'ctime' => $v['create_time'],
|
||||
@ -70,7 +70,7 @@ class User extends BaseController
|
||||
|
||||
$res['data'][] = [
|
||||
'id' =>$v['id'],
|
||||
'title' => $v['collect_title'],
|
||||
'title' => htmlspecialchars($v['collect_title']),
|
||||
'url' => (string) url('article/detail',['id'=>$v['article_id']]),
|
||||
'auther' => $v['auther'],
|
||||
'status' => is_null(Db::name('article')->field('id')->where('delete_time',0)->find($v['article_id'])) ? '已失效' : '正常',
|
||||
|
Loading…
Reference in New Issue
Block a user