...
|
...
|
@@ -5,6 +5,7 @@ namespace app\api\controller; |
|
|
use app\api\model\ArticleType;
|
|
|
use app\api\model\LikeArticle;
|
|
|
use app\api\model\LikeStudent;
|
|
|
use app\api\model\LookArticle;
|
|
|
use app\api\model\School;
|
|
|
use app\api\model\Student;
|
|
|
use app\common\controller\Api;
|
...
|
...
|
@@ -23,12 +24,13 @@ class Article extends Api |
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取大学或学院的文章
|
|
|
* @ApiTitle (获取大学或学院的文章)
|
|
|
* @ApiSummary (获取大学或学院的文章)
|
|
|
* 获取大学或学院或学长的文章
|
|
|
* @ApiTitle (获取大学或学院或学长的文章)
|
|
|
* @ApiSummary (获取大学或学院或学长的文章)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiParams (name="university_id", type="integer", required=false, description="大学ID")
|
|
|
* @ApiParams (name="college_id", type="integer", required=false, description="大学ID")
|
|
|
* @ApiParams (name="user_id", type="integer", required=false, description="学长ID")
|
|
|
* @ApiParams (name="page", type="integer", required=true, description="分页码")
|
|
|
* @ApiParams (name="size", type="integer", required=true, description="分页数 默认10")
|
|
|
* @ApiParams (name="type_id", type="integer", required=true, description="文章的分类ID")
|
...
|
...
|
@@ -72,8 +74,8 @@ class Article extends Api |
|
|
*/
|
|
|
public function getArticleList()
|
|
|
{
|
|
|
$userId = $this->auth->id;
|
|
|
$userId = 1;
|
|
|
$myId = $this->auth->id;
|
|
|
$myId = 1;
|
|
|
|
|
|
$universityId = $this->request->param('university_id', 0, 'int');
|
|
|
|
...
|
...
|
@@ -86,11 +88,12 @@ class Article extends Api |
|
|
$page = $this->request->param('page', 1, 'int');
|
|
|
$size = $this->request->param('size', 10, 'int');
|
|
|
$typeId = $this->request->param('type_id', 0, 'int');
|
|
|
$userId = $this->request->param('user_id', 0, 'int');
|
|
|
|
|
|
$where['a.show_switch'] = ['=', 1];
|
|
|
|
|
|
$student = new Student();
|
|
|
$studentInfo = $student->infoByUserIdCanShow($userId);
|
|
|
$studentInfo = $student->infoByUserIdCanShow($myId);
|
|
|
if(!$studentInfo) {
|
|
|
$this->error('您的提交有误');
|
|
|
}
|
...
|
...
|
@@ -132,6 +135,10 @@ class Article extends Api |
|
|
$where['a.article_type_id'] = ['=', $typeId];
|
|
|
}
|
|
|
|
|
|
if($userId) {
|
|
|
$where['a.user_id'] = ['=', $userId];
|
|
|
}
|
|
|
|
|
|
// 获取文章
|
|
|
$article = new ArticleModel();
|
|
|
$articleList = $article->listByWhere($where, $page, $size, $studentInfo['school_id']);
|
...
|
...
|
@@ -205,6 +212,22 @@ class Article extends Api |
|
|
$this->error('您的提交有误');
|
|
|
}
|
|
|
|
|
|
// 记录浏览
|
|
|
$lookArticle = new LookArticle();
|
|
|
$lookArticleInfo = $lookArticle->infoById($userId, $articleId);
|
|
|
if($lookArticleInfo) {
|
|
|
$updateData = ['updatetime' => time()];
|
|
|
$lookArticle->updateOne($lookArticleInfo['id'], $updateData);
|
|
|
} else {
|
|
|
$insertData = [
|
|
|
'user_id' => $userId,
|
|
|
'article_id' => $articleId,
|
|
|
'createtime' => time(),
|
|
|
'updatetime' => time(),
|
|
|
];
|
|
|
$lookArticle->addOne($insertData);
|
|
|
}
|
|
|
|
|
|
$likeArticle = new LikeArticle();
|
|
|
$likeArticleInfo = $likeArticle->infoById($userId, $articleId);
|
|
|
if(!$likeArticleInfo) {
|
...
|
...
|
@@ -267,4 +290,290 @@ class Article extends Api |
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 清空文章浏览记录
|
|
|
* @ApiTitle (清空文章浏览记录)
|
|
|
* @ApiSummary (清空文章浏览记录)
|
|
|
* @ApiMethod (POST)
|
|
|
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
|
|
|
* @ApiReturn ()
|
|
|
*/
|
|
|
public function delLookArticle()
|
|
|
{
|
|
|
$userId = $this->auth->id;
|
|
|
$userId = 1;
|
|
|
|
|
|
$lookArticle = new LookArticle();
|
|
|
$res = $lookArticle->updateSomeByUserId($userId, ['deletetime' => time()]);
|
|
|
if($res) {
|
|
|
$this->success('清空文章浏览记录成功');
|
|
|
} else {
|
|
|
$this->error('清空文章浏览记录失败,请您重试');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取我收藏的文章
|
|
|
* @ApiTitle (获取我收藏的文章)
|
|
|
* @ApiSummary (获取我收藏的文章)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
|
|
|
* @ApiParams (name="page", type="integer", required=true, description="分页码")
|
|
|
* @ApiParams (name="size", type="integer", required=true, description="分页数")
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
|
|
|
* @ApiReturn ({
|
|
|
"code": 1,
|
|
|
"msg": "获取我收藏的文章成功",
|
|
|
"time": "1586483115",
|
|
|
"data": [
|
|
|
{
|
|
|
"id": 1,
|
|
|
"createtime": 0,
|
|
|
"updatetime": 0,
|
|
|
"article_id": 1(文章ID),
|
|
|
"user_id": 1,
|
|
|
"deletetime": null,
|
|
|
"level": "1",
|
|
|
"nickname": "谢百川(发表人的名字)",
|
|
|
"head_image": "www.a.jpg发表人的头像)",
|
|
|
"school_id": 1,
|
|
|
"subject_ids": "",
|
|
|
"up_id": 1,
|
|
|
"college_id": 1,
|
|
|
"university_id": 1,
|
|
|
"graduated_id": 1,
|
|
|
"starttime": 1286640000,
|
|
|
"endtime": null,
|
|
|
"show_switch": 1,
|
|
|
"email": "1",
|
|
|
"title": "",
|
|
|
"article_type_id": 1,
|
|
|
"show_type": "1",
|
|
|
"des_content": "1(文章的内容)",
|
|
|
"des_images": "",
|
|
|
"weigh": 0,
|
|
|
"is_like_user": 1(发表人1关注 0没关注),
|
|
|
"article_type_name": "经验(文章的类型的名字)"
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
*/
|
|
|
public function getMyLikeArticle()
|
|
|
{
|
|
|
$userId = $this->auth->id;
|
|
|
$userId = 1;
|
|
|
|
|
|
$page = $this->request->param('page', 0, 'int');
|
|
|
$size = $this->request->param('size', 0, 'int');
|
|
|
|
|
|
$likeArticle = new LikeArticle();
|
|
|
$likeArticleList = $likeArticle->listByUserId($userId, $page, $size);
|
|
|
|
|
|
if(!$likeArticleList) {
|
|
|
$this->success('获取我收藏的文章成功', $likeArticleList);
|
|
|
}
|
|
|
|
|
|
$likeStudent = new LikeStudent();
|
|
|
$likeStudentList = $likeStudent->listAllByUserId($userId);
|
|
|
$likeStudentListObj = [];
|
|
|
foreach ($likeStudentList as $v) {
|
|
|
$likeStudentListObj[$v['userb_id']] = $v;
|
|
|
}
|
|
|
|
|
|
$articleType = new ArticleType();
|
|
|
$articleTypeList = $articleType->listAll();
|
|
|
$articleTypeListObj = [];
|
|
|
foreach ($articleTypeList as $k => $v) {
|
|
|
$articleTypeListObj[$v['id']] = $v;
|
|
|
}
|
|
|
|
|
|
foreach ($likeArticleList as $k => $v) {
|
|
|
if(isset($likeStudentListObj[$v['user_id']])) {
|
|
|
$likeArticleList[$k]['is_like_user'] = 1;
|
|
|
} else {
|
|
|
$likeArticleList[$k]['is_like_user'] = 0;
|
|
|
}
|
|
|
|
|
|
if(isset($articleTypeListObj[$v['article_type_id']])) {
|
|
|
$likeArticleList[$k]['article_type_name'] = $articleTypeListObj[$v['article_type_id']]['name'];
|
|
|
} else {
|
|
|
$likeArticleList[$k]['article_type_name'] = '';
|
|
|
}
|
|
|
}
|
|
|
$this->success('获取我收藏的文章成功', $likeArticleList);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 添加一个文章
|
|
|
* @ApiTitle (添加一个文章)
|
|
|
* @ApiSummary (添加一个文章)
|
|
|
* @ApiMethod (POST)
|
|
|
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
|
|
|
* @ApiParams (name="title", type="string", required=true, description="标题")
|
|
|
* @ApiParams (name="article_type_id", type="integer", required=true, description="分类ID")
|
|
|
* @ApiParams (name="show_type", type="integer", required=true, description="1仅校友 2全部")
|
|
|
* @ApiParams (name="des_content", type="string", required=true, description="内容")
|
|
|
* @ApiParams (name="des_images", type="string", required=true, description="图片集例:a.jpg,b.jpg")
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
|
|
|
* @ApiReturn ()
|
|
|
*/
|
|
|
public function addArticle()
|
|
|
{
|
|
|
$userId = $this->auth->id;
|
|
|
$userId = 2;
|
|
|
|
|
|
$title = $this->request->param('title', '', 'string');
|
|
|
if(!$title) {
|
|
|
$this->error('您的文章标题不能为空');
|
|
|
}
|
|
|
|
|
|
if(mb_strlen($title) > 255) {
|
|
|
$this->error('您的文章标题不能超过255汉字长度');
|
|
|
}
|
|
|
|
|
|
$articleTypeId = $this->request->param('article_type_id', 0, 'int');
|
|
|
if(!$articleTypeId) {
|
|
|
$this->error('请您选择正确的文章类型');
|
|
|
}
|
|
|
|
|
|
$showType = $this->request->param('show_type', 1, 'int');
|
|
|
|
|
|
$desContent = $this->request->param('des_content', '', 'string');
|
|
|
if(!$desContent) {
|
|
|
$this->error('您的文章内容不能为空');
|
|
|
}
|
|
|
|
|
|
$desImages = $this->request->param('des_images', '', 'string');
|
|
|
$imageExtArr = ['jpg', 'jpeg', 'png'];
|
|
|
if($desImages) {
|
|
|
$desImagesArr = explode(',', $desImages);
|
|
|
foreach ($desImagesArr as $k => $v) {
|
|
|
$pathInfo = pathinfo($v);
|
|
|
if(!isset($pathInfo['extension']) || !in_array($pathInfo['extension'], $imageExtArr)) {
|
|
|
$this->error('请选择正确的图片格式');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$student = new Student();
|
|
|
$studentInfo = $student->infoByUserIdCanShow($userId);
|
|
|
if(!$studentInfo) {
|
|
|
$this->error('您的操作有误');
|
|
|
}
|
|
|
|
|
|
if($studentInfo['level'] == 1) {
|
|
|
$this->error('高中生不能发布文章哦');
|
|
|
}
|
|
|
|
|
|
$insertData = [
|
|
|
'title' => $title,
|
|
|
'article_type_id' => $articleTypeId,
|
|
|
'show_type' => $showType,
|
|
|
'des_content' => $desContent,
|
|
|
'des_images' => '',
|
|
|
'user_id' => $userId
|
|
|
];
|
|
|
|
|
|
$article = new ArticleModel();
|
|
|
$res = $article->addOne($insertData);
|
|
|
if(!$res) {
|
|
|
$this->error('您的文章发表失败,您可以重试一下');
|
|
|
} else {
|
|
|
$this->success('您的文章发表成功,请您耐心等待审核');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取我发布的文章
|
|
|
* @ApiTitle (获取我发布的文章)
|
|
|
* @ApiSummary (获取我发布的文章)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiHeaders (name="token", type="string", required=true, description="请求的Token")
|
|
|
* @ApiParams (name="page", type="integer", required=true, description="分页码")
|
|
|
* @ApiParams (name="size", type="integer", required=true, description="分页数")
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
|
|
|
* @ApiReturn ()
|
|
|
*/
|
|
|
public function getMyArticle()
|
|
|
{
|
|
|
$userId = $this->auth->id;
|
|
|
$userId = 1;
|
|
|
|
|
|
$page = $this->request->param('page', 1, 'int');
|
|
|
$size = $this->request->param('size', 10, 'int');
|
|
|
|
|
|
$article = new ArticleModel();
|
|
|
$articleList = $article->listByUserId($userId, $page, $size);
|
|
|
if(!$articleList) {
|
|
|
$this->success('获取我发布的文章', $articleList);
|
|
|
}
|
|
|
|
|
|
$articleType = new ArticleType();
|
|
|
$articleTypeList = $articleType->listAll();
|
|
|
$articleTypeListObj = [];
|
|
|
foreach ($articleTypeList as $k => $v) {
|
|
|
$articleTypeListObj[$v['id']] = $v;
|
|
|
}
|
|
|
|
|
|
foreach ($articleList as $k => $v) {
|
|
|
if(isset($articleTypeListObj[$v['article_type_id']])) {
|
|
|
$articleList[$k]['article_type_name'] = $articleTypeListObj[$v['article_type_id']]['name'];
|
|
|
} else {
|
|
|
$articleTypeList[$k]['article_type'] = '';
|
|
|
}
|
|
|
}
|
|
|
$this->success('获取我发布的文章', $articleList);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取所有文章类型
|
|
|
* @ApiTitle (获取所有文章类型)
|
|
|
* @ApiSummary (获取所有文章类型)
|
|
|
* @ApiMethod (GET)
|
|
|
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
|
|
* @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
|
|
|
* @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
|
|
|
* @ApiReturn ({
|
|
|
"code": 1,
|
|
|
"msg": "获取所有文章类型成功",
|
|
|
"time": "1586484966",
|
|
|
"data": [
|
|
|
{
|
|
|
"id": 1,
|
|
|
"name": "经验",
|
|
|
"weigh": 0,
|
|
|
"createtime": 0,
|
|
|
"updatetime": 0,
|
|
|
"show_switch": 1,
|
|
|
"deletetime": null
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
*/
|
|
|
public function getArticleType()
|
|
|
{
|
|
|
$articleType = new ArticleType();
|
|
|
$articleTypeList = $articleType->listAll();
|
|
|
$this->success('获取所有文章类型成功', $articleTypeList);
|
|
|
}
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|