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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |