76 lines
2.8 KiB
PHP
76 lines
2.8 KiB
PHP
<?php
|
|
|
|
|
|
namespace Yunshop\Article\admin;
|
|
|
|
|
|
use app\common\components\BaseController;
|
|
use app\common\helpers\Url;
|
|
use Yunshop\Article\models\Article;
|
|
use Yunshop\Article\models\Category;
|
|
use app\common\helpers\PaginationHelper;
|
|
use Yunshop\Article\models\Log;
|
|
|
|
class ManagerArticleController extends BaseController
|
|
{
|
|
public function index()
|
|
{
|
|
$pageSize = 10;
|
|
$search = request()->search;
|
|
if (!$search['time']) {
|
|
$search['time']['start'] = date("Y-m-d H:i:s", time());
|
|
$search['time']['end'] = date("Y-m-d H:i:s", time());
|
|
}
|
|
$articles = Article::getArticlesBySearch($search['category_id'], $search['keyword']);
|
|
if (!empty($search['member'])) {
|
|
$articles = $articles->whereHas('belongsToManager', function ($query) use ($search) {
|
|
$query->whereHas('member', function ($q2) use ($search) {
|
|
return $q2->searchLike($search['member']);
|
|
});
|
|
});
|
|
}
|
|
if ($search['is_time']) {
|
|
if ($search['time']) {
|
|
$range = [strtotime($search['time']['start']), strtotime($search['time']['end'])];
|
|
$articles = $articles->whereBetween('created_at', $range);
|
|
}
|
|
}
|
|
$articles = $articles->with(['belongsToManager' => function ($q) {
|
|
$q->select(['id', 'nickname', 'member_id'])->with(['member' => function ($query2) {
|
|
$query2->select('uid', 'nickname', 'avatar', 'mobile');
|
|
}]);
|
|
}])
|
|
->where('manager_id', '!=', 0)
|
|
->orderBy('display_order', 'desc')
|
|
->orderBy('id', 'desc')
|
|
->paginate($pageSize)
|
|
->toArray();
|
|
|
|
$categorys = Category::getCategorys()->orderBy('id', 'desc')->get()->toArray();
|
|
$pager = PaginationHelper::show($articles['total'], $articles['current_page'], $articles['per_page']);
|
|
foreach ($articles['data'] as $k => $v) {
|
|
$articles['data'][$k]['content'] = htmlspecialchars_decode($v['content']);
|
|
$person_num = Log::uniacid()->where('article_id', $v['id'])->count();
|
|
$articles['data'][$k]['person_num'] = $person_num;
|
|
}
|
|
return view('Yunshop\Article::admin.manager.article',
|
|
[
|
|
'articles' => $articles,
|
|
'categorys' => $categorys,
|
|
'search' => $search,
|
|
'pager' => $pager,
|
|
]
|
|
)->render();
|
|
}
|
|
|
|
public function del()
|
|
{
|
|
$id = \YunShop::request()->id;
|
|
$article = Article::uniacid()->find($id);
|
|
if (!$article) {
|
|
return $this->error('没有此文章或已删除');
|
|
}
|
|
$article->delete();
|
|
return $this->message('删除文章成功', Url::absoluteWeb('plugin.article.admin.manager-article.index'));
|
|
}
|
|
} |