"""管理员服务""" from datetime import datetime from app import db from app.models import Admin class AdminService: """管理员业务逻辑""" @staticmethod def authenticate(username, password): """验证管理员登录""" admin = Admin.query.filter_by(username=username).first() if admin and admin.is_active and admin.check_password(password): # 更新最后登录时间 admin.last_login = datetime.utcnow() db.session.commit() return admin return None @staticmethod def get_by_id(admin_id): """通过ID获取管理员""" return Admin.query.get(admin_id) @staticmethod def get_by_username(username): """通过用户名获取管理员""" return Admin.query.filter_by(username=username).first() @staticmethod def create(username, password, email=None): """创建管理员""" admin = Admin(username=username, email=email) admin.set_password(password) db.session.add(admin) db.session.commit() return admin @staticmethod def update_password(admin_id, old_password, new_password): """更新密码""" admin = Admin.query.get(admin_id) if admin and admin.check_password(old_password): admin.set_password(new_password) db.session.commit() return True return False