Files
huangjingfen/pro_v3.5.1/app/controller/api/v1/publics/Article.php
panchengyong c1e74d8e68 chore(php): 统一 ScottPan 文件头与注释域名替换
- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明

Made-with: Cursor
2026-03-29 11:22:58 +08:00

117 lines
3.7 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
namespace app\controller\api\v1\publics;
use app\Request;
use app\services\article\ArticleServices;
use app\services\wechat\WechatNewsCategoryServices;
use think\annotation\Inject;
/**
* 文章类
* Class Article
* @package app\api\controller\publics
*/
class Article
{
/**
* @var ArticleServices
*/
#[Inject]
protected ArticleServices $services;
/**
* 文章列表
* @param WechatNewsCategoryServices $services
* @param $cid
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function lst(WechatNewsCategoryServices $services, $cid)
{
[$page, $limit] = $this->services->getPageValue();
$where = ['cid' => $cid];
$where['ids'] = $services->getNewIds();
$list = $this->services->cidByArticleList($where, $page, $limit, "id,title,image_input,visit,likes,from_unixtime(add_time,'%Y-%m-%d %H:%i') as add_time,synopsis,url");
return app('json')->successful($list);
}
/**
* 文章点赞 添加、取消
* @param Request $request
* @param $id
* @return \think\Response
*/
public function userArticleLikes(Request $request, $id)
{
$where = $request->getMore([
['status', 0]
]);
$uid = $request->uid();
$info = $this->services->userArticleLikes($id, $where, $uid);
return app('json')->successful($info);
}
/**
* 文章详情
* @param $id
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function details(Request $request, $id)
{
$uid = $request->uid();
$info = $this->services->getInfo($uid, $id);
return app('json')->successful($info);
}
/**
* 获取热门文章
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function hot()
{
[$page, $limit] = $this->services->getPageValue();
$list = $this->services->cidByArticleList(['is_hot' => 1], $page, $limit, "id,title,image_input,visit,from_unixtime(add_time,'%Y-%m-%d %H:%i') as add_time,synopsis,url");
return app('json')->successful($list);
}
/**
* 获取最新文章
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function new()
{
[$page, $limit] = $this->services->getPageValue();
$list = $this->services->cidByArticleList([], $page, $limit, "id,title,image_input,visit,from_unixtime(add_time,'%Y-%m-%d %H:%i') as add_time,synopsis,url");
return app('json')->successful($list);
}
/**
* 获取顶部banner文章
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function banner()
{
[$page, $limit] = $this->services->getPageValue();
$list = $this->services->cidByArticleList(['is_banner' => 1], $page, $limit, "id,title,image_input,visit,from_unixtime(add_time,'%Y-%m-%d %H:%i') as add_time,synopsis,url");
return app('json')->successful($list);
}
}