From 498c2f3d7e1f384c8e3ab1733e78eb44f9ae5277 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 21 Nov 2025 15:12:22 +0800 Subject: [PATCH] feat: update example --- example/{as_dev_dependency => }/.gitignore | 0 example/{as_dev_dependency => }/Makefile | 0 .../{as_dev_dependency => }/QUICK_START.md | 0 example/{as_dev_dependency => }/README.md | 0 example/advanced_usage.dart | 311 - .../analysis_options.yaml | 0 example/as_dev_dependency/generate_api.bat | 70 - example/as_dev_dependency/generate_api.sh | 69 - .../lib/generated/api_documentation.md | 20429 ---------------- example/as_dev_dependency/test_example.sh | 107 - example/generate_api.bat | 86 + example/generate_api.sh | 95 + .../generator_config.yaml | 17 +- example/lib/common/base_abstract.dart | 7 + example/lib/common/base_page_result.dart | 26 + example/lib/common/base_result.dart | 51 + example/{as_dev_dependency => }/pubspec.lock | 54 +- example/{as_dev_dependency => }/pubspec.yaml | 6 +- examples/api_client_config_example.yaml | 130 - examples/included_tags_example.md | 196 - 20 files changed, 303 insertions(+), 21351 deletions(-) rename example/{as_dev_dependency => }/.gitignore (100%) rename example/{as_dev_dependency => }/Makefile (100%) rename example/{as_dev_dependency => }/QUICK_START.md (100%) rename example/{as_dev_dependency => }/README.md (100%) delete mode 100644 example/advanced_usage.dart rename example/{as_dev_dependency => }/analysis_options.yaml (100%) delete mode 100644 example/as_dev_dependency/generate_api.bat delete mode 100755 example/as_dev_dependency/generate_api.sh delete mode 100644 example/as_dev_dependency/lib/generated/api_documentation.md delete mode 100755 example/as_dev_dependency/test_example.sh create mode 100644 example/generate_api.bat create mode 100644 example/generate_api.sh rename example/{as_dev_dependency => }/generator_config.yaml (94%) create mode 100644 example/lib/common/base_abstract.dart create mode 100644 example/lib/common/base_page_result.dart create mode 100644 example/lib/common/base_result.dart rename example/{as_dev_dependency => }/pubspec.lock (92%) rename example/{as_dev_dependency => }/pubspec.yaml (89%) delete mode 100644 examples/api_client_config_example.yaml delete mode 100644 examples/included_tags_example.md diff --git a/example/as_dev_dependency/.gitignore b/example/.gitignore similarity index 100% rename from example/as_dev_dependency/.gitignore rename to example/.gitignore diff --git a/example/as_dev_dependency/Makefile b/example/Makefile similarity index 100% rename from example/as_dev_dependency/Makefile rename to example/Makefile diff --git a/example/as_dev_dependency/QUICK_START.md b/example/QUICK_START.md similarity index 100% rename from example/as_dev_dependency/QUICK_START.md rename to example/QUICK_START.md diff --git a/example/as_dev_dependency/README.md b/example/README.md similarity index 100% rename from example/as_dev_dependency/README.md rename to example/README.md diff --git a/example/advanced_usage.dart b/example/advanced_usage.dart deleted file mode 100644 index 488a3d4..0000000 --- a/example/advanced_usage.dart +++ /dev/null @@ -1,311 +0,0 @@ -/// 高级使用示例 -/// 演示高性能解析、优化生成和性能监控 -library; - -import 'dart:convert'; -import 'dart:io'; -import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; - -void main() async { - print('🚀 高级使用示例'); - print('=' * 50); - - try { - await demonstrateHighPerformanceParsing(); - await demonstrateOptimizedGeneration(); - await demonstratePerformanceMonitoring(); - await demonstrateCaching(); - await demonstrateValidationAndErrorHandling(); - - print('\n🎉 高级使用示例完成!'); - } catch (e, stackTrace) { - print('❌ 发生错误: $e'); - print('堆栈跟踪: $stackTrace'); - } -} - -/// 演示高性能解析 -Future demonstrateHighPerformanceParsing() async { - print('\n📊 高性能解析演示'); - print('-' * 30); - - // 读取文档 - final jsonString = await File('swagger.json').readAsString(); - print('📖 文档大小: ${(jsonString.length / 1024).toStringAsFixed(2)}KB'); - - // 配置高性能解析器 - final parser = PerformanceParser( - config: ParseConfig( - enablePerformanceStats: true, - enableParallelParsing: false, // 禁用并行解析避免类型转换问题 - enableCaching: true, - maxConcurrency: 8, - enableMemoryOptimization: true, - ), - ); - - // 解析文档 - final stopwatch = Stopwatch()..start(); - final document = await parser.parseDocument(jsonString); - stopwatch.stop(); - - // 显示解析结果 - print('✅ 解析完成'); - print(' - 解析时间: ${stopwatch.elapsedMilliseconds}ms'); - print(' - 路径数: ${document.paths.length}'); - print(' - 模型数: ${document.models.length}'); - print(' - 服务器数: ${document.servers.length}'); - - // 显示性能统计 - final stats = parser.lastStats; - if (stats != null) { - print('\n📈 性能统计:'); - print(' - 总时间: ${stats.totalTime.inMilliseconds}ms'); - print(' - 解析时间: ${stats.parseTime.inMilliseconds}ms'); - print(' - 验证时间: ${stats.validationTime.inMilliseconds}ms'); - print(' - 模型创建时间: ${stats.modelCreationTime.inMilliseconds}ms'); - print( - ' - 内存使用: ${(stats.memoryUsage / 1024 / 1024).toStringAsFixed(2)}MB'); - print(' - 路径处理速度: ${stats.pathsPerSecond.toStringAsFixed(1)} paths/s'); - print(' - 吞吐量: ${(stats.bytesPerSecond / 1024).toStringAsFixed(2)} KB/s'); - } - - // 显示缓存统计 - final cacheStats = parser.getCacheStats(); - print('\n🗄️ 缓存统计:'); - print(' - 缓存大小: ${cacheStats['size']}'); - print(' - 缓存键: ${(cacheStats['keys'] as List).length}'); -} - -/// 演示优化代码生成 -Future demonstrateOptimizedGeneration() async { - print('\n🔧 优化代码生成演示'); - print('-' * 30); - - // 解析文档 - final jsonString = await File('swagger.json').readAsString(); - final document = SwaggerDocument.fromJson(jsonDecode(jsonString)); - - // 创建优化生成器 - final generator = OptimizedRetrofitGenerator( - className: 'AdvancedApiService', - generateModularApis: true, - generateBaseResult: true, - generatePagination: true, - generateFileUpload: true, - baseResultType: 'ApiResult', - pageResultType: 'PagedResult', - ); - - // 生成代码 - final stopwatch = Stopwatch()..start(); - final generatedCode = generator.generateFromDocument(document); - stopwatch.stop(); - - print('✅ 代码生成完成'); - print(' - 生成时间: ${stopwatch.elapsedMilliseconds}ms'); - print(' - 代码大小: ${(generatedCode.length / 1024).toStringAsFixed(2)}KB'); - print(' - 代码行数: ${generatedCode.split('\n').length}'); - - // 检查生成的特性 - final features = []; - if (generatedCode.contains('class ApiResult')) features.add('基础响应类型'); - if (generatedCode.contains('class PagedResult')) features.add('分页支持'); - if (generatedCode.contains('MultipartFile')) features.add('文件上传'); - if (generatedCode.contains('class ApiUtils')) features.add('工具类'); - - print(' - 生成特性: ${features.join(', ')}'); - - // 保存代码 - final outputFile = File('example/generated/advanced_api_service.dart'); - await outputFile.writeAsString(generatedCode); - print(' - 保存位置: ${outputFile.path}'); -} - -/// 演示性能监控 -Future demonstratePerformanceMonitoring() async { - print('\n📊 性能监控演示'); - print('-' * 30); - - // 解析文档 - final jsonString = await File('swagger.json').readAsString(); - final document = SwaggerDocument.fromJson(jsonDecode(jsonString)); - - // 创建性能生成器 - final generator = PerformanceGenerator( - maxConcurrency: 4, - enableCaching: true, - enableIncremental: true, - enableParallel: true, - ); - - // 生成代码 - final generatedCode = await generator.generateFromDocument(document); - - // 获取性能统计 - final stats = generator.getStats(); - print('📈 生成性能统计:'); - print(' - 总任务数: ${stats.totalTasks}'); - print(' - 完成任务数: ${stats.completedTasks}'); - print(' - 失败任务数: ${stats.failedTasks}'); - print(' - 成功率: ${(stats.successRate * 100).toStringAsFixed(1)}%'); - print(' - 总时间: ${stats.totalTime.inMilliseconds}ms'); - print(' - 平均任务时间: ${stats.averageTaskTime.inMilliseconds}ms'); - print(' - 生成行数: ${stats.linesGenerated}'); - print(' - 生成字节数: ${stats.bytesGenerated}'); - print(' - 并行效率: ${(stats.parallelEfficiency * 100).toStringAsFixed(1)}%'); - print(' - 生成速度: ${stats.linesPerSecond.toStringAsFixed(1)} lines/s'); - - // 获取缓存统计 - final cacheStats = generator.getCacheStats(); - print('\n🗄️ 生成器缓存统计:'); - print(' - 总请求: ${cacheStats.totalRequests}'); - print(' - 缓存命中: ${cacheStats.hits}'); - print(' - 缓存未命中: ${cacheStats.misses}'); - print(' - 命中率: ${(cacheStats.hitRate * 100).toStringAsFixed(1)}%'); - print(' - 缓存大小: ${cacheStats.size}/${cacheStats.maxSize}'); - print(' - 平均访问时间: ${cacheStats.averageAccessTime.inMicroseconds}μs'); -} - -/// 演示缓存功能 -Future demonstrateCaching() async { - print('\n🗄️ 缓存功能演示'); - print('-' * 30); - - // 创建智能缓存 - final cache = SmartCache( - maxSize: 100, - strategy: CacheStrategy.smart, - defaultTtl: Duration(minutes: 30), - ); - - // 添加一些测试数据 - cache.put('user:1', '{"id": 1, "name": "Alice"}'); - cache.put('user:2', '{"id": 2, "name": "Bob"}'); - cache.put('user:3', '{"id": 3, "name": "Charlie"}'); - - // 模拟访问模式 - for (int i = 0; i < 10; i++) { - cache.get('user:1'); // 频繁访问 - } - for (int i = 0; i < 5; i++) { - cache.get('user:2'); // 中等访问 - } - cache.get('user:3'); // 少量访问 - - // 获取缓存统计 - final stats = cache.getStats(); - print('📊 缓存统计:'); - print(' - 总请求: ${stats.totalRequests}'); - print(' - 命中: ${stats.hits}'); - print(' - 未命中: ${stats.misses}'); - print(' - 命中率: ${(stats.hitRate * 100).toStringAsFixed(1)}%'); - print(' - 缓存大小: ${stats.size}/${stats.maxSize}'); - print(' - 填充率: ${(stats.fillRate * 100).toStringAsFixed(1)}%'); - - // 显示访问统计 - print('\n📈 访问统计:'); - stats.keyAccessCounts.forEach((key, count) { - print(' - $key: $count 次访问'); - }); - - // 演示缓存预热 - print('\n🔥 缓存预热演示:'); - await cache.warmUp({ - 'config:app': () async => '{"theme": "dark", "language": "zh"}', - 'config:api': () async => '{"timeout": 30000, "retries": 3}', - }); - - print(' - 预热完成,缓存大小: ${cache.getStats().size}'); -} - -/// 演示验证和错误处理 -Future demonstrateValidationAndErrorHandling() async { - print('\n✅ 验证和错误处理演示'); - print('-' * 30); - - // 创建一个有问题的文档 - final problematicDoc = { - 'openapi': '3.0.3', - 'info': { - 'title': 'Problematic API', - 'version': '1.0.0', - }, - 'paths': { - '/users/{id}': { - 'get': { - 'summary': 'Get user', - 'responses': { - '200': { - 'description': 'Success', - }, - }, - // 缺少路径参数声明 - }, - }, - 'invalid-path': { - // 无效的路径格式 - 'get': { - 'summary': 'Invalid path', - 'responses': { - '200': { - 'description': 'Success', - }, - }, - }, - }, - }, - }; - - final jsonString = jsonEncode(problematicDoc); - final document = SwaggerDocument.fromJson(jsonDecode(jsonString)); - - // 创建验证器 - final validator = EnhancedValidator( - includeWarnings: true, - ); - - // 验证文档 - final isValid = validator.validateDocument(document); - print('📋 验证结果: ${isValid ? "通过" : "失败"}'); - - // 获取错误统计 - final errorStats = validator.errorReporter.getErrorStatistics(); - print('\n📊 错误统计:'); - errorStats.forEach((severity, count) { - print(' - ${severity.displayName}: $count'); - }); - - // 显示详细错误 - final errors = validator.errorReporter.errors; - if (errors.isNotEmpty) { - print('\n❌ 详细错误:'); - for (int i = 0; i < errors.length && i < 5; i++) { - final error = errors[i]; - print(' ${i + 1}. ${error.severity.emoji} ${error.title}'); - print(' 位置: ${error.location.jsonPath}'); - print(' 描述: ${error.description}'); - if (error.suggestions.isNotEmpty) { - print(' 建议: ${error.suggestions.first.description}'); - } - print(''); - } - } - - // 生成错误报告 - final report = validator.errorReporter.generateReport( - includeStatistics: true, - groupByCategory: true, - ); - - // 保存错误报告 - final reportFile = File('example/generated/validation_report.txt'); - await reportFile.writeAsString(report); - print('📄 错误报告已保存到: ${reportFile.path}'); - - // 生成 JSON 格式报告 - final jsonReport = validator.errorReporter.generateJsonReport(); - final jsonReportFile = File('example/generated/validation_report.json'); - await jsonReportFile.writeAsString(jsonReport); - print('📄 JSON 报告已保存到: ${jsonReportFile.path}'); -} diff --git a/example/as_dev_dependency/analysis_options.yaml b/example/analysis_options.yaml similarity index 100% rename from example/as_dev_dependency/analysis_options.yaml rename to example/analysis_options.yaml diff --git a/example/as_dev_dependency/generate_api.bat b/example/as_dev_dependency/generate_api.bat deleted file mode 100644 index 01bc6f1..0000000 --- a/example/as_dev_dependency/generate_api.bat +++ /dev/null @@ -1,70 +0,0 @@ -@echo off -REM Swagger API 代码生成脚本(Windows) -REM 用于示例项目的 API 代码生成 - -setlocal enabledelayedexpansion - -echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -echo 🚀 Swagger API 代码生成器 -echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -echo. - -REM 步骤 1: 生成 API 代码 -echo 📝 步骤 1/4: 生成 API 代码... -dart run swagger_generator_flutter generate --all - -if !errorlevel! neq 0 ( - echo ❌ API 代码生成失败! - exit /b 1 -) - -echo ✅ API 代码生成成功 -echo. - -REM 步骤 2: 运行 build_runner -echo 🔧 步骤 2/4: 运行 build_runner... -dart run build_runner build --delete-conflicting-outputs - -if !errorlevel! neq 0 ( - echo ⚠️ build_runner 执行失败(如果是首次运行,可能需要先修复基础类型) - echo 请检查 lib/common/api_response.dart 和 paged_response.dart -) else ( - echo ✅ build_runner 执行成功 -) - -echo. - -REM 步骤 3: 格式化代码 -echo 📐 步骤 3/4: 格式化代码... -dart format lib/generated - -echo ✅ 代码格式化完成 -echo. - -REM 步骤 4: 分析代码 -echo 🔍 步骤 4/4: 分析代码... -dart analyze lib/generated --fatal-infos - -if !errorlevel! neq 0 ( - echo ⚠️ 代码分析发现问题,请检查 -) else ( - echo ✅ 代码分析通过 -) - -echo. -echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -echo ✨ 代码生成完成! -echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -echo. -echo 📂 生成的文件位置: -echo lib/generated/api/ -echo lib/generated/api_models/ -echo. -echo 📚 下一步: -echo 1. 查看生成的代码:lib/generated/ -echo 2. 在 main.dart 中取消注释 import 语句 -echo 3. 运行应用:flutter run -echo. - -pause - diff --git a/example/as_dev_dependency/generate_api.sh b/example/as_dev_dependency/generate_api.sh deleted file mode 100755 index c5d5d7f..0000000 --- a/example/as_dev_dependency/generate_api.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -# Swagger API 代码生成脚本 -# 用于示例项目的 API 代码生成 - -set -e # 遇到错误立即退出 - -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "🚀 Swagger API 代码生成器" -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "" - -# 步骤 1: 生成 API 代码 -echo "📝 步骤 1/4: 生成 API 代码..." -dart run swagger_generator_flutter generate --all - -if [ $? -ne 0 ]; then - echo "❌ API 代码生成失败!" - exit 1 -fi - -echo "✅ API 代码生成成功" -echo "" - -# 步骤 2: 运行 build_runner -echo "🔧 步骤 2/4: 运行 build_runner..." -dart run build_runner build --delete-conflicting-outputs - -if [ $? -ne 0 ]; then - echo "⚠️ build_runner 执行失败(如果是首次运行,可能需要先修复基础类型)" - echo " 请检查 lib/common/api_response.dart 和 paged_response.dart" -else - echo "✅ build_runner 执行成功" -fi - -echo "" - -# 步骤 3: 格式化代码 -echo "📐 步骤 3/4: 格式化代码..." -dart format lib/generated - -echo "✅ 代码格式化完成" -echo "" - -# 步骤 4: 分析代码 -echo "🔍 步骤 4/4: 分析代码..." -dart analyze lib/generated --fatal-infos - -if [ $? -ne 0 ]; then - echo "⚠️ 代码分析发现问题,请检查" -else - echo "✅ 代码分析通过" -fi - -echo "" -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "✨ 代码生成完成!" -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "" -echo "📂 生成的文件位置:" -echo " lib/generated/api/" -echo " lib/generated/api_models/" -echo "" -echo "📚 下一步:" -echo " 1. 查看生成的代码:lib/generated/" -echo " 2. 在 main.dart 中取消注释 import 语句" -echo " 3. 运行应用:flutter run" -echo "" - diff --git a/example/as_dev_dependency/lib/generated/api_documentation.md b/example/as_dev_dependency/lib/generated/api_documentation.md deleted file mode 100644 index d13dc6e..0000000 --- a/example/as_dev_dependency/lib/generated/api_documentation.md +++ /dev/null @@ -1,20429 +0,0 @@ -# OA移动端Api - -**版本**: v1 + v2 -**基础URL**: / -**生成时间**: 2025-11-05T18:59:27.431721 - -![API版本](https://img.shields.io/badge/API-v1 + v2-blue.svg) -![状态](https://img.shields.io/badge/状态-活跃-green.svg) - -## 📋 目录 - -- [API概述](#api概述) -- [认证](#认证) -- [API端点](#api端点) - - [FollowManager](#followmanager) - - [HealthCheck](#healthcheck) - - [Index](#index) - - [Login](#login) - - [ManagerDataCollection](#managerdatacollection) - - [MobileManager](#mobilemanager) - - [MyInfo](#myinfo) - - [TaskClassCadreMeeting](#taskclasscadremeeting) - - [TaskClassesActivity](#taskclassesactivity) - - [TaskClassMeeting](#taskclassmeeting) - - [TaskCoachSub](#taskcoachsub) - - [TaskCultural](#taskcultural) - - [TaskDataCollect](#taskdatacollect) - - [TaskFollow](#taskfollow) - - [TaskInfo](#taskinfo) - - [TaskMeeting](#taskmeeting) - - [TaskOther](#taskother) - - [TaskSolution](#tasksolution) - - [TaskSpot](#taskspot) - - [TaskSummarize](#tasksummarize) - - [TaskTalk](#tasktalk) - - [TaskTeacherBehavior](#taskteacherbehavior) - - [TaskTeacherTalk](#taskteachertalk) - - [Superior](#superior) - - [SystemParameterOther](#systemparameterother) -- [数据模型](#数据模型) -- [错误代码](#错误代码) -- [示例代码](#示例代码) -- [更新日志](#更新日志) - -## 🚀 API概述 - -### 📊 统计信息 - -- **总端点数**: 204 -- **控制器数**: 25 -- **数据模型数**: 189 - -### 🔗 HTTP方法分布 - -- **GET**: 122个 (59.8%) -- **PUT**: 58个 (28.4%) -- **DELETE**: 13个 (6.4%) -- **POST**: 11个 (5.4%) - -### 🌐 服务器配置 - -**服务器**: 相对路径 `/` - -## 🔐 认证 - -本API使用以下认证方式: - -### Bearer Token - -在请求头中包含Authorization字段: - -``` -Authorization: Bearer YOUR_TOKEN_HERE -``` - -### 获取Token - -请使用登录接口获取访问令牌。 - -## 📡 API端点 - -### FollowManager - -#### GET /api/v1/FollowManager/DeleteFinancial_ClassesById - -**工作台-删除班级经费使用记录** - -**标签**: FollowManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Id | integer | ❌ | 使用记录id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/FollowManager/DeleteFinancial_ClassesById -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/FollowManager/GetClassTeachersByClassId - -**根据班级ID获取班级科目教师列表** - -**标签**: FollowManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| classId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/FollowManager/GetClassTeachersByClassId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/FollowManager/GetFinancial_Classes - -**工作台-获取当前时间的班级经费使用列表** - -**标签**: FollowManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| class_id | integer | ❌ | 班级id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/FollowManager/GetFinancial_Classes -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/FollowManager/GetFinancial_Indicators - -**工作台-获取当前时间的经费指标** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/FollowManager/GetFinancial_Indicators -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/FollowManager/GetStudents - -**工作台-获取班级学生列表** - -**标签**: FollowManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| classId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/FollowManager/GetStudents -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/FollowManager/GetSubjectinfos - -**获取所有科目列表** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/FollowManager/GetSubjectinfos -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/FollowManager/GetStudentDetailInfo - -**工作台-获取学生详情信息** - -**标签**: FollowManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| studentId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/FollowManager/GetStudentDetailInfo -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/FollowManager/AddClassesStudent - -**工作台-添加班级学生绑定表** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/FollowManager/AddClassesStudent \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/FollowManager/AddFinancial_Classes - -**工作台-添加班级经费使用** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/FollowManager/AddFinancial_Classes \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v2/FollowManager/AddClassesStudent - -**工作台-添加班级学生绑定表** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v2/FollowManager/AddClassesStudent \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v2/FollowManager/ChangeStudentClass - -**转班** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v2/FollowManager/ChangeStudentClass \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v2/FollowManager/DropStudent - -**退学** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v2/FollowManager/DropStudent \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v2/FollowManager/UpdateClassesStudent - -**工作台-修改班级学生绑定表** - -**标签**: FollowManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v2/FollowManager/UpdateClassesStudent \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/FollowManager/DeleteClassesStudent - -**工作台-删除班级学生绑定表** - -**标签**: FollowManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| classId | integer | ❌ | - | - | -| userId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/FollowManager/DeleteClassesStudent -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### HealthCheck - -#### GET /HealthCheck - -**健康检查接口** - -**标签**: HealthCheck - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| api-version | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //HealthCheck -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### Index - -#### GET /api/v1/Index/GetBanner - -**获取首页的轮播图** - -**标签**: Index - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetBanner -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetClasses - -**获取本人所管班级列表** - -**标签**: Index - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetClasses -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetClassesTaskChecklistUsers - -**获取本人通用工作指标列表** - -**标签**: Index - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetClassesTaskChecklistUsers -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetClassesTaskList - -**获取首页的待办任务列表** - -**标签**: Index - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| class_id | integer | ❌ | - | - | -| TaskTypeEnum | integer | ❌ | - | - | -| Status | integer | ❌ | - | - | -| IsSuperiorTask | integer | ❌ | 是否是布置任务。0否;1是 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetClassesTaskList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetDatetimeNow - -**获取服务器当前时间** - -**标签**: Index - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetDatetimeNow -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetHistoryTaskList - -**获取历史任务列表** - -**标签**: Index - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| Task_index_type | integer | ❌ | 任务指标类型-1班级;2通用 | - | -| class_id | integer | ❌ | Task_index_type为1时,班级id必传 | - | -| TaskTypeEnum | integer | ❌ | 任务类型枚举 | - | -| BeginDate | string | ❌ | 开始日期 | - | -| EndDate | string | ❌ | 结束日期 | - | -| TaskUserId | integer | ❌ | 用户id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetHistoryTaskList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetList - -**根据班级获取工作主题及列表** - -**标签**: Index - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| classesId | integer | ❌ | 班级id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Index/GetTaskList - -**获取任务列表** - -**标签**: Index - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| Task_index_type | integer | ❌ | 任务指标类型-1班级;2通用 | - | -| class_id | integer | ❌ | Task_index_type为1时,班级id必传 | - | -| TaskTypeEnum | integer | ❌ | 任务类型枚举 | - | -| BeginDate | string | ❌ | 开始日期 | - | -| EndDate | string | ❌ | 结束日期 | - | -| Status | string | ❌ | 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 。多个用英文逗号分开 | - | -| TaskUserId | integer | ❌ | 任务执行人id | - | -| IsSuperiorTask | integer | ❌ | 是否是布置任务。0否;1是 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Index/GetTaskList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### Login - -#### GET /api/v1/Login/GetMyUserSig - -**获取 UserSig 鉴权票据** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Login/GetMyUserSig -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/Login/GetOpenTest - -**获取是否开启测试** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/Login/GetOpenTest -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/Login/GetUserLoginCode - -**普通用户验证码登录-获取验证码** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/Login/GetUserLoginCode \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/Login/LogOff - -**注销** - -**标签**: Login - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| account | string | ❌ | 账号 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/Login/LogOff \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/Login/OutLogin - -**退出登录** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/Login/OutLogin \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/Login/RefreshToken - -**换取token** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/Login/RefreshToken \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/Login/userCodeLogin - -**普通用户验证码登录** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/Login/userCodeLogin \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/Login/userLogin - -**普通用户登录** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/Login/userLogin \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/Login/Register - -**注册** - -**标签**: Login - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/Login/Register \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### ManagerDataCollection - -#### GET /api/v1/ManagerDataCollection/DeskTopGetDataConllectionDetail - -**电脑端-(学习官)获取资料收集详情** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| sign | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/DeskTopGetDataConllectionDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetDataCollectionUserFiles - -**(电脑端)获取资料收集用户上传文件列表** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| sign | string | ❌ | - | - | -| UserId | integer | ❌ | 组长id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetDataCollectionUserFiles -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetDataConllectionDetail - -**(学习官)获取资料收集详情** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetDataConllectionDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetDataConllectionsList - -**(学习官)获取资料收集列表** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetDataConllectionsList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetDataFileUrl - -**获取电脑端获取的文件地址** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetDataFileUrl -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetDataUserResults - -**(电脑端)获取本资料收集的组长用户列表** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserName | string | ❌ | 搜索组长用户名称 | - | -| sign | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetDataUserResults -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetManagerDataCollectionDetail - -**获取资料收集详情** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetManagerDataCollectionDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetManagerDataCollectionList - -**(部长/组长)获取资料收集列表** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| status | integer | ❌ | - | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetManagerDataCollectionList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetOssSignByUrl - -**获取oss预签名** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| sign | string | ❌ | 签名 | - | -| objectName | string | ❌ | 只传后缀。例【https://meeting-yhzh.oss-cn-hangzhou.aliyuncs.com/sss/11.txt】中的【txt】 | - | -| type | integer | ❌ | 文件模块类型:1、普通文件上传; 2:资料收集 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetOssSignByUrl -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetUploadDataFileUrl - -**获取电脑端资料收集用户上传文件地址** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetUploadDataFileUrl -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/GetUploadModelFileUrl - -**获取电脑端资料收集模板文件上传地址** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/GetUploadModelFileUrl -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/PhoneGetDataCollectionUserFiles - -**(手机端)获取资料收集用户上传文件列表** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| DataCollectionId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/PhoneGetDataCollectionUserFiles -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/ManagerDataCollection/UpdateManagerDataCollectionStatus - -**更新资料收集状态** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Id | integer | ❌ | - | - | -| Status | integer | ❌ | 2:发布;4:关闭 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/ManagerDataCollection/UpdateManagerDataCollectionStatus -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/ManagerDataCollection/AddManagerDataCollection - -**添加资料收集** - -**标签**: ManagerDataCollection - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/ManagerDataCollection/AddManagerDataCollection \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/ManagerDataCollection/AddManagerDataCollectionUserFile - -**资料收集用户上传文件** - -**标签**: ManagerDataCollection - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/ManagerDataCollection/AddManagerDataCollectionUserFile \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/ManagerDataCollection/AddManagerDataModelFile - -**资料收集模板文件上传** - -**标签**: ManagerDataCollection - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/ManagerDataCollection/AddManagerDataModelFile \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/ManagerDataCollection/FileUploadBySign - -**文件上传(返回文件id)** - -**标签**: ManagerDataCollection - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| sign | string | ❌ | url | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/ManagerDataCollection/FileUploadBySign \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/ManagerDataCollection/UploadDataFile - -**电脑端上传用户文件** - -**标签**: ManagerDataCollection - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/ManagerDataCollection/UploadDataFile \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/ManagerDataCollection/UploadModelFile - -**电脑端上传模板** - -**标签**: ManagerDataCollection - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/ManagerDataCollection/UploadModelFile \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### MobileManager - -#### GET /api/v1/MobileManager/GetBindClassesBySchoolId - -**根据学校获取这个学校【本人管理班级】列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| schoolId | integer | ❌ | 学校id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetBindClassesBySchoolId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MobileManager/GetClassesAndFollowBySchoolId - -**根据学校获取管理的班级列表(包含学习官信息)** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| schoolId | integer | ❌ | 学校id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetClassesAndFollowBySchoolId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MobileManager/GetClassesBySchoolId - -**根据学校获取所有班级列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| schoolId | integer | ❌ | 学校id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetClassesBySchoolId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MobileManager/GetClassesTaskChecklists - -**组长根据学习官id获取工作任务指标列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| followId | integer | ❌ | 学习官id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetClassesTaskChecklists -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MobileManager/GetDataSummariz - -**部长获取数据统计** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| BeginTime | string | ❌ | - | - | -| EndTime | string | ❌ | - | - | -| FollowId | integer | ❌ | 学习官id【可能存在组长id,组长也是学习官】 | - | -| TeamLeaderUserId | integer | ❌ | 组长id,查询该组所有人 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetDataSummariz -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MobileManager/GetSchoolResults - -**获取管理的学校列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SchoolName | string | ❌ | 搜索学校名称 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetSchoolResults -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MobileManager/GetTaskCheckListByType - -**部长获取工作任务指标列表** - -**标签**: MobileManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MobileManager/GetTaskCheckListByType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/GetClassDetail - -**根据班级id获取班级详情** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| classId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/GetClassDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/GetManagerUserInfoDetailResult - -**获取管理用户详情** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/GetManagerUserInfoDetailResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/GetMonthWorkDetail - -**获取月工作完成详情** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| userId | integer | ❌ | - | - | -| year | integer | ❌ | - | - | -| month | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/GetMonthWorkDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/GetSchoolResults - -**根据云校id获取学校列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CloudSchoolId | integer | ❌ | 云校id | - | -| SchoolName | string | ❌ | 学校名称(可空) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/GetSchoolResults -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/GetTaskCheckListByType - -**部长获取工作任务指标列表** - -**标签**: MobileManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/GetTaskCheckListByType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/GetUserAdminInfu - -**人员管理(根据角色获取【组长获取学习官,部长根据学校id获取组长和学习官,总部长根据学校id获取部长组长学习官】)** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| schoolId | integer | ❌ | 学校id | - | -| cloudSchoolId | integer | ❌ | 云校id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/GetUserAdminInfu -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/MobileManager/MinisterGetDataSummariz - -**部长获取数据统计** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CloudSchoolId | integer | ❌ | 云校id | - | -| SchoolId | integer | ❌ | - | - | -| BeginTime | string | ❌ | - | - | -| EndTime | string | ❌ | - | - | -| FollowId | integer | ❌ | 学习官id【可能存在组长id,组长也是学习官】 | - | -| TeamLeaderUserId | integer | ❌ | 组长id,查询该组所有人 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/MobileManager/MinisterGetDataSummariz -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/MobileManager/GetMinisterAdminUsers - -**获取本人是部长管理的组长用户列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CloudSchoolId | integer | ❌ | 云校id(总部长查看某云校时需要传) | - | -| TeamLeaderUserName | string | ❌ | 用户姓名 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/MobileManager/GetMinisterAdminUsers \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/MobileManager/GetMinisterAdminUsersAll - -**获取本人是部长管理的组长和学习官用户列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CloudSchoolId | integer | ❌ | 云校id(总部长查看某云校时需要传) | - | -| TeamLeaderUserName | string | ❌ | 用户姓名 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/MobileManager/GetMinisterAdminUsersAll \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/MobileManager/GetTeamLeaderUsers - -**获取本人是组长管理的学习官用户列表** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| userIds | array | ❌ | 组长id集合,不传则本人id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/MobileManager/GetTeamLeaderUsers \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/MobileManager/AddTaskCheckList - -**部长新增工作任务指标 -(会删除所有管理的班级任务指标-删除所有管理的学习官的通用任务指标)** - -**标签**: MobileManager - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/MobileManager/AddTaskCheckList \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/MobileManager/ClassManagerAddUpdateTaskCheckList - -**组长新增工作任务指标** - -**标签**: MobileManager - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| followId | integer | ❌ | 学习官id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/MobileManager/ClassManagerAddUpdateTaskCheckList \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### MyInfo - -#### GET /api/v1/MyInfo/GetOssConfig - -**获取oss配置** - -**标签**: MyInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/GetOssConfig -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MyInfo/GetOssSign - -**获取oss预签名** - -**标签**: MyInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| objectName | string | ❌ | 只传后缀。例【https://meeting-yhzh.oss-cn-hangzhou.aliyuncs.com/sss/11.txt】中的【txt】 | - | -| type | integer | ❌ | 文件模块类型:1、普通文件上传; 2:资料收集 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/GetOssSign -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MyInfo/GetPhoneCode - -**获取验证码-5分钟有效期(登录系统后)** - -**标签**: MyInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| type | integer | ❌ | 1:换绑手机 | - | -| phone | string | ❌ | phone | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/GetPhoneCode -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MyInfo/GetRedPoint - -**获取红点信息** - -**标签**: MyInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/GetRedPoint -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MyInfo/GetTencentIMAppID - -**获取腾讯IM的AppID** - -**标签**: MyInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/GetTencentIMAppID -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MyInfo/GetUpdateVersion - -**获取1:安卓,2:IOS版本更新信息** - -**标签**: MyInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| upType | integer | ❌ | 1:安卓,2:IOS | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/GetUpdateVersion -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/MyInfo/UpMyHeadImage - -**修改本人头像** - -**标签**: MyInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| FileId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/MyInfo/UpMyHeadImage -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/MyInfo/FileUpload - -**文件上传(返回文件id)** - -**标签**: MyInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/MyInfo/FileUpload \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/MyInfo/UpdateMyPasswodInfo - -**修改本人密码** - -**标签**: MyInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/MyInfo/UpdateMyPasswodInfo \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/MyInfo/UpdateMyPhoneInfo - -**换绑本人手机信息** - -**标签**: MyInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/MyInfo/UpdateMyPhoneInfo \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/MyInfo/DeleteOSSFile - -**删除oss存储中的服务** - -**标签**: MyInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| filePath | string | ❌ | 完整网络路径 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/MyInfo/DeleteOSSFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskClassCadreMeeting - -#### GET /api/v1/TaskClassCadreMeeting/GetClassCadreMeetingResult - -**根据任务id获取班干部会议信息** - -**标签**: TaskClassCadreMeeting - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskClassCadreMeeting/GetClassCadreMeetingResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskClassCadreMeeting/AddUpdateClassCadreMeeting - -**创建/修改班干部会议任务** - -**标签**: TaskClassCadreMeeting - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskClassCadreMeeting/AddUpdateClassCadreMeeting \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskClassCadreMeeting/ClassCadreMeetingFinish - -**完成班干部会议任务** - -**标签**: TaskClassCadreMeeting - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskClassCadreMeeting/ClassCadreMeetingFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskClassCadreMeeting/DeleteClassCadreMeetingFile - -**删除班干部会议文件信息** - -**标签**: TaskClassCadreMeeting - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassmeetingId | integer | ❌ | 班干部会id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskClassCadreMeeting/DeleteClassCadreMeetingFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskClassesActivity - -#### GET /api/v1/TaskClassesActivity/GetTaskClassesActivityResult - -**根据任务id获取班干部班级活动信息** - -**标签**: TaskClassesActivity - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskClassesActivity/GetTaskClassesActivityResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskClassesActivity/AddUpdateTaskClassesActivity - -**添加或更新班级活动** - -**标签**: TaskClassesActivity - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskClassesActivity/AddUpdateTaskClassesActivity \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskClassesActivity/TaskClassesActivityFinish - -**完成班级活动** - -**标签**: TaskClassesActivity - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskClassesActivity/TaskClassesActivityFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskClassesActivity/DeleteTaskClassesActivityFile - -**删除班级活动文件信息** - -**标签**: TaskClassesActivity - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ActivityId | integer | ❌ | 活动Id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskClassesActivity/DeleteTaskClassesActivityFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskClassMeeting - -#### GET /api/v1/TaskClassMeeting/GetClassMeetingResult - -**根据任务id获取召开班级会议信息** - -**标签**: TaskClassMeeting - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskClassMeeting/GetClassMeetingResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskClassMeeting/AddUpdateClassMeeting - -**创建/修改召开会议任务** - -**标签**: TaskClassMeeting - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskClassMeeting/AddUpdateClassMeeting \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskClassMeeting/ClassMeetingFinish - -**完成召开会议任务** - -**标签**: TaskClassMeeting - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskClassMeeting/ClassMeetingFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskClassMeeting/DeleteClassMeetingFile - -**删除召开会议文件信息** - -**标签**: TaskClassMeeting - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassmeetingId | integer | ❌ | 召开id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskClassMeeting/DeleteClassMeetingFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskCoachSub - -#### GET /api/v1/TaskCoachSub/GetTaskCoachSubResult - -**根据任务id获取班干部学科辅助信息** - -**标签**: TaskCoachSub - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskCoachSub/GetTaskCoachSubResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskCoachSub/AddUpdateTaskCoachSub - -**添加或更新学科辅助** - -**标签**: TaskCoachSub - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskCoachSub/AddUpdateTaskCoachSub \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskCoachSub/TaskCoachSubFinish - -**完成学科辅助** - -**标签**: TaskCoachSub - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskCoachSub/TaskCoachSubFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskCoachSub/DeleteTaskCoachSubFile - -**删除学科辅助文件信息** - -**标签**: TaskCoachSub - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CoachId | integer | ❌ | 辅导表任务id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskCoachSub/DeleteTaskCoachSubFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskCultural - -#### GET /api/v1/TaskCultural/GetCulturalDetailResult - -**获取文创内容详情结果** - -**标签**: TaskCultural - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| taskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskCultural/GetCulturalDetailResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v1/TaskCultural/CulturalFinish - -**完成文创内容任务** - -**标签**: TaskCultural - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v1/TaskCultural/CulturalFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskCultural/AddUpdateCulturalTask - -**创建/修改文创内容任务** - -**标签**: TaskCultural - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskCultural/AddUpdateCulturalTask \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskCultural/DeleteCulturalFile - -**删除文创内容文件** - -**标签**: TaskCultural - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CulturalId | integer | ❌ | 文创id | - | -| FileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskCultural/DeleteCulturalFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskDataCollect - -#### GET /api/v1/TaskDataCollect/GetDataCollectResult - -**根据任务id获取数据收集信息** - -**标签**: TaskDataCollect - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskDataCollect/GetDataCollectResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskDataCollect/GetDataCollectUserResults - -**获取数据收集用户列表** - -**标签**: TaskDataCollect - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassId | integer | ❌ | 班级id | - | -| CollectId | integer | ❌ | 采集任务id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskDataCollect/GetDataCollectUserResults -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskDataCollect/GetSunTaskFileResultsByUserId - -**获取用户的数据收集** - -**标签**: TaskDataCollect - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserId | integer | ❌ | 用户id | - | -| CollectId | integer | ❌ | 采集任务id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskDataCollect/GetSunTaskFileResultsByUserId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskDataCollect/AddUpdateDataCollect - -**创建/修改数据收集任务** - -**标签**: TaskDataCollect - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskDataCollect/AddUpdateDataCollect \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskDataCollect/DataCollectFinish - -**完成数据收集任务** - -**标签**: TaskDataCollect - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskDataCollect/DataCollectFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskDataCollect/SaveDataCollectFile - -**保存数据收集文件信息** - -**标签**: TaskDataCollect - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskDataCollect/SaveDataCollectFile \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskDataCollect/DeleteDataCollectFile - -**删除数据收集文件信息** - -**标签**: TaskDataCollect - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SunTaskId | integer | ❌ | 数据收集id | - | -| UserId | integer | ❌ | 用户id | - | -| FileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskDataCollect/DeleteDataCollectFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskFollow - -#### GET /api/v1/TaskFollow/GetCourseWeekDetail - -**根据课程ID获取课程详情** - -**标签**: TaskFollow - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassCourseId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskFollow/GetCourseWeekDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskFollow/GetFollowTaskByDate - -**获取时间段内双师课堂课程id集合** - -**标签**: TaskFollow - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassesId | integer | ❌ | - | - | -| BeginDateTime | string | ❌ | - | - | -| EndDateTime | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskFollow/GetFollowTaskByDate -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskFollow/GetTaskCoachSubResult - -**根据任务id获取班干部双师课堂信息** - -**标签**: TaskFollow - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskFollow/GetTaskCoachSubResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskFollow/GetWeekCourseTable - -**根据时间获取当周课程表(时间不传默认一周)** - -**标签**: TaskFollow - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassId | integer | ❌ | 班级id必传 | - | -| StartTime | string | ❌ | - | - | -| EndTime | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskFollow/GetWeekCourseTable -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### POST /api/v2/TaskFollow/UpdateClassCourseTable - -**修改课程** - -**标签**: TaskFollow - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X POST //api/v2/TaskFollow/UpdateClassCourseTable \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskFollow/AddFollowAbsenceUser - -**添加缺勤人员(每次覆盖上一次的)** - -**标签**: TaskFollow - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| FollowId | integer | ❌ | 跟课记录id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskFollow/AddFollowAbsenceUser \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskFollow/AddFollowKeyNoteUser - -**添加重点人员** - -**标签**: TaskFollow - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| FollowId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskFollow/AddFollowKeyNoteUser \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskFollow/AddFollowTeachersituation - -**添加老师、学生问题(每次覆盖上一次的)** - -**标签**: TaskFollow - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskFollow/AddFollowTeachersituation \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskFollow/AddUpdateTaskCoachSub - -**添加双师课堂(无修改)** - -**标签**: TaskFollow - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskFollow/AddUpdateTaskCoachSub \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskFollow/TaskCoachSubFinish - -**完成双师课堂(完成后判断是否有待处理任务。状态改为已完成或待处理)** - -**标签**: TaskFollow - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskFollow/TaskCoachSubFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v2/TaskFollow/UpdateClassTaskInfo - -**修改任务科目** - -**标签**: TaskFollow - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v2/TaskFollow/UpdateClassTaskInfo \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskInfo - -#### GET /api/v1/TaskInfo/GetAssistUsers - -**获取协助人员(同校同级的学习官、当前账户绑定的组长、组长上级的部长)** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassesId | integer | ❌ | 班级id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetAssistUsers -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetCloudSchoolList - -**获取通讯录云校树** - -**标签**: TaskInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetCloudSchoolList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetTaskTypeInfo - -**获取任务类型列表** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | 当前页 | - | -| PageSize | integer | ❌ | 一页条数 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetTaskTypeInfo -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetTaskTypeInfoAllByPValue - -**获取该PValue本级和下级的所有参数** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PValue | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetTaskTypeInfoAllByPValue -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetTaskTypeInfoAllByPid - -**获取该pid下的所有参数** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| pid | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetTaskTypeInfoAllByPid -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetTaskTypeInfoAllByPidString - -**根据参数字符串(英文逗号),获取该参数下的所有参数** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| pidString | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetTaskTypeInfoAllByPidString -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetTaskTypeInfoByPid - -**根据父级ID获取该级任务类型列表** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| pid | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetTaskTypeInfoByPid -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetUserBooksResultByLike - -**模糊查询通讯录人员信息** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserName | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetUserBooksResultByLike -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetUserBooksResultBySchoolId - -**根据学校id查询通讯录人员信息** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| schoolId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetUserBooksResultBySchoolId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetUserBooksResultByUserId - -**根据id获取该用户的资料信息** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserId | integer | ❌ | 用户id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetUserBooksResultByUserId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskInfo/GetUserSchoolLikeBooksResultByLike - -**模糊查询通讯录人员/学校信息** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Name | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskInfo/GetUserSchoolLikeBooksResultByLike -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskInfo/GetCloudSchoolList - -**获取通讯录云校树** - -**标签**: TaskInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskInfo/GetCloudSchoolList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskInfo/GetCloudSchoolListAll - -**获取整个通讯录** - -**标签**: TaskInfo - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskInfo/GetCloudSchoolListAll -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskInfo/DeleteTask - -**删除任务(适用于所有类型任务)** - -**标签**: TaskInfo - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| taskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskInfo/DeleteTask -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskMeeting - -#### GET /api/v1/TaskMeeting/GetTaskMeetingResult - -**根据任务id获取班干部会议信息** - -**标签**: TaskMeeting - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskMeeting/GetTaskMeetingResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskMeeting/AddUpdateTaskMeeting - -**添加或更新会议任务** - -**标签**: TaskMeeting - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskMeeting/AddUpdateTaskMeeting \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskMeeting/TaskMeetingFinish - -**完成会议任务** - -**标签**: TaskMeeting - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskMeeting/TaskMeetingFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskMeeting/DeleteTaskMeetingFile - -**删除会议文件信息** - -**标签**: TaskMeeting - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| MeetingId | integer | ❌ | 会id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskMeeting/DeleteTaskMeetingFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskOther - -#### GET /api/v1/TaskOther/GetOtherInfoResult - -**根据任务id获取其他信息** - -**标签**: TaskOther - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskOther/GetOtherInfoResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskOther/AddUpdateOtherInfo - -**创建/修改其他任务** - -**标签**: TaskOther - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskOther/AddUpdateOtherInfo \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskOther/OtherInfoFinish - -**完成其他任务** - -**标签**: TaskOther - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskOther/OtherInfoFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskOther/DeleteOtherInfoFile - -**删除其他文件信息** - -**标签**: TaskOther - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| OtherId | integer | ❌ | 其他id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskOther/DeleteOtherInfoFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskSolution - -#### GET /api/v1/TaskSolution/GetList - -**获取解决方案列表** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ProblemTitle | string | ❌ | 备 注:问题描述 -默认值: | - | -| ProblemObj | string | ❌ | 备 注:适用对象 1:学校;2:教师;3:学生 -默认值: | - | -| ProblemPhenomenon | string | ❌ | 备 注:问题显著现象 -默认值: | - | -| ClassesId | integer | ❌ | 班级id(必传) | - | -| ProblemTaskType | string | ❌ | 任务类型枚举列表 | - | -| PageIndex | integer | ❌ | 当前页 | - | -| PageSize | integer | ❌ | 一页条数 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSolution/GetList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSolution/GetQuestionByUserId - -**根据用户id获取问题列表** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| userId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSolution/GetQuestionByUserId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSolution/GetQuestionDateResults - -**获取问题日期结果列表** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| year | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSolution/GetQuestionDateResults -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSolution/GetQuestionListByQuestionType - -**根据问题类别获取问题类型列表及数量(组长作为学习官或者 学习官才能看)** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| questionType | integer | ❌ | 1:学生;2:老师; | - | -| classId | integer | ❌ | 学生时,传班级id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSolution/GetQuestionListByQuestionType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSolution/GetQuestionListByTaskType - -**根据任务问题枚举获取问题列表** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| QuestionPvalue | integer | ❌ | 任务问题枚举 | - | -| userId | integer | ❌ | 搜索 用户id | - | -| year | integer | ❌ | 搜索 年 | - | -| month | integer | ❌ | 搜索 月 | - | -| isChain | integer | ❌ | 是否查询环比,0查询有环比的,1查询历史总记录 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSolution/GetQuestionListByTaskType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSolution/GetSingle - -**获取解决方案详情** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSolution/GetSingle -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSolution/GetSolutionLikeList - -**搜索解决方案列表(模糊搜索)** - -**标签**: TaskSolution - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| ClassesIds | array | ❌ | 班级id集合 | - | -| PageIndex | integer | ❌ | 当前页 | - | -| PageSize | integer | ❌ | 一页条数 | - | -| LikeType | integer | ❌ | 搜索类型:null/不传为全部;1:学校;2:教师;3:学生 | - | -| LikeName | string | ❌ | 搜索的内容 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSolution/GetSolutionLikeList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskSpot - -#### GET /api/v1/TaskSpot/GetSpotCheckType - -**学习行为习惯全面抽查-根据抽查项目 获取任务计划分值标准** - -**标签**: TaskSpot - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Check_id | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSpot/GetSpotCheckType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSpot/GetSpotTaskInfoById - -**学习行为习惯全面抽查-获取抽查任务信息** - -**标签**: TaskSpot - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSpot/GetSpotTaskInfoById -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSpot/GetSpotTaskUser - -**学习行为习惯全面抽查-根据抽查id获取抽查任务用户信息(抽查记录)** - -**标签**: TaskSpot - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SpotId | integer | ❌ | 必传 | - | -| Date | string | ❌ | 日期 | - | -| UserId | array | ❌ | 学生id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSpot/GetSpotTaskUser -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSpot/GetSpotTaskUserDateBySpotId - -**学习行为习惯全面抽查-根据抽查id获取已抽查用户的 日期记录信息** - -**标签**: TaskSpot - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SpotId | integer | ❌ | 必传 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSpot/GetSpotTaskUserDateBySpotId -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSpot/AddSpotCheckTask - -**学习行为习惯全面抽查-添加/修改工作任务** - -**标签**: TaskSpot - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSpot/AddSpotCheckTask \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSpot/AddSpotCheckUser - -**学习行为习惯全面抽查-添加工作任务-添加抽查用户(只要有添加,就不能修改任务)** - -**标签**: TaskSpot - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSpot/AddSpotCheckUser \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSpot/SpotTaskFinish - -**学习行为习惯全面抽查-结束工作任务** - -**标签**: TaskSpot - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSpot/SpotTaskFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskSummarize - -#### GET /api/v1/TaskSummarize/GetSummarizDay - -**获取日报信息** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| workDate | string | ❌ | - | - | -| userId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizDay -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizDayDateSlot - -**获取日报信息(时间段)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| BeginDate | string | ❌ | - | - | -| EndDate | string | ❌ | - | - | -| userId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizDayDateSlot -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizDayListResult - -**管理端获取本人所管理的人员的日报** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserIds | array | ❌ | 用户id | - | -| UserName | string | ❌ | 用户姓名 | - | -| BeginTime | string | ❌ | 开始时间 | - | -| EndTime | string | ❌ | 结束时间 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| isOnlyNoRead | boolean | ❌ | 是否已读 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizDayListResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizMonth - -**获取月报信息** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Year | integer | ❌ | - | - | -| Month | integer | ❌ | - | - | -| userId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizMonth -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizMonthByYear - -**获取月报信息-一年的** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Year | integer | ❌ | - | - | -| userId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizMonthByYear -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizMonthTaskByDate - -**获取月报中的任务完成情况列表(月报)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Year | integer | ❌ | 年份 | - | -| Month | integer | ❌ | 月份 | - | -| UserId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizMonthTaskByDate -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizMonthTaskResult - -**管理端获取本人所管理的人员的月报** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserIds | array | ❌ | 用户id | - | -| UserName | string | ❌ | 用户姓名 | - | -| BeginTime | string | ❌ | 开始时间 | - | -| EndTime | string | ❌ | 结束时间 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| isOnlyNoRead | boolean | ❌ | 是否已读 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizMonthTaskResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizNoReadByType - -**获取用户未读的总结任务数量** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| type | integer | ❌ | 1:日报 2:周报 3:月报 | - | -| LikeUserIds | array | ❌ | 用户id集合 | - | -| BeginDate | string | ❌ | 开始时间 | - | -| EndDate | string | ❌ | 结束时间 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizNoReadByType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizWeek - -**获取周报信息** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| BeginDate | string | ❌ | - | - | -| EndDate | string | ❌ | - | - | -| userId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizWeek -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizWeekByDate - -**获取周报信息(时间段)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| BeginDate | string | ❌ | - | - | -| EndDate | string | ❌ | - | - | -| userId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizWeekByDate -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizWeekListResult - -**管理端获取本人所管理的人员的周报** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| UserIds | array | ❌ | 用户id | - | -| UserName | string | ❌ | 用户姓名 | - | -| BeginTime | string | ❌ | 开始时间 | - | -| EndTime | string | ❌ | 结束时间 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| isOnlyNoRead | boolean | ❌ | 是否已读 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizWeekListResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizWeekTaskByDate - -**获取周报中的任务列表-根据开始日期和结束日期获取任务列表(周报)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| BeginDate | string | ❌ | 开始日期 | - | -| EndDate | string | ❌ | 结束日期 | - | -| UserId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizWeekTaskByDate -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizePlanById - -**根据总结id获取总结计划信息(日报周报月报通用)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SummarizeId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizePlanById -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetSummarizeTaskByDate - -**获取日报中的任务列表-根据日期获取任务列表(日报)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Date | string | ❌ | 日期 | - | -| UserId | integer | ❌ | 用户id,不传则获取自己(组长时,只获取他作为学习官绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetSummarizeTaskByDate -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskSummarize/GetTaskLogResult - -**获取用户该任务操作记录(工作进度)(日报周报月报通用)** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| taskId | integer | ❌ | - | - | -| UserId | integer | ❌ | 用户id,不传则获取自己(组长时,获取他作为学习官时绑定的班级或通用任务) | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskSummarize/GetTaskLogResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSummarize/GetDataSummariz - -**总部长获取数据统计** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| CloudSchoolId | integer | ❌ | 云校id | - | -| BeginTime | string | ❌ | - | - | -| EndTime | string | ❌ | - | - | -| FollowId | integer | ❌ | 学习官id【可能存在组长id,组长也是学习官】 | - | -| TeamLeaderUserId | integer | ❌ | 组长id,查询该组所有人 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSummarize/GetDataSummariz -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSummarize/GetGeneralCloudSchoolInfo - -**总部长获取关联云校的列表** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSummarize/GetGeneralCloudSchoolInfo -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSummarize/GetSummarizDayListResult - -**管理端获取本人所管理的人员的日报** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| cloudSchoolId | integer | ❌ | 云校iD | - | -| UserIds | array | ❌ | 用户id | - | -| UserName | string | ❌ | 用户姓名 | - | -| BeginTime | string | ❌ | 开始时间 | - | -| EndTime | string | ❌ | 结束时间 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| isOnlyNoRead | boolean | ❌ | 是否已读 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSummarize/GetSummarizDayListResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSummarize/GetSummarizMonthTaskResult - -**管理端获取本人所管理的人员的月报** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| cloudSchoolId | integer | ❌ | 云校iD | - | -| UserIds | array | ❌ | 用户id | - | -| UserName | string | ❌ | 用户姓名 | - | -| BeginTime | string | ❌ | 开始时间 | - | -| EndTime | string | ❌ | 结束时间 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| isOnlyNoRead | boolean | ❌ | 是否已读 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSummarize/GetSummarizMonthTaskResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSummarize/GetSummarizNoReadByType - -**获取用户未读的总结任务数量** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| type | integer | ❌ | 1:日报 2:周报 3:月报 | - | -| LikeUserIds | array | ❌ | 用户id集合 | - | -| BeginDate | string | ❌ | 开始时间 | - | -| EndDate | string | ❌ | 结束时间 | - | -| cloudSchoolId | integer | ❌ | 云校id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSummarize/GetSummarizNoReadByType -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/TaskSummarize/GetSummarizWeekListResult - -**管理端获取本人所管理的人员的周报** - -**标签**: TaskSummarize - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| cloudSchoolId | integer | ❌ | 云校iD | - | -| UserIds | array | ❌ | 用户id | - | -| UserName | string | ❌ | 用户姓名 | - | -| BeginTime | string | ❌ | 开始时间 | - | -| EndTime | string | ❌ | 结束时间 | - | -| PageIndex | integer | ❌ | - | - | -| PageSize | integer | ❌ | - | - | -| isOnlyNoRead | boolean | ❌ | 是否已读 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/TaskSummarize/GetSummarizWeekListResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/AddDaySummarize - -**添加日报** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/AddDaySummarize \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/AddMonthSummarize - -**添加月报** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/AddMonthSummarize \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/AddReadSummariz - -**添加日报 周报 月报的已读信息** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/AddReadSummariz \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/AddWeekSummarize - -**添加周报** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/AddWeekSummarize \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/EvaluationSumDay - -**评价日报** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/EvaluationSumDay \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/EvaluationSumMonth - -**评价月报** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/EvaluationSumMonth \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskSummarize/EvaluationSumWeek - -**评价周报** - -**标签**: TaskSummarize - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskSummarize/EvaluationSumWeek \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskTalk - -#### GET /api/v1/TaskTalk/GetTaskTalkResult - -**获取任务谈话结果** - -**标签**: TaskTalk - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskTalk/GetTaskTalkResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTalk/AddUpdateTaskTalk - -**添加或更新谈话任务** - -**标签**: TaskTalk - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTalk/AddUpdateTaskTalk \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTalk/TaskTalkFinish - -**结束谈话任务** - -**标签**: TaskTalk - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTalk/TaskTalkFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskTalk/DeleteTaskTalk - -**删除谈话任务文件** - -**标签**: TaskTalk - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| Talk_id | integer | ❌ | 谈话记录表id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskTalk/DeleteTaskTalk -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskTeacherBehavior - -#### GET /api/v1/TaskTeacherBehavior/GetTeacherBehaviorQuestionNumList - -**获取教师行为规范问题列表(观察记录)** - -**标签**: TaskTeacherBehavior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| tbId | integer | ❌ | - | - | -| Date | string | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskTeacherBehavior/GetTeacherBehaviorQuestionNumList -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskTeacherBehavior/GetTeacherBehaviorQuestionNumResult - -**获取教师行为规范结果列表-问题记录列表** - -**标签**: TaskTeacherBehavior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| taskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskTeacherBehavior/GetTeacherBehaviorQuestionNumResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskTeacherBehavior/GetTeacherBehaviorQuestionResult - -**根据问题观察记录id获取问题详细** - -**标签**: TaskTeacherBehavior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| QuestionId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskTeacherBehavior/GetTeacherBehaviorQuestionResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v1/TaskTeacherBehavior/GetTeacherBehaviorResults - -**获取教师行为规范结果列表** - -**标签**: TaskTeacherBehavior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| taskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskTeacherBehavior/GetTeacherBehaviorResults -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTeacherBehavior/AddTeacherBehaviorQuestion - -**添加观察问题记录** - -**标签**: TaskTeacherBehavior - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTeacherBehavior/AddTeacherBehaviorQuestion \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTeacherBehavior/AddUpdateTaskTeacherBehavior - -**添加或更新教师行为规范任务** - -**标签**: TaskTeacherBehavior - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTeacherBehavior/AddUpdateTaskTeacherBehavior \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTeacherBehavior/TeacherBehaviorFinish - -**结束教师行为规范任务** - -**标签**: TaskTeacherBehavior - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTeacherBehavior/TeacherBehaviorFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### TaskTeacherTalk - -#### GET /api/v1/TaskTeacherTalk/GetTeacherTalkInfoResult - -**根据任务id获取教师谈话信息** - -**标签**: TaskTeacherTalk - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TaskId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v1/TaskTeacherTalk/GetTeacherTalkInfoResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTeacherTalk/AddUpdateTeacherTalkInfo - -**创建/修改教师谈话任务** - -**标签**: TaskTeacherTalk - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTeacherTalk/AddUpdateTeacherTalkInfo \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v1/TaskTeacherTalk/TeacherTalkInfoFinish - -**完成教师谈话任务** - -**标签**: TaskTeacherTalk - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v1/TaskTeacherTalk/TeacherTalkInfoFinish \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### DELETE /api/v1/TaskTeacherTalk/DeleteTeacherTalkInfoFile - -**删除教师谈话文件信息** - -**标签**: TaskTeacherTalk - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| TalkId | integer | ❌ | 谈话id | - | -| fileId | integer | ❌ | 文件id | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X DELETE //api/v1/TaskTeacherTalk/DeleteTeacherTalkInfoFile -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### Superior - -#### GET /api/v2/Superior/GetMySuperiorTaskListResult - -**获取作为被布置者的布置任务列表** - -**标签**: Superior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | 当前页 | - | -| PageSize | integer | ❌ | 一页条数 | - | -| SuperiorBeginTime | string | ❌ | 布置时间-开始 | - | -| SuperiorEndTime | string | ❌ | 布置时间-结束 | - | -| TaskEnum | integer | ❌ | 任务类型 | - | -| TaskWorkType | integer | ❌ | 1单人;2多人; | - | -| FinishBeginTime | string | ❌ | 完成时间-开始 | - | -| FinishEndTime | string | ❌ | 完成时间-结束 | - | -| TaskStatus | integer | ❌ | 任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; | - | -| UserId | integer | ❌ | 用户id(他收到的工作),不传则获取本人 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/Superior/GetMySuperiorTaskListResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/Superior/GetSuperiorTaskDetail - -**获取布置任务详情** - -**标签**: Superior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SuperiorId | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/Superior/GetSuperiorTaskDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/Superior/GetSuperiorTaskInfoUserDetail - -**获取布置任务多人的用户任务情况** - -**标签**: Superior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| SuperiorId | integer | ❌ | - | - | -| PageIndex | integer | ❌ | 当前页 | - | -| PageSize | integer | ❌ | 一页条数 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/Superior/GetSuperiorTaskInfoUserDetail -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### GET /api/v2/Superior/GetSuperiorTaskListResult - -**获取作为布置者的布置任务列表** - -**标签**: Superior - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| PageIndex | integer | ❌ | 当前页 | - | -| PageSize | integer | ❌ | 一页条数 | - | -| SuperiorBeginTime | string | ❌ | 布置时间-开始 | - | -| SuperiorEndTime | string | ❌ | 布置时间-结束 | - | -| TaskEnum | integer | ❌ | 任务类型 | - | -| TaskWorkType | integer | ❌ | 1单人;2多人; | - | -| FinishBeginTime | string | ❌ | 完成时间-开始 | - | -| FinishEndTime | string | ❌ | 完成时间-结束 | - | -| TaskStatus | integer | ❌ | 任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; | - | -| UserId | integer | ❌ | 用户id(他布置的工作),不传则获取本人 | - | -| UserName | string | ❌ | 模糊搜索被接收人姓名 | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/Superior/GetSuperiorTaskListResult -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - -#### PUT /api/v2/Superior/AddSuperiorTask - -**添加布置任务** - -**标签**: Superior - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X PUT //api/v2/Superior/AddSuperiorTask \ - -H "Content-Type: application/json" \ - -d '{"key": "value"}' -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -### SystemParameterOther - -#### GET /api/v2/SystemParameterOther/GetSysParameterOtherByPid - -**根据父级id获取字典列表** - -**标签**: SystemParameterOther - -**参数**: - -*查询参数*: - -| 参数名 | 类型 | 必填 | 描述 | 示例 | -|--------|------|------|------|------| -| pid | integer | ❌ | - | - | - -**响应**: - -*HTTP 200*: -- OK - -**示例**: - -```bash -curl -X GET //api/v2/SystemParameterOther/GetSysParameterOtherByPid -``` - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - ---- - - -## 📋 数据模型 - -### AssistUserResult - -人员基本信息 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | Id | -| userName | string | ❌ | 用户姓名 | - -**JSON示例**: - -```json -{ - "id": 0, - "userName": "string" -} -``` - ---- - -### BannerResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | id | -| bannerFileId | integer (int64) | ❌ | 备 注:文件id -默认值: | -| bannerName | string | ❌ | 备 注:banne名称 -默认值: | -| bannerFileUrl | string | ❌ | 备 注:文件地址 | -| bannerFileName | string | ❌ | 文件名称 | -| bannerFileSize | integer (int64)? | ❌ | 文件大小 | - -**JSON示例**: - -```json -{ - "id": 0, - "bannerFileId": 0, - "bannerName": "string", - "bannerFileUrl": "string", - "bannerFileName": "string", - "bannerFileSize": 0 -} -``` - ---- - -### BaseTaskAddResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 新增后返回的任务id | -| sunClassTaskId | integer (int64) | ❌ | 任务子表的id(例:新增学习习惯全面抽查,此id则为抽查工作记录id,也就是SpotId) -也可能是0,为0时,说明没有子表数据,以任务id为主 | - -**JSON示例**: - -```json -{ - "id": 0, - "sunClassTaskId": 0 -} -``` - ---- - -### BaseTaskClassResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| status | integer (int32) | ❌ | 任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 | -| classesId | integer (int64)? | ❌ | 备 注:班级id(班级任务) -默认值: | -| classesName | string? | ❌ | 备 注:班级名称(用于展示) | -| gradeLevel | string? | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32)? | ❌ | 备 注:所属届 -默认值: | -| taskTypeEnum | integer (int32) | ❌ | 备 注:参数表 枚举值,任务类型 -默认值: | -| taskTypeName | string | ❌ | 备 注:任务类型名称(用于展示) | -| taskTitleSuffix | string | ❌ | 备 注:任务标题后缀,用于展示(有值时,将任务类型名称 和该字段用 “-”连接) -默认值: | -| startDate | string (date-time)? | ❌ | 备 注:开始日期 -默认值: | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endDate | string (date-time)? | ❌ | 备 注:结束日期 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| isLongwork | integer (int64) | ❌ | 备 注:是否长期性工作(0否,1是) -默认值: | -| finishDate | string (date-time)? | ❌ | 备 注:任务完成日期 -默认值: | -| finishDatetime | string (date-time)? | ❌ | 备 注:任务完成时间 -默认值: | -| taskUserId | integer (int64)? | ❌ | 备 注:执行人id(通用任务才有) -默认值: | -| taskIndexType | integer (int32) | ❌ | 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "status": 0, - "classesId": 0, - "classesName": "string", - "gradeLevel": "string", - "graduationYear": 0, - "taskTypeEnum": 0, - "taskTypeName": "string", - "taskTitleSuffix": "string", - "startDate": "string", - "startTime": "string", - "endDate": "string", - "endTime": "string", - "isLongwork": 0, - "finishDate": "string", - "finishDatetime": "string", - "taskUserId": 0, - "taskIndexType": 0 -} -``` - ---- - -### BaseTaskFileRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classesTaskId | integer (int64) | ❌ | 关联表id(非任务主表id) | -| fileId | integer (int64) | ❌ | 文件id | - -**JSON示例**: - -```json -{ - "classesTaskId": 0, - "fileId": 0 -} -``` - ---- - -### CheckListTaskTypeResult - -指标任务完成情况 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| year | integer (int32) | ❌ | 备 注:年份 -默认值: | -| month | integer (int32) | ❌ | 备 注:月份 -默认值: | -| typeEnum | integer (int32) | ❌ | 备 注:指标任务类型 -默认值: | -| checkCount | integer (int32) | ❌ | 备 注:任务指标数 -默认值: | -| taskCountEnd | integer (int32) | ❌ | 备 注:任务已完成数 -默认值: | -| taskCountOverdue | integer (int32) | ❌ | 备 注:任务逾期数 -默认值: | -| taskUserId | integer (int64) | ❌ | 备 注:用户id -默认值: | - -**JSON示例**: - -```json -{ - "year": 0, - "month": 0, - "typeEnum": 0, - "checkCount": 0, - "taskCountEnd": 0, - "taskCountOverdue": 0, - "taskUserId": 0 -} -``` - ---- - -### ClassCadreMeetingFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| classCadreId | integer (int64) | ❌ | 班干部会议ID | -| remark | string | ❌ | 会议纪要 | -| files | array? | ❌ | 文件 | - -**JSON示例**: - -```json -{ - "id": 0, - "classCadreId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### ClassCadreMeetingRequest - -开展班干部会议请求参数 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| classCadreId | integer (int64)? | ❌ | id(新增时为null,修改时必传) | -| meetingTitle | string | ❌ | 会议主题 | -| userIds | array | ❌ | 参会人员id | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "classCadreId": 0, - "meetingTitle": "string", - "userIds": [] -} -``` - ---- - -### ClassCadreMeetingResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classCadreId | integer (int64) | ❌ | 班干部会议记录ID | -| meetingTitle | string | ❌ | 会议标题 | -| remark | string | ❌ | 会议纪要 | -| taskInfo | reference | ❌ | - | -| sunTaskUserResults | array | ❌ | 关联用户 | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "classCadreId": 0, - "meetingTitle": "string", - "remark": "string", - "taskInfo": {}, - "sunTaskUserResults": [], - "sunTaskFileResults": [] -} -``` - ---- - -### ClassClassTaskInfoRequest - -修改班级任务信息请求参数 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classCourseId | integer (int64) | ❌ | 课程id | -| subId | integer (int32) | ❌ | 科目 | - -**JSON示例**: - -```json -{ - "classCourseId": 0, - "subId": 0 -} -``` - ---- - -### ClassCourseTableRequest - -班级课程表请求参数 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classCourseId | integer (int64) | ❌ | 课程id | -| classCourseTableId | integer (int64) | ❌ | 班级课表id | -| classCourseWeekId | integer (int64) | ❌ | 周id | -| coursesSectionDetailId | integer (int64) | ❌ | 课节详情id | -| name | string? | ❌ | 名称 | -| week | integer (int32) | ❌ | 周几 | -| subject | integer (int32) | ❌ | 科目id | -| planStartTime | string (date-time) | ❌ | 计划上课时间 | -| planEndTime | string (date-time) | ❌ | 计划下课时间 | - -**JSON示例**: - -```json -{ - "classCourseId": 0, - "classCourseTableId": 0, - "classCourseWeekId": 0, - "coursesSectionDetailId": 0, - "name": "string", - "week": 0, - "subject": 0, - "planStartTime": "string", - "planEndTime": "string" -} -``` - ---- - -### ClassDataListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| className | string | ❌ | 备 注:名称 -默认值: | -| schoolId | integer (int64) | ❌ | 备 注:学校编号 -默认值: | -| gradeLevel | string | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32) | ❌ | 备 注:所属届 -默认值: | -| createTime | string (date-time) | ❌ | 备 注:添加时间 -默认值: | -| createPositionId | integer (int64)? | ❌ | 备 注:创建者部门Id -默认值: | -| deleteState | boolean | ❌ | 备 注:删除状态 -默认值: | -| type | reference | ❌ | - | -| teachingLevel | reference | ❌ | - | -| schoolName | string | ❌ | 学校名称 | - -**JSON示例**: - -```json -{ - "id": 0, - "className": "string", - "schoolId": 0, - "gradeLevel": "string", - "graduationYear": 0, - "createTime": "string", - "createPositionId": 0, - "deleteState": true, - "type": {}, - "teachingLevel": {}, - "schoolName": "string" -} -``` - ---- - -### ClassDetailResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| name | string | ❌ | 班级名称 | -| gradeLevel | string | ❌ | 备 注:年级 -默认值: | -| studentCount | integer (int32) | ❌ | 备 注:学生人数 -默认值: | -| graduationYear | integer (int32) | ❌ | 备 注:所属届 -默认值: | -| schoolId | integer (int64) | ❌ | 学校ID | -| schoolName | string | ❌ | 学校名称 | -| elective1 | integer (int32)? | ❌ | 选修课指标1 | -| elective1Name | string? | ❌ | 选修课指标1名称 | -| elective2 | integer (int32)? | ❌ | 选修课指标2 | -| elective2Name | string? | ❌ | 选修课指标2名称 | -| elective3 | integer (int32)? | ❌ | 选修课指标3 | -| elective3Name | string? | ❌ | 选修课指标3名称 | - -**JSON示例**: - -```json -{ - "id": 0, - "name": "string", - "gradeLevel": "string", - "studentCount": 0, - "graduationYear": 0, - "schoolId": 0, - "schoolName": "string", - "elective1": 0, - "elective1Name": "string", - "elective2": 0, - "elective2Name": "string", - "elective3": 0, - "elective3Name": "string" -} -``` - ---- - -### ClassManageTaskListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskChecklistUser | array | ❌ | 通用工作指标清单列表 | - -**JSON示例**: - -```json -{ - "taskChecklistUser": [] -} -``` - ---- - -### ClassManager_Task_checklistRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 新增为null | -| taskTypeEnum | integer (int64) | ❌ | 备 注:任务类型id -默认值: | -| targetNumber | integer (int32) | ❌ | 备 注:任务指标数 -默认值: | -| taskType | integer (int32) | ❌ | 备 注:班级/通用任务类型 1班级;2通用 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "taskTypeEnum": 0, - "targetNumber": 0, - "taskType": 0 -} -``` - ---- - -### ClassMeetingFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| classMeetingId | integer (int64) | ❌ | 班级会议ID | -| remark | string | ❌ | 会议纪要 | -| files | array? | ❌ | 文件 | - -**JSON示例**: - -```json -{ - "id": 0, - "classMeetingId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### ClassMeetingRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| classMeetingId | integer (int64)? | ❌ | id(新增时为null,修改时必传) | -| meetingTitle | string | ❌ | 会议主题 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "classMeetingId": 0, - "meetingTitle": "string" -} -``` - ---- - -### ClassMeetingResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classMeetingId | integer (int64) | ❌ | 班级会议记录ID | -| meetingTitle | string | ❌ | 会议标题 | -| meetingContent | string | ❌ | 会议纪要 | -| taskInfo | reference | ❌ | - | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "classMeetingId": 0, - "meetingTitle": "string", - "meetingContent": "string", - "taskInfo": {}, - "sunTaskFileResults": [] -} -``` - ---- - -### ClassTeacherResult - -工作台-班级教师 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| teacherId | integer (int64) | ❌ | 教师id | -| teacherName | string | ❌ | 教师名称 | -| subId | integer (int64) | ❌ | 科目Id | -| subName | string | ❌ | 科目名称 | - -**JSON示例**: - -```json -{ - "teacherId": 0, - "teacherName": "string", - "subId": 0, - "subName": "string" -} -``` - ---- - -### ClassTypeEnum - -**枚举值**: - -- `0` -- `1` -- `2` -- `3` -- `4` -- `5` -- `6` -- `10` -- `20` -- `30` -- `40` -- `50` - -**JSON示例**: - -```json -"0" -``` - ---- - -### ClassesActivityFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| activityId | integer (int64) | ❌ | 班级活动ID | -| remark | string | ❌ | 活动记录 | -| files | array? | ❌ | 文件 | - -**JSON示例**: - -```json -{ - "id": 0, - "activityId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### ClassesActivityRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| activityId | integer (int64)? | ❌ | 活动id(新增时为null,修改时必传) | -| activityTitle | string | ❌ | 备 注:活动主题 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "activityId": 0, - "activityTitle": "string" -} -``` - ---- - -### ClassesActivityResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| activityId | integer (int64) | ❌ | 活动id | -| activityTitle | string | ❌ | 备 注:活动主题 -默认值: | -| remark | string? | ❌ | 备 注:活动记录 -默认值: | -| taskInfo | reference | ❌ | - | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "activityId": 0, - "activityTitle": "string", - "remark": "string", - "taskInfo": {}, - "sunTaskFileResults": [] -} -``` - ---- - -### ClassesAndFollowResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| name | string | ❌ | 班级id | -| gradeLevel | string | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32) | ❌ | 备 注:所属届 -默认值: | -| followName | string | ❌ | 学习官名称 | -| followId | integer (int64) | ❌ | 学习官id | - -**JSON示例**: - -```json -{ - "id": 0, - "name": "string", - "gradeLevel": "string", - "graduationYear": 0, - "followName": "string", - "followId": 0 -} -``` - ---- - -### ClassesResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| name | string | ❌ | 班级名称 | -| gradeLevel | string | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32) | ❌ | 备 注:所属届 -默认值: | -| schoolId | integer (int64) | ❌ | 备 注:学校id -默认值: | -| schoolName | string | ❌ | 学校名称 | - -**JSON示例**: - -```json -{ - "id": 0, - "name": "string", - "gradeLevel": "string", - "graduationYear": 0, - "schoolId": 0, - "schoolName": "string" -} -``` - ---- - -### ClassesTaskListResult - -任务列表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| status | integer (int32) | ❌ | 备 注:任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 -默认值: | -| classesId | integer (int64)? | ❌ | 备 注:班级id(班级任务) -默认值: | -| classesName | string | ❌ | - | -| gradeLevel | string | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32) | ❌ | 备 注:所属届 -默认值: | -| isLongwork | integer (int64) | ❌ | 备 注:是否长期性工作 -默认值: | -| taskTypeEnum | integer (int32) | ❌ | 备 注:参数表 枚举值,任务类型 -默认值: | -| taskTitleSuffix | string | ❌ | 备 注:任务标题后缀,用于展示 -默认值: | -| startDate | string (date-time)? | ❌ | 备 注:开始日期 -默认值: | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endDate | string (date-time)? | ❌ | 备 注:结束日期 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskIndexType | integer (int32) | ❌ | 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 -默认值: | -| isSuperiorTask | integer (int32)? | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "status": 0, - "classesId": 0, - "classesName": "string", - "gradeLevel": "string", - "graduationYear": 0, - "isLongwork": 0, - "taskTypeEnum": 0, - "taskTitleSuffix": "string", - "startDate": "string", - "startTime": "string", - "endDate": "string", - "endTime": "string", - "taskIndexType": 0, - "isSuperiorTask": 0 -} -``` - ---- - -### ClassesTaskListResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### ClassesTheme - -班级工作主题 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| semester | string | ❌ | 备 注:学期 -默认值: | -| upDown | string | ❌ | · - 备 注:上/下 - 默认值: | -| semesterMonth | integer (int32) | ❌ | 备 注:月份 -默认值: | -| semesterTitle | string | ❌ | 备 注:月德育主题 -默认值: | -| classesThemeObjectiveList | array | ❌ | 关联班级工作主题目标 | - -**JSON示例**: - -```json -{ - "id": 0, - "semester": "string", - "upDown": "string", - "semesterMonth": 0, - "semesterTitle": "string", - "classesThemeObjectiveList": [] -} -``` - ---- - -### ClassesThemeObjectives - -班级工作主题的目标 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| objectivesTitle | string | ❌ | 备 注:工作目标 -默认值: | -| themeId | integer (int64) | ❌ | 备 注:主题id -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "objectivesTitle": "string", - "themeId": 0 -} -``` - ---- - -### CloudSchoolResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| cloudName | string | ❌ | 云校名称 | -| cloudId | integer (int64) | ❌ | 云校ID | - -**JSON示例**: - -```json -{ - "cloudName": "string", - "cloudId": 0 -} -``` - ---- - -### CoachSubInfoFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 新增为null,编辑时传Id | -| coachId | integer (int64) | ❌ | 备 注:学科辅助任务Id -默认值: | -| coachContent | string | ❌ | 备 注:辅导内容 -默认值: | -| files | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "coachId": 0, - "coachContent": "string", - "files": [] -} -``` - ---- - -### CoachSubInfoRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| coachId | integer (int64)? | ❌ | 辅导表id(新增时为null,修改时必传) | -| coachSubId | integer (int64) | ❌ | 科目id | -| coachSubName | string | ❌ | 科目名称 | -| userId | array | ❌ | 参会人员 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "coachId": 0, - "coachSubId": 0, - "coachSubName": "string", - "userId": [] -} -``` - ---- - -### CoachSubInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| coachId | integer (int64) | ❌ | 学科辅助ID | -| coachSubId | integer (int64) | ❌ | 学科辅助科目id | -| coachSubName | string | ❌ | 学科辅助科目名称 | -| coachContent | string | ❌ | 学科辅助内容 | -| taskInfo | reference | ❌ | - | -| sunTaskUserResults | array | ❌ | 关联用户 | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "coachId": 0, - "coachSubId": 0, - "coachSubName": "string", - "coachContent": "string", - "taskInfo": {}, - "sunTaskUserResults": [], - "sunTaskFileResults": [] -} -``` - ---- - -### CourseWeekDetailOutput - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classCourseId | integer (int64) | ❌ | 课程id | -| subject | integer (int32) | ❌ | 科目id | -| subjectName | string | ❌ | 科目名称 | -| teacherName | string | ❌ | 云校老师 | -| teacherId | integer (int64) | ❌ | 云校老师 | -| landingTeacherId | integer (int64) | ❌ | 落地老师 | -| landingTeacherName | string | ❌ | 落地老师 | -| planStartTime | string (date-time) | ❌ | 上课时间 | -| planEndTime | string (date-time) | ❌ | 下课时间 | - -**JSON示例**: - -```json -{ - "classCourseId": 0, - "subject": 0, - "subjectName": "string", - "teacherName": "string", - "teacherId": 0, - "landingTeacherId": 0, - "landingTeacherName": "string", - "planStartTime": "string", - "planEndTime": "string" -} -``` - ---- - -### CulturalDetailResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskInfo | reference | ❌ | - | -| culturalId | integer (int64) | ❌ | 文创id | -| culturalTitle | string | ❌ | 文创标题 | -| remark | string? | ❌ | 备 注:更新说明 -默认值: | -| sunTaskFileResults | array | ❌ | 文创文件信息 | - -**JSON示例**: - -```json -{ - "taskInfo": {}, - "culturalId": 0, - "culturalTitle": "string", - "remark": "string", - "sunTaskFileResults": [] -} -``` - ---- - -### CulturalFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| culturalId | integer (int64) | ❌ | 文创ID | -| remark | string | ❌ | 工作内容 | -| files | array | ❌ | 文创文件 | - -**JSON示例**: - -```json -{ - "id": 0, - "culturalId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### CulturalRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| culturalId | integer (int64)? | ❌ | 文创id 新增不传,修改必传 | -| culturalTitle | string | ❌ | 文创标题 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "culturalId": 0, - "culturalTitle": "string" -} -``` - ---- - -### DataCollectFileRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classesTaskId | integer (int64) | ❌ | 关联表id(非任务主表id) | -| fileId | integer (int64) | ❌ | 文件id | -| userId | integer (int64) | ❌ | 用户ID | - -**JSON示例**: - -```json -{ - "classesTaskId": 0, - "fileId": 0, - "userId": 0 -} -``` - ---- - -### DataCollectFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| collectId | integer (int64) | ❌ | 采集ID | -| remark | string | ❌ | 分析总结 | - -**JSON示例**: - -```json -{ - "id": 0, - "collectId": 0, - "remark": "string" -} -``` - ---- - -### DataCollectRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| dataCollectId | integer (int64)? | ❌ | 数据采集任务ID(新增时为null,修改时必传) | -| collectTitle | string | ❌ | 数据采集标题 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "dataCollectId": 0, - "collectTitle": "string" -} -``` - ---- - -### DataCollectResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskInfo | reference | ❌ | - | -| collectId | integer (int64) | ❌ | 采集ID | -| collectTitle | string | ❌ | 采集主题 | -| remark | string | ❌ | 分析总结 | -| collectUsers | array | ❌ | 已采集用户列表 | - -**JSON示例**: - -```json -{ - "taskInfo": {}, - "collectId": 0, - "collectTitle": "string", - "remark": "string", - "collectUsers": [] -} -``` - ---- - -### DataCollectUserResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userId | integer (int64) | ❌ | 用户ID | -| userName | string | ❌ | 用户名 | -| fileCount | integer (int32) | ❌ | 采集文件数量 | - -**JSON示例**: - -```json -{ - "userId": 0, - "userName": "string", - "fileCount": 0 -} -``` - ---- - -### DataConllectionDetailResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| title | string | ❌ | 备 注:收集主题 -默认值: | -| remark | string | ❌ | 备 注:收集要求 -默认值: | -| fileId | integer (int64)? | ❌ | 备 注:模板文件id -默认值: | -| filePath | string? | ❌ | 备 注:模板文件路径 | -| fileName | string? | ❌ | 备 注:模板文件名称 | -| fileSize | integer (int64)? | ❌ | 备 注:模板文件大小 | -| endtime | string (date-time) | ❌ | 备 注:提交时间 -默认值: | -| status | integer (int32)? | ❌ | 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 -默认值: | -| subFileId | integer (int64)? | ❌ | 已提交文件id(空则未提交) | -| subFilePath | string? | ❌ | 备 注:提交文件路径 | -| subFileName | string? | ❌ | 备 注:提交文件名称 | -| subFileSize | integer (int64)? | ❌ | 备 注:提交文件大小 | -| subAddtime | string (date-time)? | ❌ | 备 注:提交时间 | - -**JSON示例**: - -```json -{ - "id": 0, - "title": "string", - "remark": "string", - "fileId": 0, - "filePath": "string", - "fileName": "string", - "fileSize": 0, - "endtime": "string", - "status": 0, - "subFileId": 0, - "subFilePath": "string", - "subFileName": "string", - "subFileSize": 0, - "subAddtime": "string" -} -``` - ---- - -### DataConllectionListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| title | string | ❌ | 备 注:收集主题 -默认值: | -| endtime | string (date-time) | ❌ | 备 注:需要提交时间 -默认值: | -| fileId | integer (int64)? | ❌ | 已提交文件id(空则未提交) | - -**JSON示例**: - -```json -{ - "id": 0, - "title": "string", - "endtime": "string", - "fileId": 0 -} -``` - ---- - -### DataConllectionListResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### DataConllectionUpFileRequest - -数据采集上传文件 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| dataCollectionId | integer (int64) | ❌ | 资料收集id | -| fileId | integer (int64) | ❌ | 文件id | - -**JSON示例**: - -```json -{ - "dataCollectionId": 0, - "fileId": 0 -} -``` - ---- - -### DesktopDataConllectionUpFileRequest - -电脑端上传采集文件 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| sign | string | ❌ | 加密数据 | -| fileId | integer (int64) | ❌ | 文件id | - -**JSON示例**: - -```json -{ - "sign": "string", - "fileId": 0 -} -``` - ---- - -### EvaluationSumRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 总结报告id | -| content | string | ❌ | 评论内容 | - -**JSON示例**: - -```json -{ - "id": 0, - "content": "string" -} -``` - ---- - -### FinancialClassRequest - -添加班级使用经费记录 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classId | integer (int64) | ❌ | 班级id | -| remark | string | ❌ | 用途 | -| money | number (double) | ❌ | 元 | -| financialTime | string (date-time) | ❌ | 使用时间 | - -**JSON示例**: - -```json -{ - "classId": 0, - "remark": "string", - "money": 0.0, - "financialTime": "string" -} -``` - ---- - -### FinancialClassResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 经费使用记录Id | -| financialTime | string (date-time) | ❌ | 备 注:使用时间 -默认值: | -| remark | string | ❌ | 用途 | -| money | number (double) | ❌ | 消费费用(元) | - -**JSON示例**: - -```json -{ - "id": 0, - "financialTime": "string", - "remark": "string", - "money": 0.0 -} -``` - ---- - -### FinancialClassSumResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| financialIndicatorsResult | reference | ❌ | - | -| sumMoney | number (double) | ❌ | 累计金额 | -| financialClassResults | array | ❌ | 使用经费 | - -**JSON示例**: - -```json -{ - "financialIndicatorsResult": {}, - "sumMoney": 0.0, - "financialClassResults": [] -} -``` - ---- - -### FinancialIndicatorsResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| money | number (double) | ❌ | 备 注:本时段经费金额 -默认值: | - -**JSON示例**: - -```json -{ - "startTime": "string", - "endTime": "string", - "money": 0.0 -} -``` - ---- - -### Financial_indicators - -经费管理 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| money | number (double) | ❌ | 备 注:本时段经费金额 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "startTime": "string", - "endTime": "string", - "money": 0.0 -} -``` - ---- - -### FollowAbsenceUserRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| followId | integer (int64) | ❌ | 双师课堂记录表id | -| userId | integer (int64) | ❌ | 用户id | -| handleState | integer (int64) | ❌ | 处理状态 默认0 0未处理 1忽略 2发起谈话 | - -**JSON示例**: - -```json -{ - "followId": 0, - "userId": 0, - "handleState": 0 -} -``` - ---- - -### FollowAbsenceUserResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| followId | integer (int64) | ❌ | 跟课id | -| userId | integer (int64) | ❌ | 用户id | -| userName | string | ❌ | 用户姓名 | - -**JSON示例**: - -```json -{ - "id": 0, - "followId": 0, - "userId": 0, - "userName": "string" -} -``` - ---- - -### FollowInfoFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| followId | integer (int64) | ❌ | 备 注:跟课id | - -**JSON示例**: - -```json -{ - "id": 0, - "followId": 0 -} -``` - ---- - -### FollowInfoRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| classCourseId | integer (int64) | ❌ | 备 注:课程id -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "classCourseId": 0 -} -``` - ---- - -### FollowInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskInfo | reference | ❌ | - | -| followTeachersituations | array | ❌ | 落地老师问题 | -| followAbsenceUserResults | array | ❌ | 跟课缺席用户列表 | -| followKeynoteUserResults | array | ❌ | 重点学生列表 | -| followId | integer (int64) | ❌ | 跟课ID | -| classCourseId | integer (int64) | ❌ | 备 注:课程id -默认值: | -| classesFollowMethod | integer (int32)? | ❌ | 备 注:跟课方式1:直播;2:录播; -默认值: | -| classesSignalStability | integer (int32)? | ❌ | 备 注:信号是否稳定;0否;1:是; -默认值: | -| concentrationActivityEnum | integer (int32)? | ❌ | 备 注:整体活跃度,参数id -默认值: | -| concentrationLevelEnum | integer (int32)? | ❌ | 备 注:整体专注度,参数id -默认值: | -| masteryLevelEnum | integer (int32)? | ❌ | 备 注:整体问题回答正确率/知识掌握程度,参数id -默认值: | -| remark | string | ❌ | 其他 | - -**JSON示例**: - -```json -{ - "taskInfo": {}, - "followTeachersituations": [], - "followAbsenceUserResults": [], - "followKeynoteUserResults": [], - "followId": 0, - "classCourseId": 0, - "classesFollowMethod": 0, - "classesSignalStability": 0, - "concentrationActivityEnum": 0, - "concentrationLevelEnum": 0, - "masteryLevelEnum": 0, - "remark": "string" -} -``` - ---- - -### FollowKeyNoteUserRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| followId | integer (int64) | ❌ | 备 注:跟课id -默认值: | -| userId | integer (int64) | ❌ | 备 注:重点学生用户id -默认值: | -| attentionFocus | string | ❌ | 备 注:注意力与专注力,参数id,多个用英文逗号分割 -默认值: | -| participationEnthusiasm | string | ❌ | 备 注:参与度与积极性,参数id,多个用英文逗号分割 -默认值: | -| behaviorNormsDiscipline | string | ❌ | 备 注:行为规范与纪律,参数id,多个用英文逗号分割 -默认值: | -| comprehensionDifficulties | string | ❌ | 备 注:学习效果与理解困难,参数id,多个用英文逗号分割 -默认值: | -| psychologicalState | string | ❌ | 备 注:情绪与心理状态,参数id,多个用英文逗号分割 -默认值: | - -**JSON示例**: - -```json -{ - "followId": 0, - "userId": 0, - "attentionFocus": "string", - "participationEnthusiasm": "string", - "behaviorNormsDiscipline": "string", - "comprehensionDifficulties": "string", - "psychologicalState": "string" -} -``` - ---- - -### FollowKeynoteUserResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 重点学生id | -| followId | integer (int64) | ❌ | 跟课id | -| userId | integer (int64) | ❌ | 重点学生id | -| userName | string | ❌ | 重点学生姓名 | -| attentionFocus | string | ❌ | 备 注:注意力与专注力,参数id,多个用英文逗号分割 -默认值: | -| participationEnthusiasm | string | ❌ | 备 注:参与度与积极性,参数id,多个用英文逗号分割 -默认值: | -| behaviorNormsDiscipline | string | ❌ | 备 注:行为规范与纪律,参数id,多个用英文逗号分割 -默认值: | -| comprehensionDifficulties | string | ❌ | 备 注:学习效果与理解困难,参数id,多个用英文逗号分割 -默认值: | -| psychologicalState | string | ❌ | 备 注:情绪与心理状态,参数id,多个用英文逗号分割 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "followId": 0, - "userId": 0, - "userName": "string", - "attentionFocus": "string", - "participationEnthusiasm": "string", - "behaviorNormsDiscipline": "string", - "comprehensionDifficulties": "string", - "psychologicalState": "string" -} -``` - ---- - -### FollowQuestionRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| followId | integer (int64) | ❌ | 备 注:跟课id | -| followTeachersituations | array? | ❌ | 落地老师的问题列表 | -| classesFollowMethod | integer (int32)? | ❌ | 备 注:跟课方式1:直播;2:录播; -默认值: | -| classesSignalStability | integer (int32)? | ❌ | 备 注:信号是否稳定;0否;1:是; -默认值: | -| concentrationActivityEnum | integer (int32)? | ❌ | 备 注:整体活跃度,参数id -默认值: | -| concentrationLevelEnum | integer (int32)? | ❌ | 备 注:整体专注度,参数id -默认值: | -| masteryLevelEnum | integer (int32)? | ❌ | 备 注:整体问题回答正确率/知识掌握程度,参数id -默认值: | -| remark | string? | ❌ | 其他 | - -**JSON示例**: - -```json -{ - "followId": 0, - "followTeachersituations": [], - "classesFollowMethod": 0, - "classesSignalStability": 0, - "concentrationActivityEnum": 0, - "concentrationLevelEnum": 0, - "masteryLevelEnum": 0, - "remark": "string" -} -``` - ---- - -### FollowTeachersituationRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| followId | integer (int64) | ❌ | 备 注:跟课id -默认值: | -| paramId | integer (int64) | ❌ | 备 注:落地老师-问题类型,字典表 -默认值: | - -**JSON示例**: - -```json -{ - "followId": 0, - "paramId": 0 -} -``` - ---- - -### FollowTeachersituationResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| followId | integer (int64) | ❌ | 跟课id | -| paramId | integer (int64) | ❌ | 落地老师-问题类型,字典表 | -| paramName | string | ❌ | 问题描述 | - -**JSON示例**: - -```json -{ - "id": 0, - "followId": 0, - "paramId": 0, - "paramName": "string" -} -``` - ---- - -### ImConfigResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| sDKAppID | integer (int32) | ❌ | - | -| videoCall | boolean | ❌ | 视频通话状态 | -| voiceCall | boolean | ❌ | 语音通话状态 | - -**JSON示例**: - -```json -{ - "sDKAppID": 0, - "videoCall": true, - "voiceCall": true -} -``` - ---- - -### Index_ClassesTaskCheckList_User - -通用首页任务清单用户信息 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskTypeEnum | integer (int64) | ❌ | 任务类型枚举 | -| taskTypeName | string | ❌ | 任务类型枚举-名称 | -| createTaskCount | integer (int32) | ❌ | 已创建任务数量 | -| okTaskCount | integer (int32) | ❌ | 已完成任务数量 | -| shouldTaskCount | integer (int32) | ❌ | 应完成任务数量 | - -**JSON示例**: - -```json -{ - "taskTypeEnum": 0, - "taskTypeName": "string", - "createTaskCount": 0, - "okTaskCount": 0, - "shouldTaskCount": 0 -} -``` - ---- - -### Index_ClassesTaskCheckList_UserPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### LikeUserBooksResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| cloudSchoolName | string | ❌ | 云校名称 | -| id | integer (int64) | ❌ | Id | -| userName | string | ❌ | 用户姓名 | -| roleEnum | reference | ❌ | - | -| headImage | string | ❌ | 头像 | -| phone | string | ❌ | 电话 | -| classNum | integer (int32) | ❌ | 管理班级数量 | - -**JSON示例**: - -```json -{ - "cloudSchoolName": "string", - "id": 0, - "userName": "string", - "roleEnum": {}, - "headImage": "string", - "phone": "string", - "classNum": 0 -} -``` - ---- - -### LoginCodeRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| phone | string | ❌ | 电话 | -| code | string | ❌ | 验证码 | -| loginType | integer (int32) | ❌ | 登录类型 1:Android;2Ios | - -**JSON示例**: - -```json -{ - "phone": "string", - "code": "string", - "loginType": 0 -} -``` - ---- - -### LoginRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| username | string | ❌ | 用户名 | -| pwd | string | ❌ | 密码 | -| loginType | integer (int32) | ❌ | 登录类型 1:Android;2Ios | - -**JSON示例**: - -```json -{ - "username": "string", - "pwd": "string", - "loginType": 0 -} -``` - ---- - -### ManagerDataCollectionDetailResult - -管理数据采集详情结果 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | id | -| title | string | ❌ | 备 注:收集主题 -默认值: | -| remark | string | ❌ | 备 注:收集要求 -默认值: | -| fileId | integer (int64)? | ❌ | 备 注:模板文件id -默认值: | -| filePath | string? | ❌ | 备 注:模板文件路径 | -| fileName | string? | ❌ | 备 注:模板文件名称 | -| fileSize | integer (int64)? | ❌ | 备 注:模板文件大小 | -| endtime | string (date-time) | ❌ | 备 注:提交时间 -默认值: | -| addtime | string (date-time) | ❌ | 备 注:添加时间 -默认值: | -| fileCount | integer (int32)? | ❌ | 备 注:收集对象个数 -默认值: | -| submitCount | integer (int32) | ❌ | 备 注:已提交个数 | -| status | integer (int32)? | ❌ | 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 -默认值: | -| managerDataCollectionUserFiles | array | ❌ | 收集文件用户列表 | -| managerDataCollectionNonUsers | array | ❌ | 未提交用户列表 | - -**JSON示例**: - -```json -{ - "id": 0, - "title": "string", - "remark": "string", - "fileId": 0, - "filePath": "string", - "fileName": "string", - "fileSize": 0, - "endtime": "string", - "addtime": "string", - "fileCount": 0, - "submitCount": 0, - "status": 0, - "managerDataCollectionUserFiles": [], - "managerDataCollectionNonUsers": [] -} -``` - ---- - -### ManagerDataCollectionNonUser - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userId | integer (int64) | ❌ | 用户id | -| userName | string | ❌ | 用户名称 | - -**JSON示例**: - -```json -{ - "userId": 0, - "userName": "string" -} -``` - ---- - -### ManagerDataCollectionRequest - -资料收集 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| title | string | ❌ | 备 注:收集主题 -默认值: | -| remark | string | ❌ | 备 注:收集要求 -默认值: | -| fileId | integer (int64)? | ❌ | 备 注:模板文件id(直接手机传则传id,电脑传则为null) -默认值: | -| endtime | string (date-time) | ❌ | 备 注:提交时间 -默认值: | -| users | array | ❌ | 备 注:收集对象,用户集合 | - -**JSON示例**: - -```json -{ - "title": "string", - "remark": "string", - "fileId": 0, - "endtime": "string", - "users": [] -} -``` - ---- - -### ManagerDataCollectionResult - -管理数据采集结果 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | id | -| title | string | ❌ | 备 注:收集主题 -默认值: | -| endtime | string (date-time) | ❌ | 备 注:提交时间 -默认值: | -| addtime | string (date-time) | ❌ | 备 注:添加时间 -默认值: | -| fileCount | integer (int32)? | ❌ | 备 注:收集对象个数 -默认值: | -| submitCount | integer (int32) | ❌ | 备 注:已提交个数 | -| status | integer (int32) | ❌ | 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "title": "string", - "endtime": "string", - "addtime": "string", - "fileCount": 0, - "submitCount": 0, - "status": 0 -} -``` - ---- - -### ManagerDataCollectionResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### ManagerDataCollectionUserFile - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userHeadImage | string | ❌ | 用户头像 | -| userId | integer (int64) | ❌ | 用户id | -| userName | string | ❌ | 用户名称 | -| fileId | integer (int64)? | ❌ | 提交的文件id | -| filePath | string? | ❌ | 提交的文件路径 | -| fileName | string? | ❌ | 提交的文件名称 | -| fileSize | integer (int64)? | ❌ | 提交的文件大小 | -| addFileTime | string (date-time)? | ❌ | 提交时间 | - -**JSON示例**: - -```json -{ - "userHeadImage": "string", - "userId": 0, - "userName": "string", - "fileId": 0, - "filePath": "string", - "fileName": "string", - "fileSize": 0, - "addFileTime": "string" -} -``` - ---- - -### ManagerUserInfoDetailResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userDetailInfo | reference | ❌ | - | -| schoolResults | array? | ❌ | 管理学校 | -| manageUserResults | array? | ❌ | 管理学习官 | -| classesResults | array? | ❌ | 管理班级 | -| performances | array? | ❌ | 用户绩效信息(近半年) | - -**JSON示例**: - -```json -{ - "userDetailInfo": {}, - "schoolResults": [], - "manageUserResults": [], - "classesResults": [], - "performances": [] -} -``` - ---- - -### MeetingInfoFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| meetingId | integer (int64) | ❌ | 会议ID | -| remark | string | ❌ | 会议纪要 | -| files | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "meetingId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### MeetingInfoRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| meetingId | integer (int64)? | ❌ | 会议任务id(新增时为null,修改时必传) | -| meetingTitle | string | ❌ | 会议主题 | -| meetingUsername | string | ❌ | 参会人员 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "meetingId": 0, - "meetingTitle": "string", - "meetingUsername": "string" -} -``` - ---- - -### MeetingInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| meetingId | integer (int64) | ❌ | 会议ID | -| meetingTitle | string | ❌ | 会议主题 | -| remark | string | ❌ | 会议纪要 | -| taskInfo | reference | ❌ | - | -| meetingUsername | string | ❌ | 参会人员 | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "meetingId": 0, - "meetingTitle": "string", - "remark": "string", - "taskInfo": {}, - "meetingUsername": "string", - "sunTaskFileResults": [] -} -``` - ---- - -### MyInfoResetPwdRequest - -修改密码 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 用户id | -| password | string | ❌ | 原密码 | -| newPassword | string | ❌ | 新密码 | - -**JSON示例**: - -```json -{ - "id": 0, - "password": "string", - "newPassword": "string" -} -``` - ---- - -### MyPhoneBindRequest - -换绑电话 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| phone | string | ❌ | 电话 | -| phoneCode | string | ❌ | 验证码 | - -**JSON示例**: - -```json -{ - "phone": "string", - "phoneCode": "string" -} -``` - ---- - -### OSSConfigResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| accessKeyId | string | ❌ | - | -| accessKeySecret | string | ❌ | - | -| endpoint | string | ❌ | - | -| bucketName | string | ❌ | - | -| size | integer (int64) | ❌ | - | - -**JSON示例**: - -```json -{ - "accessKeyId": "string", - "accessKeySecret": "string", - "endpoint": "string", - "bucketName": "string", - "size": 0 -} -``` - ---- - -### OssSignResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| filePath | string | ❌ | 上传路径 | -| fileSize | integer (int64) | ❌ | 文件限制大小 | -| uploadUrl | string | ❌ | 上传URL | - -**JSON示例**: - -```json -{ - "filePath": "string", - "fileSize": 0, - "uploadUrl": "string" -} -``` - ---- - -### OtherInfoFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| otherId | integer (int64) | ❌ | 其他ID | -| remark | string | ❌ | 工作内容 | -| files | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "otherId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### OtherInfoRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| otherId | integer (int64)? | ❌ | id(新增时为null,修改时必传) | -| otherTitle | string | ❌ | 任务描述 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "otherId": 0, - "otherTitle": "string" -} -``` - ---- - -### OtherInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| otherId | integer (int64) | ❌ | 班干部会议记录ID | -| otherTitle | string | ❌ | 工作描述 | -| remark | string | ❌ | 工作内容 | -| taskInfo | reference | ❌ | - | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "otherId": 0, - "otherTitle": "string", - "remark": "string", - "taskInfo": {}, - "sunTaskFileResults": [] -} -``` - ---- - -### Performance - -用户绩效信息 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| monthDate | string | ❌ | 月份 | -| completionRate | integer (int32) | ❌ | 完成率 | - -**JSON示例**: - -```json -{ - "monthDate": "string", - "completionRate": 0 -} -``` - ---- - -### ProblemSemesterViewDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| solutionSemesterEnum | reference | ❌ | - | -| solutionSemesterName | string | ❌ | 解决方案枚举名称 | - -**JSON示例**: - -```json -{ - "solutionSemesterEnum": {}, - "solutionSemesterName": "string" -} -``` - ---- - -### ProblemTaskTypeViewDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskTypeEnum | reference | ❌ | - | -| taskTypeEnumName | string | ❌ | 任务类型枚举名称 | - -**JSON示例**: - -```json -{ - "taskTypeEnum": {}, - "taskTypeEnumName": "string" -} -``` - ---- - -### QuestionDateResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| dataYear | integer (int32) | ❌ | 年 | -| dataMonth | integer (int32) | ❌ | 月 | -| dataCount | integer (int32) | ❌ | 数据条数 | - -**JSON示例**: - -```json -{ - "dataYear": 0, - "dataMonth": 0, - "dataCount": 0 -} -``` - ---- - -### QuestionInfoByTaskEnumResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| fatherQuestionName | string | ❌ | 父级问题类型 | -| questionName | string | ❌ | 问题类型 | -| questionCount | integer (int32) | ❌ | 条数 | -| questionChain | string | ❌ | 环比 | -| questionInfoResults | array | ❌ | 问题列表 | - -**JSON示例**: - -```json -{ - "fatherQuestionName": "string", - "questionName": "string", - "questionCount": 0, - "questionChain": "string", - "questionInfoResults": [] -} -``` - ---- - -### QuestionInfoByTypeResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskEnum | integer (int32) | ❌ | 任务类型枚举 | -| questionType | integer (int32) | ❌ | 问题类型枚举 | -| questionPValue | integer (int64) | ❌ | 问题具体信息 | -| fatherQuestionName | string | ❌ | 父级问题类型 | -| questionName | string | ❌ | 问题类型 | -| questionCount | integer (int32) | ❌ | 首页本月条数/类型总条数 | - -**JSON示例**: - -```json -{ - "taskEnum": 0, - "questionType": 0, - "questionPValue": 0, - "fatherQuestionName": "string", - "questionName": "string", - "questionCount": 0 -} -``` - ---- - -### QuestionInfoResult - -问题列表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| questionUserId | integer (int64) | ❌ | 问题人id | -| questionUserName | string | ❌ | 问题人 | -| addTime | string (date-time) | ❌ | 问题时间 | -| taskEnum | integer (int32) | ❌ | 任务类型枚举 | -| taskId | integer (int64) | ❌ | 任务id | -| questionPValue | integer (int64) | ❌ | 问题具体value | -| fatherQuestionName | string | ❌ | 父级问题类型 | -| questionName | string | ❌ | 问题类型 | -| questionType | integer (int32) | ❌ | 问题类型 1:学生;2:老师; | -| questionClassId | integer (int64)? | ❌ | 学生问题时所属班级id | - -**JSON示例**: - -```json -{ - "questionUserId": 0, - "questionUserName": "string", - "addTime": "string", - "taskEnum": 0, - "taskId": 0, - "questionPValue": 0, - "fatherQuestionName": "string", - "questionName": "string", - "questionType": 0, - "questionClassId": 0 -} -``` - ---- - -### QuestionType - -问题类别 - -**枚举值**: - -- `0` -- `1` -- `2` - -**JSON示例**: - -```json -"0" -``` - ---- - -### ReadSummarizRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| sumId | integer (int64) | ❌ | 总结id | -| sumType | integer (int32) | ❌ | 总结类型 1日报 2周报 3月报 | - -**JSON示例**: - -```json -{ - "sumId": 0, - "sumType": 0 -} -``` - ---- - -### RedPoint - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| workBenchNonCount | integer (int32) | ❌ | 工作台待办数量 | -| dataCollectionNonSubCount | integer (int32) | ❌ | 资料收集待提交数量 | - -**JSON示例**: - -```json -{ - "workBenchNonCount": 0, - "dataCollectionNonSubCount": 0 -} -``` - ---- - -### RefreshTokenRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| token | string | ❌ | 过期的token | - -**JSON示例**: - -```json -{ - "token": "string" -} -``` - ---- - -### RegisterRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| account | string | ❌ | 账号 | -| password | string | ❌ | 密码 | -| userName | string | ❌ | - | - -**JSON示例**: - -```json -{ - "account": "string", - "password": "string", - "userName": "string" -} -``` - ---- - -### SchoolInfo - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| schoolName | string | ❌ | 学校名称 | -| cloudSchoolId | integer (int64) | ❌ | 云校id | -| cloudSchoolName | string | ❌ | 云校名称 | - -**JSON示例**: - -```json -{ - "id": 0, - "schoolName": "string", - "cloudSchoolId": 0, - "cloudSchoolName": "string" -} -``` - ---- - -### SchoolResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| schoolName | string | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "schoolName": "string" -} -``` - ---- - -### SchoolTree - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| schoolName | string | ❌ | - | -| count | integer (int32) | ❌ | - | -| users | array? | ❌ | - | -| children | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "schoolName": "string", - "count": 0, - "users": [], - "children": [] -} -``` - ---- - -### SchoolUserBooksResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| cloudSchoolName | string | ❌ | 云校名称 | -| schoolName | string | ❌ | 学校名称 | -| id | integer (int64) | ❌ | Id | -| userName | string | ❌ | 用户姓名 | -| headImage | string | ❌ | 头像 | -| roleEnum | reference | ❌ | - | -| phone | string | ❌ | 电话 | - -**JSON示例**: - -```json -{ - "cloudSchoolName": "string", - "schoolName": "string", - "id": 0, - "userName": "string", - "headImage": "string", - "roleEnum": {}, - "phone": "string" -} -``` - ---- - -### SolutionDetailViewDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| problemTitle | string | ❌ | 备 注:问题描述 -默认值: | -| upTime | string (date-time) | ❌ | 最后修改时间 | -| problemObj | reference | ❌ | - | -| toolClassType | reference | ❌ | - | -| problemSemesters | array | ❌ | 关联学段枚举列表 | -| problemPhenomenon | string | ❌ | 备 注:问题显著现象 -默认值: | -| solutionContent | string | ❌ | 备 注:解决方案文本描述 -默认值: | -| problemTaskTypes | array | ❌ | 关联任务类型枚举列表 | -| toolKits | array | ❌ | 解决方案工具列表 | - -**JSON示例**: - -```json -{ - "id": 0, - "problemTitle": "string", - "upTime": "string", - "problemObj": {}, - "toolClassType": {}, - "problemSemesters": [], - "problemPhenomenon": "string", - "solutionContent": "string", - "problemTaskTypes": [], - "toolKits": [] -} -``` - ---- - -### SolutionListViewDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| problemTitle | string | ❌ | 备 注:问题描述 -默认值: | -| upTime | string (date-time) | ❌ | 最后修改时间 | -| problemObj | reference | ❌ | - | -| toolClassType | reference | ❌ | - | -| problemSemesters | array | ❌ | 关联学段枚举列表 | - -**JSON示例**: - -```json -{ - "id": 0, - "problemTitle": "string", - "upTime": "string", - "problemObj": {}, - "toolClassType": {}, - "problemSemesters": [] -} -``` - ---- - -### SolutionListViewMobileDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| problemTitle | string | ❌ | 备 注:问题描述 -默认值: | -| upTime | string (date-time) | ❌ | 最后修改时间 | -| problemObj | reference | ❌ | - | -| toolClassType | reference | ❌ | - | -| problemPhenomenon | string | ❌ | 备 注:问题显著现象 -默认值: | -| problemSemesters | array | ❌ | 关联学段枚举列表 | - -**JSON示例**: - -```json -{ - "id": 0, - "problemTitle": "string", - "upTime": "string", - "problemObj": {}, - "toolClassType": {}, - "problemPhenomenon": "string", - "problemSemesters": [] -} -``` - ---- - -### SolutionListViewMobileDtoPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SolutionSemesterEnum - -解决方案及工具包使用年级枚举 - -**枚举值**: - -- `0` -- `101` -- `102` -- `103` -- `104` -- `111` -- `112` -- `113` -- `114` -- `121` -- `122` -- `123` -- `124` - -**JSON示例**: - -```json -"0" -``` - ---- - -### SpotCheckTypeValue - -学习行为习惯全面抽查流程标准-类型表-各项具体分值表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| value | integer (int32) | ❌ | 备 注:分值 -默认值: | -| valueName | string | ❌ | 备 注:标准内容 -默认值: | -| checkId | integer (int64) | ❌ | 备 注:所属抽查标准 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "value": 0, - "valueName": "string", - "checkId": 0 -} -``` - ---- - -### SpotTaskFinishRequest - -学习行为习惯全面抽查任务完成请求类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| spotId | integer (int64) | ❌ | 抽查记录表id | -| remark | string | ❌ | 反馈/反思 | - -**JSON示例**: - -```json -{ - "id": 0, - "spotId": 0, - "remark": "string" -} -``` - ---- - -### SpotTaskRequest - -学习行为习惯全面抽查任务请求类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| spotId | integer (int64)? | ❌ | 抽查任务id(新增时为null,修改时必传) | -| checkProjectid | integer (int64) | ❌ | 备 注:抽查项目id -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "spotId": 0, - "checkProjectid": 0 -} -``` - ---- - -### SpotTaskResult - -学习行为习惯全面抽查任务结果类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskInfo | reference | ❌ | - | -| spotId | integer (int64) | ❌ | 抽查任务id | -| classesTaskId | integer (int64) | ❌ | 任务id | -| checkProjectid | integer (int64) | ❌ | 抽查项目id | -| checkProjectName | string | ❌ | 抽查项目名称 | -| remark | string? | ❌ | 反馈/反思 | -| spotTaskUserResults | array | ❌ | 抽查人员列表 | - -**JSON示例**: - -```json -{ - "taskInfo": {}, - "spotId": 0, - "classesTaskId": 0, - "checkProjectid": 0, - "checkProjectName": "string", - "remark": "string", - "spotTaskUserResults": [] -} -``` - ---- - -### SpotTaskUserRequest - -学习行为习惯全面抽查任务-抽查人员请求类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| spotId | integer (int64) | ❌ | 抽查记录表id | -| userId | integer (int64) | ❌ | 抽查人员id | -| valueTotal | integer (int32) | ❌ | 分值 | - -**JSON示例**: - -```json -{ - "spotId": 0, - "userId": 0, - "valueTotal": 0 -} -``` - ---- - -### SpotTaskUserResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | id | -| spotId | integer (int64) | ❌ | 抽查记录表id | -| userId | integer (int64) | ❌ | 抽查人员id | -| valueTotal | number (double) | ❌ | 得分 | -| userName | string | ❌ | 抽查人员名称 | -| addTime | string (date-time) | ❌ | 添加时间 | - -**JSON示例**: - -```json -{ - "id": 0, - "spotId": 0, - "userId": 0, - "valueTotal": 0.0, - "userName": "string", - "addTime": "string" -} -``` - ---- - -### StudentDetailInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| schoolId | integer (int64) | ❌ | 学校id | -| schoolName | string | ❌ | 备 注:学校名称 -默认值: | -| classId | integer (int64) | ❌ | 班级id | -| className | string | ❌ | 备 注:班级名称 -默认值: | -| userName | string | ❌ | 姓名 | -| remark | string | ❌ | 备注 | -| gradeLevel | string | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32) | ❌ | 备 注:所属届 -默认值: | -| studentParents | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "schoolId": 0, - "schoolName": "string", - "classId": 0, - "className": "string", - "userName": "string", - "remark": "string", - "gradeLevel": "string", - "graduationYear": 0, - "studentParents": [] -} -``` - ---- - -### StudentParentInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| parentName | string | ❌ | 家长姓名 | -| parentRelation | integer (int64) | ❌ | 字典表-关系 | -| parentRelationName | string? | ❌ | 字典表-关系名称 | -| parentPhone | string | ❌ | 电话 | - -**JSON示例**: - -```json -{ - "id": 0, - "parentName": "string", - "parentRelation": 0, - "parentRelationName": "string", - "parentPhone": "string" -} -``` - ---- - -### StudentParentRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| parentName | string | ❌ | 家长名称 | -| parentRelation | integer (int64) | ❌ | 字典表-关系 | -| parentPhone | string | ❌ | 电话 | - -**JSON示例**: - -```json -{ - "parentName": "string", - "parentRelation": 0, - "parentPhone": "string" -} -``` - ---- - -### StudentRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classesId | integer (int64) | ❌ | 班级id | -| userName | string | ❌ | 用户名称 | - -**JSON示例**: - -```json -{ - "classesId": 0, - "userName": "string" -} -``` - ---- - -### StudentRequest_V2 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 学生id(添加不传) | -| classesId | integer (int64) | ❌ | 班级id | -| userName | string | ❌ | 用户名称 | -| studentParentRequests | array? | ❌ | 家长信息 | -| remark | string | ❌ | 备注 | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "userName": "string", - "studentParentRequests": [], - "remark": "string" -} -``` - ---- - -### StudentResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 学生Id | -| name | string | ❌ | 学生姓名 | - -**JSON示例**: - -```json -{ - "id": 0, - "name": "string" -} -``` - ---- - -### Subjectinfo - -学科/科目表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| name | string | ❌ | 备 注:学科名称 -默认值: | -| thisid | integer (int64) | ❌ | 备 注:自己数据库Id -默认值: | -| createtime | string (date-time) | ❌ | 备 注:创建时间 -默认值: | -| updatetime | string (date-time)? | ❌ | 备 注:更新时间 -默认值: | -| deletestate | boolean | ❌ | 备 注:是否删除 true=删除 -默认值: | -| ordinal | integer (int32) | ❌ | 备 注:排序 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "name": "string", - "thisid": 0, - "createtime": "string", - "updatetime": "string", - "deletestate": true, - "ordinal": 0 -} -``` - ---- - -### SumQuestionInfoByTypeResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| questionInfoByTypeResult | array | ❌ | - | -| sumQuestionCount | integer (int32) | ❌ | 总条数 | - -**JSON示例**: - -```json -{ - "questionInfoByTypeResult": [], - "sumQuestionCount": 0 -} -``` - ---- - -### SummarizDayResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskList | array | ❌ | 任务列表 | -| summarizDay | reference | ❌ | - | - -**JSON示例**: - -```json -{ - "taskList": [], - "summarizDay": {} -} -``` - ---- - -### SummarizDayTaskResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| userEnum | integer (int32) | ❌ | 用户角色枚举 | -| userId | integer (int64) | ❌ | 用户Id | -| userName | string | ❌ | 用户姓名 | -| workDate | string (date-time) | ❌ | 工作总结日期 | -| questContent | string | ❌ | 问题反馈 | -| addTime | string (date-time) | ❌ | 创建时间 | -| superiorEvaluation | string | ❌ | 组长评价 | -| superiorUserId | integer (int64)? | ❌ | 组长用户Id | -| superiorUserName | string | ❌ | 组长用户名 | -| ministerEvaluation | string | ❌ | 部长评价 | -| ministerUserId | integer (int64)? | ❌ | 部长用户Id | -| ministerUserName | string | ❌ | 部长用户名 | -| generalEvaluation | string | ❌ | 总部长评价 | -| generalUserId | integer (int64)? | ❌ | 总部长用户Id | -| generalUserName | string | ❌ | 总部长用户名 | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "userEnum": 0, - "userId": 0, - "userName": "string", - "workDate": "string", - "questContent": "string", - "addTime": "string", - "superiorEvaluation": "string", - "superiorUserId": 0, - "superiorUserName": "string", - "ministerEvaluation": "string", - "ministerUserId": 0, - "ministerUserName": "string", - "generalEvaluation": "string", - "generalUserId": 0, - "generalUserName": "string", - "nextTimeContent": "string" -} -``` - ---- - -### SummarizMonthCheckList - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskTypeEnum | integer (int64) | ❌ | 任务类型枚举 | -| taskTypeName | string | ❌ | 任务类型枚举-名称 | -| okTaskCount | integer (int32) | ❌ | 已完成任务数量 | -| shouldTaskCount | integer (int64) | ❌ | 应完成任务数量(为0时,代表是指标之外的) | - -**JSON示例**: - -```json -{ - "taskTypeEnum": 0, - "taskTypeName": "string", - "okTaskCount": 0, - "shouldTaskCount": 0 -} -``` - ---- - -### SummarizWeekTaskResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| userEnum | integer (int32) | ❌ | 用户角色枚举 | -| userId | integer (int64) | ❌ | 用户Id | -| userName | string | ❌ | 用户姓名 | -| userHeadImage | string | ❌ | 用户头像地址 | -| workYear | integer (int32) | ❌ | 总结年份 | -| workMonth | integer (int32) | ❌ | 总结月份 | -| workWeek | integer (int32) | ❌ | 总结周 | -| beginDate | string (date-time)? | ❌ | 开始日期 | -| endDate | string (date-time)? | ❌ | 结束日期 | -| questContent | string | ❌ | 问题反馈 | -| addTime | string (date-time) | ❌ | 创建时间 | -| superiorEvaluation | string? | ❌ | 组长评价 | -| superiorUserId | integer (int64)? | ❌ | 组长用户Id | -| superiorAddtime | string (date-time)? | ❌ | 备 注:组长评价时间 -默认值: | -| superiorUserName | string? | ❌ | 组长用户名 | -| ministerEvaluation | string? | ❌ | 部长评价 | -| ministerUserId | integer (int64)? | ❌ | 部长用户Id | -| ministerAddtime | string (date-time)? | ❌ | 备 注:部长评价时间 -默认值: | -| ministerUserName | string? | ❌ | 部长用户名 | -| generalEvaluation | string | ❌ | 总部长评价 | -| generalUserId | integer (int64)? | ❌ | 总部长用户Id | -| generalUserName | string | ❌ | 总部长用户名 | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | -| readId | integer (int64)? | ❌ | 已读id(如果null则未读) | - -**JSON示例**: - -```json -{ - "id": 0, - "userEnum": 0, - "userId": 0, - "userName": "string", - "userHeadImage": "string", - "workYear": 0, - "workMonth": 0, - "workWeek": 0, - "beginDate": "string", - "endDate": "string", - "questContent": "string", - "addTime": "string", - "superiorEvaluation": "string", - "superiorUserId": 0, - "superiorAddtime": "string", - "superiorUserName": "string", - "ministerEvaluation": "string", - "ministerUserId": 0, - "ministerAddtime": "string", - "ministerUserName": "string", - "generalEvaluation": "string", - "generalUserId": 0, - "generalUserName": "string", - "nextTimeContent": "string", - "readId": 0 -} -``` - ---- - -### SummarizWeekTaskResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SummarizeDayListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 日报Id | -| workDate | string (date-time) | ❌ | 备 注:工作总结日期 -默认值: | -| questContent | string | ❌ | 备 注:问题反馈 -默认值: | -| userId | integer (int64) | ❌ | 用户id | -| userName | string | ❌ | 用户姓名 | -| userHeadImage | string | ❌ | 用户头像地址 | -| userEnum | integer (int32) | ❌ | 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) -默认值: | -| addTime | string (date-time) | ❌ | 备 注:添加时间 -默认值: | -| superiorEvaluation | string? | ❌ | 备 注:组长评价 -默认值: | -| superiorUserId | integer (int64)? | ❌ | 备 注:组长评价人id -默认值: | -| superiorUserName | string? | ❌ | 备 注:组长评价人 -默认值: | -| ministerEvaluation | string? | ❌ | 备 注:部长评价 -默认值: | -| ministerUserId | integer (int64)? | ❌ | 备 注:部长评价人id -默认值: | -| ministerUserName | string? | ❌ | 备 注:部长评价人 -默认值: | -| generalEvaluation | string | ❌ | 总部长评价 | -| generalUserId | integer (int64)? | ❌ | 总部长用户Id | -| generalUserName | string | ❌ | 总部长用户名 | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | -| readId | integer (int64)? | ❌ | 已读id(如果null则未读) | - -**JSON示例**: - -```json -{ - "id": 0, - "workDate": "string", - "questContent": "string", - "userId": 0, - "userName": "string", - "userHeadImage": "string", - "userEnum": 0, - "addTime": "string", - "superiorEvaluation": "string", - "superiorUserId": 0, - "superiorUserName": "string", - "ministerEvaluation": "string", - "ministerUserId": 0, - "ministerUserName": "string", - "generalEvaluation": "string", - "generalUserId": 0, - "generalUserName": "string", - "nextTimeContent": "string", - "readId": 0 -} -``` - ---- - -### SummarizeDayListResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SummarizeDayRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| workDate | string (date-time) | ❌ | 备 注:工作总结日期 -默认值: | -| questContent | string | ❌ | 备 注:问题反馈 -默认值: | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | -| fileId | string? | ❌ | 备 注:明日计划-文件id集合,多个英文逗号隔开 | - -**JSON示例**: - -```json -{ - "workDate": "string", - "questContent": "string", - "nextTimeContent": "string", - "fileId": "string" -} -``` - ---- - -### SummarizeMonthListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskInfo | reference | ❌ | - | -| summarizMonthTaskResult | reference | ❌ | - | - -**JSON示例**: - -```json -{ - "taskInfo": {}, - "summarizMonthTaskResult": {} -} -``` - ---- - -### SummarizeMonthRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| workYear | integer (int32)? | ❌ | 备 注:工作年份 -默认值: | -| workMonth | integer (int32) | ❌ | 备 注:工作月份 -默认值: | -| questContent | string | ❌ | 备 注:问题反馈 -默认值: | -| monthContent | string | ❌ | 备 注:本月总结 -默认值: | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | -| fileId | string? | ❌ | 备 注:明日计划-文件id集合,多个英文逗号隔开 | - -**JSON示例**: - -```json -{ - "workYear": 0, - "workMonth": 0, - "questContent": "string", - "monthContent": "string", - "nextTimeContent": "string", - "fileId": "string" -} -``` - ---- - -### SummarizeMonthStandardResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| generalTasks | array | ❌ | 通用任务列表 | -| taskFinishLists | array | ❌ | 其他工作完成情况 | -| taskSuperiorTaskLists | array | ❌ | 布置任务完成情况 | - -**JSON示例**: - -```json -{ - "generalTasks": [], - "taskFinishLists": [], - "taskSuperiorTaskLists": [] -} -``` - ---- - -### SummarizeMonthTaskResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| userId | integer (int64) | ❌ | 备 注:用户id -默认值: | -| userName | string | ❌ | 用户姓名 | -| userHeadImage | string | ❌ | 用户头像地址 | -| userEnum | integer (int32) | ❌ | 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) -默认值: | -| workYear | integer (int32)? | ❌ | 备 注:工作年份 -默认值: | -| workMonth | integer (int32) | ❌ | 备 注:工作月份 -默认值: | -| questContent | string | ❌ | 备 注:问题反馈 -默认值: | -| monthContent | string | ❌ | 备 注:本月总结 -默认值: | -| addTime | string (date-time) | ❌ | 备 注:添加时间 -默认值: | -| superiorEvaluation | string? | ❌ | 备 注:组长评价 -默认值: | -| superiorUserId | integer (int64)? | ❌ | 备 注:组长评价人id -默认值: | -| superiorAddtime | string (date-time)? | ❌ | 备 注:组长评价时间 -默认值: | -| superiorUserName | string? | ❌ | 组长用户名 | -| ministerEvaluation | string? | ❌ | 备 注:部长评价 -默认值: | -| ministerUserId | integer (int64)? | ❌ | 备 注:部长评价人id -默认值: | -| ministerAddtime | string (date-time)? | ❌ | 备 注:部长评价时间 -默认值: | -| ministerUserName | string? | ❌ | 部长用户名 | -| generalEvaluation | string | ❌ | 总部长评价 | -| generalUserId | integer (int64)? | ❌ | 总部长用户Id | -| generalUserName | string | ❌ | 总部长用户名 | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | -| readId | integer (int64)? | ❌ | 已读id(如果null则未读) | - -**JSON示例**: - -```json -{ - "id": 0, - "userId": 0, - "userName": "string", - "userHeadImage": "string", - "userEnum": 0, - "workYear": 0, - "workMonth": 0, - "questContent": "string", - "monthContent": "string", - "addTime": "string", - "superiorEvaluation": "string", - "superiorUserId": 0, - "superiorAddtime": "string", - "superiorUserName": "string", - "ministerEvaluation": "string", - "ministerUserId": 0, - "ministerAddtime": "string", - "ministerUserName": "string", - "generalEvaluation": "string", - "generalUserId": 0, - "generalUserName": "string", - "nextTimeContent": "string", - "readId": 0 -} -``` - ---- - -### SummarizeMonthTaskResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SummarizeNoReadResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| noReadCount | integer (int32) | ❌ | 未读消息数量 | - -**JSON示例**: - -```json -{ - "noReadCount": 0 -} -``` - ---- - -### SummarizeTaskResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| status | integer (int32) | ❌ | 备 注:任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 -默认值: | -| classesId | integer (int64)? | ❌ | 备 注:班级id(班级任务) -默认值: | -| classesName | string | ❌ | 备 注:班级名称 | -| gradeLevel | string? | ❌ | 备 注:年级 -默认值: | -| graduationYear | integer (int32)? | ❌ | 备 注:所属届 -默认值: | -| taskTypeEnum | integer (int32) | ❌ | 备 注:参数表 枚举值,任务类型 -默认值: | -| taskTypeName | string | ❌ | 备 注:任务类型名称 | -| taskTitleSuffix | string | ❌ | 备 注:任务标题后缀,用于展示 -默认值: | -| startDate | string (date-time)? | ❌ | 备 注:开始日期 -默认值: | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endDate | string (date-time)? | ❌ | 备 注:结束日期 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskIndexType | integer (int32) | ❌ | 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 -默认值: | -| finishDate | string (date-time)? | ❌ | 备 注:任务完成日期 -默认值: | -| finishDatetime | string (date-time)? | ❌ | 备 注:任务完成时间 -默认值: | -| taskWorkTime | string (date-time)? | ❌ | 备 注:任务首次操作时间 -默认值: | -| taskWorkDate | string (date-time)? | ❌ | 备 注:任务首次操作日期 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "status": 0, - "classesId": 0, - "classesName": "string", - "gradeLevel": "string", - "graduationYear": 0, - "taskTypeEnum": 0, - "taskTypeName": "string", - "taskTitleSuffix": "string", - "startDate": "string", - "startTime": "string", - "endDate": "string", - "endTime": "string", - "taskIndexType": 0, - "finishDate": "string", - "finishDatetime": "string", - "taskWorkTime": "string", - "taskWorkDate": "string" -} -``` - ---- - -### SummarizeWeekListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskList | array | ❌ | 任务列表 | -| summarizWeekTaskResult | reference | ❌ | - | - -**JSON示例**: - -```json -{ - "taskList": [], - "summarizWeekTaskResult": {} -} -``` - ---- - -### SummarizeWeekRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| workYear | integer (int32) | ❌ | 备 注:工作年份 -默认值: | -| workMonth | integer (int32) | ❌ | 备 注:工作月份 -默认值: | -| workWeek | integer (int32) | ❌ | 备 注:工作周报 -默认值: | -| beginDate | string (date-time) | ❌ | 备 注:工作总结日期-开始 -默认值: | -| endDate | string (date-time) | ❌ | 备 注:工作总结日期-结束 -默认值: | -| questContent | string | ❌ | 备 注:问题反馈 -默认值: | -| nextTimeContent | string | ❌ | 备 注:下次工作内容 -默认值: | -| fileId | string? | ❌ | 备 注:明日计划-文件id集合,多个英文逗号隔开 | - -**JSON示例**: - -```json -{ - "workYear": 0, - "workMonth": 0, - "workWeek": 0, - "beginDate": "string", - "endDate": "string", - "questContent": "string", - "nextTimeContent": "string", - "fileId": "string" -} -``` - ---- - -### SunTaskFileResult - -任务关联文件 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 文件关联表的id | -| sunTaskId | integer (int64) | ❌ | 子任务关联表id | -| fileId | integer (int64) | ❌ | 文件id | -| filePath | string | ❌ | 备 注:文件路径 | -| fileSize | integer (int64)? | ❌ | 备 注:文件大小(文件大小-kb,不足1kb为1kb) -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "sunTaskId": 0, - "fileId": 0, - "filePath": "string", - "fileSize": 0 -} -``` - ---- - -### SunTaskUserResult - -任务关联用户 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 用户关联表的id | -| sunTaskId | integer (int64) | ❌ | 子任务关联表id | -| userId | integer (int64) | ❌ | - | -| userName | string | ❌ | 备 注:文件路径 | - -**JSON示例**: - -```json -{ - "id": 0, - "sunTaskId": 0, - "userId": 0, - "userName": "string" -} -``` - ---- - -### SuperiorTaskDetailResult - -任务详情返回结果 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| taskEnum | integer (int32) | ❌ | 备 注:任务类型枚举 -默认值: | -| taskStatus | integer (int32) | ❌ | 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; -默认值: | -| taskAddtime | string (date-time) | ❌ | 备 注:布置时间 -默认值: | -| taskAdduser | integer (int64) | ❌ | 备 注:布置人id -默认值: | -| taskWorkType | integer (int32) | ❌ | 备 注:1:单人任务;2多人任务 -默认值: | -| taskEndTime | string (date-time) | ❌ | 备 注:完成时间 -默认值: | -| remark | string? | ❌ | 备 注:备注 -默认值: | -| taskUserNames | string | ❌ | 备 注:布置对象 -默认值: | -| taskUserNum | integer (int32) | ❌ | 备 注:接受任务人数 -默认值: | -| updateTime | string (date-time)? | ❌ | 备 注:最后一次更新时间 -默认值: | -| finishUserNum | integer (int32) | ❌ | 备 注:完成任务人数(多人才有,单人默认为0) | -| superiorTaskInfoProcessResult | array? | ❌ | 任务完成流程记录(单人才有,多人为null) | - -**JSON示例**: - -```json -{ - "id": 0, - "taskEnum": 0, - "taskStatus": 0, - "taskAddtime": "string", - "taskAdduser": 0, - "taskWorkType": 0, - "taskEndTime": "string", - "remark": "string", - "taskUserNames": "string", - "taskUserNum": 0, - "updateTime": "string", - "finishUserNum": 0, - "superiorTaskInfoProcessResult": [] -} -``` - ---- - -### SuperiorTaskInfoProcessResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id -默认值: | -| taskId | integer (int64)? | ❌ | 备 注:任务id -默认值: | -| taskStatus | integer (int64)? | ❌ | 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; -默认值: | -| taskTime | string (date-time)? | ❌ | 备 注:时间 -默认值: | -| taskUserId | integer (int64)? | ❌ | 备 注:任务接收人id -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "superiorId": 0, - "taskId": 0, - "taskStatus": 0, - "taskTime": "string", - "taskUserId": 0 -} -``` - ---- - -### SuperiorTaskInfoUserDetailResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id -默认值: | -| taskUserId | integer (int64) | ❌ | 任务接收人id | -| userName | string | ❌ | 用户名称 | -| userTaskStatus | integer (int32) | ❌ | 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; | -| taskId | integer (int64)? | ❌ | 备 注:创建任务id | - -**JSON示例**: - -```json -{ - "id": 0, - "superiorId": 0, - "taskUserId": 0, - "userName": "string", - "userTaskStatus": 0, - "taskId": 0 -} -``` - ---- - -### SuperiorTaskInfoUserDetailResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SuperiorTaskListResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| taskEnum | integer (int32) | ❌ | 备 注:任务类型枚举 -默认值: | -| taskStatus | integer (int32) | ❌ | 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; -默认值: | -| taskAddtime | string (date-time) | ❌ | 备 注:布置时间 -默认值: | -| taskAdduser | integer (int64) | ❌ | 备 注:布置人id -默认值: | -| taskAdduserName | string | ❌ | 备 注:布置人姓名 -默认值: | -| taskWorkType | integer (int32) | ❌ | 备 注:1:单人任务;2多人任务 -默认值: | -| taskUserNum | integer (int32) | ❌ | 备 注:接受任务人数 -默认值: | -| taskUserNames | string | ❌ | 备 注:用户姓名 -默认值: | -| taskEndTime | string (date-time) | ❌ | 备 注:完成时间 -默认值: | -| finishCount | integer (int32)? | ❌ | 完成人数 | -| remark | string? | ❌ | 备 注:备注 -默认值: | -| updateTime | string (date-time)? | ❌ | 备 注:最后一次更新时间 -默认值: | -| userHeadImage | string? | ❌ | 备 注:布置对象头像列表 | - -**JSON示例**: - -```json -{ - "id": 0, - "taskEnum": 0, - "taskStatus": 0, - "taskAddtime": "string", - "taskAdduser": 0, - "taskAdduserName": "string", - "taskWorkType": 0, - "taskUserNum": 0, - "taskUserNames": "string", - "taskEndTime": "string", - "finishCount": 0, - "remark": "string", - "updateTime": "string", - "userHeadImage": "string" -} -``` - ---- - -### SuperiorTaskListResultPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SuperiorTaskRequest - -布置任务请求参数 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| users | array | ❌ | 布置对象 | -| taskEnum | integer (int32) | ❌ | 任务类型枚举 | -| taskEndTime | string (date-time) | ❌ | 完成时间 | -| remark | string? | ❌ | 备注 | - -**JSON示例**: - -```json -{ - "users": [], - "taskEnum": 0, - "taskEndTime": "string", - "remark": "string" -} -``` - ---- - -### SysFileViewDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| fileName | string? | ❌ | 备 注:原文件名 -默认值: | -| filePath | string? | ❌ | 备 注:文件所在路径 -默认值: | -| fileType | string? | ❌ | 备 注:文件类型 -默认值: | -| addtime | string (date-time)? | ❌ | 备 注:上传时间 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "fileName": "string", - "filePath": "string", - "fileType": "string", - "addtime": "string" -} -``` - ---- - -### SysFileinfo - -文件记录表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| fileName | string? | ❌ | 备 注:原文件名 -默认值: | -| filePath | string? | ❌ | 备 注:文件所在路径 -默认值: | -| fileType | string? | ❌ | 备 注:文件类型 -默认值: | -| adduser | integer (int64)? | ❌ | 备 注:上传用户id -默认值: | -| addtime | string (date-time)? | ❌ | 备 注:上传时间 -默认值: | -| fileSize | integer (int64)? | ❌ | 备 注:文件大小(文件大小-kb,不足1kb为1kb) -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "fileName": "string", - "filePath": "string", - "fileType": "string", - "adduser": 0, - "addtime": "string", - "fileSize": 0 -} -``` - ---- - -### SysParameter - -字典表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| pid | integer (int64) | ❌ | 备 注:父级id,默认0,0时无父级 -默认值: | -| pName | string | ❌ | 备 注:参数名称 -默认值: | -| pValue | integer (int64) | ❌ | 备 注:枚举值,不可重复,自定义 或 直接生成,后续业务关联也是关联此字段 -默认值: | -| sort | integer (int32) | ❌ | 备 注:排序,默认0 -默认值: | -| isQuestion | boolean | ❌ | 备 注:是否纳入问题记录。0否,1是 -默认值: | -| questionType | reference | ❌ | - | -| selectionMode | integer (int32)? | ❌ | 备 注: 1=单选,2=多选 -默认值: | -| isRequiredSelection | boolean | ❌ | 备 注:是否必填项 -默认值: | -| child | array | ❌ | - | -| parent | reference | ❌ | - | -| childrenIsOption | boolean | ❌ | 下级是否为选项 | - -**JSON示例**: - -```json -{ - "id": 0, - "pid": 0, - "pName": "string", - "pValue": 0, - "sort": 0, - "isQuestion": true, - "questionType": {}, - "selectionMode": 0, - "isRequiredSelection": true, - "child": [], - "parent": {}, - "childrenIsOption": true -} -``` - ---- - -### SysParameterOther - -除开任务的其他信息字典表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| pid | integer (int32) | ❌ | 备 注:父级id。0为顶级 -默认值: | -| pName | string | ❌ | 备 注:参数名称 -默认值: | -| pValue | integer (int64) | ❌ | 备 注:枚举值 -默认值: | -| sort | integer (int32) | ❌ | 备 注:排序 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "pid": 0, - "pName": "string", - "pValue": 0, - "sort": 0 -} -``` - ---- - -### SysParameterPageResponse - -分页响应实体类 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| total | integer (int32) | ❌ | 总记录条数 | -| items | array | ❌ | 响应数据 | - -**JSON示例**: - -```json -{ - "total": 0, - "items": [] -} -``` - ---- - -### SysRoleEnum - -系统角色枚举 - -**枚举值**: - -- `1` -- `2` -- `1000` -- `1001` -- `1002` -- `1003` - -**JSON示例**: - -```json -"1" -``` - ---- - -### SysTaskTypeEnums - -任务类型枚举 - -**枚举值**: - -- `1` -- `2` -- `3` -- `4` -- `5` -- `6` -- `7` -- `8` -- `9` -- `10` -- `11` -- `12` -- `13` - -**JSON示例**: - -```json -"1" -``` - ---- - -### System_filesRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| fileName | string? | ❌ | 备 注:原文件名包括后缀例如【111.txt】 -默认值: | -| filePath | string? | ❌ | 备 注:文件Url路径 -默认值: | -| fileType | string? | ❌ | 备 注:文件类型(文件后缀名,不带.) -默认值: | -| fileSize | integer (int64)? | ❌ | 备 注:文件大小(文件大小-kb,不足1kb为1kb) -默认值: | - -**JSON示例**: - -```json -{ - "fileName": "string", - "filePath": "string", - "fileType": "string", - "fileSize": 0 -} -``` - ---- - -### TalkInfoRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| talkId | integer (int64)? | ❌ | 谈话记录表id(新增时为null,修改时必传) | -| quiltUserid | integer (int64) | ❌ | 被谈话人id | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "talkId": 0, - "quiltUserid": 0 -} -``` - ---- - -### TaskFinishList - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskTypeEnum | integer (int64) | ❌ | 任务类型枚举 | -| taskTypeName | string | ❌ | 任务类型枚举-名称 | -| taskCount | integer (int32) | ❌ | 任务数量 | - -**JSON示例**: - -```json -{ - "taskTypeEnum": 0, - "taskTypeName": "string", - "taskCount": 0 -} -``` - ---- - -### TaskLoginfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskId | integer (int64) | ❌ | 任务id | -| sunTaskId | integer (int64) | ❌ | 备 注:子任务id -默认值: | -| addDate | string (date-time) | ❌ | 备 注:操作日期 -默认值: | -| logType | integer (int32) | ❌ | 备 注:操作类型。1新增,2推进,3完成任务 -默认值: | -| logCount | integer (int32) | ❌ | 当天操作记录数量 | - -**JSON示例**: - -```json -{ - "taskId": 0, - "sunTaskId": 0, - "addDate": "string", - "logType": 0, - "logCount": 0 -} -``` - ---- - -### TaskTalkFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| talkId | integer (int64) | ❌ | 谈话表id | -| remark | string | ❌ | 谈话纪要 | -| files | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "talkId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### TaskTalkResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| talkId | integer (int64) | ❌ | 谈话表id | -| remark | string | ❌ | 谈话纪要 | -| userId | integer (int64) | ❌ | 用户id | -| userName | string | ❌ | 用户名称 | -| taskInfo | reference | ❌ | - | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "talkId": 0, - "remark": "string", - "userId": 0, - "userName": "string", - "taskInfo": {}, - "sunTaskFileResults": [] -} -``` - ---- - -### Task_checklistCloudSchoolResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| taskTypeEnum | integer (int64) | ❌ | 任务类型id | -| taskTypeEnumName | string | ❌ | 备 注:任务类型名称 | -| cloudSchoolId | integer (int64)? | ❌ | 备 注:云校id -默认值: | -| targetNumber | integer (int32) | ❌ | 备 注:任务指标数 -默认值: | -| taskType | integer (int32) | ❌ | 备 注:班级/通用任务类型 1班级;2通用 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "taskTypeEnum": 0, - "taskTypeEnumName": "string", - "cloudSchoolId": 0, - "targetNumber": 0, - "taskType": 0 -} -``` - ---- - -### Task_checklistRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 新增为null,编辑时传Id | -| taskTypeEnum | integer (int64) | ❌ | 备 注:任务类型id -默认值: | -| targetNumber | integer (int32) | ❌ | 备 注:任务指标数 -默认值: | -| taskType | integer (int32) | ❌ | 备 注:班级/通用任务类型 1班级;2通用 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "taskTypeEnum": 0, - "targetNumber": 0, - "taskType": 0 -} -``` - ---- - -### Task_checklistResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| taskTypeEnum | integer (int64) | ❌ | 任务类型id | -| taskTypeEnumName | string | ❌ | 备 注:任务类型名称 | -| taskUserId | integer (int64)? | ❌ | 备 注:用户id -默认值: | -| targetNumber | integer (int32) | ❌ | 备 注:任务指标数 -默认值: | -| taskType | integer (int32) | ❌ | 备 注:班级/通用任务类型 1班级;2通用 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "taskTypeEnum": 0, - "taskTypeEnumName": "string", - "taskUserId": 0, - "targetNumber": 0, - "taskType": 0 -} -``` - ---- - -### TeacherBehaviorFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| tBId | integer (int64) | ❌ | 观察表id | -| remark | string | ❌ | 分析/总结 | - -**JSON示例**: - -```json -{ - "id": 0, - "tBId": 0, - "remark": "string" -} -``` - ---- - -### TeacherBehaviorQuestionNumResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| questionId | integer (int64) | ❌ | 问题id | -| num | integer (int32) | ❌ | 问题个数 | -| addTime | string (date-time) | ❌ | 记录时间 | - -**JSON示例**: - -```json -{ - "questionId": 0, - "num": 0, - "addTime": "string" -} -``` - ---- - -### TeacherBehaviorQuestionResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| previewString | string | ❌ | 预习安排 | -| previewTypeString | string | ❌ | 预习方式 | -| checkTypeString | string | ❌ | 检查方式 | -| previewResultString | string | ❌ | 预习效果 | -| cooperationString | string | ❌ | 课堂配合 | -| patrolRate | string | ❌ | 巡查频率 | -| afterString | string | ❌ | 课后观察 | - -**JSON示例**: - -```json -{ - "previewString": "string", - "previewTypeString": "string", - "checkTypeString": "string", - "previewResultString": "string", - "cooperationString": "string", - "patrolRate": "string", - "afterString": "string" -} -``` - ---- - -### TeacherBehaviorRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| tBId | integer (int64)? | ❌ | 教师行为规范id(新增时为null,修改时必传) | -| behaviorUserName | string | ❌ | 观察对象姓名 | -| behaviorUserId | integer (int64) | ❌ | 观察对象Id | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "tBId": 0, - "behaviorUserName": "string", - "behaviorUserId": 0 -} -``` - ---- - -### TeacherBehaviorResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| taskInfo | reference | ❌ | - | -| tBId | integer (int64) | ❌ | 观察表id | -| behaviorUserName | string | ❌ | 观察对象名称 | -| remark | string? | ❌ | 反馈反思 | -| teacherBehaviorQuestionNumResults | array | ❌ | 观察记录列表 | - -**JSON示例**: - -```json -{ - "taskInfo": {}, - "tBId": 0, - "behaviorUserName": "string", - "remark": "string", - "teacherBehaviorQuestionNumResults": [] -} -``` - ---- - -### TeacherTalkInfoFinishRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 任务id | -| teacherTalkId | integer (int64) | ❌ | 谈话ID | -| remark | string | ❌ | 谈话纪要 | -| files | array? | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "teacherTalkId": 0, - "remark": "string", - "files": [] -} -``` - ---- - -### TeacherTalkInfoRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64)? | ❌ | 任务id(新增时为null,修改时必传) | -| classesId | integer (int64)? | ❌ | 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) | -| taskTypeEnum | integer (int32) | ❌ | 任务类型id | -| startTime | string (date-time) | ❌ | 备 注:开始时间 -默认值: | -| endTime | string (date-time) | ❌ | 备 注:结束时间 -默认值: | -| taskTitleSuffix | string? | ❌ | 任务后缀 | -| isSuperiorTask | integer (int32) | ❌ | 备 注:是否是布置任务。0否(默认);1是; -默认值: | -| superiorId | integer (int64)? | ❌ | 备 注:布置任务id,如果是布置任务才需要传 -默认值: | -| teacherTalkId | integer (int64)? | ❌ | id(新增时为null,修改时必传) | -| quiltUserName | string | ❌ | 被谈话老师用户姓名 | -| quiltUserId | integer (int64) | ❌ | 备 注:被谈话老师用户id -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "classesId": 0, - "taskTypeEnum": 0, - "startTime": "string", - "endTime": "string", - "taskTitleSuffix": "string", - "isSuperiorTask": 0, - "superiorId": 0, - "teacherTalkId": 0, - "quiltUserName": "string", - "quiltUserId": 0 -} -``` - ---- - -### TeacherTalkInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| talkId | integer (int64) | ❌ | 谈话记录ID | -| quiltUserId | integer (int64) | ❌ | 备 注:被谈话老师用户id -默认值: | -| quiltUserName | string | ❌ | 被谈话老师用户姓名 | -| remark | string | ❌ | 谈话纪要 | -| taskInfo | reference | ❌ | - | -| sunTaskFileResults | array | ❌ | 关联文件 | - -**JSON示例**: - -```json -{ - "talkId": 0, - "quiltUserId": 0, - "quiltUserName": "string", - "remark": "string", - "taskInfo": {}, - "sunTaskFileResults": [] -} -``` - ---- - -### Teacher_behavior_questionRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| tBId | integer (int64) | ❌ | 观察记录id | -| previewId | string? | ❌ | 预习安排问题,参数id,多个用英文逗号分割 | -| previewTypeId | string? | ❌ | 预习安排-预习方式问题,参数id,多个用英文逗号分割 | -| inspectTypeEnum | integer (int32)? | ❌ | 预习安排-检查方式: 1课前检查;2课间检查;3全面检查;4未检查 | -| previewResultEnum | integer (int32)? | ❌ | 预习安排-预习效果;参数id | -| cooperationId | string? | ❌ | 备 注:课堂配合,参数id,多个用英文逗号分割 -默认值: | -| cooperationInspectionEnum | integer (int32)? | ❌ | 备 注:课堂配合-巡视频率,1好;2中;3低 -默认值: | -| afterClassId | string? | ❌ | 备 注:课后观察,参数id,多个用英文逗号分割 -默认值: | - -**JSON示例**: - -```json -{ - "tBId": 0, - "previewId": "string", - "previewTypeId": "string", - "inspectTypeEnum": 0, - "previewResultEnum": 0, - "cooperationId": "string", - "cooperationInspectionEnum": 0, - "afterClassId": "string" -} -``` - ---- - -### TeachingLevelEnum - -班级教学层次枚举 - -**枚举值**: - -- `1` -- `2` - -**JSON示例**: - -```json -"1" -``` - ---- - -### ToolClassType - -**枚举值**: - -- `1` -- `2` -- `3` - -**JSON示例**: - -```json -"1" -``` - ---- - -### ToolKitSemesterViewDto - -工具包学期视图数据传输对象 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| toolKitId | integer (int64) | ❌ | 备 注:工具包Id -默认值: | -| solutionSemesterEnum | reference | ❌ | - | -| solutionSemesterName | string | ❌ | - | - -**JSON示例**: - -```json -{ - "id": 0, - "toolKitId": 0, - "solutionSemesterEnum": {}, - "solutionSemesterName": "string" -} -``` - ---- - -### ToolKitViewDto - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | - | -| toolName | string | ❌ | 备 注:工具名称 -默认值: | -| toolType | string | ❌ | 备 注:工具格式 文件后缀名 -默认值: | -| toolSize | integer (int32) | ❌ | 备 注:大小 kb -默认值: | -| problemObj | reference | ❌ | - | -| upTime | string (date-time) | ❌ | 备 注:最后更新时间 -默认值: | -| fileinfo | reference | ❌ | - | -| addTime | string (date-time) | ❌ | 备 注:添加时间 -默认值: | -| toolClassType | reference | ❌ | - | -| toolKitSemesters | array | ❌ | - | -| solutionLists | array | ❌ | 关联解决方案列表 | - -**JSON示例**: - -```json -{ - "id": 0, - "toolName": "string", - "toolType": "string", - "toolSize": 0, - "problemObj": {}, - "upTime": "string", - "fileinfo": {}, - "addTime": "string", - "toolClassType": {}, - "toolKitSemesters": [], - "solutionLists": [] -} -``` - ---- - -### ToolObjectType - -工具对象类型枚举 - -**枚举值**: - -- `1` -- `2` -- `3` - -**JSON示例**: - -```json -"1" -``` - ---- - -### UpdateappResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 备 注: -默认值: | -| version | integer (int32) | ❌ | 备 注:版本 -默认值: | -| versionName | string | ❌ | 版本号 | -| remark | string? | ❌ | 版本说明 | -| imageBase | string? | ❌ | 二维码图片:base64 | -| updatetype | integer (int32)? | ❌ | 1:安卓APP,2: IOS | -| isActive | integer (int32)? | ❌ | 1启用 0停用 | -| fileid | integer (int64)? | ❌ | 备 注:文件id -默认值: | -| fileName | string? | ❌ | 原文件名 | -| filePath | string? | ❌ | 文件路径 | -| fileSize | integer (int64)? | ❌ | 备 注:文件大小(文件大小-kb,不足1kb为1kb) -默认值: | -| isforce | boolean | ❌ | 备 注:版本是否强制升级 -默认值: | - -**JSON示例**: - -```json -{ - "id": 0, - "version": 0, - "versionName": "string", - "remark": "string", - "imageBase": "string", - "updatetype": 0, - "isActive": 0, - "fileid": 0, - "fileName": "string", - "filePath": "string", - "fileSize": 0, - "isforce": true -} -``` - ---- - -### UserAdminInfoResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userName | string | ❌ | 用户姓名 | -| userId | integer (int64) | ❌ | 用户id | -| roleEnum | reference | ❌ | - | -| classCount | integer (int32)? | ❌ | 管理班级个数 | - -**JSON示例**: - -```json -{ - "userName": "string", - "userId": 0, - "roleEnum": {}, - "classCount": 0 -} -``` - ---- - -### UserBooksResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | Id | -| userName | string | ❌ | 用户姓名 | -| headImage | string | ❌ | 头像 | -| roleEnum | reference | ❌ | - | -| phone | string | ❌ | 电话 | -| classNum | integer (int32) | ❌ | 管理班级数量 | -| cloudSchoolId | integer (int64)? | ❌ | 账号所属云校id | - -**JSON示例**: - -```json -{ - "id": 0, - "userName": "string", - "headImage": "string", - "roleEnum": {}, - "phone": "string", - "classNum": 0, - "cloudSchoolId": 0 -} -``` - ---- - -### UserDetailInfo - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userId | integer (int64) | ❌ | 用户ID | -| userName | string | ❌ | 用户姓名 | -| roleEnum | reference | ❌ | - | -| cloudSchoolId | integer (int64) | ❌ | 云校id | -| cloudSchoolName | string | ❌ | 云校名称 | -| schoolResults | array | ❌ | 管理学校 | -| headImage | string | ❌ | 头像URL | - -**JSON示例**: - -```json -{ - "userId": 0, - "userName": "string", - "roleEnum": {}, - "cloudSchoolId": 0, - "cloudSchoolName": "string", - "schoolResults": [], - "headImage": "string" -} -``` - ---- - -### UserFoundationResult - -用户基本表 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userName | string | ❌ | 用户姓名 | -| userId | integer (int64) | ❌ | 用户id | -| roleEnum | reference | ❌ | - | - -**JSON示例**: - -```json -{ - "userName": "string", - "userId": 0, - "roleEnum": {} -} -``` - ---- - -### UserResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| id | integer (int64) | ❌ | 备 注:用户中心id -默认值: | -| realName | string | ❌ | 备 注:姓名 -默认值: | -| account | string | ❌ | 备 注:账号 -默认值: | -| roleEnum | reference | ❌ | - | -| cloudId | integer (int64)? | ❌ | 云校id | -| roleName | string? | ❌ | 角色名称 | -| cloudName | string? | ❌ | 备 注:云校名称 -默认值: | -| phone | string? | ❌ | 备 注:手机号 -默认值: | -| headImage | string | ❌ | 头像URL | - -**JSON示例**: - -```json -{ - "id": 0, - "realName": "string", - "account": "string", - "roleEnum": {}, - "cloudId": 0, - "roleName": "string", - "cloudName": "string", - "phone": "string", - "headImage": "string" -} -``` - ---- - -### UserSchoolLikeBooksResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| schoolInfos | array | ❌ | 学校信息 | -| likeUserBooksResults | array | ❌ | 用户 | - -**JSON示例**: - -```json -{ - "schoolInfos": [], - "likeUserBooksResults": [] -} -``` - ---- - -### WeekModel - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| week | integer (int32) | ❌ | 周 | -| weekDay | string (date-time) | ❌ | - | -| weekDayDetails | array | ❌ | - | - -**JSON示例**: - -```json -{ - "week": 0, - "weekDay": "string", - "weekDayDetails": [] -} -``` - ---- - -### WorkCompletionResult - -工作完成情况 - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| userId | integer (int64) | ❌ | 用户id | -| workDate | string | ❌ | 所属月份 | -| completionRate | number (double) | ❌ | 完成率 | -| taskCompletionInfos | array | ❌ | 任务完成情况列表 | - -**JSON示例**: - -```json -{ - "userId": 0, - "workDate": "string", - "completionRate": 0.0, - "taskCompletionInfos": [] -} -``` - ---- - -### userLoginRequest - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| phone | string | ❌ | 电话 | - -**JSON示例**: - -```json -{ - "phone": "string" -} -``` - ---- - -### userLoginResult - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| token | string | ❌ | Token | -| userInfo | reference | ❌ | - | -| userSig | string | ❌ | UserSig | - -**JSON示例**: - -```json -{ - "token": "string", - "userInfo": {}, - "userSig": "string" -} -``` - ---- - -### weekDayDetail - -**属性**: - -| 属性名 | 类型 | 必填 | 描述 | -|--------|------|------|------| -| classCourseId | integer (int64) | ❌ | 课程id | -| classCourseWeekId | integer (int64) | ❌ | 周ID | -| classCourseTableId | integer (int64) | ❌ | 班级课表ID | -| coursesSectionDetailId | integer (int64) | ❌ | 课节详情ID | -| name | string | ❌ | 名称 | -| week | integer (int32) | ❌ | 周类型 | -| subject | integer (int32) | ❌ | 科目id | -| subjectName | string | ❌ | 科目名称 | -| teacherName | string | ❌ | 云校老师 | -| teacherId | integer (int64) | ❌ | 云校老师id | -| landingTeacherId | integer (int64) | ❌ | 落地老师 | -| landingTeacherName | string | ❌ | 落地老师 | -| planStartTime | string (date-time) | ❌ | 上课时间 | -| planEndTime | string (date-time) | ❌ | 下课时间 | - -**JSON示例**: - -```json -{ - "classCourseId": 0, - "classCourseWeekId": 0, - "classCourseTableId": 0, - "coursesSectionDetailId": 0, - "name": "string", - "week": 0, - "subject": 0, - "subjectName": "string", - "teacherName": "string", - "teacherId": 0, - "landingTeacherId": 0, - "landingTeacherName": "string", - "planStartTime": "string", - "planEndTime": "string" -} -``` - ---- - -## ❌ 错误代码 - -| 状态码 | 描述 | -|--------|------| -| 400 | 请求参数错误 | -| 401 | 未授权访问 | -| 403 | 禁止访问 | -| 404 | 资源不存在 | -| 405 | 方法不允许 | -| 422 | 参数验证失败 | -| 500 | 服务器内部错误 | -| 502 | 网关错误 | -| 503 | 服务不可用 | - -### 错误响应格式 - -```json -{ - "error": { - "code": "ERROR_CODE", - "message": "错误描述", - "details": "详细信息" - } -} -``` - -## 💡 示例代码 - -### Dart HTTP客户端 - -```dart -import 'dart:convert'; -import 'package:http/http.dart' as http; - -class ApiClient { - static const String baseUrl = '/'; - String? _token; - - void setToken(String token) { - _token = token; - } - - Map get _headers => { - 'Content-Type': 'application/json', - if (_token != null) 'Authorization': 'Bearer $_token', - }; - - Future> get(String endpoint) async { - final response = await http.get( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - ); - - if (response.statusCode == 200) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to load data: ${response.statusCode}'); - } - } - - Future> post(String endpoint, Map data) async { - final response = await http.post( - Uri.parse('$baseUrl$endpoint'), - headers: _headers, - body: jsonEncode(data), - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - return jsonDecode(response.body); - } else { - throw Exception('Failed to post data: ${response.statusCode}'); - } - } -} -``` - -## 📝 更新日志 - -### v1 + v2 - 2025-11-05 - -- 🎉 初始版本发布 -- 📡 204 个API端点 -- 📋 189 个数据模型 -- 🔧 完整的API文档 - ---- - -*文档由 Swagger CLI By Max 自动生成* - diff --git a/example/as_dev_dependency/test_example.sh b/example/as_dev_dependency/test_example.sh deleted file mode 100755 index 0ffcc94..0000000 --- a/example/as_dev_dependency/test_example.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/bash - -# 测试示例项目脚本 -# 用于快速验证 dev_dependencies 功能是否正常工作 - -set -e - -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "🧪 测试 Swagger Generator 示例项目" -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "" - -# 检查当前目录 -if [ ! -f "pubspec.yaml" ]; then - echo "❌ 错误:请在示例项目目录中运行此脚本" - echo " cd example/as_dev_dependency" - exit 1 -fi - -echo "📂 当前目录: $(pwd)" -echo "" - -# 步骤 1: 清理 -echo "🧹 步骤 1/5: 清理旧文件..." -rm -rf lib/generated .dart_tool build -echo "✅ 清理完成" -echo "" - -# 步骤 2: 安装依赖 -echo "📦 步骤 2/5: 安装依赖..." -flutter pub get - -if [ $? -ne 0 ]; then - echo "❌ 依赖安装失败" - exit 1 -fi - -echo "✅ 依赖安装成功" -echo "" - -# 步骤 3: 生成 API 代码 -echo "🚀 步骤 3/5: 生成 API 代码..." -dart run swagger_generator_flutter generate --all - -if [ $? -ne 0 ]; then - echo "❌ API 代码生成失败" - exit 1 -fi - -echo "✅ API 代码生成成功" -echo "" - -# 步骤 4: 检查生成的文件 -echo "🔍 步骤 4/5: 检查生成的文件..." - -if [ ! -d "lib/generated" ]; then - echo "❌ 生成目录不存在" - exit 1 -fi - -if [ ! -d "lib/generated/api" ]; then - echo "❌ API 目录不存在" - exit 1 -fi - -if [ ! -d "lib/generated/api_models" ]; then - echo "❌ Models 目录不存在" - exit 1 -fi - -# 统计生成的文件 -api_files=$(find lib/generated/api -name "*.dart" | wc -l | tr -d ' ') -model_files=$(find lib/generated/api_models -name "*.dart" | wc -l | tr -d ' ') - -echo " 📄 生成的 API 文件: $api_files 个" -echo " 📄 生成的 Model 文件: $model_files 个" -echo "✅ 文件检查通过" -echo "" - -# 步骤 5: 分析代码 -echo "🔬 步骤 5/5: 分析生成的代码..." -dart analyze lib/generated 2>&1 | head -20 - -echo "" -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "✨ 测试完成!" -echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" -echo "" -echo "📊 统计信息:" -echo " ✅ API 文件: $api_files 个" -echo " ✅ Model 文件: $model_files 个" -echo "" -echo "📁 生成的文件位置:" -echo " lib/generated/api/" -echo " lib/generated/api_models/" -echo "" -echo "🎯 下一步:" -echo " 1. 运行 build_runner:" -echo " dart run build_runner build --delete-conflicting-outputs" -echo "" -echo " 2. 运行应用:" -echo " flutter run" -echo "" -echo " 3. 查看生成的代码:" -echo " ls -la lib/generated/" -echo "" - diff --git a/example/generate_api.bat b/example/generate_api.bat new file mode 100644 index 0000000..070440c --- /dev/null +++ b/example/generate_api.bat @@ -0,0 +1,86 @@ +@echo off +REM Swagger API 代码生成脚本 (Windows) +REM 用于 Learning Officer OA 项目 + +setlocal enabledelayedexpansion + +echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +echo 🚀 Swagger API 代码生成器 +echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +echo. + +REM 检查是否在项目根目录 +if not exist "pubspec.yaml" ( + echo ❌ 错误: 请在项目根目录运行此脚本 + exit /b 1 +) + +REM 检查配置文件是否存在 +if not exist "generator_config.yaml" ( + echo ❌ 错误: 找不到 generator_config.yaml 配置文件 + echo 请先创建配置文件 + exit /b 1 +) + +REM 步骤 1: 运行代码生成器 +echo 📝 步骤 1/4: 正在运行代码生成器... +dart run swagger_generator_flutter generate --all + +if !errorlevel! neq 0 ( + echo ❌ 代码生成失败! + exit /b 1 +) + +echo ✅ 代码生成成功 +echo. + +REM 步骤 2: 运行 build_runner 生成 .g.dart 文件 +echo 🔨 步骤 2/4: 正在运行 build_runner 生成 .g.dart 文件... +flutter pub run build_runner build --delete-conflicting-outputs + +if !errorlevel! neq 0 ( + echo ⚠️ build_runner 执行失败,请检查错误信息 +) else ( + echo ✅ build_runner 执行成功 +) + +echo. + +REM 步骤 3: 修复和排序 imports +echo 🔧 步骤 3/4: 修复和排序 imports... +dart fix --apply lib/common/api +dart fix --apply lib/common/api_models + +if !errorlevel! neq 0 ( + echo ⚠️ dart fix 执行失败,请检查错误信息 +) else ( + echo ✅ dart fix 执行成功 +) + +echo. + +REM 步骤 4: 格式化代码 +echo 📐 步骤 4/4: 格式化代码... +dart format lib/common/api lib/common/api_models --set-exit-if-changed + +if !errorlevel! neq 0 ( + echo ⚠️ 代码格式化失败,请检查错误信息 +) else ( + echo ✅ 代码格式化完成 +) + +echo. +echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +echo ✨ 代码生成完成! +echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +echo. +echo 📋 生成的文件位置: +echo - API 接口: lib/common/api/ +echo - API 模型: lib/common/api_models/ +echo. +echo 💡 提示: +echo - 如果生成的文件有错误,请检查并修复后重新运行 build_runner +echo - 建议在提交代码前检查生成的代码是否符合项目规范 +echo. + +pause diff --git a/example/generate_api.sh b/example/generate_api.sh new file mode 100644 index 0000000..8ca5a0a --- /dev/null +++ b/example/generate_api.sh @@ -0,0 +1,95 @@ +#!/bin/bash +# Swagger API 代码生成脚本 +# 用于 Learning Officer OA 项目 + +set -e # 遇到错误立即退出 + +# 颜色定义 +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +CYAN='\033[0;36m' +NC='\033[0m' # No Color + +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo -e "${CYAN}🚀 Swagger API 代码生成器${NC}" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" + +# 检查是否在项目根目录 +if [ ! -f "pubspec.yaml" ]; then + echo -e "${YELLOW}❌ 错误: 请在项目根目录运行此脚本${NC}" + exit 1 +fi + +# 检查配置文件是否存在 +if [ ! -f "generator_config.yaml" ]; then + echo -e "${YELLOW}❌ 错误: 找不到 generator_config.yaml 配置文件${NC}" + echo "请先创建配置文件" + exit 1 +fi + +rm -rf lib/src/api/*.dart +rm -rf lib/src/models/*.dart + +# 步骤 1: 运行代码生成器 +echo -e "${CYAN}📝 步骤 1/4: 正在运行代码生成器...${NC}" +dart run swagger_generator_flutter generate --all + +if [ $? -ne 0 ]; then + echo -e "${YELLOW}❌ 代码生成失败!${NC}" + exit 1 +fi + +echo -e "${GREEN}✅ 代码生成成功${NC}" +echo "" + +# 步骤 2: 运行 build_runner 生成 .g.dart 文件 +echo -e "${CYAN}🔨 步骤 2/4: 正在运行 build_runner 生成 .g.dart 文件...${NC}" +flutter pub run build_runner build --delete-conflicting-outputs + +if [ $? -ne 0 ]; then + echo -e "${YELLOW}⚠️ build_runner 执行失败,请检查错误信息${NC}" +else + echo -e "${GREEN}✅ build_runner 执行成功${NC}" +fi + +echo "" + +# 步骤 3: 修复和排序 imports +echo -e "${CYAN}🔧 步骤 3/4: 修复和排序 imports...${NC}" +dart fix --apply lib/common/api +FIX_API_EXIT_CODE=$? +dart fix --apply lib/common/api_models +FIX_MODELS_EXIT_CODE=$? + +if [ $FIX_API_EXIT_CODE -ne 0 ] || [ $FIX_MODELS_EXIT_CODE -ne 0 ]; then + echo -e "${YELLOW}⚠️ dart fix 执行失败,请检查错误信息${NC}" +else + echo -e "${GREEN}✅ dart fix 执行成功${NC}" +fi + +echo "" + +# 步骤 4: 格式化代码 +echo -e "${CYAN}📐 步骤 4/4: 格式化代码...${NC}" +dart format lib/common/api lib/common/api_models --set-exit-if-changed + +if [ $? -ne 0 ]; then + echo -e "${YELLOW}⚠️ 代码格式化失败,请检查错误信息${NC}" +else + echo -e "${GREEN}✅ 代码格式化完成${NC}" +fi + +echo "" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo -e "${GREEN}✨ 代码生成完成!${NC}" +echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +echo "" +echo -e "${CYAN}📋 生成的文件位置:${NC}" +echo " - API 接口: lib/common/api/" +echo " - API 模型: lib/common/api_models/" +echo "" +echo -e "${CYAN}💡 提示:${NC}" +echo " - 如果生成的文件有错误,请检查并修复后重新运行 build_runner" +echo " - 建议在提交代码前检查生成的代码是否符合项目规范" +echo "" diff --git a/example/as_dev_dependency/generator_config.yaml b/example/generator_config.yaml similarity index 94% rename from example/as_dev_dependency/generator_config.yaml rename to example/generator_config.yaml index f5c836e..aa33456 100644 --- a/example/as_dev_dependency/generator_config.yaml +++ b/example/generator_config.yaml @@ -27,9 +27,9 @@ input: # 输出配置 output: # 输出目录 - base_dir: "./lib/generated" - api_dir: "./lib/generated/api" - models_dir: "./lib/generated/api_models" + base_dir: "./lib/src" + api_dir: "./lib/src/api" + models_dir: "./lib/src/api_models" # 文件命名 api_file_suffix: "_api.dart" @@ -38,6 +38,13 @@ output: # 是否按 tag 分组 split_by_tags: true + excluded_tags: + - "Login" + - "MyInfo" + - "HealthCheck" + - "FeedBackInfo" + - "Points" + # 跳过的目录列表(这些目录下的文件将不会被生成) # 支持相对路径和绝对路径,支持目录名或完整路径 ignored_directories: @@ -88,8 +95,8 @@ generation: # 基础类型配置 base_result_type: "ApiResponse" base_page_result_type: "PagedResponse" - base_result_import: "package:example_app/common/api_response.dart" - base_page_result_import: "package:example_app/common/paged_response.dart" + base_result_import: "package:example_app/common/base_result.dart" + base_page_result_import: "package:example_app/common/base_page_result.dart" # 方法命名 method_naming: "camelCase" diff --git a/example/lib/common/base_abstract.dart b/example/lib/common/base_abstract.dart new file mode 100644 index 0000000..df3b608 --- /dev/null +++ b/example/lib/common/base_abstract.dart @@ -0,0 +1,7 @@ +abstract class BaseAbstract extends Object { + Map toJson(); +} + +abstract class BaseContainsParametersAbstract extends Object { + Map toJson(Object Function(dynamic value) toJsonT); +} diff --git a/example/lib/common/base_page_result.dart b/example/lib/common/base_page_result.dart new file mode 100644 index 0000000..306f11d --- /dev/null +++ b/example/lib/common/base_page_result.dart @@ -0,0 +1,26 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'base_page_result.g.dart'; + +@JsonSerializable( + checked: true, + genericArgumentFactories: true, + fieldRename: FieldRename.snake, +) +class BasePageResult extends Object { + BasePageResult({required this.items, required this.total}); + + @JsonKey(name: 'items') + final List items; + + @JsonKey(name: 'total') + final int total; + + factory BasePageResult.fromJson( + Map json, + T Function(dynamic json) fromJsonT, + ) => _$BasePageResultFromJson(json, fromJsonT); + + Map toJson(Object Function(T value) toJsonT) => + _$BasePageResultToJson(this, toJsonT); +} diff --git a/example/lib/common/base_result.dart b/example/lib/common/base_result.dart new file mode 100644 index 0000000..66ae63c --- /dev/null +++ b/example/lib/common/base_result.dart @@ -0,0 +1,51 @@ +import 'package:json_annotation/json_annotation.dart'; + +import 'base_abstract.dart'; + +part 'base_result.g.dart'; + +@JsonSerializable( + checked: true, + genericArgumentFactories: true, + fieldRename: FieldRename.snake, +) +class BaseResult extends BaseContainsParametersAbstract { + /// 创建失败响应 + factory BaseResult.failure({required int code, String? message, T? data}) { + return BaseResult(code, message ?? '', data); + } + + /// 创建成功响应 + factory BaseResult.success({T? data, String? message, int code = 200}) { + return BaseResult(code, message ?? '', data); + } + BaseResult(this.code, this.message, this.data) { + success = successCodes.contains(code); + } + @JsonKey(name: 'code') + final int code; + + /// 响应消息 + @JsonKey(name: 'msg') + final String? message; + + /// 响应数据 + @JsonKey(name: 'data') + final T? data; + + /// 是否成功(根据 code 自动计算) + @JsonKey(includeFromJson: false, includeToJson: false) + late final bool success; + + /// 成功的响应码列表(可配置) + static List successCodes = [200, 0]; + + factory BaseResult.fromJson( + Map json, + T Function(dynamic json) fromJsonT, + ) => _$BaseResultFromJson(json, fromJsonT); + + @override + Map toJson(Object Function(T value) toJsonT) => + _$BaseResultToJson(this, toJsonT); +} diff --git a/example/as_dev_dependency/pubspec.lock b/example/pubspec.lock similarity index 92% rename from example/as_dev_dependency/pubspec.lock rename to example/pubspec.lock index ca7c3ac..165d32c 100644 --- a/example/as_dev_dependency/pubspec.lock +++ b/example/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f url: "https://pub.flutter-io.cn" source: hosted - version: "67.0.0" + version: "85.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d" url: "https://pub.flutter-io.cn" source: hosted - version: "6.4.1" + version: "7.7.1" args: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7" url: "https://pub.flutter-io.cn" source: hosted - version: "2.4.1" + version: "2.5.4" build_config: dependency: transitive description: @@ -69,26 +69,26 @@ packages: dependency: transitive description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62 url: "https://pub.flutter-io.cn" source: hosted - version: "2.4.2" + version: "2.5.4" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53" url: "https://pub.flutter-io.cn" source: hosted - version: "2.4.13" + version: "2.5.4" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792" url: "https://pub.flutter-io.cn" source: hosted - version: "7.3.2" + version: "9.1.2" built_collection: dependency: transitive description: @@ -165,10 +165,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9" + sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb" url: "https://pub.flutter-io.cn" source: hosted - version: "2.3.6" + version: "3.1.1" dio: dependency: "direct main" description: @@ -303,10 +303,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c url: "https://pub.flutter-io.cn" source: hosted - version: "6.8.0" + version: "6.9.5" leak_tracker: dependency: transitive description: @@ -415,10 +415,10 @@ packages: dependency: transitive description: name: protobuf - sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d" + sha256: de9c9eb2c33f8e933a42932fe1dc504800ca45ebc3d673e6ed7f39754ee4053e url: "https://pub.flutter-io.cn" source: hosted - version: "3.1.0" + version: "4.2.0" pub_semver: dependency: transitive description: @@ -447,10 +447,10 @@ packages: dependency: "direct dev" description: name: retrofit_generator - sha256: "8dfc406cdfa171f33cbd21bf5bd8b6763548cc217de19cdeaa07a76727fac4ca" + sha256: "9abcf21acb95bf7040546eafff87f60cf0aee20b05101d71f99876fc4df1f522" url: "https://pub.flutter-io.cn" source: hosted - version: "8.2.1" + version: "9.7.0" shelf: dependency: transitive description: @@ -476,10 +476,10 @@ packages: dependency: transitive description: name: source_gen - sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" url: "https://pub.flutter-io.cn" source: hosted - version: "1.5.0" + version: "2.0.0" source_helper: dependency: transitive description: @@ -531,7 +531,7 @@ packages: swagger_generator_flutter: dependency: "direct dev" description: - path: "../.." + path: ".." relative: true source: path version: "2.1.1" @@ -559,14 +559,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.0.2" - tuple: - dependency: transitive - description: - name: tuple - sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.2" typed_data: dependency: transitive description: diff --git a/example/as_dev_dependency/pubspec.yaml b/example/pubspec.yaml similarity index 89% rename from example/as_dev_dependency/pubspec.yaml rename to example/pubspec.yaml index f60a9b0..b68bf2c 100644 --- a/example/as_dev_dependency/pubspec.yaml +++ b/example/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: retrofit: ^4.0.0 # JSON 序列化 - json_annotation: ^4.8.0 + json_annotation: ^4.9.0 # 其他依赖 logger: ^2.0.0 @@ -26,11 +26,11 @@ dev_dependencies: # Swagger 代码生成器(使用本地路径作为示例) swagger_generator_flutter: - path: ../../ + path: ../ # 代码生成工具 build_runner: ^2.4.7 - retrofit_generator: ^8.0.0 + retrofit_generator: ^9.0.0 json_serializable: ^6.7.1 # 代码分析 diff --git a/examples/api_client_config_example.yaml b/examples/api_client_config_example.yaml deleted file mode 100644 index 2c04c46..0000000 --- a/examples/api_client_config_example.yaml +++ /dev/null @@ -1,130 +0,0 @@ -# API Client 配置示例 -# 演示如何自定义 API Client 的类名和文件名 - -# 示例 1: 使用默认配置 -# 如果不配置,将使用默认值: -# - class_name: ApiClient -# - file_name: api_client -generation: - api: - enabled: true - use_retrofit: true - use_dio: true - # client 配置可以省略,使用默认值 - ---- - -# 示例 2: 自定义 API Client 名称 -# 适用于多个项目或模块,避免命名冲突 -generation: - api: - enabled: true - use_retrofit: true - use_dio: true - - client: - class_name: "MyApiClient" # 自定义类名 - file_name: "my_api_client" # 自定义文件名 - -# 生成的文件: -# - lib/generated/api/my_api_client.dart -# -# 生成的类: -# class MyApiClient { -# final Dio _dio; -# ... -# } - ---- - -# 示例 3: 项目特定的命名 -# 根据项目名称自定义 -generation: - api: - enabled: true - use_retrofit: true - use_dio: true - - client: - class_name: "ShopApiClient" - file_name: "shop_api_client" - -# 生成的文件: -# - lib/generated/api/shop_api_client.dart -# -# 生成的类: -# class ShopApiClient { -# final Dio _dio; -# ... -# } - ---- - -# 示例 4: 模块化命名 -# 适用于大型项目,按模块划分 -generation: - api: - enabled: true - use_retrofit: true - use_dio: true - - client: - class_name: "UserModuleApi" - file_name: "user_module_api" - -# 生成的文件: -# - lib/generated/api/user_module_api.dart -# -# 生成的类: -# class UserModuleApi { -# final Dio _dio; -# ... -# } - ---- - -# 示例 5: 完整配置示例 -# 包含所有相关配置 -generator: - name: "my_project_generator" - version: "1.0" - author: "Your Name" - copyright: "Copyright (C) 2025 Your Company. All rights reserved." - -input: - swagger_urls: - - "https://your-api.com/swagger/v2/swagger.json" - -output: - base_dir: "./lib/generated" - api_dir: "./lib/generated/api" - models_dir: "./lib/generated/api_models" - split_by_tags: true - -generation: - api: - enabled: true - use_retrofit: true - use_dio: true - parser: "JsonSerializable" - - # 自定义 API Client - client: - class_name: "AppApiClient" - file_name: "app_api_client" - -# 使用方式: -# 1. 复制此配置到项目根目录的 generator_config.yaml -# 2. 运行生成命令: -# dart run swagger_generator_flutter generate --all -# 3. 生成的主 API 文件: -# lib/generated/api/app_api_client.dart -# 4. 在代码中使用: -# import 'package:your_app/generated/api/app_api_client.dart'; -# -# final dio = Dio(); -# final apiClient = AppApiClient(dio); -# -# // 访问 V2 版本的 API -# final result = await apiClient.mobileManagerV2.getData(); - diff --git a/examples/included_tags_example.md b/examples/included_tags_example.md deleted file mode 100644 index 79fd845..0000000 --- a/examples/included_tags_example.md +++ /dev/null @@ -1,196 +0,0 @@ -# included_tags 使用示例 - -## 场景 1: 只生成移动端管理相关的 API - -假设您的项目中有多个模块,但您只想生成移动端管理(MobileManager)相关的代码: - -### CLI 方式 - -```bash -# 只生成 MobileManager 相关的 API 和模型 -dart run swagger_generator_flutter generate --all --included-tags=MobileManager - -# 查看生成的文件 -ls -la generator/api/ -ls -la generator/api_models/ -``` - -### 配置文件方式 - -在 `generator_config.yaml` 中: - -```yaml -output: - base_dir: "./lib/generated" - api_dir: "./lib/generated/api" - models_dir: "./lib/generated/api_models" - split_by_tags: true - - # 只生成 MobileManager 相关代码 - included_tags: - - "MobileManager" -``` - -然后运行: - -```bash -dart run swagger_generator_flutter generate --all -``` - -## 场景 2: 生成多个模块 - -如果您需要生成多个模块的代码: - -```bash -# 生成 MobileManager 和 TaskSummarize 两个模块 -dart run swagger_generator_flutter generate --all --included-tags=MobileManager,TaskSummarize -``` - -或在配置文件中: - -```yaml -output: - included_tags: - - "MobileManager" - - "TaskSummarize" -``` - -## 场景 3: 增量开发 - -在开发过程中,您可能想先实现部分功能: - -### 第一阶段:只实现移动端管理 - -```bash -dart run swagger_generator_flutter generate --all --included-tags=MobileManager -``` - -### 第二阶段:添加任务汇总功能 - -```bash -dart run swagger_generator_flutter generate --all --included-tags=MobileManager,TaskSummarize -``` - -### 第三阶段:生成所有功能 - -```bash -# 不指定 included-tags,生成所有 -dart run swagger_generator_flutter generate --all -``` - -## 场景 4: 团队协作 - -不同团队负责不同模块: - -### 移动端团队 - -```bash -# 只生成移动端相关代码 -dart run swagger_generator_flutter generate --all --included-tags=MobileManager \ - --output-dir=lib/api/mobile -``` - -### 任务管理团队 - -```bash -# 只生成任务相关代码 -dart run swagger_generator_flutter generate --all --included-tags=TaskSummarize \ - --output-dir=lib/api/task -``` - -## 场景 5: 测试和调试 - -在开发新功能时,快速生成特定模块的代码进行测试: - -```bash -# 快速生成测试代码 -dart run swagger_generator_flutter generate --all --included-tags=MobileManager \ - --output-dir=test_output - -# 测试完成后删除 -rm -rf test_output -``` - -## 预期结果 - -### 使用 `--included-tags=MobileManager` - -**生成的 API 文件:** -- `generator/api/mobile_manager_api.dart` - MobileManager 相关的 API 接口 - -**生成的 Model 文件:** -- 只包含 MobileManager API 引用的 models -- 自动包含这些 models 的依赖 models - -**不会生成:** -- 其他 tags 的 API 文件 -- 未被 MobileManager 引用的 models - -### 使用 `--included-tags=MobileManager,TaskSummarize` - -**生成的 API 文件:** -- `generator/api/mobile_manager_api.dart` -- `generator/api/task_summarize_api.dart` - -**生成的 Model 文件:** -- MobileManager 和 TaskSummarize 引用的所有 models -- 以及它们的依赖 models - -## 性能对比 - -假设完整的 Swagger 文档有 100 个 endpoints 和 200 个 models: - -| 场景 | Endpoints | Models | 生成时间 | 代码量 | -|------|-----------|--------|----------|--------| -| 全部生成 | 100 | 200 | ~10s | ~500KB | -| 只生成 MobileManager | ~20 | ~40 | ~2s | ~100KB | -| 生成 2 个 tags | ~40 | ~80 | ~4s | ~200KB | - -**优势:** -- ⚡ 生成速度提升 5 倍 -- 📦 代码量减少 80% -- 🎯 更专注于当前模块 -- 🔧 更容易调试和维护 - -## 注意事项 - -1. **Tag 名称必须精确匹配** - ```bash - # ✅ 正确 - --included-tags=MobileManager - - # ❌ 错误(大小写不匹配) - --included-tags=mobilemanager - --included-tags=mobile_manager - ``` - -2. **多个 tags 用逗号分隔,不要有空格** - ```bash - # ✅ 正确 - --included-tags=MobileManager,TaskSummarize - - # ❌ 错误(有空格) - --included-tags=MobileManager, TaskSummarize - ``` - -3. **依赖会自动包含** - - 不需要手动指定依赖的 models - - 系统会自动追踪所有引用关系 - -4. **与 split-by-tags 兼容** - - `included_tags` 和 `split-by-tags` 可以同时使用 - - `split-by-tags` 控制是否分文件 - - `included_tags` 控制生成哪些 tags - -## 查看可用的 Tags - -如果不确定 Swagger 文档中有哪些 tags,可以使用以下命令查看: - -```bash -# 使用 jq 查看所有 tags -cat swagger.json | jq -r '.paths | to_entries[] | .value | to_entries[] | .value.tags[]?' | sort -u - -# 或者查看 tags 定义 -cat swagger.json | jq '.tags' -``` -