// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" const docTemplate = `{ "schemes": {{ marshal .Schemes }}, "swagger": "2.0", "info": { "description": "{{escape .Description}}", "title": "{{.Title}}", "termsOfService": "http://swagger.io/terms/", "contact": { "name": "API Support", "url": "http://www.swagger.io/support", "email": "support@swagger.io" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "{{.Version}}" }, "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { "/aftersales": { "get": { "security": [ { "BearerAuth": [] } ], "description": "支持分页、搜索、按状态/服务类型/工单负责人筛选", "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "获取售后工单列表", "parameters": [ { "type": "integer", "description": "页码", "name": "page", "in": "query" }, { "type": "integer", "description": "每页数量", "name": "limit", "in": "query" }, { "type": "string", "description": "搜索关键词", "name": "search", "in": "query" }, { "type": "string", "description": "工单状态", "name": "workOrderStatus", "in": "query" }, { "type": "string", "description": "服务类型", "name": "serviceType", "in": "query" }, { "type": "integer", "description": "工单负责人 ID", "name": "technicianId", "in": "query" }, { "type": "boolean", "description": "仅查看自己负责的工单", "name": "mine", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.PaginationResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "description": "创建一个新的售后工单并分配编号", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "创建售后工单", "parameters": [ { "description": "工单数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateAftersalesOrderDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "获取售后工单详情", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "删除售后工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "patch": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "更新售后工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "更新数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateAftersalesOrderDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/confirm": { "post": { "description": "客户输入手机号后四位后选择已授权或未授权", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "售后工单查询" ], "summary": "客户授权确认", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "确认数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CustomerConfirmDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/force-close": { "post": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "强制关闭工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/qrcode": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "生成售后工单二维码", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "二维码参数", "name": "data", "in": "body", "schema": { "$ref": "#/definitions/models.QRCodeDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.QRCodeResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/query": { "get": { "produces": [ "application/json" ], "tags": [ "售后工单查询" ], "summary": "公开查询售后工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/reassign": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "重新分配工单负责人", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "新工单负责人 ID", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ReassignAftersalesDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/site-images": { "post": { "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "售后工单查询" ], "summary": "上传售后现场图片", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "type": "file", "description": "现场图片", "name": "files", "in": "formData", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/aftersales/{serialNumber}/submit": { "post": { "security": [ { "BearerAuth": [] } ], "description": "工单负责人填写处理结果后提交,工单进入\"待客户确认\"状态", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "售后工单" ], "summary": "提交客户确认", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "处理结果", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.SubmitForConfirmationDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/auth/change-password": { "post": { "security": [ { "BearerAuth": [] } ], "description": "修改当前登录用户的密码", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "认证" ], "summary": "修改密码", "parameters": [ { "description": "密码修改数据", "name": "passwordData", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ChangePasswordDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/auth/login": { "post": { "description": "验证用户身份并返回 JWT 令牌", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "认证" ], "summary": "用户登录", "parameters": [ { "description": "登录数据", "name": "loginData", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.LoginDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.LoginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/auth/logout": { "post": { "security": [ { "BearerAuth": [] } ], "description": "用户登出(JWT 无状态,前端清理令牌即可)", "produces": [ "application/json" ], "tags": [ "认证" ], "summary": "用户登出", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/auth/profile": { "get": { "security": [ { "BearerAuth": [] } ], "description": "获取当前登录用户的个人信息", "produces": [ "application/json" ], "tags": [ "认证" ], "summary": "获取用户信息", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "put": { "security": [ { "BearerAuth": [] } ], "description": "更新当前登录用户的个人信息", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "认证" ], "summary": "更新用户信息", "parameters": [ { "description": "用户信息更新数据", "name": "profileData", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateProfileDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employee-serials": { "get": { "security": [ { "BearerAuth": [] } ], "description": "获取员工序列号列表,支持分页和搜索", "produces": [ "application/json" ], "tags": [ "员工赋码管理" ], "summary": "获取员工序列号列表", "parameters": [ { "type": "integer", "description": "页码", "name": "page", "in": "query" }, { "type": "integer", "description": "每页数量", "name": "limit", "in": "query" }, { "type": "string", "description": "搜索关键词", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.PaginationResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employee-serials/generate": { "post": { "security": [ { "BearerAuth": [] } ], "description": "生成指定数量的员工序列号(无有效期)", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "员工赋码管理" ], "summary": "生成员工序列号", "parameters": [ { "description": "生成数据", "name": "generateData", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.GenerateEmployeeSerialDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employee-serials/{serialNumber}": { "put": { "security": [ { "BearerAuth": [] } ], "description": "更新指定员工序列号的信息", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "员工赋码管理" ], "summary": "更新员工序列号信息", "parameters": [ { "type": "string", "description": "序列号", "name": "serialNumber", "in": "path", "required": true }, { "description": "更新数据", "name": "updateData", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateEmployeeSerialDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "description": "删除指定员工序列号(物理删除)", "produces": [ "application/json" ], "tags": [ "员工赋码管理" ], "summary": "删除员工序列号", "parameters": [ { "type": "string", "description": "序列号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employee-serials/{serialNumber}/qrcode": { "post": { "security": [ { "BearerAuth": [] } ], "description": "为指定员工序列号生成查询二维码", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "员工赋码管理" ], "summary": "生成员工二维码", "parameters": [ { "type": "string", "description": "序列号", "name": "serialNumber", "in": "path", "required": true }, { "description": "二维码数据", "name": "qrCodeData", "in": "body", "schema": { "$ref": "#/definitions/models.QRCodeDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.QRCodeResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employee-serials/{serialNumber}/query": { "get": { "description": "查询指定员工序列号的详细信息", "produces": [ "application/json" ], "tags": [ "员工赋码查询" ], "summary": "查询员工序列号信息", "parameters": [ { "type": "string", "description": "序列号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employee-serials/{serialNumber}/revoke": { "post": { "security": [ { "BearerAuth": [] } ], "description": "吊销指定员工序列号", "produces": [ "application/json" ], "tags": [ "员工赋码管理" ], "summary": "吊销员工序列号", "parameters": [ { "type": "string", "description": "序列号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employees": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "员工管理" ], "summary": "员工列表", "parameters": [ { "type": "integer", "description": "页码", "name": "page", "in": "query" }, { "type": "integer", "description": "每页数量", "name": "limit", "in": "query" }, { "type": "string", "description": "角色筛选", "name": "role", "in": "query" }, { "type": "string", "description": "搜索", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.PaginationResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "员工管理" ], "summary": "创建员工", "parameters": [ { "description": "员工数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateUserDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employees/{id}": { "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "员工管理" ], "summary": "删除员工", "parameters": [ { "type": "integer", "description": "用户 ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "patch": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "员工管理" ], "summary": "更新员工", "parameters": [ { "type": "integer", "description": "用户 ID", "name": "id", "in": "path", "required": true }, { "description": "更新数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateUserDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/employees/{id}/reset-password": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "员工管理" ], "summary": "重置密码", "parameters": [ { "type": "integer", "description": "用户 ID", "name": "id", "in": "path", "required": true }, { "description": "新密码", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.AdminResetPasswordDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders": { "get": { "security": [ { "BearerAuth": [] } ], "description": "支持分页、搜索、按状态/服务类型/工单负责人筛选", "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "获取项目工单列表", "parameters": [ { "type": "integer", "description": "页码", "name": "page", "in": "query" }, { "type": "integer", "description": "每页数量", "name": "limit", "in": "query" }, { "type": "string", "description": "搜索关键词", "name": "search", "in": "query" }, { "type": "string", "description": "工单状态", "name": "workOrderStatus", "in": "query" }, { "type": "string", "description": "服务类型", "name": "serviceType", "in": "query" }, { "type": "integer", "description": "工单负责人 ID", "name": "technicianId", "in": "query" }, { "type": "boolean", "description": "仅查看自己负责的工单", "name": "mine", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.PaginationResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "post": { "security": [ { "BearerAuth": [] } ], "description": "创建一个新的项目工单并分配编号", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "创建项目工单", "parameters": [ { "description": "工单数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.CreateProjectOrderDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "获取项目工单详情", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "delete": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "删除项目工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } }, "patch": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "更新项目工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "更新数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.UpdateProjectOrderDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/complete": { "post": { "description": "工程师上传现场图片后签字提交,工单进入已完成状态", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "项目工单查询" ], "summary": "工程师提交完成", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "确认数据", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ProjectEngineerCompleteDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/force-close": { "post": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "强制关闭工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/qrcode": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "生成项目工单二维码", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "二维码参数", "name": "data", "in": "body", "schema": { "$ref": "#/definitions/models.QRCodeDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.QRCodeResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/query": { "get": { "produces": [ "application/json" ], "tags": [ "项目工单查询" ], "summary": "公开查询项目工单", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/reassign": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "重新分配工单负责人", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "新工单负责人 ID", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.ReassignProjectOrderDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/site-images": { "post": { "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "项目工单查询" ], "summary": "上传项目现场图片", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "type": "file", "description": "现场图片", "name": "files", "in": "formData", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/project-orders/{serialNumber}/submit": { "post": { "security": [ { "BearerAuth": [] } ], "description": "工单负责人填写处理结果后提交,工单进入\"待完成确认\"状态", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "项目工单" ], "summary": "提交完成确认", "parameters": [ { "type": "string", "description": "工单号", "name": "serialNumber", "in": "path", "required": true }, { "description": "处理结果", "name": "data", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.SubmitProjectCompletionDTO" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/models.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } }, "/users/assignable": { "get": { "security": [ { "BearerAuth": [] } ], "description": "用于工单分配选择可派单人员,无需分页", "produces": [ "application/json" ], "tags": [ "用户管理" ], "summary": "获取可分配用户列表", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/models.DataResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/models.ErrorResponse" } } } } } }, "definitions": { "models.AdminResetPasswordDTO": { "type": "object", "required": [ "newPassword" ], "properties": { "newPassword": { "type": "string", "minLength": 6 } } }, "models.BaseResponse": { "type": "object", "properties": { "message": { "type": "string" } } }, "models.ChangePasswordDTO": { "type": "object", "required": [ "currentPassword", "newPassword" ], "properties": { "currentPassword": { "type": "string" }, "newPassword": { "type": "string", "minLength": 6 } } }, "models.Company": { "type": "object", "properties": { "companyName": { "type": "string" }, "createdAt": { "type": "string" }, "id": { "type": "integer" }, "isActive": { "type": "boolean" }, "updatedAt": { "type": "string" } } }, "models.CreateAftersalesOrderDTO": { "type": "object", "required": [ "companyAddress", "companyName", "contactName", "contactPhone", "issueDescription", "serviceType" ], "properties": { "companyAddress": { "type": "string" }, "companyName": { "type": "string" }, "contactName": { "type": "string" }, "contactPhone": { "type": "string" }, "issueDescription": { "type": "string" }, "serviceType": { "type": "string", "enum": [ "software", "hardware", "maintenance" ] }, "technicianId": { "type": "integer" } } }, "models.CreateProjectOrderDTO": { "type": "object", "required": [ "companyAddress", "companyName", "contactName", "contactPhone", "projectType", "siteDescription" ], "properties": { "companyAddress": { "type": "string" }, "companyName": { "type": "string" }, "contactName": { "type": "string" }, "contactPhone": { "type": "string" }, "projectType": { "type": "string", "enum": [ "survey", "implementation", "maintenance", "other" ] }, "siteDescription": { "type": "string" }, "technicianId": { "type": "integer" } } }, "models.CreateUserDTO": { "type": "object", "required": [ "employeeNo", "name", "phone", "position", "role" ], "properties": { "email": { "type": "string" }, "employeeNo": { "type": "string" }, "name": { "type": "string" }, "password": { "type": "string" }, "phone": { "type": "string" }, "position": { "type": "string" }, "role": { "type": "string", "enum": [ "software_engineer", "hardware_engineer", "business_manager", "project_manager" ] }, "username": { "type": "string" } } }, "models.CustomerConfirmDTO": { "type": "object", "required": [ "action" ], "properties": { "action": { "type": "string", "enum": [ "authorize", "reject" ] }, "rejectReason": { "type": "string" }, "responsibleSignature": { "type": "string" }, "signature": { "type": "string" } } }, "models.DataResponse": { "type": "object", "properties": { "data": {}, "message": { "type": "string" } } }, "models.EmployeeSerial": { "type": "object", "properties": { "company": { "$ref": "#/definitions/models.Company" }, "companyName": { "type": "string" }, "createdAt": { "type": "string" }, "createdBy": { "type": "integer" }, "employee": { "$ref": "#/definitions/models.User" }, "employeeId": { "type": "integer" }, "employeeName": { "type": "string" }, "id": { "type": "integer" }, "isActive": { "type": "boolean" }, "position": { "type": "string" }, "serialNumber": { "type": "string" }, "updatedAt": { "type": "string" }, "user": { "$ref": "#/definitions/models.User" } } }, "models.ErrorResponse": { "type": "object", "properties": { "error": { "type": "string" }, "message": { "type": "string" } } }, "models.GenerateEmployeeSerialDTO": { "type": "object", "required": [ "companyName", "employeeName", "position" ], "properties": { "companyName": { "type": "string" }, "employeeName": { "type": "string" }, "position": { "type": "string" }, "quantity": { "type": "integer", "maximum": 1000, "minimum": 1 }, "serialPrefix": { "type": "string" } } }, "models.LoginDTO": { "type": "object", "required": [ "password", "username" ], "properties": { "password": { "type": "string", "minLength": 6 }, "username": { "type": "string" } } }, "models.LoginResponse": { "type": "object", "properties": { "accessToken": { "type": "string" }, "message": { "type": "string" }, "user": { "$ref": "#/definitions/models.UserDTO" } } }, "models.Pagination": { "type": "object", "properties": { "limit": { "type": "integer" }, "page": { "type": "integer" }, "total": { "type": "integer" }, "totalPages": { "type": "integer" } } }, "models.PaginationResponse": { "type": "object", "properties": { "data": {}, "message": { "type": "string" }, "pagination": { "$ref": "#/definitions/models.Pagination" } } }, "models.ProjectEngineerCompleteDTO": { "type": "object", "required": [ "engineerSignature" ], "properties": { "completionNote": { "type": "string" }, "engineerSignature": { "type": "string" } } }, "models.QRCodeDTO": { "type": "object", "properties": { "baseUrl": { "type": "string" } } }, "models.QRCodeResponse": { "type": "object", "properties": { "message": { "type": "string" }, "qrCodeData": { "type": "string" }, "queryUrl": { "type": "string" } } }, "models.ReassignAftersalesDTO": { "type": "object", "required": [ "technicianId" ], "properties": { "technicianId": { "type": "integer" } } }, "models.ReassignProjectOrderDTO": { "type": "object", "required": [ "technicianId" ], "properties": { "technicianId": { "type": "integer" } } }, "models.SubmitForConfirmationDTO": { "type": "object", "required": [ "resolutionNote" ], "properties": { "resolutionNote": { "type": "string" } } }, "models.SubmitProjectCompletionDTO": { "type": "object", "required": [ "completionNote" ], "properties": { "completionNote": { "type": "string" } } }, "models.UpdateAftersalesOrderDTO": { "type": "object", "properties": { "companyAddress": { "type": "string" }, "contactName": { "type": "string" }, "contactPhone": { "type": "string" }, "issueDescription": { "type": "string" }, "resolutionNote": { "type": "string" }, "serviceType": { "type": "string", "enum": [ "software", "hardware", "maintenance" ] }, "technicianId": { "type": "integer" } } }, "models.UpdateEmployeeSerialDTO": { "type": "object", "properties": { "companyName": { "type": "string" }, "employeeName": { "type": "string" }, "isActive": { "type": "boolean" }, "position": { "type": "string" } } }, "models.UpdateProfileDTO": { "type": "object", "required": [ "email", "name" ], "properties": { "email": { "type": "string" }, "name": { "type": "string" } } }, "models.UpdateProjectOrderDTO": { "type": "object", "properties": { "companyAddress": { "type": "string" }, "completionNote": { "type": "string" }, "contactName": { "type": "string" }, "contactPhone": { "type": "string" }, "projectType": { "type": "string", "enum": [ "survey", "implementation", "maintenance", "other" ] }, "siteDescription": { "type": "string" }, "technicianId": { "type": "integer" } } }, "models.UpdateUserDTO": { "type": "object", "properties": { "email": { "type": "string" }, "employeeNo": { "type": "string" }, "name": { "type": "string" }, "phone": { "type": "string" }, "position": { "type": "string" }, "role": { "type": "string", "enum": [ "software_engineer", "hardware_engineer", "business_manager", "project_manager" ] } } }, "models.User": { "type": "object", "properties": { "createdAt": { "type": "string" }, "email": { "type": "string" }, "employeeNo": { "type": "string" }, "employeeSerials": { "type": "array", "items": { "$ref": "#/definitions/models.EmployeeSerial" } }, "id": { "type": "integer" }, "name": { "type": "string" }, "phone": { "type": "string" }, "position": { "type": "string" }, "role": { "type": "string" }, "updatedAt": { "type": "string" }, "username": { "type": "string" } } }, "models.UserDTO": { "type": "object", "properties": { "createdAt": { "type": "string" }, "email": { "type": "string" }, "employeeNo": { "type": "string" }, "employeeSerials": { "type": "array", "items": { "$ref": "#/definitions/models.EmployeeSerial" } }, "id": { "type": "integer" }, "name": { "type": "string" }, "phone": { "type": "string" }, "position": { "type": "string" }, "role": { "type": "string" }, "username": { "type": "string" } } } }, "securityDefinitions": { "BearerAuth": { "description": "Bearer token 认证", "type": "apiKey", "name": "Authorization", "in": "header" } } }` // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0", Host: "localhost:8080", BasePath: "/api", Schemes: []string{}, Title: "Trace System API", Description: "防伪溯源系统 API 文档", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", RightDelim: "}}", } func init() { swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) }