新增了获取科普文章列表接口
This commit is contained in:
parent
25e75d4f6d
commit
d0e4be6c45
@ -16,15 +16,15 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
class ArticleController extends AbstractController
|
class ArticleController extends AbstractController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* 获取科普文章列表
|
* 获取科普文章列表-分页
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
* @throws ContainerExceptionInterface
|
* @throws ContainerExceptionInterface
|
||||||
* @throws NotFoundExceptionInterface
|
* @throws NotFoundExceptionInterface
|
||||||
*/
|
*/
|
||||||
public function getArticleScienceList(): ResponseInterface
|
public function getArticleSciencePage(): ResponseInterface
|
||||||
{
|
{
|
||||||
$request = $this->container->get(ArticleRequest::class);
|
$request = $this->container->get(ArticleRequest::class);
|
||||||
$request->scene('getArticleScienceList')->validateResolved();
|
$request->scene('getArticleSciencePage')->validateResolved();
|
||||||
|
|
||||||
$keyword = $this->request->input('keyword',"");
|
$keyword = $this->request->input('keyword',"");
|
||||||
$is_top = $this->request->input('is_top');
|
$is_top = $this->request->input('is_top');
|
||||||
@ -66,4 +66,56 @@ class ArticleController extends AbstractController
|
|||||||
}
|
}
|
||||||
return $this->response->json(success($article_sciences));
|
return $this->response->json(success($article_sciences));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取科普文章列表
|
||||||
|
* @return ResponseInterface
|
||||||
|
* @throws ContainerExceptionInterface
|
||||||
|
* @throws NotFoundExceptionInterface
|
||||||
|
*/
|
||||||
|
public function getArticleScienceList(): ResponseInterface
|
||||||
|
{
|
||||||
|
$request = $this->container->get(ArticleRequest::class);
|
||||||
|
$request->scene('getArticleScienceList')->validateResolved();
|
||||||
|
|
||||||
|
$keyword = $this->request->input('keyword',"");
|
||||||
|
$is_top = $this->request->input('is_top');
|
||||||
|
$source_id = $this->request->input('source_id');
|
||||||
|
$basic_class_id = $this->request->input('basic_class_id');
|
||||||
|
|
||||||
|
// 组合条件
|
||||||
|
$article_science_params = array();// 文章搜索
|
||||||
|
$article_science_class_params = array();// 文章分类搜索
|
||||||
|
|
||||||
|
// 是否置顶(0:否 1:是)
|
||||||
|
if (!empty($is_top)){
|
||||||
|
$article_science_params['is_top'] = $is_top;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 来源id
|
||||||
|
if (!empty($source_id)){
|
||||||
|
$article_science_params['source_id'] = $source_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分类id
|
||||||
|
if (!empty($basic_class_id)){
|
||||||
|
$article_science_class_params['basic_class_id'] = $basic_class_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields = ["*"];
|
||||||
|
$article_sciences = ArticleScience::getArticleScienceList($keyword,$article_science_params, $article_science_class_params, $fields);
|
||||||
|
$article_sciences = $article_sciences->toArray();
|
||||||
|
if (!empty($article_sciences)) {
|
||||||
|
foreach ($article_sciences as &$article_science) {
|
||||||
|
$article_science['article_image'] = addAliyunOssWebsite($article_science['article_image']);
|
||||||
|
|
||||||
|
if (!empty($article_science["ArticleScienceSource"])){
|
||||||
|
$article_science["ArticleScienceSource"]["source_image"] = addAliyunOssWebsite($article_science["ArticleScienceSource"]["source_image"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->response->json(success($article_sciences));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -80,7 +80,7 @@ class ArticleScience extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取列表
|
* 获取列表-分页
|
||||||
* @param string $keyword
|
* @param string $keyword
|
||||||
* @param array $article_science_params 搜索条件
|
* @param array $article_science_params 搜索条件
|
||||||
* @param array $article_science_class_params 分类搜索条件
|
* @param array $article_science_class_params 分类搜索条件
|
||||||
@ -120,4 +120,37 @@ class ArticleScience extends Model
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取列表
|
||||||
|
* @param string $keyword
|
||||||
|
* @param array $article_science_params 搜索条件
|
||||||
|
* @param array $article_science_class_params 分类搜索条件
|
||||||
|
* @param array $fields
|
||||||
|
* @param int $limit
|
||||||
|
* @return Collection|array
|
||||||
|
*/
|
||||||
|
public static function getArticleScienceList(string $keyword = "", array $article_science_params = [], array $article_science_class_params = [], array $fields = ["*"], int $limit = 10): Collection|array
|
||||||
|
{
|
||||||
|
$query = self::with(['ArticleScienceSource'])
|
||||||
|
->where($article_science_params)
|
||||||
|
->when($keyword, function ($query, $keyword) {
|
||||||
|
$query->where(function ($query) use ($keyword) {
|
||||||
|
$query->orwhere("article_title", 'like', '%' . $keyword . '%');
|
||||||
|
$query->orWhereHas('ArticleScienceSource', function ($query) use ($keyword) {
|
||||||
|
$query->where('source_name', 'like', '%' . $keyword . '%');
|
||||||
|
});
|
||||||
|
$query->orWhereHas('ArticleScienceClass.BasicArticleClass', function ($query) use ($keyword) {
|
||||||
|
$query->where('basic_class_name', 'like', '%' . $keyword . '%');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->whereHas('ArticleScienceClass.BasicArticleClass', function ($query) use ($article_science_class_params) {
|
||||||
|
$query->where($article_science_class_params);
|
||||||
|
});
|
||||||
|
|
||||||
|
$data = $query->limit($limit)->get($fields);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,12 @@ use Hyperf\Validation\Request\FormRequest;
|
|||||||
class ArticleRequest extends FormRequest
|
class ArticleRequest extends FormRequest
|
||||||
{
|
{
|
||||||
protected array $scenes = [
|
protected array $scenes = [
|
||||||
|
'getArticleSciencePage' => [
|
||||||
|
'keyword',
|
||||||
|
'is_top',
|
||||||
|
'source_id',
|
||||||
|
'basic_class_id',
|
||||||
|
],
|
||||||
'getArticleScienceList' => [
|
'getArticleScienceList' => [
|
||||||
'keyword',
|
'keyword',
|
||||||
'is_top',
|
'is_top',
|
||||||
|
|||||||
@ -629,8 +629,11 @@ Router::addGroup('/patient', function () {
|
|||||||
Router::addGroup('/article', function () {
|
Router::addGroup('/article', function () {
|
||||||
// 科普文章
|
// 科普文章
|
||||||
Router::addGroup('/science', function () {
|
Router::addGroup('/science', function () {
|
||||||
|
// 获取科普文章列表-分页
|
||||||
|
Router::get('', [ArticleController::class, 'getArticleSciencePage']);
|
||||||
|
|
||||||
// 获取科普文章列表
|
// 获取科普文章列表
|
||||||
Router::get('', [ArticleController::class, 'getArticleScienceList']);
|
Router::get('/list', [ArticleController::class, 'getArticleScienceList']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user