初始化技术博客项目
功能特性: - 前端文章展示 (Markdown渲染、代码高亮) - 后台管理系统 (文章、分类、标签、作者管理) - 图片上传 (点击、拖拽、粘贴) - 网站设置 (Logo、底部宣传图片上传) - 访问统计 (IP记录、趋势图表) - 参考来源、附件支持 - 单端口部署 (16012) 技术栈: - Flask 3.0 + SQLAlchemy - SQLite数据库 - marked.js + highlight.js (Markdown渲染) - Chart.js (统计图表)
This commit is contained in:
48
app/services/admin_service.py
Normal file
48
app/services/admin_service.py
Normal file
@@ -0,0 +1,48 @@
|
||||
"""管理员服务"""
|
||||
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
|
||||
Reference in New Issue
Block a user