Files
xk-api-yii/admin/controllers/base/ArticleController.php

143 lines
4.9 KiB
PHP

<?php
namespace admin\controllers\base;
use admin\components\BaseAdminController;
use admin\models\forms\drug\ArticleForm;
use common\models\oldDb\Categories;
use common\models\oldDb\DoctorArticle;
use yii\db\Exception;
class ArticleController extends BaseAdminController
{
/**
* @doc-name 新增或编辑文章分类
* @doc-param int id 传id则修改 / optional
* @doc-param string name 分类
* @doc-param int pid 父级id
* @doc-param int level 级别
*/
public function actionSaveCategories()
{
$post=\Yii::$app->request->post();
$this->requestValidate($post,[
[['name','pid','level'],'required'],
]);
if (empty($post['id'])){
$Categories= Categories::find()->where(['name'=>$post['name'],'is_deleted'=>0])->one();
if (!$Categories){
$Categories= new Categories();
$Categories->name=$post['name'];
$Categories->pid=$post['pid'];
$Categories->level=$post['level'];
$Categories->save();
}
return ['已添加'];
}else{
$Categories= Categories::find()->where(['id'=>$post['id'],'is_deleted'=>0])->one();
if (!$Categories){
throw new Exception('分类不存在');
}
$Categories->name=$post['name']??$Categories->name;
$Categories->pid=$post['pid']??$Categories->pid;;
$Categories->level=$post['level']??$Categories->level;;
if (! $Categories->saveOrFail()){
throw new Exception('编辑失败');
};
return ['编辑成功'];
}
}
/**
* @doc-name 删除分类
* @doc-param int id ID
*/
public function actionDelCategories()
{
$get=\Yii::$app->request->get();
$this->requestValidate($get,[
['id','required'],
]);
$Categories= Categories::find()->where(['id'=>$get['id']])->one();
if (!$Categories){
throw new Exception('分类不存在');
}
$Categories->is_deleted=1;
if (!$Categories->saveOrFail()){
throw new Exception('删除失败');
};
return ['删除成功'];
}
/**
* @doc-name 文章分类列表
* @doc-return mixed @List{id,name-string-分类,pid-int-父级id,level-int-级别} 文章分类列表
* @doc-return mixed @Pagination{total-int-总数量,totalPage-int-总页数,pageSize-int-每页条数} 分页数据
*/
public function actionCategoriesList()
{
$get=\Yii::$app->request->get();
$query= Categories::find()->where(['is_deleted'=>0])->orderBy(['id'=>SORT_DESC]);
$this->field=[
Categories::class=>[
'id','name','pid','level'
]
];
return $this->create($query,$get);
}
/**
* @doc-name 文章列表
* @doc-return mixed @List{id,su_id-int-医生id 0为后台发布,cover-string-封面,title-string-文章标题,intro-string-简介,content-string-内容,video_url-string-视频链接,read_num-int-阅读量,collection-string-货收藏),is_draft-int-是否是草稿0否1是} 文章列表
* @doc-return mixed @Pagination{total-int-总数量,totalPage-int-总页数,pageSize-int-每页条数} 分页数据
*/
public function actionArticleList()
{
$get=\Yii::$app->request->get();
$query= DoctorArticle::find()->where(['is_delete'=>0])->orderBy(['id'=>SORT_DESC]);
$this->field=[
DoctorArticle::class=>[
'id','cid','su_id','cover','title','intro','content','video_url','read_num','collection','is_draft','categories'=>'categories.name','type'
]
];
return $this->create($query,$get);
}
/**
* @doc-name 新增或修改文章
* @doc-param int id 传id则修改 / optional
* @doc-param int type 文章类型1图文类型2图片 / optional
* @doc-param int cid 分类id / optional
* @doc-param int su_id 发部人 / optional
* @doc-param string cover 封面
* @doc-param string title 标题
* @doc-param string intro 简介 / optional
* @doc-param string content 内容
* @doc-param string video_url 视频链接 / optional
* @doc-param int is_draft 是否是草稿0否1是 / optional
*/
public function actionSaveArticle()
{
$post = \Yii::$app->request->post();
$ArticleForm= new ArticleForm();
$ArticleForm->attributes = $post;
return $ArticleForm->save();
}
/**
* @doc-name 删除文章
* @doc-param int id id
*/
public function actionDelArticle()
{
$get = \Yii::$app->request->get();
$this->requestValidate($get,[
['id','required'],
]);
$ArticleForm= new ArticleForm();
$ArticleForm->attributes = $get;
return $ArticleForm->del();
}
}