components: schemas: ModelAccountPageResult: properties: items: description: 账号列表 items: $ref: '#/components/schemas/ModelAccountResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object ModelAccountResponse: properties: created_at: description: 创建时间 type: string creator: description: 创建人ID minimum: 0 type: integer id: description: 账号ID minimum: 0 type: integer parent_id: description: 父账号ID minimum: 0 nullable: true type: integer phone: description: 手机号 type: string shop_id: description: 关联店铺ID minimum: 0 nullable: true type: integer status: description: 状态 type: integer updated_at: description: 更新时间 type: string updater: description: 更新人ID minimum: 0 type: integer user_type: description: 用户类型 type: integer username: description: 用户名 type: string type: object ModelAssignPermissionsParams: properties: perm_ids: description: 权限ID列表 items: minimum: 0 type: integer minItems: 1 nullable: true type: array required: - perm_ids type: object ModelAssignRolesParams: properties: role_ids: description: 角色ID列表 items: minimum: 0 type: integer minItems: 1 nullable: true type: array required: - role_ids type: object ModelCreateAccountRequest: properties: parent_id: description: 父账号ID minimum: 0 nullable: true type: integer password: description: 密码 maxLength: 32 minLength: 8 type: string phone: description: 手机号 maxLength: 11 minLength: 11 type: string shop_id: description: 关联店铺ID minimum: 0 nullable: true type: integer user_type: description: 用户类型 (1:Root, 2:Admin, 3:Agent, 4:Merchant) maximum: 4 minimum: 1 type: integer username: description: 用户名 maxLength: 50 minLength: 3 type: string required: - username - phone - password - user_type type: object ModelCreatePermissionRequest: properties: parent_id: description: 父权限ID minimum: 0 nullable: true type: integer perm_code: description: 权限编码 maxLength: 100 minLength: 1 type: string perm_name: description: 权限名称 maxLength: 50 minLength: 1 type: string perm_type: description: 权限类型 (1:菜单, 2:按钮) maximum: 2 minimum: 1 type: integer sort: description: 排序值 minimum: 0 type: integer url: description: 请求路径 maxLength: 255 type: string required: - perm_name - perm_code - perm_type type: object ModelCreateRoleRequest: properties: role_desc: description: 角色描述 maxLength: 255 type: string role_name: description: 角色名称 maxLength: 50 minLength: 1 type: string role_type: description: 角色类型 (1:超级管理员, 2:普通管理员, 3:操作员) maximum: 3 minimum: 1 type: integer required: - role_name - role_type type: object ModelPermission: properties: creator: minimum: 0 type: integer parent_id: minimum: 0 nullable: true type: integer perm_code: type: string perm_name: type: string perm_type: type: integer sort: type: integer status: type: integer updater: minimum: 0 type: integer url: type: string type: object ModelPermissionPageResult: properties: items: description: 权限列表 items: $ref: '#/components/schemas/ModelPermissionResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object ModelPermissionResponse: properties: created_at: description: 创建时间 type: string creator: description: 创建人ID minimum: 0 type: integer id: description: 权限ID minimum: 0 type: integer parent_id: description: 父权限ID minimum: 0 nullable: true type: integer perm_code: description: 权限编码 type: string perm_name: description: 权限名称 type: string perm_type: description: 权限类型 type: integer sort: description: 排序值 type: integer status: description: 状态 type: integer updated_at: description: 更新时间 type: string updater: description: 更新人ID minimum: 0 type: integer url: description: 请求路径 type: string type: object ModelPermissionTreeNode: properties: children: description: 子权限列表 items: $ref: '#/components/schemas/ModelPermissionTreeNode' type: array id: description: 权限ID minimum: 0 type: integer perm_code: description: 权限编码 type: string perm_name: description: 权限名称 type: string perm_type: description: 权限类型 type: integer sort: description: 排序值 type: integer url: description: 请求路径 type: string type: object ModelRole: properties: creator: minimum: 0 type: integer role_desc: type: string role_name: type: string role_type: type: integer status: type: integer updater: minimum: 0 type: integer type: object ModelRolePageResult: properties: items: description: 角色列表 items: $ref: '#/components/schemas/ModelRoleResponse' nullable: true type: array page: description: 当前页码 type: integer size: description: 每页数量 type: integer total: description: 总记录数 type: integer type: object ModelRoleResponse: properties: created_at: description: 创建时间 type: string creator: description: 创建人ID minimum: 0 type: integer id: description: 角色ID minimum: 0 type: integer role_desc: description: 角色描述 type: string role_name: description: 角色名称 type: string role_type: description: 角色类型 type: integer status: description: 状态 type: integer updated_at: description: 更新时间 type: string updater: description: 更新人ID minimum: 0 type: integer type: object ModelUpdateAccountParams: properties: password: description: 密码 maxLength: 32 minLength: 8 nullable: true type: string phone: description: 手机号 maxLength: 11 minLength: 11 nullable: true type: string status: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer username: description: 用户名 maxLength: 50 minLength: 3 nullable: true type: string type: object ModelUpdatePermissionParams: properties: parent_id: description: 父权限ID minimum: 0 nullable: true type: integer perm_code: description: 权限编码 maxLength: 100 minLength: 1 nullable: true type: string perm_name: description: 权限名称 maxLength: 50 minLength: 1 nullable: true type: string sort: description: 排序值 minimum: 0 nullable: true type: integer status: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer url: description: 请求路径 maxLength: 255 nullable: true type: string type: object ModelUpdateRoleParams: properties: role_desc: description: 角色描述 maxLength: 255 nullable: true type: string role_name: description: 角色名称 maxLength: 50 minLength: 1 nullable: true type: string status: description: 状态 (0:禁用, 1:启用) maximum: 1 minimum: 0 nullable: true type: integer type: object info: title: Admin API version: "1.0" openapi: 3.0.3 paths: /api/admin/accounts: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 用户名模糊查询 in: query name: username schema: description: 用户名模糊查询 maxLength: 50 type: string - description: 手机号模糊查询 in: query name: phone schema: description: 手机号模糊查询 maxLength: 20 type: string - description: 用户类型 in: query name: user_type schema: description: 用户类型 maximum: 4 minimum: 1 nullable: true type: integer - description: 状态 in: query name: status schema: description: 状态 maximum: 1 minimum: 0 nullable: true type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelAccountPageResult' description: OK summary: 账号列表 tags: - Account post: requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelCreateAccountRequest' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelAccountResponse' description: OK summary: 创建账号 tags: - Account /api/admin/accounts/{account_id}/roles/{role_id}: delete: parameters: - description: 账号ID in: path name: account_id required: true schema: description: 账号ID minimum: 0 type: integer - description: 角色ID in: path name: role_id required: true schema: description: 角色ID minimum: 0 type: integer responses: "204": description: No Content summary: 移除角色 tags: - Account /api/admin/accounts/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "204": description: No Content summary: 删除账号 tags: - Account get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelAccountResponse' description: OK summary: 获取账号详情 tags: - Account put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelUpdateAccountParams' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelAccountResponse' description: OK summary: 更新账号 tags: - Account /api/admin/accounts/{id}/roles: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ModelRole' type: array description: OK summary: 获取账号角色 tags: - Account post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelAssignRolesParams' responses: "204": description: No Content summary: 分配角色 tags: - Account /api/admin/permissions: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 权限名称模糊查询 in: query name: perm_name schema: description: 权限名称模糊查询 maxLength: 50 type: string - description: 权限编码模糊查询 in: query name: perm_code schema: description: 权限编码模糊查询 maxLength: 100 type: string - description: 权限类型 in: query name: perm_type schema: description: 权限类型 maximum: 2 minimum: 1 nullable: true type: integer - description: 父权限ID in: query name: parent_id schema: description: 父权限ID minimum: 0 nullable: true type: integer - description: 状态 in: query name: status schema: description: 状态 maximum: 1 minimum: 0 nullable: true type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelPermissionPageResult' description: OK summary: 权限列表 tags: - Permission post: requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelCreatePermissionRequest' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelPermissionResponse' description: OK summary: 创建权限 tags: - Permission /api/admin/permissions/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "204": description: No Content summary: 删除权限 tags: - Permission get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelPermissionResponse' description: OK summary: 获取权限详情 tags: - Permission put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelUpdatePermissionParams' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelPermissionResponse' description: OK summary: 更新权限 tags: - Permission /api/admin/permissions/tree: get: responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ModelPermissionTreeNode' type: array description: OK summary: 获取权限树 tags: - Permission /api/admin/roles: get: parameters: - description: 页码 in: query name: page schema: description: 页码 minimum: 1 type: integer - description: 每页数量 in: query name: page_size schema: description: 每页数量 maximum: 100 minimum: 1 type: integer - description: 角色名称模糊查询 in: query name: role_name schema: description: 角色名称模糊查询 maxLength: 50 type: string - description: 角色类型 in: query name: role_type schema: description: 角色类型 maximum: 3 minimum: 1 nullable: true type: integer - description: 状态 in: query name: status schema: description: 状态 maximum: 1 minimum: 0 nullable: true type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelRolePageResult' description: OK summary: 角色列表 tags: - Role post: requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelCreateRoleRequest' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelRoleResponse' description: OK summary: 创建角色 tags: - Role /api/admin/roles/{id}: delete: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "204": description: No Content summary: 删除角色 tags: - Role get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelRoleResponse' description: OK summary: 获取角色详情 tags: - Role put: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelUpdateRoleParams' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ModelRoleResponse' description: OK summary: 更新角色 tags: - Role /api/admin/roles/{id}/permissions: get: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/ModelPermission' type: array description: OK summary: 获取角色权限 tags: - Role post: parameters: - description: ID in: path name: id required: true schema: description: ID minimum: 0 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/ModelAssignPermissionsParams' responses: "204": description: No Content summary: 分配权限 tags: - Role /api/admin/roles/{role_id}/permissions/{perm_id}: delete: parameters: - description: 角色ID in: path name: role_id required: true schema: description: 角色ID minimum: 0 type: integer - description: 权限ID in: path name: perm_id required: true schema: description: 权限ID minimum: 0 type: integer responses: "204": description: No Content summary: 移除权限 tags: - Role