user_router.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. from fastapi import APIRouter, Request
  2. from core.constant import PermissionName
  3. from core.decorators import OperationLog
  4. from core.decorators.auth_decorators import Authorize
  5. from core.enums import BusinessTypeEnum
  6. from domain.dtos import SysUserCreateDto, SysUserUpdateDto, PageDto
  7. from domain.services import SysUserService, get_user_service
  8. user_router = APIRouter(prefix="/user", tags=["系统用户管理"])
  9. @user_router.post("/page", summary="查询用户")
  10. @Authorize(PermissionName.SYS_USER_QUERY)
  11. async def get_users_page(
  12. request: Request,
  13. user_service: SysUserService = get_user_service(),
  14. ):
  15. page_dict = await request.json()
  16. page_dto = PageDto(**page_dict)
  17. users = await user_service.get_page_list(page_dto)
  18. return users
  19. @user_router.post("/create", summary="创建用户")
  20. @Authorize(PermissionName.SYS_USER_CREATE)
  21. @OperationLog(title="创建用户", business_type=BusinessTypeEnum.INSERT)
  22. async def create_user(
  23. request: Request,
  24. user_service: SysUserService = get_user_service(),
  25. ):
  26. user_data = await request.json()
  27. dto = SysUserCreateDto(**user_data)
  28. new_user = await user_service.create_user(dto)
  29. return new_user
  30. @user_router.post("/update", summary="更新用户")
  31. @Authorize(PermissionName.SYS_USER_UPDATE)
  32. @OperationLog(title="更新用户", business_type=BusinessTypeEnum.UPDATE)
  33. async def update_user(
  34. request: Request,
  35. user_service: SysUserService = get_user_service(),
  36. ):
  37. user_data = await request.json()
  38. dto = SysUserUpdateDto(**user_data)
  39. updated_user = await user_service.update_user(dto)
  40. return updated_user
  41. @user_router.post("/delete/{id:int}", summary="删除用户")
  42. @Authorize(PermissionName.SYS_USER_DELETE)
  43. @OperationLog(title="删除用户", business_type=BusinessTypeEnum.DELETE)
  44. async def delete_user(
  45. request: Request,
  46. user_service: SysUserService = get_user_service(),
  47. ):
  48. id = int(request.path_params.get("id"))
  49. await user_service.delete(id)
  50. @user_router.post("/reset-password", summary="重置用户密码")
  51. @Authorize(PermissionName.SYS_USER_RESET_PASSWORD)
  52. @OperationLog(title="重置用户密码", business_type=BusinessTypeEnum.UPDATE)
  53. async def reset_user_password(
  54. request: Request,
  55. user_service: SysUserService = get_user_service(),
  56. ):
  57. data = await request.json()
  58. user_id = data.get("user_id", 0)
  59. new_password = data.get("new_password", "")
  60. await user_service.reset_password(user_id, new_password)
  61. @user_router.post("/unlock/{id:int}", summary="解锁用户")
  62. @Authorize(PermissionName.SYS_USER_UNLOCK)
  63. async def unlock_user(
  64. id: int,
  65. user_service: SysUserService = get_user_service(),
  66. ):
  67. await user_service.unlock_user(id)