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_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_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_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 'package:aslan/chatvibe_data/models/message/at_floating_message.dart';
import '../../../chatvibe_ui/widgets/room/floating/floating_cp_gift_screen_widget.dart'; import '../../../chatvibe_ui/widgets/room/floating/floating_cp_gift_screen_widget.dart';
@ -150,7 +150,7 @@ class OverlayManager {
); );
case 3: case 3:
// //
return FloatingRoomRocketScreenWidget( return RoomRocketFloatingPopup(
message: message, message: message,
onAnimationCompleted: onComplete, 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_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_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_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_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_room_task_list_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_top_four_with_reward_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 ///api/rocket/claim
@override @override
Future<bool> rocketClaim(String roomId) async { Future<ATRoomRocketRewardRes> rocketClaim(String roomId) async {
final result = await http.post<bool>( final result = await http.post<ATRoomRocketRewardRes>(
"4c083b13f2be2a26641018619bdc0347574aff257ce7e668d08f4caccd1c6232", "4c083b13f2be2a26641018619bdc0347574aff257ce7e668d08f4caccd1c6232",
data: {"roomId": roomId}, data: {"roomId": roomId},
fromJson: (json) => json as bool, fromJson: (json) => ATRoomRocketRewardRes.fromJson(json),
); );
return result; 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/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_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_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_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_claimable_count_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_room_task_list_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<List<ATRoomRocketConfigRes>> rocketConfigEnabled();
/// ///
Future<bool> rocketClaim(String roomId); Future<ATRoomRocketRewardRes> rocketClaim(String roomId);
/// ///
Future<ATViolationHandleRes> roomViolationHandle( Future<ATViolationHandleRes> roomViolationHandle(

View File

@ -810,9 +810,11 @@ class RealTimeCommunicationManager extends ChangeNotifier {
if (!_isRoomSessionActive(roomSessionId, roomId)) { if (!_isRoomSessionActive(roomSessionId, roomId)) {
return; return;
} }
ChatRoomRepository() unawaited(
.rocketClaim(currenRoom?.roomProfile?.roomProfile?.id ?? "") ChatRoomRepository()
.catchError((e) => false); .rocketClaim(currenRoom?.roomProfile?.roomProfile?.id ?? "")
.then<void>((_) {}, onError: (_, __) {}),
);
rtmProvider?.addMsg( rtmProvider?.addMsg(
Msg( Msg(
groupId: currenRoom?.roomProfile?.roomProfile?.roomAccount ?? "", 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/gift_res.dart';
import 'package:aslan/chatvibe_domain/models/res/at_public_message_page_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_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_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/invite/invite_room_dialog.dart';
import 'package:aslan/chatvibe_ui/widgets/room/room_msg_item.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) { if (data["type"] == ATRoomMsgType.rocketRewardUser) {
/// ///
var fData = data["data"]; final reward = ATRoomRocketRewardRes.fromJson(data["data"]);
String cover = fData["cover"] ?? ""; if (AccountStorage().getCurrentUser()?.userProfile?.id ==
String rewardType = fData["rewardType"] ?? ""; reward.userId) {
String userNickname = fData["userNickname"] ?? ""; ATRoomUtils.playRoomRocketAnim(
int rocketLevel = fData["rocketLevel"] ?? 1; reward.cover,
String userId = fData["userId"] ?? 0; reward.rewardType,
if (AccountStorage().getCurrentUser()?.userProfile?.id == userId) { reward.rocketLevel,
ATRoomUtils.playRoomRocketAnim(cover, rewardType, rocketLevel); );
} }
/// ///
addMsg( addMsg(
Msg( Msg(
groupId: "", groupId: "",
msg: cover, msg: reward.cover,
type: ATRoomMsgType.rocketRewardUser, type: ATRoomMsgType.rocketRewardUser,
role: rewardType, role: reward.rewardType,
user: ChatVibeUserProfile(userNickname: userNickname), user: ChatVibeUserProfile(
number: rocketLevel, id: reward.userId,
userNickname: reward.userNickname,
),
number: reward.rocketLevel,
), ),
); );
return; return;

View File

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