caipan_shop_admin/app/controller/manager/Index.php

102 lines
2.8 KiB
PHP
Executable File

<?php
namespace app\controller\manager;
use app\model\Overview;
use app\model\Spu;
use app\repository\CmsRepository;
use Exception;
use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;
use think\response\Json;
use think\response\View;
use app\model\Member;
use app\model\Menu;
class Index extends Base
{
protected $noNeedLogin = ['index', 'init'];
/**
* 后台初始页面 随后进入dashboard页面
*
* @return View
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public function index(): View
{
$auth = session('auth');
$this->data['user'] = Member::findById($auth['user_id'] ?? 0, ['id', 'username', 'nickname', 'mobile']);
return $this->view();
}
/**
* 控制台
*
* @return Json|View
* @throws Exception
*/
public function dashboard()
{
if ($this->request->isPost()) {
$page = input('page/d', 1);
$limit = input('size/d', 10);
$items = Overview::findList([], [], $page, $limit, function ($q) {
return $q->with(['staff', 'account'])->order('customer', 'desc')
->order('shares', 'desc')->order('views', 'desc')->order('asks', 'desc');
});
$items['list'] = $items['list']->each(function ($item) {
$item->nickname = $item->account->nickname ?? '';
$item->real_name = $item->account->real_name ?? '';
$item->staff_name = $item->staff->name ?? '';
$item->phone = $item->account->mobile ?? '';
});
return $this->json(0, '操作成功', $items);
}
$count['spu'] = Spu::count();
$this->data['count'] = $count;
return $this->view();
}
/**
* 菜单初始化
*
* @return Json
*/
public function init(): Json
{
$res = [];
$res['homeInfo'] = ['title' => '控制台', 'href' => "manager/index/dashboard"];
$res['logoInfo'] = ['title' => '商城', 'href' => "", 'image' => '/static/manager/image/logo.png'];
$menus = CmsRepository::getInstance()->getMenuList(Menu::TYPE_MENU, Menu::SHOW_YES)->toArray();
$userId = $this->auth['user_id'] ?? 0;
$menus = CmsRepository::getInstance()->handMenuRule($userId, $menus);
$menus = CmsRepository::getInstance()->buildMenuChild(0, $menus, 'child');
$res['menuInfo'] = $menus;
return json($res);
}
/**
* 缓存清理
*
* @return Json
*/
public function clear(): Json
{
$res = ['code' => 1, 'msg' => '服务端清理缓存成功'];
sleep(2);
return json($res);
}
}