Files
hospital-applets-api/app/Controller/ArticleController.php
T

131 lines
4.7 KiB
PHP

<?php
namespace App\Controller;
use App\Model\ArticleScience;
use App\Request\ArticleRequest;
use App\Request\PatientDoctorRequest;
use App\Services\PatientDoctorService;
use App\Utils\Log;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use Psr\Http\Message\ResponseInterface;
/**
* 文章管理
*/
class ArticleController extends AbstractController
{
/**
* 获取科普文章列表-分页
* @return ResponseInterface
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function getArticleSciencePage(): ResponseInterface
{
$request = $this->container->get(ArticleRequest::class);
$request->scene('getArticleSciencePage')->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');
$page = $this->request->input('page',1);
$per_page = $this->request->input('per_page',10);
// 组合条件
$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::getArticleSciencePage($keyword,$article_science_params, $article_science_class_params, $fields,$page,$per_page);
if (!empty($article_sciences['data'])) {
foreach ($article_sciences['data'] as &$article_science) {
$article_science['article_image'] = addAliyunOssWebsite($article_science['article_image']);
if (!empty($article_science["ArticleScienceSource"])){
// 深拷贝 ArticleScienceSource 对象
$clonedSource = clone $article_science["ArticleScienceSource"];
// 修改克隆对象的 source_image 字段
$clonedSource["source_image"] = addAliyunOssWebsite($clonedSource["source_image"]);
// 将修改后的克隆对象赋回原数组
$article_science["article_science_source"] = $clonedSource;
unset($clonedSource);
unset($article_science["ArticleScienceSource"]);
}
unset($article_science);
}
}
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["article_science_source"])){
$article_science["article_science_source"]["source_image"] = addAliyunOssWebsite($article_science["article_science_source"]["source_image"]);
}
}
}
return $this->response->json(success($article_sciences));
}
}