https://api.inno-res-comp.edu.cn/v1
所有API响应均采用以下JSON格式:
{
"code": 200,
"message": "success",
"data": {},
"timestamp": "2024-01-01T12:00:00Z",
"requestId": "uuid"
}
{
"code": 200,
"message": "success",
"data": {
"list": [],
"pagination": {
"page": 1,
"size": 20,
"total": 100,
"pages": 5
}
}
}
Content-Type: application/json
Authorization: Bearer {token}
X-Request-ID: {uuid}
X-Client-Version: 1.0.0
统一使用ISO 8601格式:2024-01-01T12:00:00Z
page
: 页码,从1开始size
: 每页大小,默认20,最大100sort
: 排序字段,格式:field,direction
(如:createdAt,desc
)POST /auth/login
Content-Type: application/json
{
"username": "string",
"password": "string",
"captcha": "string",
"captchaId": "string"
}
响应:
{
"code": 200,
"message": "登录成功",
"data": {
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "eyJhbGciOiJIUzI1NiIs...",
"expiresIn": 7200,
"user": {
"id": 1,
"username": "admin",
"realName": "管理员",
"email": "admin@example.com",
"roles": ["ADMIN"],
"permissions": ["*"]
}
}
}
POST /auth/refresh
Content-Type: application/json
{
"refreshToken": "string"
}
POST /auth/logout
Authorization: Bearer {token}
GET /users?page=1&size=20&keyword=&departmentId=&status=
Authorization: Bearer {token}
查询参数:
keyword
: 关键词搜索(用户名、姓名、邮箱)departmentId
: 部门IDstatus
: 用户状态(0-禁用,1-启用)响应:
{
"code": 200,
"data": {
"list": [
{
"id": 1,
"username": "student001",
"realName": "张三",
"email": "zhangsan@example.com",
"phone": "13800138000",
"department": {
"id": 1,
"name": "计算机学院"
},
"roles": ["STUDENT"],
"status": 1,
"lastLoginTime": "2024-01-01T12:00:00Z",
"createdAt": "2024-01-01T10:00:00Z"
}
],
"pagination": {
"page": 1,
"size": 20,
"total": 100,
"pages": 5
}
}
}
GET /users/{id}
Authorization: Bearer {token}
POST /users
Authorization: Bearer {token}
Content-Type: application/json
{
"username": "string",
"password": "string",
"realName": "string",
"email": "string",
"phone": "string",
"departmentId": 1,
"roleIds": [1, 2],
"gender": 1,
"birthDate": "1990-01-01"
}
PUT /users/{id}
Authorization: Bearer {token}
Content-Type: application/json
{
"realName": "string",
"email": "string",
"phone": "string",
"departmentId": 1,
"status": 1
}
DELETE /users/{id}
Authorization: Bearer {token}
POST /users/{id}/reset-password
Authorization: Bearer {token}
Content-Type: application/json
{
"newPassword": "string"
}
GET /roles?page=1&size=20
Authorization: Bearer {token}
POST /roles
Authorization: Bearer {token}
Content-Type: application/json
{
"roleName": "string",
"roleCode": "string",
"description": "string",
"permissions": ["permission1", "permission2"]
}
PUT /roles/{id}
Authorization: Bearer {token}
DELETE /roles/{id}
Authorization: Bearer {token}
GET /departments/tree
Authorization: Bearer {token}
POST /departments
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "string",
"code": "string",
"parentId": 0,
"managerId": 1,
"description": "string"
}
GET /enterprises?page=1&size=20&keyword=&industry=&enterpriseType=
Authorization: Bearer {token}
查询参数:
keyword
: 企业名称关键词industry
: 所属行业enterpriseType
: 企业类型(1-国企,2-民企,3-外企,4-合资)POST /enterprises
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "string",
"shortName": "string",
"unifiedSocialCreditCode": "string",
"enterpriseType": 1,
"industry": "string",
"scale": 1,
"contactPerson": "string",
"contactPhone": "string",
"contactEmail": "string",
"address": "string",
"website": "string",
"businessScope": "string",
"tags": ["技术领域1", "设备类型1"]
}
POST /enterprises/match-recommendations
Authorization: Bearer {token}
Content-Type: application/json
{
"departmentId": 1,
"technicalFields": ["AI", "大数据"],
"cooperationType": 1,
"budgetRange": [10000, 100000]
}
响应:
{
"code": 200,
"data": {
"recommendations": [
{
"enterprise": {
"id": 1,
"name": "科技公司A",
"industry": "人工智能"
},
"matchScore": 8.5,
"matchReasons": ["技术领域匹配", "合作历史良好"],
"cooperationPotential": "高"
}
],
"heatMap": {
"demandSupplyGap": {
"AI": 0.8,
"大数据": 0.6
}
}
}
}
GET /cooperation-projects?page=1&size=20&projectType=&progressStatus=&enterpriseId=
Authorization: Bearer {token}
POST /cooperation-projects
Authorization: Bearer {token}
Content-Type: application/json
{
"projectName": "string",
"projectCode": "string",
"enterpriseId": 1,
"departmentId": 1,
"projectType": 1,
"cooperationMode": 1,
"projectLeaderId": 1,
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"budget": 100000,
"projectDescription": "string",
"objectives": "string",
"deliverables": "string"
}
PUT /cooperation-projects/{id}/progress
Authorization: Bearer {token}
Content-Type: application/json
{
"progressStatus": 2,
"progressPercentage": 50,
"progressDescription": "string",
"nextMilestone": "string",
"riskAssessment": "string"
}
GET /cooperation-projects/{id}/progress-dashboard
Authorization: Bearer {token}
响应:
{
"code": 200,
"data": {
"administrativeProgress": {
"percentage": 60,
"milestones": [
{
"name": "合同签署",
"status": "completed",
"completedAt": "2024-01-15T10:00:00Z"
}
]
},
"academicProgress": {
"percentage": 45,
"milestones": [
{
"name": "需求分析",
"status": "in_progress",
"expectedAt": "2024-02-01T10:00:00Z"
}
]
},
"financialProgress": {
"percentage": 30,
"budgetUsed": 30000,
"budgetTotal": 100000,
"milestones": [
{
"name": "首期款项",
"status": "completed",
"amount": 30000
}
]
},
"riskWarnings": [
{
"level": "medium",
"message": "学术进度略有延迟",
"suggestion": "建议增加人力投入"
}
]
}
}
POST /tech-maturity-assessments
Authorization: Bearer {token}
Content-Type: application/json
{
"projectId": 1,
"technologyReadinessLevel": 5,
"marketReadinessScore": 7.5,
"commercialPotentialScore": 8.0,
"riskLevel": 2,
"assessmentContent": "string",
"improvementSuggestions": "string",
"nextMilestone": "string"
}
GET /tech-maturity-assessments?projectId=1
Authorization: Bearer {token}
POST /roadshow-matches/auto-match
Authorization: Bearer {token}
Content-Type: application/json
{
"projectId": 1,
"investmentStage": "A轮",
"fundingAmount": 5000000,
"industryPreference": ["人工智能", "大数据"]
}
POST /roadshow-matches
Authorization: Bearer {token}
Content-Type: application/json
{
"projectId": 1,
"investorType": 2,
"investorName": "string",
"contactPerson": "string",
"contactInfo": "string",
"roadshowDate": "2024-02-01T14:00:00Z"
}
GET /competitions?page=1&size=20&competitionType=&level=&year=&status=
Authorization: Bearer {token}
POST /competitions
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "string",
"englishName": "string",
"competitionCode": "string",
"competitionType": 1,
"level": 2,
"category": "string",
"organizer": "string",
"competitionYear": 2024,
"registrationStartDate": "2024-03-01",
"registrationEndDate": "2024-03-31",
"competitionStartDate": "2024-04-01",
"competitionEndDate": "2024-04-30",
"venue": "string",
"description": "string",
"prizeSetting": "string",
"maxTeamSize": 5
}
POST /awards
Authorization: Bearer {token}
Content-Type: multipart/form-data
{
"competitionId": 1,
"awardName": "string",
"awardLevel": 2,
"teamName": "string",
"isTeam": 1,
"teamLeaderId": 1,
"teamMembers": [2, 3, 4],
"instructorId": 5,
"workTitle": "string",
"workDescription": "string",
"certificateNumber": "string",
"awardDate": "2024-04-30",
"certificate": "file",
"supportingMaterials": ["file1", "file2"]
}
PUT /awards/{id}/audit
Authorization: Bearer {token}
Content-Type: application/json
{
"auditStatus": 1,
"auditComment": "string",
"requiredMaterials": "string"
}
GET /awards/search?keyword=&competitionType=&level=&awardLevel=&year=&instructorId=&studentId=&auditStatus=
Authorization: Bearer {token}
查询参数:
keyword
: 关键词(竞赛名称、获奖名称、作品标题)competitionType
: 竞赛类型level
: 竞赛级别awardLevel
: 获奖等级year
: 获奖年份instructorId
: 指导教师IDstudentId
: 学生IDauditStatus
: 审核状态GET /awards/export?format=excel&filters={}
Authorization: Bearer {token}
响应: 返回Excel文件流
GET /awards/personal?userId=1&page=1&size=20
Authorization: Bearer {token}
GET /awards/{id}/progress
Authorization: Bearer {token}
响应:
{
"code": 200,
"data": {
"currentStatus": "审核中",
"progressSteps": [
{
"step": "提交申请",
"status": "completed",
"completedAt": "2024-01-01T10:00:00Z"
},
{
"step": "材料审核",
"status": "in_progress",
"startedAt": "2024-01-02T09:00:00Z"
},
{
"step": "公示期",
"status": "pending"
},
{
"step": "审核完成",
"status": "pending"
}
],
"estimatedCompletionTime": "2024-01-10T17:00:00Z",
"nextAction": "等待审核结果"
}
}
GET /laboratories?page=1&size=20&labType=&departmentId=&status=
Authorization: Bearer {token}
POST /laboratories
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "string",
"labCode": "string",
"labType": 1,
"departmentId": 1,
"building": "string",
"floor": "string",
"roomNumber": "string",
"area": 100.5,
"capacity": 30,
"managerId": 1,
"assistantManagers": [2, 3],
"safetyLevel": 2,
"accessControl": 1,
"openingHours": "string",
"description": "string",
"rules": "string"
}
GET /equipment?page=1&size=20&labId=&equipmentType=&status=&usageStatus=
Authorization: Bearer {token}
POST /equipment
Authorization: Bearer {token}
Content-Type: application/json
{
"labId": 1,
"equipmentName": "string",
"equipmentCode": "string",
"equipmentType": 1,
"brand": "string",
"model": "string",
"specifications": "string",
"purchaseDate": "2024-01-01",
"purchasePrice": 50000,
"supplier": "string",
"warrantyPeriod": 36,
"location": "string",
"responsiblePersonId": 1,
"remoteControllable": 1,
"remoteControlUrl": "string"
}
GET /equipment/{id}/status
Authorization: Bearer {token}
响应:
{
"code": 200,
"data": {
"equipmentId": 1,
"equipmentName": "高性能计算机",
"networkStatus": 1,
"powerStatus": 1,
"usageStatus": 0,
"currentUser": null,
"temperature": 45.5,
"cpuUsage": 15.2,
"memoryUsage": 32.8,
"diskUsage": 68.5,
"lastHeartbeat": "2024-01-01T12:00:00Z",
"uptime": "72:15:30"
}
}
POST /equipment-borrowings
Authorization: Bearer {token}
Content-Type: application/json
{
"equipmentId": 1,
"borrowerType": 1,
"purpose": "string",
"projectId": 1,
"plannedStartTime": "2024-01-01T09:00:00Z",
"plannedEndTime": "2024-01-01T17:00:00Z",
"usageNotes": "string"
}
PUT /equipment-borrowings/{id}/approve
Authorization: Bearer {token}
Content-Type: application/json
{
"approved": true,
"approvalComment": "string"
}
PUT /equipment-borrowings/{id}/return
Authorization: Bearer {token}
Content-Type: application/json
{
"returnCondition": "string",
"damageDescription": "string",
"rating": 5,
"feedback": "string"
}
GET /equipment-borrowings?page=1&size=20&equipmentId=&borrowerId=&status=&startDate=&endDate=
Authorization: Bearer {token}
POST /equipment/{id}/remote-control/power-on
Authorization: Bearer {token}
POST /equipment/{id}/remote-control/power-off
Authorization: Bearer {token}
Content-Type: application/json
{
"force": false,
"delaySeconds": 60
}
POST /equipment/{id}/remote-control/restart
Authorization: Bearer {token}
GET /equipment/{id}/remote-control/logs?page=1&size=20
Authorization: Bearer {token}
POST /equipment/{id}/network-reminder
Authorization: Bearer {token}
Content-Type: application/json
{
"message": "请勿拔除网线,以免影响远程控制功能",
"reminderType": "popup"
}
GET /student-skills?studentId=1&skillCategory=&verified=
Authorization: Bearer {token}
POST /student-skills
Authorization: Bearer {token}
Content-Type: application/json
{
"studentId": 1,
"skillCategory": 1,
"skillName": "Java编程",
"skillLevel": 3,
"proficiencyScore": 8.5,
"certificationName": "Oracle Java认证",
"certificationUrl": "string",
"certificationDate": "2024-01-01",
"selfAssessment": "string",
"projectExperience": "string"
}
PUT /student-skills/{id}/verify
Authorization: Bearer {token}
Content-Type: application/json
{
"verified": true,
"teacherAssessment": "string",
"adjustedLevel": 3,
"adjustedScore": 8.0
}
GET /student-availability?studentId=1&semester=2024春
Authorization: Bearer {token}
POST /student-availability
Authorization: Bearer {token}
Content-Type: application/json
{
"studentId": 1,
"semester": "2024春",
"weekDay": 1,
"startTime": "09:00:00",
"endTime": "17:00:00",
"availabilityType": 1,
"description": "空闲时间",
"isFlexible": 1,
"priority": 3
}
GET /projects?page=1&size=20&projectType=&teacherId=&departmentId=&recruitmentStatus=&projectStatus=
Authorization: Bearer {token}
POST /projects
Authorization: Bearer {token}
Content-Type: application/json
{
"projectName": "string",
"projectCode": "string",
"projectType": 1,
"projectCategory": "string",
"teacherId": 1,
"coTeachers": [2, 3],
"departmentId": 1,
"projectDescription": "string",
"objectives": "string",
"expectedOutcomes": "string",
"technicalRequirements": "string",
"skillRequirements": ["Java", "Spring Boot", "MySQL"],
"teamSizeMin": 3,
"teamSizeMax": 6,
"difficultyLevel": 2,
"estimatedDuration": 120,
"startDate": "2024-01-01",
"endDate": "2024-05-01",
"budget": 10000
}
GET /projects/{id}/dashboard
Authorization: Bearer {token}
响应:
{
"code": 200,
"data": {
"projectOverview": {
"id": 1,
"name": "智能推荐系统",
"status": "进行中",
"phase": "开发阶段",
"progressPercentage": 65,
"healthStatus": "健康",
"daysRemaining": 45
},
"teamComposition": {
"totalMembers": 5,
"memberRoles": [
{"role": "组长", "count": 1},
{"role": "核心成员", "count": 2},
{"role": "普通成员", "count": 2}
],
"workloadDistribution": [
{"memberId": 1, "memberName": "张三", "workloadPercentage": 25},
{"memberId": 2, "memberName": "李四", "workloadPercentage": 20}
]
},
"taskStatistics": {
"totalTasks": 20,
"completedTasks": 13,
"inProgressTasks": 5,
"pendingTasks": 2,
"tasksByType": [
{"type": "需求分析", "count": 3, "completed": 3},
{"type": "设计", "count": 5, "completed": 4},
{"type": "开发", "count": 8, "completed": 4},
{"type": "测试", "count": 4, "completed": 2}
]
},
"qualityMetrics": {
"qualityScore": 8.5,
"reworkCount": 3,
"reworkRate": 15,
"codeReviewPassRate": 85,
"testCoverage": 78
},
"riskAssessment": {
"overallRisk": "低",
"riskFactors": [
{
"factor": "进度风险",
"level": "低",
"description": "当前进度正常"
},
{
"factor": "质量风险",
"level": "中",
"description": "部分模块需要重构"
}
]
}
}
}
POST /projects/{id}/match-students
Authorization: Bearer {token}
Content-Type: application/json
{
"requiredSkills": ["Java", "Spring Boot"],
"preferredLevel": 2,
"timeRequirement": 20,
"teamRole": 2
}
响应:
{
"code": 200,
"data": {
"recommendations": [
{
"student": {
"id": 1,
"name": "王五",
"department": "计算机学院",
"grade": "大三"
},
"matchScore": 9.2,
"skillMatch": {
"Java": {"level": 3, "score": 8.5},
"Spring Boot": {"level": 2, "score": 7.0}
},
"availableTime": 25,
"previousProjects": 2,
"averageRating": 4.5,
"matchReasons": [
"技能匹配度高",
"时间充足",
"项目经验丰富"
]
}
]
}
}
GET /projects/{id}/members
Authorization: Bearer {token}
POST /projects/{id}/members
Authorization: Bearer {token}
Content-Type: application/json
{
"studentId": 1,
"memberRole": 2,
"responsibilities": "string",
"plannedWorkload": 20
}
PUT /project-members/{id}/performance
Authorization: Bearer {token}
Content-Type: application/json
{
"actualWorkload": 22,
"contributionRate": 18.5,
"performanceScore": 8.5,
"attendanceRate": 95,
"taskCompletionRate": 90,
"qualityRating": 4,
"collaborationRating": 5,
"innovationRating": 4,
"achievements": "string",
"feedbackFromTeacher": "string"
}
GET /projects/{id}/tasks?assigneeId=&taskStatus=&taskType=
Authorization: Bearer {token}
POST /project-tasks
Authorization: Bearer {token}
Content-Type: application/json
{
"projectId": 1,
"parentTaskId": 0,
"taskName": "string",
"taskDescription": "string",
"taskType": 3,
"priority": 3,
"difficulty": 2,
"estimatedHours": 16,
"assigneeId": 1,
"reviewerId": 2,
"plannedStartDate": "2024-01-01",
"plannedEndDate": "2024-01-05",
"acceptanceCriteria": "string"
}
PUT /project-tasks/{id}/progress
Authorization: Bearer {token}
Content-Type: application/json
{
"progressPercentage": 50,
"actualHours": 8,
"progressDescription": "string",
"deliverables": "string",
"notes": "string"
}
POST /project-tasks/{id}/rework
Authorization: Bearer {token}
Content-Type: application/json
{
"reworkReason": "string",
"qualityIssues": "string",
"improvementPlan": "string"
}
POST /project-applications
Authorization: Bearer {token}
Content-Type: application/json
{
"projectId": 1,
"applicationType": 1,
"desiredRole": 2,
"motivation": "string",
"relevantSkills": ["Java", "MySQL"],
"previousExperience": "string",
"availableTimePerWeek": 20,
"expectedContribution": "string",
"portfolioUrl": "string"
}
PUT /project-applications/{id}/review
Authorization: Bearer {token}
Content-Type: application/json
{
"applicationStatus": 2,
"reviewComment": "string",
"interviewRequired": 1,
"interviewTime": "2024-01-05T14:00:00Z"
}
GET /project-applications?projectId=1&studentId=&applicationStatus=
Authorization: Bearer {token}
GET /exchange-programs?page=1&size=20&programType=&partnerCountry=&targetAudience=&programStatus=
Authorization: Bearer {token}
POST /exchange-programs
Authorization: Bearer {token}
Content-Type: application/json
{
"programName": "string",
"programCode": "string",
"programType": 1,
"partnerInstitution": "string",
"partnerCountry": "string",
"partnerCity": "string",
"programDuration": 30,
"startDate": "2024-06-01",
"endDate": "2024-06-30",
"applicationDeadline": "2024-04-01",
"maxParticipants": 20,
"targetAudience": 1,
"languageRequirement": "英语四级",
"gpaRequirement": 3.0,
"majorRequirements": ["计算机", "软件工程"],
"programDescription": "string",
"learningObjectives": "string",
"activities": "string",
"accommodationInfo": "string",
"costInfo": "string",
"scholarshipAvailable": 1,
"scholarshipAmount": 5000
}
POST /exchange-programs/{id}/apply
Authorization: Bearer {token}
Content-Type: multipart/form-data
{
"applicationForm": "json",
"motivationLetter": "file",
"recommendationLetters": ["file1", "file2"],
"transcript": "file",
"languageCertificate": "file",
"passport": "file",
"currentGpa": 3.5,
"languageProficiency": "CET-6",
"previousExperience": "string",
"specialRequirements": "string",
"emergencyContact": "json"
}
GET /exchange-applications/{id}/status
Authorization: Bearer {token}
响应:
{
"code": 200,
"data": {
"applicationId": 1,
"currentStatus": "初审通过",
"statusCode": 2,
"progressSteps": [
{
"step": "提交申请",
"status": "completed",
"completedAt": "2024-01-01T10:00:00Z"
},
{
"step": "材料审核",
"status": "completed",
"completedAt": "2024-01-05T15:00:00Z"
},
{
"step": "面试环节",
"status": "scheduled",
"scheduledAt": "2024-01-10T14:00:00Z"
},
{
"step": "最终录取",
"status": "pending"
}
],
"nextAction": "准备面试",
"interviewInfo": {
"time": "2024-01-10T14:00:00Z",
"location": "国际交流中心201室",
"interviewer": "张教授",
"requirements": "请携带相关证书原件"
},
"estimatedResult": "2024-01-15T17:00:00Z"
}
}
GET /research-projects?page=1&size=20&projectType=&researchField=¤tPhase=&projectStatus=
Authorization: Bearer {token}
POST /research-projects
Authorization: Bearer {token}
Content-Type: application/json
{
"projectName": "string",
"projectCode": "string",
"projectType": 1,
"fundingAgency": "string",
"principalInvestigatorId": 1,
"coInvestigators": [2, 3],
"departmentId": 1,
"researchField": "string",
"keywords": ["AI", "机器学习"],
"projectAbstract": "string",
"researchObjectives": "string",
"researchMethodology": "string",
"expectedOutcomes": "string",
"innovationPoints": "string",
"totalBudget": 500000,
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"milestonePlan": "json"
}
POST /research-projects/{id}/progress-report
Authorization: Bearer {token}
Content-Type: application/json
{
"reportPeriod": "2024年第一季度",
"progressSummary": "string",
"achievedMilestones": ["里程碑1", "里程碑2"],
"currentPhase": 3,
"progressPercentage": 25,
"budgetUsage": {
"used": 125000,
"remaining": 375000,
"categories": [
{"category": "人员费", "used": 80000},
{"category": "设备费", "used": 30000},
{"category": "材料费", "used": 15000}
]
},
"achievements": [
{
"type": "论文",
"title": "基于深度学习的图像识别研究",
"journal": "计算机学报",
"status": "已发表"
}
],
"challenges": "string",
"nextSteps": "string",
"riskAssessment": "string"
}
GET /system-configs?configGroup=&configKey=
Authorization: Bearer {token}
PUT /system-configs/{key}
Authorization: Bearer {token}
Content-Type: application/json
{
"configValue": "string",
"description": "string"
}
POST /files/upload
Authorization: Bearer {token}
Content-Type: multipart/form-data
{
"file": "file",
"businessType": "string",
"businessId": 1,
"accessLevel": 1
}
响应:
{
"code": 200,
"data": {
"fileId": 1,
"originalName": "document.pdf",
"storedName": "20240101_abc123.pdf",
"filePath": "/uploads/2024/01/01/20240101_abc123.pdf",
"fileSize": 1024000,
"fileType": "pdf",
"downloadUrl": "https://api.example.com/files/download/1"
}
}
GET /files/download/{id}
Authorization: Bearer {token}
DELETE /files/{id}
Authorization: Bearer {token}
POST /notifications
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "string",
"content": "string",
"notificationType": 1,
"receiverIds": [1, 2, 3],
"businessType": "string",
"businessId": 1,
"priority": 3
}
GET /notifications?page=1&size=20&isRead=¬ificationType=
Authorization: Bearer {token}
PUT /notifications/{id}/read
Authorization: Bearer {token}
PUT /notifications/batch-read
Authorization: Bearer {token}
Content-Type: application/json
{
"notificationIds": [1, 2, 3]
}
GET /operation-logs?page=1&size=20&userId=&operationType=&startDate=&endDate=
Authorization: Bearer {token}
GET /statistics/overview
Authorization: Bearer {token}
响应:
{
"code": 200,
"data": {
"userStatistics": {
"totalUsers": 1500,
"activeUsers": 1200,
"newUsersThisMonth": 50,
"usersByRole": [
{"role": "学生", "count": 1000},
{"role": "教师", "count": 400},
{"role": "管理员", "count": 100}
]
},
"projectStatistics": {
"totalProjects": 200,
"activeProjects": 150,
"completedProjects": 45,
"projectsByType": [
{"type": "科研项目", "count": 80},
{"type": "竞赛项目", "count": 70},
{"type": "实训项目", "count": 50}
]
},
"competitionStatistics": {
"totalCompetitions": 50,
"totalAwards": 300,
"awardsByLevel": [
{"level": "国家级", "count": 50},
{"level": "省部级", "count": 100},
{"level": "校级", "count": 150}
]
},
"labStatistics": {
"totalLabs": 30,
"totalEquipment": 500,
"equipmentUtilization": 75.5,
"activeBorrowings": 45
}
}
}
200
: 成功400
: 请求参数错误401
: 未授权403
: 权限不足404
: 资源不存在409
: 资源冲突422
: 数据验证失败500
: 服务器内部错误10001
: 用户名或密码错误10002
: 验证码错误10003
: 账户已被禁用10004
: Token已过期10005
: Token无效
20001
: 项目不存在
20002
: 项目已满员
20003
: 重复申请
20004
: 申请已截止
30001
: 竞赛不存在
30002
: 获奖信息重复
30003
: 证书文件无效
30004
: 审核权限不足
40001
: 实验室不存在
40002
: 设备不可用
40003
: 借用时间冲突
40004
: 远程控制失败
50001
: 交流项目不存在
50002
: 申请材料不完整
50003
: 不符合申请条件
50004
: 申请已截止
{
"code": 400,
"message": "请求参数错误",
"details": "用户名不能为空",
"timestamp": "2024-01-01T12:00:00Z",
"requestId": "uuid",
"path": "/api/v1/users"
}