Browse Source

对接接口,完善功能,增加麦克风控制,实现直播间外观众邀请

dev-2.0
王子贤 2 months ago
parent
commit
7d12116d4a
7 changed files with 78 additions and 1 deletions
  1. 20
      lib/controller/discover/room_controller.dart
  2. 15
      lib/model/discover/live_income_data.dart
  3. 3
      lib/network/api_urls.dart
  4. 6
      lib/network/rtc_api.dart
  5. 32
      lib/network/rtc_api.g.dart
  6. 2
      lib/pages/discover/settlement_page.dart
  7. 1
      lib/widget/live/live_room_user_header.dart

20
lib/controller/discover/room_controller.dart

@ -131,6 +131,26 @@ class RoomController extends GetxController with WidgetsBindingObserver {
}
}
final todayLiveIncomeStr = "0.00".obs;
getLiveIncome() async {
try {
final response = await _networkService.rtcApi.userGetTodayLiveIncome();
if (response.data.isSuccess && response.data.data != null) {
todayLiveIncomeStr.value = response.data.data?.todayLiveIncomeStr ?? "0.00";
} else {
//
throw Exception(response.data.message ?? '获取数据失败');
}
} catch(e){
print('钱包数据获取失败: $e');
SmartDialog.showToast('钱包数据获取失败');
rethrow;
}
}
final consumption = ChatStaticData(todayLiveDurationMins: 0).obs;

15
lib/model/discover/live_income_data.dart

@ -0,0 +1,15 @@
class LiveIncomeData {
String? todayLiveIncomeStr;
LiveIncomeData({this.todayLiveIncomeStr});
LiveIncomeData.fromJson(Map<String, dynamic> json) {
todayLiveIncomeStr = json['todayLiveIncomeStr'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['todayLiveIncomeStr'] = this.todayLiveIncomeStr;
return data;
}
}

3
lib/network/api_urls.dart

@ -172,4 +172,7 @@ class ApiUrls {
static const String userGetRtcChannelAbstract =
'dating-agency-chat-audio/user/get/rtc-channel/abstract';
static const String userGetTodayLiveIncome =
'dating-agency-mall/user/get/today-live-income';
}

6
lib/network/rtc_api.dart

@ -1,4 +1,5 @@
import 'package:dating_touchme_app/model/discover/audience_list_data.dart';
import 'package:dating_touchme_app/model/discover/live_income_data.dart';
import 'package:dating_touchme_app/model/discover/rtc_channel_model.dart';
import 'package:dating_touchme_app/model/live/gift_product_model.dart';
import 'package:dating_touchme_app/model/rtc/chat_audio_product_model.dart';
@ -169,4 +170,9 @@ abstract class RtcApi {
@Query('channelId') required String channelId,
}
);
///
@GET(ApiUrls.userGetTodayLiveIncome)
Future<HttpResponse<BaseResponse<LiveIncomeData>>> userGetTodayLiveIncome();
}

32
lib/network/rtc_api.g.dart

@ -907,6 +907,38 @@ class _RtcApi implements RtcApi {
return httpResponse;
}
@override
Future<HttpResponse<BaseResponse<LiveIncomeData>>>
userGetTodayLiveIncome() async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _data = null;
final _options = _setStreamType<HttpResponse<BaseResponse<LiveIncomeData>>>(
Options(method: 'GET', headers: _headers, extra: _extra)
.compose(
_dio.options,
'dating-agency-mall/user/get/today-live-income',
queryParameters: queryParameters,
data: _data,
)
.copyWith(baseUrl: _combineBaseUrls(_dio.options.baseUrl, baseUrl)),
);
final _result = await _dio.fetch<Map<String, dynamic>>(_options);
late BaseResponse<LiveIncomeData> _value;
try {
_value = BaseResponse<LiveIncomeData>.fromJson(
_result.data!,
(json) => LiveIncomeData.fromJson(json as Map<String, 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 ||

2
lib/pages/discover/settlement_page.dart

@ -153,7 +153,7 @@ class _SettlementPageState extends State<SettlementPage> {
),
children: [
TextSpan(
text: "0.0",
text: _roomController.todayLiveIncomeStr.value,
style: TextStyle(
fontSize: 23.w,
)

1
lib/widget/live/live_room_user_header.dart

@ -303,6 +303,7 @@ class LiveRoomUserHeader extends StatelessWidget {
).onTap(() async {
// 退RTM消息
await roomController.getLiveData();
await roomController.getLiveIncome();
await roomController.leaveChannel();
SmartDialog.dismiss();
if (Get.isRegistered<RoomController>()) {

Loading…
Cancel
Save