Browse Source

[fix]一键求助增加30s冷却时间

zk 6 tháng trước cách đây
mục cha
commit
db7d0f3f5d

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

@@ -294,4 +294,5 @@
     <string name="trace_detail">轨迹详情</string>
     <string name="trace_detail_search_hint">查找地址</string>
     <string name="trace_detail_title">Ta的线路轨迹</string>
+    <string name="urgent_contact_help_send_too_fast">请求发送频繁,请稍后重试</string>
 </resources>

+ 7 - 0
lib/module/main/main_controller.dart

@@ -68,6 +68,7 @@ class MainController extends BaseController {
   bool get hasUnreadMessage => messageRepository.hasUnreadMessage.value;
 
   DateTime? _lastPressedAt;
+  DateTime? _lastRequestFavor;
 
   String? lastCheckFriendId;
   bool isExecuteAutoSelect = false;
@@ -317,9 +318,15 @@ class MainController extends BaseController {
     }
     final defaultContact = urgentContactRepository.getDefaultContact();
     if (defaultContact != null) {
+      if (_lastRequestFavor != null &&
+          DateTime.now().difference(_lastRequestFavor!).inSeconds < 30) {
+        ToastUtil.show(StringName.urgentContactHelpSendTooFast);
+        return;
+      }
       sendUrgentContactDialog(defaultContact.phone, confirmOnTap: () {
         urgentContactRepository.contactMayDayFavor().then((value) {
           ToastUtil.show(StringName.urgentContactHelpSendSuccess);
+          _lastRequestFavor = DateTime.now();
         }).catchError((error) {
           ErrorHandler.toastError(error);
         });

+ 3 - 0
lib/resource/string.gen.dart

@@ -243,6 +243,8 @@ class StringName {
   static final String traceDetail = 'trace_detail'.tr; // 轨迹详情
   static final String traceDetailSearchHint = 'trace_detail_search_hint'.tr; // 查找地址
   static final String traceDetailTitle = 'trace_detail_title'.tr; // Ta的线路轨迹
+  static final String urgentContactHelpSendTooFast =
+      'urgent_contact_help_send_too_fast'.tr; // 请求发送频繁,请稍后重试
 }
 class StringMultiSource {
   StringMultiSource._();
@@ -489,6 +491,7 @@ class StringMultiSource {
       'trace_detail': '轨迹详情',
       'trace_detail_search_hint': '查找地址',
       'trace_detail_title': 'Ta的线路轨迹',
+      'urgent_contact_help_send_too_fast': '请求发送频繁,请稍后重试',
     },
   };
 }