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] =?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); + } }