325 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| 
 | |
| 
 | |
| namespace app\api\controller;
 | |
| 
 | |
| 
 | |
| use app\api\logic\CommunityLogic;
 | |
| use app\api\validate\CommunityArticleValidate;
 | |
| use app\common\basics\Api;
 | |
| use app\common\server\JsonServer;
 | |
| 
 | |
| /**
 | |
|  * 种草社区相关
 | |
|  * Class CommunityArticle
 | |
|  * @package app\api\controller
 | |
|  */
 | |
| class Community extends Api
 | |
| {
 | |
| 
 | |
|     public $like_not_need_login = ['cate', 'articleLists', 'detail', 'relationGoods', 'relationShop', 'topicArticle'];
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取已购商品列表
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 15:07
 | |
|      */
 | |
|     public function goods()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getGoodsLists($this->user_id, $get, $this->page_no, $this->page_size);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取已购店铺列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 15:40
 | |
|      */
 | |
|     public function shop()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getShopLists($this->user_id, $get, $this->page_no, $this->page_size);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取推荐话题
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 16:00
 | |
|      */
 | |
|     public function recommendTopic()
 | |
|     {
 | |
|         $result = CommunityLogic::getRecommendTopic();
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取话题列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 17:25
 | |
|      */
 | |
|     public function topicLists()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getTopicLists($get);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取分类
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 17:50
 | |
|      */
 | |
|     public function cate()
 | |
|     {
 | |
|         $result = CommunityLogic::getCate();
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取发现页的文章列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 18:09
 | |
|      */
 | |
|     public function articleLists()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getArticleLists($get, $this->page_no, $this->page_size, $this->user_id);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 发布文章
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 10:48
 | |
|      */
 | |
|     public function addArticle()
 | |
|     {
 | |
|         $post = $this->request->post();
 | |
|         (new CommunityArticleValidate)->gocheck('add');
 | |
|         $result = CommunityLogic::addArticle($this->user_id, $post);
 | |
|         if (false === $result) {
 | |
|             $error = CommunityLogic::getError() ?: '发布失败';
 | |
|             return JsonServer::error($error);
 | |
|         }
 | |
|         return JsonServer::success('发布成功,坐等点赞和关注吧~');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @notes 编辑文章
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/4/29 10:48
 | |
|      */
 | |
|     public function editArticle()
 | |
|     {
 | |
|         $post = $this->request->post();
 | |
|         (new CommunityArticleValidate)->gocheck('edit');
 | |
|         $result = CommunityLogic::editArticle($this->user_id, $post);
 | |
|         if (false === $result) {
 | |
|             $error = CommunityLogic::getError() ?: '编辑失败';
 | |
|             return JsonServer::error($error);
 | |
|         }
 | |
|         return JsonServer::success('编辑成功');
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 删除文章
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/7 10:28
 | |
|      */
 | |
|     public function delArticle()
 | |
|     {
 | |
|         $post = $this->request->post();
 | |
|         (new CommunityArticleValidate)->gocheck('del');
 | |
|         $result = CommunityLogic::delArticle($this->user_id, $post);
 | |
|         if (false === $result) {
 | |
|             return JsonServer::error(CommunityLogic::getError() ?: '删除失败');
 | |
|         }
 | |
|         return JsonServer::success('删除成功');
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 关注用户
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/5 15:45
 | |
|      */
 | |
|     public function follow()
 | |
|     {
 | |
|         $post = $this->request->post();
 | |
|         $result = CommunityLogic::followRelation($this->user_id, $post);
 | |
|         if (false === $result) {
 | |
|             return JsonServer::error(CommunityLogic::getError() ?: '操作失败');
 | |
|         }
 | |
|         return JsonServer::success('操作成功');
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 点赞/取消点赞文章
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/5 16:12
 | |
|      */
 | |
|     public function giveLike()
 | |
|     {
 | |
|         $post = $this->request->post();
 | |
|         $result = CommunityLogic::giveLike($this->user_id, $post);
 | |
|         if (true !== $result) {
 | |
|             return JsonServer::error(CommunityLogic::getError() ?: '操作失败');
 | |
|         }
 | |
|         return JsonServer::success('操作成功');
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 关注页的文章列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/6 9:52
 | |
|      */
 | |
|     public function followArticle()
 | |
|     {
 | |
|         $result = CommunityLogic::getFollowArticle($this->user_id, $this->page_no, $this->page_size);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取文章中关联商品列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/6 14:57
 | |
|      */
 | |
|     public function relationGoods()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getRelationGoodsOrShop($get, 'goods');
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取文章中关联店铺列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/10 17:06
 | |
|      */
 | |
|     public function relationShop()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getRelationGoodsOrShop($get, 'shop');
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 作品列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/6 10:46
 | |
|      */
 | |
|     public function worksLists()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getWorksLists($this->user_id, $get, $this->page_no, $this->page_size);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 点赞的列表
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/6 14:22
 | |
|      */
 | |
|     public function likeLists()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getLikeLists($this->user_id, $get, $this->page_no, $this->page_size);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 话题关联文章
 | |
|      * @return \think\response\Json
 | |
|      * @throws \think\db\exception\DataNotFoundException
 | |
|      * @throws \think\db\exception\DbException
 | |
|      * @throws \think\db\exception\ModelNotFoundException
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/6 16:22
 | |
|      */
 | |
|     public function topicArticle()
 | |
|     {
 | |
|         $get = $this->request->get();
 | |
|         $result = CommunityLogic::getTopicArticle($get, $this->page_no, $this->page_size);
 | |
|         if (false === $result) {
 | |
|             return JsonServer::error(CommunityLogic::getError() ?: '获取失败');
 | |
|         }
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @notes 获取文章详情
 | |
|      * @return \think\response\Json
 | |
|      * @author 段誉
 | |
|      * @date 2022/5/6 18:08
 | |
|      */
 | |
|     public function detail()
 | |
|     {
 | |
|         $id = $this->request->get('id/d');
 | |
|         $result = CommunityLogic::detail($this->user_id, $id);
 | |
|         return JsonServer::success('', $result);
 | |
|     }
 | |
| 
 | |
| } |