1.0.7 版本需求

This commit is contained in:
zhangxianbiao 2026-07-15 10:21:15 +08:00
parent 4cffec0d98
commit 0005e2d4a5
6 changed files with 33 additions and 22 deletions

View File

@ -9,7 +9,7 @@ import 'package:aslan/chatvibe_ui/widgets/room/floating/floating_game_screen_wid
import 'package:aslan/chatvibe_ui/widgets/room/floating/floating_gift_screen_widget.dart';
import 'package:aslan/chatvibe_ui/widgets/room/floating/floating_luck_gift_screen_widget.dart';
import 'package:aslan/chatvibe_ui/widgets/room/floating/floating_room_redenvelope_screen_widget.dart';
import 'package:aslan/chatvibe_ui/widgets/room/floating/floating_room_rocket_screen_widget.dart';
import 'package:aslan/chatvibe_ui/widgets/room/rocket/room_rocket_floating_popup.dart';
import 'package:aslan/chatvibe_data/models/message/at_floating_message.dart';
import '../../../chatvibe_ui/widgets/room/floating/floating_cp_gift_screen_widget.dart';
@ -150,7 +150,7 @@ class OverlayManager {
);
case 3:
//
return FloatingRoomRocketScreenWidget(
return RoomRocketFloatingPopup(
message: message,
onAnimationCompleted: onComplete,
);

View File

@ -14,6 +14,7 @@ import 'package:aslan/chatvibe_domain/models/res/at_room_red_packet_grab_res.dar
import 'package:aslan/chatvibe_domain/models/res/at_room_red_packet_list_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_reward_info_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_config_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_reward_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_status_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_task_list_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_top_four_with_reward_res.dart';
@ -642,11 +643,11 @@ class ChatRoomRepository implements ChatVibeRoomRepository {
///api/rocket/claim
@override
Future<bool> rocketClaim(String roomId) async {
final result = await http.post<bool>(
Future<ATRoomRocketRewardRes> rocketClaim(String roomId) async {
final result = await http.post<ATRoomRocketRewardRes>(
"4c083b13f2be2a26641018619bdc0347574aff257ce7e668d08f4caccd1c6232",
data: {"roomId": roomId},
fromJson: (json) => json as bool,
fromJson: (json) => ATRoomRocketRewardRes.fromJson(json),
);
return result;
}

View File

@ -23,6 +23,7 @@ import 'package:aslan/chatvibe_domain/models/res/at_room_red_packet_list_res.dar
import 'package:aslan/chatvibe_domain/models/res/room_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_reward_info_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_config_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_reward_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_status_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_task_claimable_count_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_task_list_res.dart';
@ -200,7 +201,7 @@ abstract class ChatVibeRoomRepository {
Future<List<ATRoomRocketConfigRes>> rocketConfigEnabled();
///
Future<bool> rocketClaim(String roomId);
Future<ATRoomRocketRewardRes> rocketClaim(String roomId);
///
Future<ATViolationHandleRes> roomViolationHandle(

View File

@ -810,9 +810,11 @@ class RealTimeCommunicationManager extends ChangeNotifier {
if (!_isRoomSessionActive(roomSessionId, roomId)) {
return;
}
ChatRoomRepository()
.rocketClaim(currenRoom?.roomProfile?.roomProfile?.id ?? "")
.catchError((e) => false);
unawaited(
ChatRoomRepository()
.rocketClaim(currenRoom?.roomProfile?.roomProfile?.id ?? "")
.then<void>((_) {}, onError: (_, __) {}),
);
rtmProvider?.addMsg(
Msg(
groupId: currenRoom?.roomProfile?.roomProfile?.roomAccount ?? "",

View File

@ -53,6 +53,7 @@ import 'package:aslan/chatvibe_domain/models/res/broad_cast_mic_change_push.dart
import 'package:aslan/chatvibe_domain/models/res/gift_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_public_message_page_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_status_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_rocket_reward_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_theme_list_res.dart';
import 'package:aslan/chatvibe_ui/widgets/room/invite/invite_room_dialog.dart';
import 'package:aslan/chatvibe_ui/widgets/room/room_msg_item.dart';
@ -1078,25 +1079,28 @@ class RealTimeMessagingManager extends ChangeNotifier {
}
if (data["type"] == ATRoomMsgType.rocketRewardUser) {
///
var fData = data["data"];
String cover = fData["cover"] ?? "";
String rewardType = fData["rewardType"] ?? "";
String userNickname = fData["userNickname"] ?? "";
int rocketLevel = fData["rocketLevel"] ?? 1;
String userId = fData["userId"] ?? 0;
if (AccountStorage().getCurrentUser()?.userProfile?.id == userId) {
ATRoomUtils.playRoomRocketAnim(cover, rewardType, rocketLevel);
final reward = ATRoomRocketRewardRes.fromJson(data["data"]);
if (AccountStorage().getCurrentUser()?.userProfile?.id ==
reward.userId) {
ATRoomUtils.playRoomRocketAnim(
reward.cover,
reward.rewardType,
reward.rocketLevel,
);
}
///
addMsg(
Msg(
groupId: "",
msg: cover,
msg: reward.cover,
type: ATRoomMsgType.rocketRewardUser,
role: rewardType,
user: ChatVibeUserProfile(userNickname: userNickname),
number: rocketLevel,
role: reward.rewardType,
user: ChatVibeUserProfile(
id: reward.userId,
userNickname: reward.userNickname,
),
number: reward.rocketLevel,
),
);
return;

View File

@ -28,6 +28,9 @@ class _RoomPlayWidgetState extends State<RoomPlayWidget> {
Widget build(BuildContext context) {
return Consumer<RtcProvider>(
builder: (context, ref, child) {
final int roomRocketLevel = ref.roomRocketStatus?.level?.toInt() ?? 1;
final int rocketAssetLevel =
roomRocketLevel >= 1 && roomRocketLevel <= 3 ? roomRocketLevel : 1;
return Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
@ -142,7 +145,7 @@ class _RoomPlayWidgetState extends State<RoomPlayWidget> {
child: Container(
margin: EdgeInsets.symmetric(vertical: 5.w),
child: Image.asset(
"atu_images/room/at_icon_room_rocket_lv1.png",
"atu_images/room/at_icon_room_rocket_lv$rocketAssetLevel.png",
width: 45.w,
height: 45.w,
fit: BoxFit.contain,