3 Commits 36477ca375 ... d0e402e68f

Autor SHA1 Mensagem Data
  “HeShaoZe” d0e402e68f Merge branch 'v1.1.0' into v1.1.0-iOS 4 meses atrás
  zk 9560dc1b45 [new]跟换请求地址 4 meses atrás
  zk e6378e813f [fix]修复ai分析异常显示 4 meses atrás

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

@@ -260,4 +260,7 @@ abstract class AtmobApi {
   @POST("/s/v1/user/electric/query")
   Future<BaseResponse<ElectricQueryResponse>> userElectricQuery(
       @Body() FriendsOperationRequest request);
+
+  @POST("/s/v1/chat/daily/exception/analyse")
+  Future<dynamic> dailyExceptionAnalyse(@Body() QueryTrackRequest request);
 }

+ 28 - 0
lib/data/api/atmob_api.g.dart

@@ -1970,6 +1970,34 @@ class _AtmobApi implements AtmobApi {
     return _value;
   }
 
+  @override
+  Future<dynamic> dailyExceptionAnalyse(QueryTrackRequest request) async {
+    final _extra = <String, dynamic>{};
+    final queryParameters = <String, dynamic>{};
+    final _headers = <String, dynamic>{};
+    final _data = <String, dynamic>{};
+    _data.addAll(request.toJson());
+    final _options = _setStreamType<dynamic>(Options(
+      method: 'POST',
+      headers: _headers,
+      extra: _extra,
+    )
+        .compose(
+          _dio.options,
+          '/s/v1/chat/daily/exception/analyse',
+          queryParameters: queryParameters,
+          data: _data,
+        )
+        .copyWith(
+            baseUrl: _combineBaseUrls(
+          _dio.options.baseUrl,
+          baseUrl,
+        )));
+    final _result = await _dio.fetch(_options);
+    final _value = _result.data;
+    return _value;
+  }
+
   RequestOptions newRequestOptions(Object? options) {
     if (options is RequestOptions) {
       return options as RequestOptions;

+ 2 - 8
lib/data/api/atmob_stream_api.c.dart

@@ -25,10 +25,7 @@ class _AtmobStreamApi implements AtmobStreamApi {
   Future<ResponseBody> dailySummary(QueryTrackRequest request) async {
     const _extra = <String, dynamic>{};
     final queryParameters = <String, dynamic>{};
-    final _headers = <String, dynamic>{
-      r'Content-Type': 'application/json',
-      r'Accept': 'text/event-stream'
-    };
+    final _headers = <String, dynamic>{};
     final _data = <String, dynamic>{};
     _data.addAll(request.toJson());
     final _result =
@@ -56,10 +53,7 @@ class _AtmobStreamApi implements AtmobStreamApi {
   Future<ResponseBody> dailyExceptionAnalyse(QueryTrackRequest request) async {
     const _extra = <String, dynamic>{};
     final queryParameters = <String, dynamic>{};
-    final _headers = <String, dynamic>{
-      r'Content-Type': 'application/json',
-      r'Accept': 'text/event-stream'
-    };
+    final _headers = <String, dynamic>{};
     final _data = <String, dynamic>{};
     _data.addAll(request.toJson());
     final _result =

+ 7 - 6
lib/data/consts/constants.dart

@@ -1,7 +1,7 @@
 class Constants {
   Constants._();
 
-  static const String env = envDev;
+  static const String env = envTest;
 
   static const String envDev = 'dev';
 
@@ -11,17 +11,18 @@ class Constants {
 
   static const String _devBaseUrl = "https://ws00.by.takin.cc";//"http://192.168.10.230:8880";
 
-  static const String _testBaseUrl = "http://loc-api.v8dashen.com";
+  static const String _testBaseUrl = "https://central-test.atmob.com";
 
-  static const String _prodBaseUrl = "http://loc-api.v8dashen.com";
+  static const String _prodBaseUrl = "https://project-api.atmob.com";
 
   static const String _locationProdClientUrl =
-      "ws://loc-api.v8dashen.com/websocket/";
+      "wss://project-api.atmob.com/websocket/";
 
   static const String _locationDevClientUrl =
-      "wss://ws00.by.takin.cc/websocket/";//"ws://192.168.10.230:8880/websocket/";
+      "wss://ws00.by.takin.cc/websocket/";
 
-  static const String _locationTestClientUrl = "";
+  static const String _locationTestClientUrl =
+      "wss://central-test.atmob.com/websocket/";
 
   static String baseUrl = getBaseUrl();
 

+ 17 - 2
lib/module/analyse/location_analyse_controller.dart

@@ -66,6 +66,7 @@ class LocationAnalyseController extends BaseController
 
   late AnimationController keywordLottieController =
       AnimationController(vsync: this);
+  bool _keywordLottieReady = false;
 
   Timer? _loopTimer;
 
@@ -226,12 +227,20 @@ class LocationAnalyseController extends BaseController
         _isRequestedAnalyse.value = false;
         _isRequestingStream = false;
         debugPrintStack();
+        _setAnalyseSuccess();
       });
     }).catchError((error) {
       _isRequestedAnalyse.value = false;
       _isRequestingStream = false;
       if (error is ServerErrorException) {
-        _summaryError.value = error.message ?? "服务出错,请稍后再试";
+        final msg = error.message;
+        if (msg == null) {
+          _summaryError.value = error.message ?? "服务出错,请稍后再试";
+        } else {
+          graduallyController.append(msg);
+          graduallyController.appendDone();
+        }
+        _setAnalyseSuccess();
       } else {
         _summaryError.value = "网络错误,请检查网络连接";
         debugPrint("error: $error");
@@ -241,18 +250,24 @@ class LocationAnalyseController extends BaseController
   }
 
   void locationKeywordLottieLoad(LottieComposition composition) {
+    _keywordLottieReady = true;
     keywordLottieController.duration = composition.duration;
     _startKeywordLottieAnimation();
   }
 
   void _startKeywordLottieAnimation() async {
+    if (!_keywordLottieReady) {
+      return;
+    }
     await keywordLottieController.animateTo(0.84);
     keywordLottieController.repeat(min: 0, max: 0.84, reverse: true);
   }
 
   void _setAnalyseSuccess() async {
     _loopTimer?.cancel();
-    await keywordLottieController.animateTo(1);
+    if (_keywordLottieReady) {
+      await keywordLottieController.animateTo(1);
+    }
     _isRequestedAnalyse.value = true;
   }
 

+ 6 - 2
lib/module/main/main_controller.dart

@@ -21,7 +21,6 @@ import 'package:location/module/news/news_page.dart';
 import 'package:location/module/urgent_contact/urgent_contact_page.dart';
 import 'package:location/resource/string.gen.dart';
 import 'package:location/sdk/map/map_helper.dart';
-import 'package:location/utils/atmob_log.dart';
 import 'package:location/utils/mmkv_util.dart';
 import 'package:location/utils/toast_util.dart';
 import '../../data/bean/member_status_info.dart';
@@ -36,6 +35,7 @@ import '../../dialog/location_permission_dialog.dart';
 import '../../helper/internet_connection_helper.dart';
 import '../../sdk/wechat/wechat_share_util.dart';
 import '../../socket/atmob_location_client.dart';
+import '../../utils/de_bounce.dart';
 import '../../utils/location_convert_marker_util.dart';
 import '../../utils/permission_util.dart';
 import '../add_friend/add_friend_page.dart';
@@ -92,6 +92,8 @@ class MainController extends BaseController {
 
   Timer? electricTimer;
 
+  final Debounce _queryTodayTrackDebounce = Debounce(debounceTime: 500);
+
   final Map<String, int> electricMap = {};
 
   RxMap<String, TodayTrackReportBean> get todayTrackReportMap =>
@@ -524,7 +526,9 @@ class MainController extends BaseController {
 
   void onFriendVisibleFraction(double visibleFraction) {
     if (visibleFraction > 0.2) {
-      _requestSelectedFriendTrack();
+      _queryTodayTrackDebounce.onClick(() {
+        _requestSelectedFriendTrack();
+      });
     }
   }