fix:前台首页模块-新闻列表获取方法修改
This commit is contained in:
parent
39552d829c
commit
c7035d14ef
@ -76,7 +76,7 @@ class Home extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function getHomeInfoArticleList()
|
public function getHomeInfoArticleList()
|
||||||
{
|
{
|
||||||
$query = ModelinfoArticle::where('info_article_status', 2)
|
$info_article_data = ModelinfoArticle::where('info_article_status', 2)
|
||||||
->field([
|
->field([
|
||||||
'a.info_article_id',
|
'a.info_article_id',
|
||||||
'a.info_article_type_guid',
|
'a.info_article_type_guid',
|
||||||
@ -85,14 +85,15 @@ class Home extends BaseController
|
|||||||
'a.info_article_title',
|
'a.info_article_title',
|
||||||
'a.info_article_create_time',
|
'a.info_article_create_time',
|
||||||
'a.info_article_cover',
|
'a.info_article_cover',
|
||||||
|
'a.info_article_order',
|
||||||
|
'b.info_article_type_sort',
|
||||||
])
|
])
|
||||||
->alias('a')
|
->alias('a')
|
||||||
->leftjoin('info_article_type b', 'a.info_article_type_guid = b.info_article_type_guid')
|
->leftjoin('info_article_type b', 'a.info_article_type_guid = b.info_article_type_guid')
|
||||||
->hidden(['info_article_type_guid'])
|
->hidden(['info_article_type_guid'])
|
||||||
->order('info_article_order', 'asc')
|
->select()->toArray();
|
||||||
->select();
|
|
||||||
|
|
||||||
return $query;
|
return ModelinfoArticle::buildApiHomeInfoArticleList($info_article_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -136,8 +137,7 @@ class Home extends BaseController
|
|||||||
*/
|
*/
|
||||||
public function getJointAchievementList()
|
public function getJointAchievementList()
|
||||||
{
|
{
|
||||||
$query = ModelJointAchievement::
|
$query = ModelJointAchievement::field([
|
||||||
field([
|
|
||||||
'joint_achievement_id',
|
'joint_achievement_id',
|
||||||
'joint_achievement_title',
|
'joint_achievement_title',
|
||||||
'joint_achievement_cover',
|
'joint_achievement_cover',
|
||||||
|
@ -188,11 +188,11 @@ class InfoArticle extends BaseModel
|
|||||||
$info_article_order = $value['info_article_order'];
|
$info_article_order = $value['info_article_order'];
|
||||||
$info_article_status = $value['info_article_status'];
|
$info_article_status = $value['info_article_status'];
|
||||||
|
|
||||||
$info_article_type = ModelInfoArticleType::where('info_article_type_name',$info_article_type_name)->find();
|
$info_article_type = ModelInfoArticleType::where('info_article_type_name', $info_article_type_name)->find();
|
||||||
if(!$info_article_type) throwErrorMsg($info_article_type_name . "不存在,请重新确认!");
|
if (!$info_article_type) throwErrorMsg($info_article_type_name . "不存在,请重新确认!");
|
||||||
$info_article_type_guid = $info_article_type->info_article_type_guid;
|
$info_article_type_guid = $info_article_type->info_article_type_guid;
|
||||||
|
|
||||||
$show_status = ModelDictionary::getDictionaryData('show_status');
|
$show_status = ModelDictionary::getDictionaryData('show_status');
|
||||||
$info_article_status = ModelDictionary::getDataDictionaryValue($show_status, $info_article_status);
|
$info_article_status = ModelDictionary::getDataDictionaryValue($show_status, $info_article_status);
|
||||||
|
|
||||||
return self::create([
|
return self::create([
|
||||||
@ -203,4 +203,53 @@ class InfoArticle extends BaseModel
|
|||||||
'info_article_status' => $info_article_status,
|
'info_article_status' => $info_article_status,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建前台首页新闻接口数据
|
||||||
|
*/
|
||||||
|
public static function buildApiHomeInfoArticleList(array $info_article_data): array
|
||||||
|
{
|
||||||
|
$info_article_type_arr = [];
|
||||||
|
$info_article_arr = [];
|
||||||
|
$data = [];
|
||||||
|
|
||||||
|
//【步骤一】新闻标题数组构建
|
||||||
|
foreach ($info_article_data as $info_article) {
|
||||||
|
$info_article_type_name = $info_article['info_article_type_name'];
|
||||||
|
$info_article_type_sort = $info_article['info_article_type_sort'];
|
||||||
|
if (!in_array($info_article_type_name, $info_article_type_arr)) {
|
||||||
|
$info_article_type_arr[$info_article_type_sort] = $info_article_type_name;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//新闻标题数组按照下标升序处理
|
||||||
|
ksort($info_article_type_arr);
|
||||||
|
//排序后,只保留值
|
||||||
|
$info_article_type_arr = array_values($info_article_type_arr);
|
||||||
|
|
||||||
|
//【步骤二】新闻数组构建
|
||||||
|
foreach ($info_article_data as $info_article) {
|
||||||
|
$info_article_type_name = $info_article['info_article_type_name'];
|
||||||
|
$info_article_order = $info_article['info_article_order'];
|
||||||
|
$info_article_arr[$info_article_type_name][$info_article_order] = $info_article;
|
||||||
|
};
|
||||||
|
//新闻标题数组按照下标升序处理
|
||||||
|
foreach ($info_article_arr as &$info_article) {
|
||||||
|
ksort($info_article);
|
||||||
|
//排序后,只保留值
|
||||||
|
$info_article = array_values($info_article);
|
||||||
|
};
|
||||||
|
|
||||||
|
//【步骤二】最终数据合并
|
||||||
|
//类型名称数据构建
|
||||||
|
foreach ($info_article_type_arr as $info_article_type_name) {
|
||||||
|
$data[$info_article_type_name] = [];
|
||||||
|
};
|
||||||
|
//文章数据匹配添加
|
||||||
|
foreach ($info_article_data as $info_article) {
|
||||||
|
$info_article_type_name = $info_article['info_article_type_name'];
|
||||||
|
$data[$info_article_type_name][] = $info_article;
|
||||||
|
};
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user