修改登录,实现中文名称显示,以及修改登录逻辑
This commit is contained in:
@ -2,27 +2,25 @@
|
||||
from app.extensions import db
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
from datetime import datetime
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
|
||||
class SysUser(db.Model):
|
||||
"""
|
||||
系统用户表
|
||||
对应数据库: sys_user
|
||||
username 字段存储格式约定: "真实姓名/登录账号" (例如: 张三/zhangsan)
|
||||
"""
|
||||
__tablename__ = 'sys_user'
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
username = db.Column(db.String(100), nullable=False)
|
||||
username = db.Column(db.String(100), nullable=False) # 存储 "张三/zhangsan"
|
||||
email = db.Column(db.String(100), unique=True)
|
||||
department = db.Column(db.String(100))
|
||||
role = db.Column(db.String(50)) # 存储 UserRole 的值,如 'SUPER_ADMIN'
|
||||
role = db.Column(db.String(50))
|
||||
status = db.Column(db.String(20), default='active')
|
||||
password_hash = db.Column(db.Text)
|
||||
|
||||
# [关键] 对应数据库的 created_at 字段
|
||||
# 如果数据库报错 column not found,请务必执行 SQL: ALTER TABLE sys_user ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
|
||||
created_at = db.Column(db.DateTime, server_default=func.now(), default=datetime.now)
|
||||
# created_at 已在数据库脚本中移除,此处不再定义
|
||||
|
||||
def set_password(self, password):
|
||||
"""生成加密密码"""
|
||||
@ -33,15 +31,34 @@ class SysUser(db.Model):
|
||||
return check_password_hash(self.password_hash, password)
|
||||
|
||||
def to_dict(self):
|
||||
"""序列化为字典,供接口返回使用"""
|
||||
"""
|
||||
序列化为字典
|
||||
数据库存的是 '张三/zhangsan'
|
||||
前端需要的是 '张三(zhangsan)'
|
||||
"""
|
||||
raw_name = self.username
|
||||
display_name = raw_name
|
||||
account_id = raw_name
|
||||
|
||||
# 解析存储格式: Name/ID
|
||||
if '/' in raw_name:
|
||||
parts = raw_name.split('/')
|
||||
real_name = parts[0]
|
||||
acc_id = parts[1]
|
||||
# 格式化为前端展示格式: 张三(zhangsan)
|
||||
display_name = f"{real_name}({acc_id})"
|
||||
# 单独提取账号ID (如果前端需要单独用)
|
||||
account_id = acc_id
|
||||
|
||||
return {
|
||||
'id': self.id,
|
||||
'username': self.username,
|
||||
'username': display_name, # 列表显示: 张三(zhangsan)
|
||||
'raw_username': self.username, # 原始数据
|
||||
'account_id': account_id, # 纯账号ID: zhangsan
|
||||
'email': self.email,
|
||||
'department': self.department,
|
||||
'role': self.role,
|
||||
'status': self.status,
|
||||
'created_at': self.created_at.strftime('%Y-%m-%d %H:%M:%S') if self.created_at else ''
|
||||
'status': self.status
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user