47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
|
#!/usr/bin/env python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
import json
|
|||
|
import traceback
|
|||
|
|
|||
|
from dataSource import DataSource
|
|||
|
|
|||
|
|
|||
|
class OperationLog:
|
|||
|
def __init__(self, host='localhost', port=3306, username=None, password=None, database=None):
|
|||
|
self.db = DataSource(host, port, username, password, database)
|
|||
|
|
|||
|
def log(self, token, desc="", data=None, username=""):
|
|||
|
"""
|
|||
|
记录用户操作
|
|||
|
:param token: 令牌(用户名和令牌不可同时有值)
|
|||
|
:param desc: 操作描述
|
|||
|
:param data: 操作数据
|
|||
|
:param username: 用户名(用户名和令牌不可同时有值)
|
|||
|
"""
|
|||
|
try:
|
|||
|
if data is None:
|
|||
|
data = {}
|
|||
|
if "" == token:
|
|||
|
sql_insert = 'INSERT INTO LOG_OPERATION (username, operationContent, operationData) VALUES ("' + username + '", "' + desc + '", ' + json.dumps(
|
|||
|
json.dumps(data)) + ')'
|
|||
|
else:
|
|||
|
sql = 'SELECT * FROM USER WHERE `password`="' + token + '"'
|
|||
|
user_info = self.db.fetchone(sql)
|
|||
|
sql_insert = 'INSERT INTO LOG_OPERATION (username, operationContent, operationData) VALUES ("' + \
|
|||
|
user_info["username"] + '", "' + desc + '", ' + json.dumps(json.dumps(data)) + ')'
|
|||
|
self.db.execute(sql=sql_insert)
|
|||
|
except Exception as e:
|
|||
|
traceback.print_exc()
|
|||
|
|
|||
|
def list_log(self, username=""):
|
|||
|
"""
|
|||
|
获取用户操作列表集合
|
|||
|
:param username: 根据用户名查看对应操作记录
|
|||
|
:return:
|
|||
|
"""
|
|||
|
if username is None or username == "":
|
|||
|
sql = 'SELECT * FROM LOG_OPERATION'
|
|||
|
else:
|
|||
|
sql = 'SELECT * FROM LOG_OPERATION WHERE username="' + username + '"'
|
|||
|
return self.db.fetchall(sql)
|