123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- <?php
- namespace app\api\controller;
- use app\admin\controller\User;
- use app\common\model\DatumIntro;
- use app\common\model\ForumReply;
- use app\common\model\PlatformComment;
- use app\common\model\PlatformSwitch;
- use app\common\model\UserCollect;
- use app\common\model\UserForum;
- use app\common\model\UserLevelRank;
- use app\common\model\UserSearch;
- use library\tools\Data;
- /**
- * @title 论坛
- * @controller Forum
- * @group base
- */
- class Forum extends Base
- {
- // 需要登录的
- protected $need_login = [];
- public function initialize(){
- parent::initialize();
- parent::setUid();
- }
- /**
- * @title 获取论坛列表
- * @desc 获取论坛列表
- * @author qc
- * @method GET
- * @url /api/Forum/getForumList
- * @header name:Authorization require:1 desc:Token
- * @param name:is_tj type:int default:0 desc:是否推荐0否1是
- * @param name:title type:string default:-- desc:标题
- * @param name:page type:int default:0 desc:页数
- * @param name:page_num type:int default:20 desc:每页数
- * @param name:sort_type type:int default:1 desc:1默认2时间升序3时间降序
- * @return name:title type:string default:-- desc:标题
- * @return name:content type:string default:0 desc:内容
- * @return name:level type:int default:-- desc:vip等级id
- * @return name:label type:string default:-- desc:标签
- * @return name:name type:string default:-- desc:发布用户
- * @return name:headimg type:string default:-- desc:发布用户头像
- * @return name:browse_num type:int default:-- desc:浏览量
- * @return name:reply_num type:int default:-- desc:回答量
- */
- public function getForumList()
- {
- $sel_where = [];
- $title = input('get.title');
- $label = input('get.label');
- $is_tj = input('get.is_tj');
- $sort_type = input('get.sort_type',1);
- $sel_where[] = ['f.is_deleted','=',0];
- if($title) $sel_where[] = ['f.title','like','%'.$title.'%'];
- if($label) $sel_where[] = ['f.label','like','%'.$label.'%'];
- $order = 'f.sort desc ,f.id desc';
- if($sort_type == 2)$order = 'f.id asc';
- if($sort_type == 3)$order = 'f.id desc';
- if($title && $this->user_id) UserSearch::saveSearchTitle($this->user_id,$title,6);
- $user_level = UserLevelRank::getUserVip($this->user_id);
- $where_str = 'f.level >= '.$user_level;
- if($is_tj) {
- $search_log = UserSearch::getSearchTitle($this->user_id,6);
- $search_arr = [];
- foreach ($search_log as $t){
- $search_arr[] = " f.title like '".'%'.$t."%'" .' ';
- }
- if(!empty($search_arr)) $where_str = implode(' OR ',$search_arr);
- }
- $list = UserForum::where($sel_where)
- ->alias('f')
- ->field('f.id,f.title,f.content,f.level,f.browse_num,f.create_at,u.name,u.headimg, IFNULL( (SELECT count(DISTINCT r.user_id) FROM dd_forum_reply as r WHERE f.id=r.forum_id group by user_id ),0 ) as reply_num')
- ->leftJoin('store_member u','u.id = f.user_id')
- ->where($where_str)
- ->limit($this->off_set,$this->page_num)
- ->order($order)
- ->select()->toArray();
- array_walk($list,function (&$v,$k)
- {
- });
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @title 获取论坛详情
- * @desc 获取论坛详情
- * @author qc
- * @method GET
- * @url /api/Forum/getForumInfo
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:string default:-- desc:论坛记录id
- * @return name:title type:string default:-- desc:标题
- * @return name:content type:string default:0 desc:内容
- * @return name:level type:int default:-- desc:vip等级id
- * @return name:label type:string default:-- desc:标签
- * @return name:name type:string default:-- desc:发布用户
- * @return name:headimg type:string default:-- desc:发布用户头像
- * @return name:browse_num type:int default:-- desc:浏览量
- * @return name:is_collect type:int default:-- desc:是否关注【0否1是】
- * @return name:switch_open type:int default:-- desc:开关是否开启【0否1是】
- */
- public function getForumInfo(){
- $id = input('get.id');
- $user_level = UserLevelRank::getUserVip($this->user_id);
- $detail = UserForum::where('id',$id)
- ->alias('f')
- ->field('f.id,f.title,f.content,f.level,f.browse_num,f.create_at,u.name,u.headimg,IFNULL( (SELECT count(DISTINCT r.user_id) FROM dd_forum_reply as r WHERE f.id=r.forum_id group by user_id ),0 ) as reply_num')
- ->leftJoin('store_member u','u.id = f.user_id')
- ->find()->toArray();
- if($detail['is_deleted']) $this->error('改论坛已删除');
- if($detail['level'] > $user_level) $this->error('用户等级不足');
- $detail['is_collect'] = UserCollect::checkCollectByType($this->user_id,5,$detail['id']);
- $detail['switch_open'] = PlatformSwitch::checkSwitch($this->user_id,5,$detail['id']);
- UserForum::where('id',$id)->setInc('browse_num');// 增加浏览量
- $this->success('ok',['detail'=>$detail]);
- }
- /**
- * @title 关注||取消关注
- * @desc 关注||取消关注
- * @author qc
- * @method POST
- * @url /api/Forum/forumCollect
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int require:1 default:-- desc:论坛id
- * @param name:status type:int default:0 desc:收藏状态(0取消关注【未关注】,1关注)
- */
- public function forumCollect()
- {
- $coll_status = UserCollect::plateCollect($this->user_id,5,input('post.id',0),0);
- $coll_status ? $this->success('关注成功',['status'=>1]) : $this->success('取消关注成功',['status'=>0]);
- }
- /**
- * @title 开启||关闭通知开关
- * @desc 开启||关闭通知开关
- * @author qc
- * @method POST
- * @url /api/Forum/forumSwitch
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int require:1 default:-- desc:论坛id
- * @param name:status type:int default:0 desc:收藏状态(0取消开启【未开启】,1开启)
- */
- public function forumSwitch()
- {
- $switch_status = PlatformSwitch::userSwitch($this->user_id,5,input('post.id',0));
- $switch_status ? $this->success('开启成功',['status'=>1]) : $this->success('关闭成功',['status'=>0]);
- }
- /**
- * @title 论坛回复
- * @desc 论坛回复
- * @author qc
- * @method POST
- * @url /api/Forum/replyForum
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int default:-- desc:论坛id
- * @param name:content type:string default:-- desc:内容
- */
- public function replyForum()
- {
- $id = input('post.id');
- $content = input('post.content');
- $issue_user = UserForum::where('id',$id)->value('user_id');
- ForumReply::create(['user_id'=>$this->user_id,'content'=>$content,'issue_user'=>$issue_user,'forum_id'=>$id]);
- $this->success('回复成功');
- }
- /**
- * @title 论坛回复列表
- * @desc 论坛回复列表
- * @author qc
- * @method POST
- * @url /api/Forum/getReplyList
- * @header name:Authorization require:1 desc:Token
- * @param name:forum_id type:int default:0 desc:论坛记录id
- * @param name:page type:int default:0 desc:页数
- * @param name:page_num type:int default:20 desc:每页数
- * @return name:id type:int default:-- desc:论坛回复id
- * @return name:content type:string default:-- desc:内容
- */
- public function getReplyList()
- {
- }
- /**
- * @title 对论坛回复进行评论
- * @desc 对论坛回复进行评论
- * @author qc
- * @method POST
- * @url /api/Forum/commentReply
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int default:-- desc:回复的id
- * @param name:content type:string default:-- desc:内容
- */
- public function commentReply()
- {
- }
- /**
- * @title 用户发布论坛
- * @desc 用户发布论坛
- * @author qc
- * @method POST
- * @url /api/Forum/userReferForum
- * @header name:Authorization require:1 desc:Token
- * @param name:title type:string default:-- desc:标题
- * @param name:content type:string default:-- desc:内容
- * @param name:label type:string default:-- desc:论坛标签id(多个用逗号隔开)
- */
- public function userReferForum()
- {
- $title = input('post.title');
- $content = input('post.content');
- $label = input('post.label');
- $data = [
- 'title' => $title,
- 'user_id' => $this->user_id,
- 'content' => $content,
- 'label' => $label,
- 'level' => UserLevelRank::getUserVip($this->user_id),
- ];
- UserForum::create($data);
- $this->success('发布成功');
- }
- /**
- * @title 用户删除论坛记录
- * @desc 用户删除论坛记录
- * @author qc
- * @method POST
- * @url /api/Forum/delForum
- * @header name:Authorization require:1 desc:Token
- * @param name:id type:int default:-- desc:id
- */
- public function delForum(){
- UserForum::where(['user_id'=>$this->user_id,'id'=>input('post.id')])->delete();
- $this->success('删除成功');
- }
-
- }
|