Ver código fonte

[feat]亲密度分析,增加埋点

hezihao 6 meses atrás
pai
commit
a8311d4cd1

+ 11 - 0
lib/module/intimacy_analyse/intimacy_analyse_upload/intimacy_analyse_upload_controller.dart

@@ -23,9 +23,11 @@ import '../../../data/bean/keyboard_info.dart';
 import '../../../data/bean/member_info.dart';
 import '../../../data/bean/option_select_config.dart';
 import '../../../data/bean/option_select_item.dart';
+import '../../../data/consts/event_report.dart';
 import '../../../data/repository/intimacy_analyze_repository.dart';
 import '../../../data/repository/keyboard_repository.dart';
 import '../../../dialog/loading_dialog.dart';
+import '../../../handler/event_handler.dart';
 import '../../../router/app_page_arguments.dart';
 import '../../../utils/atmob_log.dart';
 import '../../../utils/http_handler.dart';
@@ -120,6 +122,7 @@ class IntimacyAnalyseUploadController extends BaseController {
   @override
   void onReady() {
     super.onReady();
+    EventHandler.report(EventId.event_09003);
     updateIntimacyAnalyzeConfig(intimacyAnalyzeConfig.value);
   }
 
@@ -336,6 +339,14 @@ class IntimacyAnalyseUploadController extends BaseController {
   /// 点击了下一步按钮
   /// [isNeedForceVip] 是否强制需要VIP
   void clickNextBtn(bool isNeedForceVip) async {
+    // 立即解锁
+    if (isNeedForceVip) {
+      EventHandler.report(EventId.event_09005);
+    } else {
+      // 下一步
+      EventHandler.report(EventId.event_09004);
+    }
+
     // 是否VIP
     bool isVip = accountRepository.memberStatusInfo.value?.isMember ?? false;
 

+ 6 - 0
lib/module/intimacy_analyse/screenshot_reply/conversation_analysis/conversation_analysis_controller.dart

@@ -18,8 +18,10 @@ import '../../../../data/bean/member_info.dart';
 import '../../../../data/bean/option_select_config.dart';
 import '../../../../data/bean/option_select_item.dart';
 import '../../../../data/bean/upload_info.dart';
+import '../../../../data/consts/event_report.dart';
 import '../../../../data/repository/account_repository.dart';
 import '../../../../data/repository/intimacy_analyze_repository.dart';
+import '../../../../handler/event_handler.dart';
 import '../../../../utils/atmob_log.dart';
 import '../../../../utils/error_handler.dart';
 import '../../../../utils/http_handler.dart';
@@ -176,6 +178,8 @@ class ConversationAnalysisController extends BaseController {
 
   /// 点击查看分析按钮
   void clickLookAnalyseBtn(BuildContext context) async {
+    EventHandler.report(EventId.event_10003);
+
     // 非Vip,跳转到商店页
     bool isVip = accountRepository.memberStatusInfo.value?.isMember ?? false;
     if (!isVip) {
@@ -249,6 +253,8 @@ class ConversationAnalysisController extends BaseController {
 
   /// 点击上传按钮
   void clickUploadBtn(BuildContext context) async {
+    EventHandler.report(EventId.event_10002);
+
     // 计算还可以上传多少张图片
     int count =
         intimacyAnalyzeConfigHelper.getMaxAssetsCount() - uploadInfoList.length;

+ 31 - 0
lib/module/intimacy_analyse/screenshot_reply/intimacy_analyse_screenshot_reply_controller.dart

@@ -4,6 +4,8 @@ import 'package:get/get_state_manager/src/rx_flutter/rx_ticket_provider_mixin.da
 import 'package:injectable/injectable.dart';
 import 'package:keyboard/base/base_controller.dart';
 
+import '../../../data/consts/event_report.dart';
+import '../../../handler/event_handler.dart';
 import '../../../resource/string.gen.dart';
 
 /// 亲密度分析-截图回复Tab页-controller
@@ -26,6 +28,17 @@ class IntimacyAnalyseScreenshotReplyController extends BaseController
   /// PageView控制器
   final PageController pageController = PageController();
 
+  /// 当前索引
+  final RxInt _currentIndex = 0.obs;
+
+  @override
+  void onInit() {
+    super.onInit();
+    _currentIndex.listen((newIndex) {
+      _reportEvent(newIndex);
+    });
+  }
+
   @override
   void onClose() {
     tabController.dispose();
@@ -35,15 +48,33 @@ class IntimacyAnalyseScreenshotReplyController extends BaseController
 
   /// 处理Tab切换,联动PageView
   void handleTabChange(int index) {
+    if (_currentIndex.value == index) {
+      return;
+    }
     pageController.animateToPage(
       index,
       duration: const Duration(milliseconds: 300),
       curve: Curves.fastOutSlowIn,
     );
+    _currentIndex.value = index;
   }
 
   /// 处理PageView切换,联动Tab
   void handlePageChange(int index) {
+    if (_currentIndex.value == index) {
+      return;
+    }
     tabController.animateTo(index, duration: const Duration(milliseconds: 300));
+    _currentIndex.value = index;
+  }
+
+  /// 埋点
+  void _reportEvent(int index) {
+    // 识图回复
+    if (index == 0) {
+      EventHandler.report(EventId.event_10001);
+    } else if (index == 1) {
+      EventHandler.report(EventId.event_10004);
+    }
   }
 }

+ 9 - 1
lib/module/intimacy_analyse/screenshot_reply/scan_image_reply/scan_image_reply_controller.dart

@@ -19,9 +19,11 @@ import '../../../../data/api/response/intimacy_reply_analyze_response.dart';
 import '../../../../data/bean/option_select_config.dart';
 import '../../../../data/bean/option_select_item.dart';
 import '../../../../data/bean/reply_mode.dart';
+import '../../../../data/consts/event_report.dart';
 import '../../../../data/repository/account_repository.dart';
 import '../../../../data/repository/intimacy_analyze_repository.dart';
 import '../../../../dialog/login/login_dialog.dart';
+import '../../../../handler/event_handler.dart';
 import '../../../../utils/clipboard_util.dart';
 import '../../../../utils/error_handler.dart';
 import '../../../../utils/http_handler.dart';
@@ -193,7 +195,11 @@ class ScanImageReplyController extends BaseController {
   }
 
   /// 点击上传截图按钮
-  void clickUploadScreenshotBtn(BuildContext context) async {
+  void clickUploadScreenshotBtn(BuildContext context, bool isRetry) async {
+    if (!isRetry) {
+      EventHandler.report(EventId.event_10005);
+    }
+
     // 分析中,禁止上传
     if (isResultGenerating.value) {
       ToastUtil.show(StringName.intimacyAnalyseIngPleaseWait);
@@ -235,6 +241,8 @@ class ScanImageReplyController extends BaseController {
 
   /// 点击获取回复按钮
   void clickGetReplyBtn() async {
+    EventHandler.report(EventId.event_10006);
+
     // 非Vip,跳转到会员活动页
     bool isVip = accountRepository.memberStatusInfo.value?.isMember ?? false;
     if (!isVip) {

+ 2 - 2
lib/module/intimacy_analyse/screenshot_reply/scan_image_reply/scan_image_reply_view.dart

@@ -122,7 +122,7 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
           onTap: () {
             BuildContext? context = Get.context;
             if (context != null) {
-              controller.clickUploadScreenshotBtn(context);
+              controller.clickUploadScreenshotBtn(context, true);
             }
           },
           child: Container(
@@ -545,7 +545,7 @@ class ScanImageReplyView extends BaseView<ScanImageReplyController> {
       child: GradientTextBtn(
         StringName.intimacyUploadScreenshot,
         onPressed: () {
-          controller.clickUploadScreenshotBtn(context);
+          controller.clickUploadScreenshotBtn(context, false);
         },
       ),
     );