Browse Source

no message

ios
ZHR007 4 months ago
parent
commit
f208458a2a
9 changed files with 131 additions and 13 deletions
  1. 37
      lib/controller/discover/room_controller.dart
  2. 3
      lib/controller/mine/auth_controller.dart
  3. 1
      lib/controller/mine/league_controller.dart
  4. 50
      lib/controller/setting/spread_controller.dart
  5. 4
      lib/network/api_urls.dart
  6. 4
      lib/network/user_api.dart
  7. 31
      lib/network/user_api.g.dart
  8. 6
      lib/pages/discover/discover_page.dart
  9. 8
      lib/pages/setting/match_spread_page.dart

37
lib/controller/discover/room_controller.dart

@ -9,6 +9,7 @@ import 'package:dating_touchme_app/network/network_service.dart';
import 'package:dating_touchme_app/rtc/rtc_manager.dart';
import 'package:dating_touchme_app/rtc/rtm_manager.dart';
import 'package:dating_touchme_app/service/live_chat_message_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
@ -16,6 +17,7 @@ import 'package:permission_handler/permission_handler.dart';
import '../../model/live/live_chat_message.dart';
import '../../pages/mine/real_name_page.dart';
import '../../pages/setting/match_league_page.dart';
import '../../pages/setting/match_spread_page.dart';
//
enum CurrentRole {
@ -27,7 +29,8 @@ enum CurrentRole {
}
///
class RoomController extends GetxController {
class RoomController extends GetxController with WidgetsBindingObserver {
RoomController({NetworkService? networkService})
: _networkService = networkService ?? Get.find<NetworkService>();
@ -53,6 +56,7 @@ class RoomController extends GetxController {
@override
void onInit() {
super.onInit();
WidgetsBinding.instance.addObserver(this);
matchmakerFlag.value = GlobalData().userData!.matchmakerFlag!;
//
_registerMessageListener();
@ -60,9 +64,32 @@ class RoomController extends GetxController {
loadGiftProducts();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if(state == AppLifecycleState.resumed){
// print('_handleAppResumed');
}
switch (state) {
case AppLifecycleState.resumed:
print('_handleAppResumed');
break;
case AppLifecycleState.paused:
// _handleAppPaused();
print('_handleAppPaused');
break;
case AppLifecycleState.inactive:
// _handleAppInactive();
print('_handleAppInactive');
break;
default:
break;
}
}
@override
void onClose() {
super.onClose();
WidgetsBinding.instance.removeObserver(this);
//
_messageService.unregisterMessageListener();
}
@ -418,13 +445,15 @@ class RoomController extends GetxController {
}
}
void registerMatch(){
void registerMatch() async {
if(GlobalData().userData!.identityCard != null && GlobalData().userData!.identityCard!.isNotEmpty){
Get.to(() => MatchLeaguePage());
await Get.to(() => MatchSpreadPage());
} else {
SmartDialog.showToast('请先进行实名认证');
Get.to(() => RealNamePage(type: 1));
await Get.to(() => RealNamePage(type: 1));
}
print(455);
matchmakerFlag.value = GlobalData().userData!.matchmakerFlag!;
}
}

3
lib/controller/mine/auth_controller.dart

@ -4,6 +4,7 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import '../../generated/assets.dart';
import '../../network/user_api.dart';
import '../../pages/setting/match_league_page.dart';
import '../../pages/setting/match_spread_page.dart';
import '../global.dart';
class AuthController extends GetxController {
@ -114,7 +115,7 @@ class AuthController extends GetxController {
SmartDialog.showToast('认证成功');
if(type == 1){
// ;
Get.off(() => MatchLeaguePage());
Get.off(() => MatchSpreadPage());
} else {
Get.back(result: 3);
}

1
lib/controller/mine/league_controller.dart

@ -81,7 +81,6 @@ class LeagueController extends GetxController {
}
if (phoneNumber.value.isEmpty) {
SmartDialog.showToast('请输入手机号');
Get.off(() => MatchSpreadPage());
return;
}
if (verificationCode.value.isEmpty) {

50
lib/controller/setting/spread_controller.dart

@ -1,10 +1,12 @@
import 'package:dating_touchme_app/controller/global.dart';
import 'package:dating_touchme_app/model/mine/rose_data.dart';
import 'package:dating_touchme_app/network/user_api.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:fluwx/fluwx.dart';
import 'package:get/get.dart';
class SpreadController extends GetxController {
class SpreadController extends GetxController with WidgetsBindingObserver {
// UserApi实例
late UserApi _userApi;
@ -33,13 +35,56 @@ class SpreadController extends GetxController {
{'title': '次年续签', 'unit': '90%', 'desc': '减免', 'enable': 1, 'value': 0, 'icon': 'icon-right8'}
].obs;
//
final countdownSeconds = 0.obs;
@override
void onInit() {
super.onInit();
WidgetsBinding.instance.addObserver(this);
_userApi = Get.find<UserApi>();
getRoseList();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if(state == AppLifecycleState.resumed){
if (countdownSeconds.value > 0) {
startCountdown();
}
}
}
//
void startCountdown() async {
try{
final response = await _userApi.getAuditMatchmaker();
if (response.data.isSuccess && response.data.data != null) {
bool audit = response.data.data['needAudit'];
if(audit){
Future.delayed(const Duration(milliseconds: 300), () {
if (countdownSeconds.value > 0) {
countdownSeconds.value--;
startCountdown();
}
});
} else {
countdownSeconds.value = 0;
GlobalData().userData!.matchmakerFlag = true;
Get.back(result: 1);
}
}
} catch (e) {
print('87$e');
}
}
@override
void onClose() {
WidgetsBinding.instance.removeObserver(this);
super.onClose();
}
getRoseList() async {
try{
final response = await _userApi.getMatchmakerFee();
@ -65,10 +110,9 @@ class SpreadController extends GetxController {
username: 'gh_9ea8d46add6f',
path:"pages/index/index?amount=${roseList[activePay.value].unitSellingPrice}&paymentOrderId=${data!.paymentOrderId}&url=match-fee"
));
countdownSeconds.value = 3;
SmartDialog.showToast('开始支付');
} else {
//
throw Exception(response.data.message ?? '获取数据失败');
}

4
lib/network/api_urls.dart

@ -88,4 +88,8 @@ class ApiUrls {
// API端点
static const String listMatchmakerProduct =
'dating-agency-mall/user/page/product/by/matchmaker';
static const String auditMatchmakerResult =
'dating-agency-uec/user/need-audit/matchmaker-audit';
}

4
lib/network/user_api.dart

@ -188,4 +188,8 @@ abstract class UserApi {
@GET(ApiUrls.listMatchmakerProduct)
Future<HttpResponse<BaseResponse<PaginatedResponse<RoseData>>>> getMatchmakerFee();
@GET(ApiUrls.auditMatchmakerResult)
Future<HttpResponse<BaseResponse<dynamic>>> getAuditMatchmaker();
}

31
lib/network/user_api.g.dart

@ -1167,6 +1167,37 @@ class _UserApi implements UserApi {
return httpResponse;
}
@override
Future<HttpResponse<BaseResponse<dynamic>>> getAuditMatchmaker() async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _data = null;
final _options = _setStreamType<HttpResponse<BaseResponse<dynamic>>>(
Options(method: 'GET', headers: _headers, extra: _extra)
.compose(
_dio.options,
'dating-agency-uec/user/need-audit/matchmaker-audit',
queryParameters: queryParameters,
data: _data,
)
.copyWith(baseUrl: _combineBaseUrls(_dio.options.baseUrl, baseUrl)),
);
final _result = await _dio.fetch<Map<String, dynamic>>(_options);
late BaseResponse<dynamic> _value;
try {
_value = BaseResponse<dynamic>.fromJson(
_result.data!,
(json) => json as dynamic,
);
} on Object catch (e, s) {
errorLogger?.logError(e, s, _options);
rethrow;
}
final httpResponse = HttpResponse(_value, _result);
return httpResponse;
}
RequestOptions _setStreamType<T>(RequestOptions requestOptions) {
if (T != dynamic &&
!(requestOptions.responseType == ResponseType.bytes ||

6
lib/pages/discover/discover_page.dart

@ -46,6 +46,12 @@ class _DiscoverPageState extends State<DiscoverPage>
roomController.matchmakerFlag.value = GlobalData().userData!.matchmakerFlag!;
}
@override
void reassemble() {
super.reassemble();
print('reassemble 调用 - 热重载时触发');
}
@override
void dispose() {
_pageController.dispose();

8
lib/pages/setting/match_spread_page.dart

@ -35,13 +35,13 @@ class MatchSpreadPage extends StatelessWidget {
),
),
SizedBox(height: 32.w),
Row(
if(controller.roseList.isNotEmpty)Row(
children: [
Text('红娘权益', style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)),
],
),
SizedBox(height: 24.w,),
Wrap(
if(controller.roseList.isNotEmpty)Wrap(
spacing: 10.w,
runSpacing: 18.w,
children: [
@ -73,7 +73,7 @@ class MatchSpreadPage extends StatelessWidget {
),
),
),
bottomNavigationBar: SafeArea(
bottomNavigationBar: controller.roseList.isNotEmpty ? SafeArea(
child: Container(
height: 60,
padding: EdgeInsets.symmetric(vertical: 5.w, horizontal: 16.w),
@ -96,7 +96,7 @@ class MatchSpreadPage extends StatelessWidget {
},
),
)
),
) : null,
);
},
);

Loading…
Cancel
Save