user_views.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. """
  2. user - mobile user views
  3. auther: tanlie
  4. date: 2026/8/30
  5. """
  6. import logging
  7. from fastapi import APIRouter, Body, Query, Depends
  8. from sqlalchemy.orm import Session
  9. from app.core.db import get_db
  10. from app.core.response import success_response, error_response
  11. from app.mobile.req.user import UserLoginReq
  12. from app.models.user import User
  13. api = APIRouter(prefix="/dgapi/mobile/user", tags=["mobile user"])
  14. logger = logging.getLogger("app")
  15. @api.get("/login/captcha", summary="获取验证码")
  16. def get_captcha(type: int = Query(default=1, description="验证码类型,1:登录验证码,2:注册验证码")):
  17. logger.info("获取验证码,type=%s", type)
  18. return success_response(data={"type": type}, msg="获取验证码成功")
  19. @api.post("/login", summary="登录")
  20. def login(req: UserLoginReq):
  21. logger.info("用户登录,请求参数:%s", req)
  22. return success_response(data={"user": req.model_dump()}, msg="登录成功")
  23. @api.post("/logout", summary="登出")
  24. def logout(userId: int = Body(description="用户ID")):
  25. logger.info("用户登出,userId=%s", userId)
  26. return success_response(data={"userId": userId}, msg="退出成功")
  27. @api.get("/wish-summary", summary="心愿单摘要")
  28. def wish_summary():
  29. logger.info("获取心愿单摘要")
  30. return success_response(data={"wish_summary": "心愿单"}, msg="查询成功")
  31. @api.get("/userinfo", summary="获取用户信息")
  32. def get_userinfo(userId: int = Query(description="用户ID"), db: Session = Depends(get_db)):
  33. """查询数据库并返回用户信息"""
  34. logger.info("获取用户信息,userId=%s", userId)
  35. res = db.query(User).filter(User.id == userId).first()
  36. if not res:
  37. return error_response(msg="用户不存在", code=404)
  38. data = {
  39. "id": res.id,
  40. "username": res.username,
  41. "mobile": res.mobile,
  42. "email": res.email,
  43. "createdAt": res.created_at.isoformat() if res.created_at is not None else None,
  44. }
  45. return success_response(data=data, msg="查询成功")