|
|
@@ -11,6 +11,7 @@
|
|
|
|
|
|
namespace App\Models;
|
|
|
|
|
|
+use App\Services\RedisService;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
/**
|
|
|
@@ -25,13 +26,6 @@ class ActionLogModel extends BaseModel
|
|
|
// 设置数据表
|
|
|
protected $table = null;
|
|
|
// 自定义日志标题
|
|
|
-
|
|
|
- protected static $recordUserId = 0;
|
|
|
-
|
|
|
- protected static $recordType = 1;
|
|
|
-
|
|
|
- protected static $module = 'admin';
|
|
|
-
|
|
|
protected static $title = '';
|
|
|
// 自定义日志内容
|
|
|
protected static $content = '';
|
|
|
@@ -54,26 +48,25 @@ class ActionLogModel extends BaseModel
|
|
|
{
|
|
|
$tbl = DB_PREFIX . $this->table;
|
|
|
if (!$this->tableExists($tbl)) {
|
|
|
- $sql = "CREATE TABLE `{$tbl}` (
|
|
|
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一性标识',
|
|
|
- `username` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作人用户名',
|
|
|
- `method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求类型',
|
|
|
- `module` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模型',
|
|
|
- `action` varchar(255) NOT NULL COMMENT '操作方法',
|
|
|
- `url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作页面',
|
|
|
- `param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求参数(JSON格式)',
|
|
|
- `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '日志标题',
|
|
|
- `type` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '操作类型:1-后台 2-APP',
|
|
|
- `content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
|
|
|
- `ip` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'IP地址',
|
|
|
- `user_agent` varchar(360) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'User-Agent',
|
|
|
- `create_user` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '添加人',
|
|
|
- `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',
|
|
|
- `update_user` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新人',
|
|
|
- `update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
- `mark` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '有效标识:1正常 0删除',
|
|
|
- PRIMARY KEY (`id`) USING BTREE
|
|
|
- ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='系统行为日志表';";
|
|
|
+ $sql = "CREATE TABLE `lev_action_log_2026_05` (
|
|
|
+ `id` int UNSIGNED NOT NULL COMMENT '唯一性标识',
|
|
|
+ `username` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作人用户名',
|
|
|
+ `method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求类型',
|
|
|
+ `module` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模型',
|
|
|
+ `action` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作方法',
|
|
|
+ `url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作页面',
|
|
|
+ `param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '请求参数(JSON格式)',
|
|
|
+ `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '日志标题',
|
|
|
+ `type` tinyint UNSIGNED NOT NULL DEFAULT '0' COMMENT '操作类型:1-后台 2-APP',
|
|
|
+ `content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '内容',
|
|
|
+ `ip` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'IP地址',
|
|
|
+ `user_agent` varchar(360) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'User-Agent',
|
|
|
+ `create_user` int UNSIGNED NOT NULL DEFAULT '0' COMMENT '添加人',
|
|
|
+ `create_time` int UNSIGNED NOT NULL DEFAULT '0' COMMENT '添加时间',
|
|
|
+ `update_user` int UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新人',
|
|
|
+ `update_time` int UNSIGNED NOT NULL DEFAULT '0' COMMENT '更新时间',
|
|
|
+ `mark` tinyint UNSIGNED NOT NULL DEFAULT '1' COMMENT '有效标识:1正常 0删除'
|
|
|
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统行为日志表'";
|
|
|
DB::select($sql);
|
|
|
}
|
|
|
return $tbl;
|
|
|
@@ -102,26 +95,11 @@ class ActionLogModel extends BaseModel
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 设置内容
|
|
|
- * @param $content 内容
|
|
|
- * @since 2020/11/10
|
|
|
- * @author laravel开发员
|
|
|
- */
|
|
|
- public static function setRecord($userId, $params)
|
|
|
- {
|
|
|
- self::$recordUserId = $userId;
|
|
|
- self::$module = isset($params['module']) && $params['module']? $params['module'] : 'app';
|
|
|
- self::$recordType = isset($params['type']) && $params['type']? $params['type'] : 1;
|
|
|
- self::$title = isset($params['title'])? $params['title'] : '';
|
|
|
- self::$content = isset($params['content'])? $params['content'] : '';
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
* 创建行为日志
|
|
|
* @author laravel开发员
|
|
|
* @since 2020/11/10
|
|
|
*/
|
|
|
- public static function record($username='')
|
|
|
+ public static function record()
|
|
|
{
|
|
|
if (!self::$title) {
|
|
|
// 操作控制器名
|
|
|
@@ -140,27 +118,28 @@ class ActionLogModel extends BaseModel
|
|
|
}
|
|
|
|
|
|
// 登录用户ID
|
|
|
- if(self::$recordUserId){
|
|
|
- $userInfo = MemberModel::where(['id'=>self::$recordUserId])->select(['id','nickname as username'])->first();
|
|
|
- }else{
|
|
|
- $userId = session('userId');
|
|
|
- $userInfo = UserModel::where(['id'=> $userId])->select(['id','username'])->first();
|
|
|
+ $userId = session('userId');
|
|
|
+ if(empty($userId)){
|
|
|
+ $userId = RedisService::get("caches:admin:".get_client_ip());
|
|
|
}
|
|
|
|
|
|
+ $userModel = new UserModel();
|
|
|
+ $userInfo = $userModel->getInfo($userId);
|
|
|
+
|
|
|
// 日志数据
|
|
|
$data = [
|
|
|
- 'username' => $username? $username : (isset($userInfo['username']) ? $userInfo['username'] : '未知'),
|
|
|
- 'module' => self::$module? self::$module : 'admin',
|
|
|
+ 'username' => isset($userInfo['username']) ? $userInfo['username'] : '未知',
|
|
|
+ 'module' => 'admin',
|
|
|
'action' => request()->path(),
|
|
|
'method' => request()->method(),
|
|
|
'url' => request()->url(true), // 获取完成URL
|
|
|
'param' => request()->all() ? json_encode(request()->all()) : '',
|
|
|
'title' => self::$title ? self::$title : '操作日志',
|
|
|
- 'type' => self::$recordType,
|
|
|
+ 'type' => self::$title == '登录系统' ? 1 : (self::$title == '注销系统' ? 2 : 0),
|
|
|
'content' => self::$content,
|
|
|
'ip' => request()->ip(),
|
|
|
'user_agent' => request()->server('HTTP_USER_AGENT'),
|
|
|
- 'create_user' => empty(session('userId')) ? 0 : session('userId'),
|
|
|
+ 'create_user' => $userId? $userId : 0,
|
|
|
'create_time' => time(),
|
|
|
];
|
|
|
// 日志入库
|