From 79f189ff60125907f4155b8605ea0b99c1093494 Mon Sep 17 00:00:00 2001 From: ante <448468458@qq.com> Date: Tue, 16 Apr 2024 09:58:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90=E5=AE=9E=E5=90=8D?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=E9=A2=91=E7=8E=87=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/images/lan/lan_zh.json | 1 + .../face_authentication_entity.dart | 25 +++ .../valueAddedServicesRealName_page.dart | 198 ++++++++---------- .../value_added_services_real_name_logic.dart | 46 ++++ .../value_added_services_real_name_state.dart | 3 + star_lock/lib/network/api.dart | 9 +- star_lock/lib/network/api_provider.dart | 7 + star_lock/lib/network/api_repository.dart | 9 + 8 files changed, 183 insertions(+), 115 deletions(-) create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_logic.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_state.dart diff --git a/star_lock/images/lan/lan_zh.json b/star_lock/images/lan/lan_zh.json index 374cf216..189822f3 100644 --- a/star_lock/images/lan/lan_zh.json +++ b/star_lock/images/lan/lan_zh.json @@ -687,6 +687,7 @@ "虹膜":"虹膜", "手掌":"手掌", + "商城":"商城", "我的":"我的" } diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart new file mode 100644 index 00000000..a1c685f0 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart @@ -0,0 +1,25 @@ +class FaceAuthenticationEntity { + FaceAuthenticationEntity({ + this.description, + this.errorCode, + this.errorMsg, + }); + + FaceAuthenticationEntity.fromJson(dynamic json) { + description = json['description']; + errorCode = json['errorCode']; + errorMsg = json['errorMsg']; + } + + String? description; + int? errorCode; + String? errorMsg; + + Map toJson() { + final map = {}; + map['description'] = description; + map['errorCode'] = errorCode; + map['errorMsg'] = errorMsg; + return map; + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart index 0b3a8dec..bafb4363 100644 --- a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_logic.dart'; import '../../../app_settings/app_colors.dart'; import '../../../tools/commonItem.dart'; import '../../../tools/titleAppBar.dart'; @@ -18,29 +19,33 @@ class _ValueAddedServicesRealNamePageState extends State { @override Widget build(BuildContext context) { - return Scaffold( - backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.realNameAuthentication!.tr, - haveBack: true, - backgroundColor: AppColors.mainColor), - body: Column( - children: [ - Container( - width: 1.sw, - // color: Colors.grey.shade300, - padding: EdgeInsets.only( - left: 25.h, right: 25.h, top: 25.h, bottom: 10.h), - child: Text( - TranslationLoader.lanKeys!.buyRealNameTip!.tr, - style: TextStyle( - color: AppColors.darkGrayTextColor, fontSize: 20.sp), - )), - middleWidget(), - bottomWidget() - ], - ), - ); + return GetBuilder( + init: ValueAddedServicesRealNameLogic(), + builder: (ValueAddedServicesRealNameLogic logic) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.realNameAuthentication!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: Column( + children: [ + Container( + width: 1.sw, + // color: Colors.grey.shade300, + padding: EdgeInsets.only( + left: 25.h, right: 25.h, top: 25.h, bottom: 10.h), + child: Text( + TranslationLoader.lanKeys!.buyRealNameTip!.tr, + style: TextStyle( + color: AppColors.darkGrayTextColor, fontSize: 20.sp), + )), + middleWidget(), + bottomWidget() + ], + ), + ); + }); } Widget middleWidget() { @@ -112,98 +117,65 @@ class _ValueAddedServicesRealNamePageState } Widget bottomWidget() { - return Container( - width: 1.sw, - color: Colors.white, - margin: EdgeInsets.all(20.h), - child: Column( - children: [ - Column( + return GetBuilder( + builder: (ValueAddedServicesRealNameLogic logic) { + return Container( + width: 1.sw, + color: Colors.white, + margin: EdgeInsets.all(20.h), + child: Column( + children: [ + Column( + children: [ + Container( + padding: + EdgeInsets.only(top: 20.h, bottom: 20.h, left: 30.w), + child: Text( + TranslationLoader + .lanKeys!.buyRealNameSelectYouWantBuyTip!.tr, + style: TextStyle( + fontSize: 24.sp, fontWeight: FontWeight.w600), + )), + ], + ), + checkCommonItem( + logic, TranslationLoader.lanKeys!.forTheFirstTime!.tr, 0), + checkCommonItem(logic, TranslationLoader.lanKeys!.onceDay!.tr, 1), + checkCommonItem(logic, TranslationLoader.lanKeys!.weekOnce!.tr, 2), + checkCommonItem(logic, TranslationLoader.lanKeys!.monthOnce!.tr, 3, + isHaveLine: false, isHaveRightWidget: true), + ], + ), + ); + }); + } + + //选择组件 + Widget checkCommonItem( + ValueAddedServicesRealNameLogic logic, String text, int index, + {bool isHaveLine = true, bool isHaveRightWidget = true}) { + bool check = logic.state.index == index; + return CommonItem( + leftTitel: text, + rightTitle: "", + allHeight: 60.h, + isHaveLine: isHaveLine, + isHaveRightWidget: isHaveRightWidget, + rightWidget: GestureDetector( + onTap: () { + logic.check(index); + }, + child: Row( children: [ - Container( - padding: EdgeInsets.only(top: 20.h, bottom: 20.h, left: 30.w), - child: Text( - TranslationLoader - .lanKeys!.buyRealNameSelectYouWantBuyTip!.tr, - style: - TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600), - )), + Image.asset( + check + ? 'images/icon_round_select.png' + : 'images/icon_round_unSelect.png', + width: 30.w, + height: 30.w, + ), ], ), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.forTheFirstTime!.tr, - rightTitle: "", - allHeight: 60.h, - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: GestureDetector( - onTap: () {}, - child: Row( - children: [ - Image.asset( - 'images/icon_round_unSelect.png', - width: 30.w, - height: 30.w, - ), - ], - ), - )), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.onceDay!.tr, - rightTitle: "", - allHeight: 60.h, - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: GestureDetector( - onTap: () {}, - child: Row( - children: [ - Image.asset( - 'images/icon_round_unSelect.png', - width: 30.w, - height: 30.w, - ), - ], - ), - )), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.weekOnce!.tr, - rightTitle: "", - allHeight: 60.h, - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: GestureDetector( - onTap: () {}, - child: Row( - children: [ - Image.asset( - 'images/icon_round_unSelect.png', - width: 30.w, - height: 30.w, - ), - ], - ), - )), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.monthOnce!.tr, - rightTitle: "", - allHeight: 60.h, - isHaveLine: false, - isHaveRightWidget: true, - rightWidget: GestureDetector( - onTap: () {}, - child: Row( - children: [ - Image.asset( - 'images/icon_round_unSelect.png', - width: 30.w, - height: 30.w, - ), - ], - ), - )), - ], - ), - ); + )); } } diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_logic.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_logic.dart new file mode 100644 index 00000000..f6b6d2d3 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_logic.dart @@ -0,0 +1,46 @@ +import 'dart:async'; + +import 'package:get/utils.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_state.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; +import '../../../network/api_repository.dart'; +import '../../../tools/eventBusEventManage.dart'; + +class ValueAddedServicesRealNameLogic extends BaseGetXController { + final ValueAddedServicesRealNameState state = + ValueAddedServicesRealNameState(); + + //请求消息列表 + Future setFaceAuthentication(int faceAuthFrequence) async { + FaceAuthenticationEntity entity = + await ApiRepository.to.setFaceAuthentication( + faceAuthFrequence: faceAuthFrequence, + ); + return entity.errorCode!.codeIsSuccessful; + } + + Future check(int index) async { + bool isSuccessful = await setFaceAuthentication(state.index + 1); + if (isSuccessful) { + showToast('修改成功'.tr); + state.index = index; + } + update(); + } + + @override + void onReady() { + super.onReady(); + } + + @override + void onInit() { + super.onInit(); + } + + @override + void onClose() { + super.onClose(); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_state.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_state.dart new file mode 100644 index 00000000..b9dff32e --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_state.dart @@ -0,0 +1,3 @@ +class ValueAddedServicesRealNameState { + int index = 0; +} diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index 8f9cd047..b2759463 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -45,7 +45,8 @@ abstract class Api { final String passwordKeyGetURL = '/keyboardPwd/get'; //获取密码 final String passwordKeyAddURL = '/keyboardPwd/add'; //自定义密码 - final String passwordKeyCheckKeyboardpwdNameURL = '/keyboardPwd/checkKeyboardpwdName'; //自定义密码校验密码跟名字是否重复 + final String passwordKeyCheckKeyboardpwdNameURL = + '/keyboardPwd/checkKeyboardpwdName'; //自定义密码校验密码跟名字是否重复 final String updatePasswordKeyURL = '/keyboardPwd/update'; //修改密码详情 final String clearOperationRecordURL = '/lockRecords/clear'; //清空操作记录 final String addlockGroupURL = '/keyGroup/add'; //创建锁分组 @@ -175,7 +176,8 @@ abstract class Api { '/safeAnswer/getOwnQuestionList'; //获取已设置的安全信息 final String updateSafeAnswerURL = '/safeAnswer/update'; //修改安全信息 final String setSafeAnswerURL = '/safeAnswer/set'; //设置安全信息 - final String getUpTokenURL = '/file/getUploadParams'; //上传头像 先获取upToken 再调用updateUserInfo + final String getUpTokenURL = + '/file/getUploadParams'; //上传头像 先获取upToken 再调用updateUserInfo final String unbindPhoneTokenURL = '/user/unbindPhoneToken'; //获取解绑手机号Token final String unbindEmailTokenURL = '/user/unbindEmailToken'; //获取解绑邮箱Token final String pushBindAppIdURL = '/user/bindAppId'; //推送绑定APP设备 @@ -193,4 +195,7 @@ abstract class Api { final String getLockNoticeSettingURL = '/lockSetting/getLockNoticeSetting'; //获取锁消息设置 + + final String setFaceAuthenticationURL = + '/v2/service/setFaceAuthentication'; //设置实名认证频次 } diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index b4e0d1e2..a62bf25e 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -1779,6 +1779,13 @@ class ApiProvider extends BaseProvider { jsonEncode({ 'lockId': lockId, })); + + // 设置实名认证频次 + Future setFaceAuthentication(int faceAuthFrequence) => post( + setFaceAuthenticationURL.toUrl, + jsonEncode({ + 'face_auth_frequence': faceAuthFrequence, + })); } extension ExtensionString on String { diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 479de7f5..d0ac4acc 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -21,6 +21,7 @@ import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireElect import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_entity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart'; import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart'; import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart'; import '../common/safetyVerification/entity/SafetyVerificationEntity.dart'; import '../login/login/entity/LoginEntity.dart'; @@ -1813,4 +1814,12 @@ class ApiRepository { final res = await apiProvider.getLockNoticeSetting(lockId); return VersionUndateEntity.fromJson(res.body); } + + + // 获取锁消息设置 + Future setFaceAuthentication( + {required int faceAuthFrequence}) async { + final res = await apiProvider.setFaceAuthentication(faceAuthFrequence); + return FaceAuthenticationEntity.fromJson(res.body); + } } From 348fda3ed473a9de035b217147aed2418b423e38 Mon Sep 17 00:00:00 2001 From: GeJiaXiang <353358601@qq.com> Date: Tue, 16 Apr 2024 11:21:41 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=AB=98=E5=BE=B7xhj?= =?UTF-8?q?=E7=9A=84key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/flavors.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/star_lock/lib/flavors.dart b/star_lock/lib/flavors.dart index ac37d365..7d7930e4 100644 --- a/star_lock/lib/flavors.dart +++ b/star_lock/lib/flavors.dart @@ -132,10 +132,10 @@ class F { return const StarLockAMapKey( androidKey: 'fb0d2a3e4208b36452cf636aa025a24f', iosKey: '86ca725a12a629c280e116a317aaba19'); - // case Flavor.xhj: - // return const StarLockAMapKey( - // androidKey: 'todo', - // iosKey: 'todo'); + case Flavor.xhj: + return const StarLockAMapKey( + androidKey: '9dd8073a2e96870b206269bb562a887a', + iosKey: 'c70047e60ce704d945ea89d6c2763b82'); default: throw Exception('flavor[$name] aMapKey not found'); } From 1e57d0aee24cd1064fe1e3bebbe50734935e885b Mon Sep 17 00:00:00 2001 From: ante <448468458@qq.com> Date: Tue, 16 Apr 2024 11:33:26 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=E7=BC=96=E5=86=99=E5=A2=9E=E5=80=BC?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E8=AE=B0=E5=BD=95=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E8=81=94=E8=B0=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/appRouters.dart | 9 ++- ... value_added_services_real_name_page.dart} | 7 +- .../buy_record_list_entity.dart | 25 ++++++ .../use_record_list_arg.dart | 14 ++++ .../use_record_list_entity.dart | 25 ++++++ .../value_added_services_record_logic.dart | 52 +++++++++++++ .../value_added_services_record_page.dart | 77 +++++++++++++++++++ .../value_added_services_record_state.dart | 3 + star_lock/lib/network/api.dart | 7 ++ star_lock/lib/network/api_provider.dart | 50 ++++++++---- star_lock/lib/network/api_repository.dart | 66 ++++++++++------ 11 files changed, 295 insertions(+), 40 deletions(-) rename star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/{valueAddedServicesRealName_page.dart => value_added_services_real_name_page.dart} (95%) create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_page.dart create mode 100644 star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index 1d86c55a..c707ab20 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -44,6 +44,7 @@ import 'package:star_lock/mine/mineSet/transferGateway/selectGetewayList_page.da import 'package:star_lock/mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_page.dart'; import 'package:star_lock/mine/mineSet/transferSmartLock/selectBranch/selectBranch_page.dart'; import 'package:star_lock/mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_page.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_page.dart'; import 'common/safetyVerification/safetyVerification_page.dart'; import 'login/forgetPassword/starLock_forgetPassword_page.dart'; @@ -184,7 +185,7 @@ import 'mine/valueAddedServices/valueAddedServicesEmailTemplate/valueAddedServic import 'mine/valueAddedServices/valueAddedServicesHighFunction/valueAddedServicesHighFunction_page.dart'; import 'mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_page.dart'; import 'mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart'; -import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart'; +import 'mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_page.dart'; import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart'; import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart'; import 'mine/mineSet/authorizedAdministrator/authorizedAdministrator/authorizedAdministratorList_page.dart'; @@ -326,6 +327,8 @@ abstract class Routers { '/ValueAddedServicesNoteAndEmailDetailPage'; // 增值服务-短信邮件详情 static const valueAddedServicesRealNamePage = '/ValueAddedServicesRealNamePage'; // 增值服务-实名认证详情 + static const valueAddedServicesRecordPage = + '/valueAddedServicesRecordPage'; // 增值服务-记录 static const valueAddedServicesHighFunctionPage = '/ValueAddedServicesHighFunctionPage'; // 增值服务-高级功能 static const valueAddedServicesBuyPage = @@ -811,6 +814,10 @@ abstract class AppRouters { name: Routers.valueAddedServicesRealNamePage, page: () => const ValueAddedServicesRealNamePage(), ), + GetPage( + name: Routers.valueAddedServicesRecordPage, + page: () => ValueAddedServicesRecordPage(), + ), GetPage( name: Routers.valueAddedServicesBuyPage, page: () => const ValueAddedServicesBuyPage(), diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_page.dart similarity index 95% rename from star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart rename to star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_page.dart index bafb4363..3c37f38c 100644 --- a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_page.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/appRouters.dart'; import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/value_added_services_real_name_logic.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart'; import '../../../app_settings/app_colors.dart'; import '../../../tools/commonItem.dart'; import '../../../tools/titleAppBar.dart'; @@ -83,7 +85,10 @@ class _ValueAddedServicesRealNamePageState mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ GestureDetector( - onTap: () {}, + onTap: () { + Get.toNamed(Routers.valueAddedServicesRecordPage, + arguments: UseRecordListArg.cloudauth); + }, child: Container( width: 200.w, // height: 70.h, diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart new file mode 100644 index 00000000..dc4f6633 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart @@ -0,0 +1,25 @@ +class BuyRecordListEntity { + BuyRecordListEntity({ + this.description, + this.errorCode, + this.errorMsg, + }); + + BuyRecordListEntity.fromJson(dynamic json) { + description = json['description']; + errorCode = json['errorCode']; + errorMsg = json['errorMsg']; + } + + String? description; + int? errorCode; + String? errorMsg; + + Map toJson() { + final map = {}; + map['description'] = description; + map['errorCode'] = errorCode; + map['errorMsg'] = errorMsg; + return map; + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart new file mode 100644 index 00000000..2635ffb6 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart @@ -0,0 +1,14 @@ +class UseRecordListArg { + static Map sms = { + 'type': 'sms', + }; + static Map vip = { + 'type': 'vip', + }; + static Map email = { + 'type': 'email', + }; + static Map cloudauth = { + 'type': 'cloudauth', + }; +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart new file mode 100644 index 00000000..7af59153 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart @@ -0,0 +1,25 @@ +class UseRecordListEntity { + UseRecordListEntity({ + this.description, + this.errorCode, + this.errorMsg, + }); + + UseRecordListEntity.fromJson(dynamic json) { + description = json['description']; + errorCode = json['errorCode']; + errorMsg = json['errorMsg']; + } + + String? description; + int? errorCode; + String? errorMsg; + + Map toJson() { + final map = {}; + map['description'] = description; + map['errorCode'] = errorCode; + map['errorMsg'] = errorMsg; + return map; + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart new file mode 100644 index 00000000..640c8d69 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart @@ -0,0 +1,52 @@ +import 'dart:async'; + +import 'package:get/get.dart'; +import 'package:get/utils.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; +import '../../../network/api_repository.dart'; +import '../../../tools/eventBusEventManage.dart'; + +class ValueAddedServicesRecordLogic extends BaseGetXController { + ValueAddedServicesRecordLogic(); + + final ValueAddedServicesRecordState state = ValueAddedServicesRecordState(); + int buyPageNo = 1; + late String type; + + @override + void onInit() { + super.onInit(); + dynamic data = Get.arguments; + if (data is! Map && data['type'] is! String) { + Get.back(); + return; + } + type = data['type']; + } + + //请求消息列表 + Future loadBuyRecordList(bool load) async { + if (!load) { + buyPageNo = 1; + } + BuyRecordListEntity entity = await ApiRepository.to.getBuyRecordList( + type: type, + recordType: 10, + pageNo: buyPageNo, + ); + if (entity.errorCode!.codeIsSuccessful) {} + } + + @override + void onReady() { + super.onReady(); + } + + @override + void onClose() { + super.onClose(); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_page.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_page.dart new file mode 100644 index 00000000..e6bddf33 --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_page.dart @@ -0,0 +1,77 @@ +import 'package:easy_refresh/easy_refresh.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_logic.dart'; +import '../../../app_settings/app_colors.dart'; +import '../../../tools/titleAppBar.dart'; + +class ValueAddedServicesRecordPage extends StatefulWidget { + ValueAddedServicesRecordPage({ + Key? key, + }) : super(key: key); + + @override + State createState() => + _ValueAddedServicesRealNamePageState(); +} + +class _ValueAddedServicesRealNamePageState + extends State { + @override + Widget build(BuildContext context) { + return GetBuilder( + init: ValueAddedServicesRecordLogic(), + builder: (ValueAddedServicesRecordLogic logic) { + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: '记录'.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: DefaultTabController( + length: 2, + child: Column( + children: [ + TabBar( + tabs: [ + Text('购买记录'.tr), + Text('使用记录'.tr), + ], + ), + Expanded( + child: TabBarView(children: [ + _PurchaseRecords(), + Text('使用记录'), + ]), + ), + ], + ), + ), + ); + }); + } +} + +class _PurchaseRecords extends StatefulWidget { + const _PurchaseRecords({key}); + + @override + State<_PurchaseRecords> createState() => _PurchaseRecordsState(); +} + +//购买记录 +class _PurchaseRecordsState extends State<_PurchaseRecords> { + @override + Widget build(BuildContext context) { + return GetBuilder( + builder: (ValueAddedServicesRecordLogic logic) { + return EasyRefresh( + onRefresh: () async {}, + onLoad: () async {}, + child: ListView.builder(itemBuilder: (BuildContext context, int index) { + return SizedBox(); + }), + ); + }); + } +} diff --git a/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart new file mode 100644 index 00000000..eb2da13a --- /dev/null +++ b/star_lock/lib/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_state.dart @@ -0,0 +1,3 @@ +class ValueAddedServicesRecordState { + int index = 0; +} diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index b2759463..e794a5ce 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -198,4 +198,11 @@ abstract class Api { final String setFaceAuthenticationURL = '/v2/service/setFaceAuthentication'; //设置实名认证频次 + + final String getBuyRecordListURL = + '/v2/service/getBuyRecordList'; //获取购买记录列表 + + final String getUseRecordListURL = + '/v2/service/getUseRecordList'; //获取使用记录列表 + } diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index a62bf25e..cc782559 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -281,6 +281,7 @@ class ApiProvider extends BaseProvider { "startDate": startDate, 'endDate': endDate, })); + // 锁记录上传 Future lockRecordUploadData(String lockId, List records) => post( lockRecordUploadURL.toUrl, @@ -453,10 +454,7 @@ class ApiProvider extends BaseProvider { // 自定义密码校验名字密码是否重复 Future checkKeyboardpwdName( - String lockId, - String keyboardPwdName, - String keyboardPwd - ) => + String lockId, String keyboardPwdName, String keyboardPwd) => post( passwordKeyCheckKeyboardpwdNameURL.toUrl, jsonEncode({ @@ -1556,14 +1554,16 @@ class ApiProvider extends BaseProvider { })); //更新个人信息-昵称 - Future updateUserNameInfo(String nickname) => - post(updateUserInfoURL.toUrl, jsonEncode({ + Future updateUserNameInfo(String nickname) => post( + updateUserInfoURL.toUrl, + jsonEncode({ 'nickname': nickname, })); //更新个人信息-头像 - Future updateUserHeadUrlInfo(String headUrl) => - post(updateUserInfoURL.toUrl, jsonEncode({ + Future updateUserHeadUrlInfo(String headUrl) => post( + updateUserInfoURL.toUrl, + jsonEncode({ 'headUrl': headUrl, })); @@ -1626,10 +1626,10 @@ class ApiProvider extends BaseProvider { // 获取上传文件的upToken 再调用updateUserInfo Future getUpHeadToken( - String userId, - String filename, - int size, - ) => + String userId, + String filename, + int size, + ) => post( getUpTokenURL.toUrl, jsonEncode({ @@ -1641,7 +1641,9 @@ class ApiProvider extends BaseProvider { // 文件上传 Future uploadFile(String url, dynamic boay) => post(url, boay, - isUnUploadFile: false, contentType: 'multipart/form-data', isUserBaseUrl: false); + isUnUploadFile: false, + contentType: 'multipart/form-data', + isUserBaseUrl: false); //获取解绑手机号Token Future unbindPhoneToken(String verificationCode) => post( @@ -1786,6 +1788,28 @@ class ApiProvider extends BaseProvider { jsonEncode({ 'face_auth_frequence': faceAuthFrequence, })); + + // 获取使用记录列表 + Future getBuyRecordList( + String type, int recordType, int pageNo, int pageSize) => + post( + getBuyRecordListURL.toUrl, + jsonEncode({ + 'type': type, + 'record_type': recordType, + 'pageNo': pageNo, + 'pageSize': pageSize, + })); + + // 获取使用记录列表 + Future getUseRecordList(String type, int pageNo, int pageSize) => + post( + getUseRecordListURL.toUrl, + jsonEncode({ + 'type': type, + 'pageNo': pageNo, + 'pageSize': pageSize, + })); } extension ExtensionString on String { diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index d0ac4acc..8e077aef 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -22,6 +22,8 @@ import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireFinge import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList/keyListByUserEntity.dart'; import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart'; import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRealName/face_authentication_entity.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/buy_record_list_entity.dart'; +import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_entity.dart'; import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart'; import '../common/safetyVerification/entity/SafetyVerificationEntity.dart'; import '../login/login/entity/LoginEntity.dart'; @@ -59,6 +61,7 @@ class ApiRepository { final ApiProvider apiProvider; static ApiRepository get to => Get.find(); + ApiRepository(this.apiProvider); // 发送验证码(登陆之前使用) 1注册,2找回密码 @@ -102,12 +105,10 @@ class ApiRepository { //登录 Future login( - { - required String loginType, - required String password, - required String countryCode, - required String username - }) async { + {required String loginType, + required String password, + required String countryCode, + required String username}) async { final res = await apiProvider.login(loginType, password, countryCode, username); return LoginEntity.fromJson(res.body); @@ -275,7 +276,8 @@ class ApiRepository { } // 更新锁用户NO - Future updateLockUserNo({required String keyId, required String lockUserNo}) async { + Future updateLockUserNo( + {required String keyId, required String lockUserNo}) async { final res = await apiProvider.updateLockUserNo(keyId, lockUserNo); return LockNetTokenEntity.fromJson(res.body); } @@ -402,8 +404,7 @@ class ApiRepository { } // 删除锁 - Future deletOwnerLockData( - {required int lockId}) async { + Future deletOwnerLockData({required int lockId}) async { final res = await apiProvider.deletLockInfo(lockId); return LockListInfoEntity.fromJson(res.body); } @@ -457,13 +458,11 @@ class ApiRepository { //自定义密码校验密码名称或密码是否已存在 Future checkKeyboardpwdName( - { - required String lockId, - required String keyboardPwdName, - required String keyboardPwd - }) async { - final res = await apiProvider.checkKeyboardpwdName(lockId, keyboardPwdName, - keyboardPwd); + {required String lockId, + required String keyboardPwdName, + required String keyboardPwd}) async { + final res = await apiProvider.checkKeyboardpwdName( + lockId, keyboardPwdName, keyboardPwd); return PasswordKeyEntity.fromJson(res.body); } @@ -1602,8 +1601,7 @@ class ApiRepository { } //更新个人信息-昵称 - Future updateUserNameInfo( - { + Future updateUserNameInfo({ required String nickname, }) async { final res = await apiProvider.updateUserNameInfo(nickname); @@ -1612,9 +1610,7 @@ class ApiRepository { //更新个人信息-头像 Future updateUserHeadUrlInfo( - { - required String headUrl - }) async { + {required String headUrl}) async { final res = await apiProvider.updateUserHeadUrlInfo(headUrl); return PasswordKeyListEntity.fromJson(res.body); } @@ -1674,8 +1670,7 @@ class ApiRepository { required String filename, required int size, }) async { - final res = - await apiProvider.getUpHeadToken(userId, filename, size); + final res = await apiProvider.getUpHeadToken(userId, filename, size); return MinePersonGetUploadFileInfoEntity.fromJson(res.body); } @@ -1815,11 +1810,32 @@ class ApiRepository { return VersionUndateEntity.fromJson(res.body); } - - // 获取锁消息设置 + // 设置实名认证频次 Future setFaceAuthentication( {required int faceAuthFrequence}) async { final res = await apiProvider.setFaceAuthentication(faceAuthFrequence); return FaceAuthenticationEntity.fromJson(res.body); } + + // 获取使用记录 + Future getBuyRecordList({ + required String type, + required int pageNo, + required int recordType, + int pageSize = 10, + }) async { + final res = + await apiProvider.getBuyRecordList(type, recordType, pageNo, pageSize); + return BuyRecordListEntity.fromJson(res.body); + } + + // 获取购买记录 + Future getUseRecordList({ + required String type, + required int pageNo, + int pageSize = 10, + }) async { + final res = await apiProvider.getUseRecordList(type, pageNo, pageSize); + return UseRecordListEntity.fromJson(res.body); + } }