123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- <?php
- namespace app\api\controller\publics;
- use app\models\article\Article;
- use app\models\article\ArticleCategory;
- use app\models\article\ArticleGood;
- use app\models\article\ArticleReply;
- use app\models\user\EnterpriseUser;
- use app\Request;
- use crmeb\services\CacheService;
- use crmeb\services\UtilService;
- class ArticleController
- {
-
- public function lst(Request $request, $cid)
- {
- list($page, $limit) = UtilService::getMore([
- ['page', 1],
- ['limit', 10],
- ], $request, true);
- $list = Article::cidByArticleList($cid, $page, $limit, "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 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);
- }
-
- 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);
- }
-
- 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'));
- }
- }
|