Przeglądaj źródła

[feat]亲密度分析,分析功能,增加是否VIP判断

hezihao 7 miesięcy temu
rodzic
commit
d1111a87f6

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

@@ -34,7 +34,7 @@
     <string name="vip_level2_btn">立即查看</string>
 
     <string name="network_error">网络异常</string>
-
+    <string name="need_vip_tip">请开通会员解锁权益~</string>
 
     <string name="account_no_login">账号未登录</string>
     <string name="login_account">登录账号</string>

+ 1 - 0
lib/di/get_it.config.dart

@@ -320,6 +320,7 @@ extension GetItInjectableX on _i174.GetIt {
         gh<_i283.IntimacyAnalyzeRepository>(),
         gh<_i738.IntimacyAnalyzeConfigHelper>(),
         gh<_i428.UploadFileManager>(),
+        gh<_i83.AccountRepository>(),
       ),
     );
     gh.factory<_i987.IntimacyAnalyseReportController>(

+ 21 - 19
lib/module/intimacy_analyse/analyse_report/intimacy_analyse_report_view.dart

@@ -90,26 +90,28 @@ class IntimacyAnalyseReportView
 
   /// 亲密档案切换布局
   Widget _buildIntimacyArchivesSwitchLayout() {
-    return GestureDetector(
-      onTap: () {
-        controller.clickIntimacyArchivesSwitch();
-      },
-      child: Row(
-        mainAxisAlignment: MainAxisAlignment.center,
-        children: [
-          Text(
-            "自己&小瑞",
-            style: TextStyle(
-              color: ColorName.black80,
-              fontSize: 13.sp,
-              fontWeight: FontWeight.w500,
+    return Obx(() {
+      return GestureDetector(
+        onTap: () {
+          controller.clickIntimacyArchivesSwitch();
+        },
+        child: Row(
+          mainAxisAlignment: MainAxisAlignment.center,
+          children: [
+            Text(
+              "自己&${controller.currentKeyboardInfo.value?.name ?? ""}",
+              style: TextStyle(
+                color: ColorName.black80,
+                fontSize: 13.sp,
+                fontWeight: FontWeight.w500,
+              ),
             ),
-          ),
-          SizedBox(width: 2.5.w),
-          Assets.images.iconIntimacyAnalyseArrow.image(width: 15, height: 15),
-        ],
-      ),
-    );
+            SizedBox(width: 2.5.w),
+            Assets.images.iconIntimacyAnalyseArrow.image(width: 15, height: 15),
+          ],
+        ),
+      );
+    });
   }
 
   /// 底部布局

+ 14 - 1
lib/module/intimacy_analyse/analyse_report/intimacy_analyse_report_view_controller.dart

@@ -4,14 +4,19 @@ import 'package:injectable/injectable.dart';
 import 'package:keyboard/base/base_controller.dart';
 import 'package:wechat_assets_picker/wechat_assets_picker.dart';
 import '../../../data/api/response/intimacy_analyze_config_response.dart';
+import '../../../data/bean/keyboard_info.dart';
 import '../../../data/repository/intimacy_analyze_repository.dart';
+import '../../../utils/atmob_log.dart';
 import '../../../utils/image_picker_util.dart';
 import '../../../utils/intimacy_analyze_config_helper.dart';
+import '../../profile/profile_page.dart';
 import '../intimacy_analyse_upload/intimacy_analyse_upload_page.dart';
 
 /// 亲密度分析-分析报告Tab-Controller
 @injectable
 class IntimacyAnalyseReportController extends BaseController {
+  String tag = "IntimacyAnalyseReportController";
+
   /// 亲密度分析Repository
   IntimacyAnalyzeRepository intimacyAnalyzeRepository;
 
@@ -22,6 +27,9 @@ class IntimacyAnalyseReportController extends BaseController {
   Rxn<IntimacyAnalyzeConfigResponse> get intimacyAnalyzeConfig =>
       intimacyAnalyzeRepository.intimacyAnalyzeConfig;
 
+  /// 当前键盘信息
+  Rxn<KeyboardInfo> currentKeyboardInfo = Rxn();
+
   /// 报告预览数据
   RxString reportPreviewData = "".obs;
 
@@ -51,7 +59,12 @@ class IntimacyAnalyseReportController extends BaseController {
   }
 
   /// 切换亲密档案
-  void clickIntimacyArchivesSwitch() {}
+  void clickIntimacyArchivesSwitch() async {
+    // 跳转到档案选择页,获取当前的键盘Id
+    KeyboardInfo? keyboardInfo = await ProfilePage.start() as KeyboardInfo?;
+    AtmobLog.d(tag, "switchTaTest result:=> ${keyboardInfo?.toJson() ?? ""}");
+    currentKeyboardInfo.value = keyboardInfo;
+  }
 
   /// 解锁
   void clickUnlockBtn(BuildContext context) async {

+ 15 - 1
lib/module/intimacy_analyse/intimacy_analyse_upload/intimacy_analyse_upload_controller.dart

@@ -6,6 +6,9 @@ import 'package:injectable/injectable.dart';
 import 'package:keyboard/base/base_controller.dart';
 import 'package:keyboard/data/api/request/intimacy_analyze_request.dart';
 import 'package:keyboard/data/bean/upload_info.dart';
+import 'package:keyboard/data/repository/account_repository.dart';
+import 'package:keyboard/resource/string.gen.dart';
+import 'package:keyboard/utils/toast_util.dart';
 import 'package:keyboard/utils/upload/upload_scene_type.dart';
 import 'package:wechat_assets_picker/wechat_assets_picker.dart';
 import '../../../data/api/response/intimacy_analyze_config_response.dart';
@@ -21,6 +24,7 @@ import '../../../utils/image_picker_util.dart';
 import '../../../utils/intimacy_analyze_config_helper.dart';
 import '../../../utils/upload/upload_file_manager.dart';
 import '../../profile/profile_page.dart';
+import '../../store/store_page.dart';
 
 /// 亲密度分析上传页Controller
 @injectable
@@ -30,6 +34,9 @@ class IntimacyAnalyseUploadController extends BaseController {
   /// 上传场景
   final UploadSceneType uploadSceneType = UploadSceneType.intimacyAnalyse;
 
+  /// 用户信息
+  final AccountRepository accountRepository;
+
   /// 亲密度分析Repository
   IntimacyAnalyzeRepository intimacyAnalyzeRepository;
 
@@ -99,6 +106,7 @@ class IntimacyAnalyseUploadController extends BaseController {
     this.intimacyAnalyzeRepository,
     this.intimacyAnalyzeConfigHelper,
     this.uploadFileManager,
+    this.accountRepository,
   );
 
   @override
@@ -275,7 +283,13 @@ class IntimacyAnalyseUploadController extends BaseController {
 
   /// 点击了下一步按钮
   void clickNextBtn() async {
-    // TODO hezihao,需要判断是否解锁,未解锁弹出购买弹窗,目前先直接让通过
+    // 非Vip,跳转到商店页
+    bool isVip = accountRepository.memberStatusInfo.value?.isMember ?? false;
+    if (!isVip) {
+      ToastUtil.show(StringName.needVipTip);
+      StorePage.start();
+      return;
+    }
 
     // 上传的图片后端地址
     List<String> imageList =

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

@@ -26,6 +26,7 @@ class StringName {
   static final String vipLevel1Btn = 'vip_level1_btn'.tr; // 立即续费
   static final String vipLevel2Btn = 'vip_level2_btn'.tr; // 立即查看
   static final String networkError = 'network_error'.tr; // 网络异常
+  static final String needVipTip = 'need_vip_tip'.tr; // 请开通会员解锁权益~
   static final String accountNoLogin = 'account_no_login'.tr; // 账号未登录
   static final String loginAccount = 'login_account'.tr; // 登录账号
   static final String loginAgreePrivacy = 'login_agree_privacy'.tr; // 请先阅读并同意《隐私权政策》和《服务条款》
@@ -264,6 +265,7 @@ class StringMultiSource {
       'vip_level1_btn': '立即续费',
       'vip_level2_btn': '立即查看',
       'network_error': '网络异常',
+      'need_vip_tip': '请开通会员解锁权益~',
       'account_no_login': '账号未登录',
       'login_account': '登录账号',
       'login_agree_privacy': '请先阅读并同意《隐私权政策》和《服务条款》',