// +---------------------------------------------------------------------- namespace app\controller\api\v1\publics; use app\Request; use app\services\article\ArticleServices; /** * 文章类 * Class Article * @package app\controller\api\publics */ class Article { protected $services; public function __construct(ArticleServices $services) { $this->services = $services; } /** * 文章列表 * @param Request $request * @param $cid * @return mixed */ public function lst($cid) { [$page, $limit] = $this->services->getPageValue(); $list = $this->services->cidByArticleList(['cid' => $cid], $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->hasMacro('uid') ? (int)$request->uid() : 0; $info = $this->services->getInfo($uid, (int)$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); } }