批量更新

This commit is contained in:
云泽网
2025-05-19 21:51:21 +08:00
parent 7bd072add9
commit 07b3bd5eff
86 changed files with 1768 additions and 18426 deletions
@@ -11,7 +11,7 @@ use think\facade\Request;
use app\admin\controller\Log;
use app\admin\controller\BaseController;
class Article extends BaseController
class ArticlesController extends BaseController
{
/**
* 获取控制器名称
@@ -428,16 +428,64 @@ class Article extends BaseController
//统计文章数量
public function counts() {
$total = Articles::where('delete_time', null)
->where('status', '<>', 3)
->count();
try {
// 获取文章总数
$total = Articles::where('delete_time', null)
->where('status', '<>', 3)
->count();
// 获取今日新增文章数
$today = strtotime(date('Y-m-d'));
$todayNew = Articles::where('delete_time', null)
->where('status', '<>', 3)
->where('create_time', '>=', $today)
->count();
// 获取最近7天的文章数据
$dates = [];
$counts = [];
$totalCounts = []; // 存储每天的总文章数
$totalSoFar = 0; // 用于累计总文章数
return json([
'code' => 0,
'msg' => '获取成功',
'data' => [
'total' => $total
]
]);
for ($i = 6; $i >= 0; $i--) {
$date = date('Y-m-d', strtotime("-$i days"));
$start = strtotime($date);
$end = $start + 86400;
// 获取当天新增文章数
$count = Articles::where('delete_time', null)
->where('status', '<>', 3)
->where('create_time', '>=', $start)
->where('create_time', '<', $end)
->count();
// 获取截至当天的总文章数
$totalCount = Articles::where('delete_time', null)
->where('status', '<>', 3)
->where('create_time', '<', $end)
->count();
$dates[] = $date;
$counts[] = $count;
$totalCounts[] = $totalCount;
}
return json([
'code' => 0,
'msg' => '获取成功',
'data' => [
'total' => $total,
'todayNew' => $todayNew,
'dates' => $dates,
'counts' => $counts,
'totalCounts' => $totalCounts
]
]);
} catch (\Exception $e) {
return json([
'code' => 1,
'msg' => '获取失败:' . $e->getMessage()
]);
}
}
}
@@ -4,18 +4,25 @@
*/
namespace app\admin\controller;
use app\admin\controller\Base;
use app\admin\model\DailyStats;
use app\admin\model\Log\LogsOperation;
use app\index\model\Attachments;
use think\facade\Db;
use think\facade\View;
use think\facade\Env;
use think\facade\Config;
use app\admin\controller\Log;
class Index extends Base{
use app\admin\model\AdminUserGroup;
use app\admin\model\AdminSysMenu;
class IndexController extends Base{
# 首页
public function index(){
$menus = [];
$menu = [];
$where = ['group_id'=>$this->aUser['group_id']];
$role = Db::name('admin_user_group')->where($where)->find();
$role = AdminUserGroup::where($where)->find();
if($role){
$role['rights'] = (isset($role['rights']) && $role['rights']) ? json_decode($role['rights'],true) : [];
}
@@ -25,7 +32,7 @@ class Index extends Base{
['status','=',1]
];
// 获取所有菜单
$menus = Db::name('admin_sys_menu')->order('type,sort desc')->where($where)->select()->toArray();
$menus = AdminSysMenu::order('type,sort desc')->where($where)->select()->toArray();
// 构建树形结构菜单
$menuTree = [];
@@ -63,21 +70,18 @@ class Index extends Base{
public function welcome(){
// 获取今日统计数据
$today = date('Y-m-d');
$todayStats = Db::name('daily_stats')
->where('date', $today)
$todayStats = DailyStats::where('date', $today)
->find();
// 获取最近7天的访问趋势
$last7Days = Db::name('daily_stats')
->where('date', '>=', date('Y-m-d', strtotime('-7 days')))
$last7Days = DailyStats::where('date', '>=', date('Y-m-d', strtotime('-7 days')))
->where('date', '<=', $today)
->order('date', 'asc')
->select()
->toArray();
// 获取用户增长趋势
$userGrowth = Db::name('daily_stats')
->where('date', '>=', date('Y-m-d', strtotime('-30 days')))
$userGrowth = DailyStats::where('date', '>=', date('Y-m-d', strtotime('-30 days')))
->where('date', '<=', $today)
->field('date, new_users, total_users')
->order('date', 'asc')
@@ -85,8 +89,7 @@ class Index extends Base{
->toArray();
// 获取资源下载统计
$resourceStats = Db::name('daily_stats')
->where('date', '>=', date('Y-m-d', strtotime('-7 days')))
$resourceStats = DailyStats::where('date', '>=', date('Y-m-d', strtotime('-7 days')))
->where('date', '<=', $today)
->field('date, daily_resources, resource_downloads')
->order('date', 'asc')
@@ -94,16 +97,26 @@ class Index extends Base{
->toArray();
// 获取文章访问统计
$articleStats = Db::name('daily_stats')
->where('date', '>=', date('Y-m-d', strtotime('-7 days')))
$articleStats = DailyStats::where('date', '>=', date('Y-m-d', strtotime('-7 days')))
->where('date', '<=', $today)
->field('date, daily_articles, article_views')
->order('date', 'asc')
->select()
->toArray();
// 获取最近的活动记录
$recentActivities = $this->getRecentActivities();
// 获取最近的操作日志
$recentActivities = LogsOperation::field('operation_time, module, operation')
->order('operation_time desc')
->limit(10)
->select()
->each(function($item) {
// 格式化时间
$item['time'] = date('Y年m月d日 H:i:s', strtotime($item['operation_time']));
// 格式化操作内容
$item['content'] = date('Y年m月d日 H:i:s', strtotime($item['operation_time'])) . '在【' . $item['module'] . '】模块进行操作:' . $item['operation'];
return $item;
});
// 准备图表数据
$chartData = [
@@ -129,50 +142,21 @@ class Index extends Base{
}
/**
* 获取最近的活动记录
* 根据操作类型获取对应的图标
*/
private function getRecentActivities()
private function getActivityIcon($type)
{
$today = date('Y-m-d');
$activities = [];
// 获取今日新用户
$newUsers = Db::name('daily_stats')
->where('date', $today)
->value('new_users');
if ($newUsers > 0) {
$activities[] = [
'icon' => '👥',
'title' => '新增用户 ' . $newUsers . '',
'time' => '今日'
];
}
// 获取今日文章
$newArticles = Db::name('daily_stats')
->where('date', $today)
->value('daily_articles');
if ($newArticles > 0) {
$activities[] = [
'icon' => '📝',
'title' => '发布文章 ' . $newArticles . ' 篇',
'time' => '今日'
];
}
// 获取今日资源
$newResources = Db::name('daily_stats')
->where('date', $today)
->value('daily_resources');
if ($newResources > 0) {
$activities[] = [
'icon' => '📦',
'title' => '上传资源 ' . $newResources . ' 个',
'time' => '今日'
];
}
return $activities;
$icons = [
'用户管理' => '👥',
'文章管理' => '📝',
'资源管理' => '📦',
'系统设置' => '⚙️',
'登录' => '🔑',
'退出' => '🚪',
'其他' => '📌'
];
return $icons[$type] ?? '📌';
}
/**
@@ -280,7 +264,7 @@ class Index extends Base{
'create_time' => time(),
'update_time' => time()
];
return Db::name('attachments')->insertGetId($data);
return Attachments::insertGetId($data);
}
# 图片上传
@@ -9,7 +9,7 @@ use think\facade\Cookie;
use app\admin\model\Log\LogsLogin;
use app\admin\model\Log\LogsOperation;
class Log extends Base
class LogController extends Base
{
/**
* 登录日志列表
@@ -13,10 +13,10 @@ use app\admin\model\YzAdminConfig;
use app\admin\model\AdminUser;
use app\admin\model\Log\LogsLogin;
class Login
class LoginController extends Base
{
protected $app;
protected $config;
public $app;
public $config;
public function __construct(App $app)
{
@@ -36,7 +36,7 @@ class Login
}
// 记录登录日志
protected function recordLoginLog($username, $status, $reason = '')
public function recordLoginLog($username, $status, $reason = '')
{
$data = [
'username' => $username,
@@ -52,14 +52,14 @@ class Login
}
// 获取IP地址位置
protected function getLocation($ip)
public function getLocation($ip)
{
// 这里可以接入IP地址库或第三方API
return '未知';
}
// 获取设备类型
protected function getDeviceType()
public function getDeviceType()
{
$agent = Request::header('user-agent');
if (preg_match('/(iPhone|iPod|Android|ios|iPad|Mobile)/i', $agent)) {
@@ -12,7 +12,7 @@ use think\facade\Db;
use app\admin\controller\Log;
use think\App;
class Resources extends BaseController
class ResourcesController extends BaseController
{
// 资源列表
public function lists()
@@ -370,16 +370,64 @@ class Resources extends BaseController
//统计资源数量
public function counts()
{
$total = Resource::where('delete_time', null)
->where('status', '<>', 3)
->count();
return json([
'code' => 0,
'msg' => '获取成功',
'data' => [
'total' => $total
]
]);
try {
// 获取资源总数
$total = Resource::where('delete_time', null)
->where('status', '<>', 3)
->count();
// 获取今日新增资源数
$today = strtotime(date('Y-m-d'));
$todayNew = Resource::where('delete_time', null)
->where('status', '<>', 3)
->where('create_time', '>=', $today)
->count();
// 获取最近7天的资源数据
$dates = [];
$counts = [];
$totalCounts = []; // 存储每天的总资源数
for ($i = 6; $i >= 0; $i--) {
$date = date('Y-m-d', strtotime("-$i days"));
$start = strtotime($date);
$end = $start + 86400;
// 获取当天新增资源数
$count = Resource::where('delete_time', null)
->where('status', '<>', 3)
->where('create_time', '>=', $start)
->where('create_time', '<', $end)
->count();
// 获取截至当天的总资源数
$totalCount = Resource::where('delete_time', null)
->where('status', '<>', 3)
->where('create_time', '<', $end)
->count();
$dates[] = $date;
$counts[] = $count;
$totalCounts[] = $totalCount;
}
return json([
'code' => 0,
'msg' => '获取成功',
'data' => [
'total' => $total,
'todayNew' => $todayNew,
'dates' => $dates,
'counts' => $counts,
'totalCounts' => $totalCounts
]
]);
} catch (\Exception $e) {
return json([
'code' => 1,
'msg' => '获取失败:' . $e->getMessage()
]);
}
}
// 构建树形结构
+81
View File
@@ -0,0 +1,81 @@
<?php
/**
* 后台管理系统-用户管理
*/
namespace app\admin\controller;
use app\admin\controller\BaseController;
use think\facade\View;
use think\facade\Request;
use think\facade\Db;
use app\admin\controller\Log;
use think\App;
use app\admin\model\User\Users;
class UsersController extends BaseController
{
/**
* 统计用户数量
*/
public function counts()
{
try {
// 统计用户总数
$total = Users::where('delete_time', 0)
->where('status', 1)
->count();
// 获取今日新增用户数
$today = strtotime(date('Y-m-d'));
$todayNew = Users::where('delete_time', 0)
->where('status', 1)
->where('create_time', '>=', $today)
->count();
// 获取最近7天的用户数据
$dates = [];
$counts = [];
$totalCounts = []; // 存储每天的总用户数
for ($i = 6; $i >= 0; $i--) {
$date = date('Y-m-d', strtotime("-$i days"));
$start = strtotime($date);
$end = $start + 86400;
// 获取当天新增用户数
$count = Users::where('delete_time', 0)
->where('status', 1)
->where('create_time', '>=', $start)
->where('create_time', '<', $end)
->count();
// 获取截至当天的总用户数
$totalCount = Users::where('delete_time', 0)
->where('status', 1)
->where('create_time', '<', $end)
->count();
$dates[] = $date;
$counts[] = $count;
$totalCounts[] = $totalCount;
}
return json([
'code' => 0,
'msg' => '获取成功',
'data' => [
'total' => $total,
'todayNew' => $todayNew,
'dates' => $dates,
'counts' => $counts,
'totalCounts' => $totalCounts
]
]);
} catch (\Exception $e) {
return json([
'code' => 1,
'msg' => '获取失败:' . $e->getMessage()
]);
}
}
}
@@ -14,7 +14,7 @@ use app\admin\model\AdminUserGroup;
use app\admin\model\AdminConfig;
use app\admin\model\ZIconfont;
class Yunzer extends Base{
class YunzerController extends Base{
# 菜单列表
public function menuinfo(){
$lists = AdminSysMenu::where('parent_id', 0)->order('sort DESC,smid DESC')->select();
@@ -11,7 +11,7 @@ use app\admin\model\AdminUser;
use app\admin\model\Banner;
class Yunzeradmin extends Base
class YunzeradminController extends Base
{
// 角色列表
public function groupinfo()