toArray(); return app('json')->successful($list); } /** * 文章详情 * @param $id * @return mixed * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\db\exception\DbException */ public function details($id, Request $request) { $content = Article::getArticleOne($id); if (!$content) return app('json')->fail('此文章已经不存在!'); $content["visit"] = $content["visit"] + 1; $content["cart_name"] = ArticleCategory::getArticleCategoryField($content['cid']); $content['add_time'] = date($content['add_time']); $uid = $request->uid(); $content['mer'] = EnterpriseUser::getInfo($content['mer_id'], $uid); $content['goods'] = ArticleGood::where('aid', $id)->where('status', 1)->count(); if ($request->isLogin()) { $content['is_goods'] = ArticleGood::where('aid', $id)->where('uid', $request->uid())->find(); } Article::edit(['visit' => $content["visit"]], $id);//增加浏览次数 //根据文章查询对应的订阅号信息 return app('json')->successful($content); } /** * 首页推荐文章 * @return mixed */ public function hot(Request $request) { $page = $request->get(); $list = Article::getArticleListHot("id,title,image_input,visit,add_time,synopsis,url,mer_id,is_hot,is_top", $page) ?? []; if (is_object($list)) $list = $list->toArray(); return app('json')->successful($list); } //检索 public function search(Request $request) { $data = $request->get(); $model = new Article(); $res = $model->search($data); if (is_object($res)) $res = $res->toArray(); return app('json')->successful($res); } // 相关阅读 public function relevant(Request $request) { $type = $request->get('type'); $num = mt_rand(0, 20); $list = Article::where('cid', $type)->where('status',1)->where('is_check',1)->limit($num, 5)->select(); $ct = count($list); if (empty($ct)) { $list = Article::where('cid', $type)->where('status',1)->where('is_check',1)->limit(0, 5)->select(); } if (is_object($list)) $list = $list->toArray(); return app('json')->successful($list); } /** * 文章 banner * @return mixed */ public function banner() { $list = Article::getArticleListBanner("id,title,image_input,visit,from_unixtime(add_time,'%Y-%m-%d %H:%i') as add_time,synopsis,url") ?? []; if (is_object($list)) $list = $list->toArray(); return app('json')->successful($list); } public function replyList($id, Request $request) { $page = $request->get('page', 1); $limit = $request->get('limit', 10); $list = ArticleReply::with('user') ->where('aid', $id) ->order('id desc') ->page($page, $limit)->select() ->each(function ($item) { if ($item['to_id']) { $item['to'] = ArticleReply::with('user')->where('id', $item['to_id'])->find(); } }); $count = ArticleReply::where('aid', $id)->count(); return app('json')->success('ok', compact('list', 'count')); } public function reply($id, Request $request) { $last_time = CacheService::get('reply_' . $request->uid() . '_' . $id, 0); if (time() - $last_time < 60) return app('json')->fail('请勿连续多次提交评论'); CacheService::set('reply_' . $request->uid() . '_' . $id, time()); list($content, $to_id) = UtilService::postMore([ ['content', '', '', '', ['not_empty_check'], ['请输入回复的内容']], ['to_id', 0] ], $request, true); $res = ArticleReply::create(['uid' => $request->uid(), 'aid' => $id, 'to_id' => $to_id, 'add_time' => time(), 'content' => $content]); if ($to_id) { //发送通知 } if ($res) return app('json')->success('评论成功'); else { return app('json')->fail('评论失败'); } } public function good($id, Request $request) { $info = ArticleGood::where('aid', $id)->where('uid', $request->uid())->find(); if ($info) { $res = ArticleGood::where('id', $info['id'])->update(['status' => ($info['status'] ? 0 : 1)]); } else { $res = ArticleGood::create(['uid' => $request->uid(), 'aid' => $id, 'status' => 1]); } if ($res) return app('json')->success('操作成功'); else { return app('json')->fail('操作失败'); } } public function myReply(Request $request) { $page = $request->get('page', 1); $limit = $request->get('limit', 10); $list = ArticleReply::with('article')->where('uid', $request->uid())->order('id desc')->page($page, $limit)->select() ->each(function ($item) { if ($item['to_id']) { $item['to'] = ArticleReply::with('user')->where('id', $item['to_id'])->find(); } }); $count = ArticleReply::where('uid', $request->uid())->count(); return app('json')->success('ok', compact('list', 'count')); } public function toMyReply(Request $request) { $page = $request->get('page', 1); $limit = $request->get('limit', 10); $ids = ArticleReply::where('uid', $request->uid())->column('id'); $list = ArticleReply::with(['user', 'article'])->where('to_id', 'in', $ids)->where('to_id', '<>', 0)->order('id desc')->page($page, $limit)->select() ->each(function ($item) { if ($item['to_id']) { $item['to'] = ArticleReply::where('id', $item['to_id'])->find(); } }); $count = ArticleReply::where('to_id', 'in', $ids)->where('to_id', '<>', 0)->count(); return app('json')->success('ok', compact('list', 'count')); } }