Jelajahi Sumber

[modify]增加文件上传超时时间

zk 1 tahun lalu
induk
melakukan
60a25e4a59

+ 3 - 1
assets/string/base/string.xml

@@ -74,7 +74,7 @@
     <string name="account_profession_and_post_update_success">更新成功</string>
     <string name="account_profession_suggest">请输入行业</string>
     <string name="account_post_suggest">请输入岗位</string>
-    <string name="talk_uploading_tips">小听正在上传谈话,请稍等~</string>
+    <string name="talk_uploading_tips">小听正在上传谈话,请勿关闭小听~</string>
     <string name="no_login">未登录</string>
     <string name="done">完成</string>
     <string name="version_latest">目前已是最新版</string>
@@ -84,4 +84,6 @@
     <string name="loading_txt">正在加载</string>
     <string name="load_no_data">没有更多数据了</string>
     <string name="load_failed">加载失败</string>
+    <string name="talk_analysis_success">谈话分析已完成</string>
+    <string name="talk_analysis_success_btn_txt">查看</string>
 </resources>

+ 0 - 5
lib/data/api/atmob_api.dart

@@ -127,11 +127,6 @@ abstract class AtmobApi {
   @POST("/project/secretary/v1/example/info")
   Future<BaseResponse<ExampleInfoResponse>> exampleInfo(
       @Body() AppBaseRequest request);
-
-  @MultiPart()
-  @POST("/project/secretary/v1/talk/generate")
-  Future<BaseResponse<TalkGenerateResponse>> uploadTalkFile(
-      @Part() Map<String, dynamic> body);
 }
 
 final atmobApi = AtmobApi(defaultDio, baseUrl: Constants.baseUrl);

+ 21 - 0
lib/data/api/atmob_file_api.dart

@@ -0,0 +1,21 @@
+import 'package:dio/dio.dart';
+import 'package:electronic_assistant/data/api/response/talk_generate_response.dart';
+import 'package:retrofit/http.dart';
+
+import '../../base/base_response.dart';
+import '../consts/Constants.dart';
+import 'network_module.dart';
+
+part 'atmob_file_api.g.dart';
+
+@RestApi()
+abstract class AtmobFileApi {
+  factory AtmobFileApi(Dio dio, {String baseUrl}) = _AtmobFileApi;
+
+  @MultiPart()
+  @POST("/project/secretary/v1/talk/generate")
+  Future<BaseResponse<TalkGenerateResponse>> uploadTalkFile(
+      @Part() Map<String, dynamic> body);
+}
+
+final atmobFileApi = AtmobFileApi(fileDio, baseUrl: Constants.baseUrl);

+ 16 - 0
lib/data/api/network_module.dart

@@ -122,8 +122,24 @@ class _NetworkModule {
     streamDio.interceptors.add(StreamDioLogInterceptor());
     return streamDio;
   }
+
+  static Dio _createFileDio() {
+    Dio dio = Dio(BaseOptions(
+      sendTimeout: const Duration(seconds: 60 * 30), //半个小时
+    ));
+    dio.interceptors.add(PrettyDioLogger(
+      requestHeader: true,
+      requestBody: true,
+      responseBody: true,
+      responseHeader: true,
+      enabled: Constants.env != Constants.envProd,
+    ));
+    return dio;
+  }
 }
 
 final defaultDio = _NetworkModule._createDefaultDio();
 
 final streamDio = _NetworkModule._createStreamDio();
+
+final fileDio = _NetworkModule._createFileDio();

+ 2 - 1
lib/data/repositories/talk_repository.dart

@@ -1,6 +1,7 @@
 import 'dart:io';
 
 import 'package:electronic_assistant/data/api/atmob_api.dart';
+import 'package:electronic_assistant/data/api/atmob_file_api.dart';
 import 'package:electronic_assistant/data/api/request/talk_create_request.dart';
 import 'package:electronic_assistant/data/api/request/talk_delete_request.dart';
 import 'package:electronic_assistant/data/api/request/talk_file_request.dart';
@@ -132,7 +133,7 @@ class TalkRepository {
 
   Future<String> uploadTalkFile(String talkId, double duration, File file) {
     _uploadingTalkIds.add(talkId);
-    return atmobApi
+    return atmobFileApi
         .uploadTalkFile(TalkFileRequest(talkId, duration, file: file).toJson())
         .then(HttpHandler.handle(true))
         .then((response) {