This commit is contained in:
刘正航
2026-04-21 22:45:19 +08:00
commit b5237f9038
159 changed files with 7769 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
from flask import Blueprint, request
from flask_jwt_extended import jwt_required
from app.extensions import db
from app.models import User
from app.utils.auth import current_user
from app.utils.response import fail, ok
user_bp = Blueprint("user", __name__)
@user_bp.get("/profile")
@jwt_required()
def get_profile():
user = current_user()
if not user:
return fail("用户不存在", 404)
return ok(user.to_dict())
@user_bp.put("/profile")
@jwt_required()
def update_profile():
user = current_user()
if not user:
return fail("用户不存在", 404)
payload = request.get_json(silent=True) or {}
if "nickname" in payload:
user.nickname = (payload.get("nickname") or user.nickname).strip() or user.nickname
if "company" in payload:
user.company = (payload.get("company") or "").strip()
if "title" in payload:
user.title = (payload.get("title") or "").strip()
if "phone" in payload:
user.phone = (payload.get("phone") or "").strip()
new_password = payload.get("password")
if new_password:
if len(new_password) < 6:
return fail("新密码至少6位", 400)
user.set_password(new_password)
db.session.commit()
return ok(user.to_dict(), "个人信息更新成功")
@user_bp.get("/search")
@jwt_required()
def search_users():
keyword = (request.args.get("keyword") or "").strip()
if not keyword:
return ok([])
users = (
User.query.filter(User.username.like(f"%{keyword}%") | User.nickname.like(f"%{keyword}%"))
.order_by(User.id.desc())
.limit(20)
.all()
)
return ok([item.to_dict() for item in users])