feat(redpacket): 红包与游戏横幅全量实现 (#19~#24)
- #19 fix: SendRedEnvelopeUseCase 动态取 currencyType(workspaceId>0 取 workspace.currency,修复 iOS 硬编码 PEA → 150001 错误) - #20: RedEnvelopeBubble typ=8,四态(橙色领取/已领/过期/抢完)+ 领取按钮 - #21: ReceiveRedEnvelopeUseCase POST /app/api/wallet/rp/receive, typed JSON body(避免 code=30007),SnackBar 反馈 - #22: SendRedEnvelopeSheet BottomSheet,STANDARD_RP + LUCKY_RP, 发送成功后构建 typ=8 content JSON 回调给 ChatPage - #23: BannerViewModel Notifier,Group.topic 双格式解析(JSON object/string), FetchBannerUseCase + Timer 倒计时 + applyNewRound WS 接口 - #24: BannerView 游戏横幅条(状态/倒计时/上期结果), MiniAppFloatButton 悬浮按钮(hasGame 显示/隐藏,onTap TODO #25) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
22
apps/im_app/lib/features/chat/di/red_envelope_provider.dart
Normal file
22
apps/im_app/lib/features/chat/di/red_envelope_provider.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import 'package:im_app/app/di/network_provider.dart';
|
||||
import 'package:im_app/features/chat/usecases/send_red_envelope_usecase.dart';
|
||||
import 'package:im_app/features/chat/usecases/receive_red_envelope_usecase.dart';
|
||||
import 'package:im_app/features/chat/usecases/fetch_banner_usecase.dart';
|
||||
|
||||
/// 发送红包 UseCase Provider
|
||||
final sendRedEnvelopeUseCaseProvider = Provider<SendRedEnvelopeUseCase>((ref) {
|
||||
return SendRedEnvelopeUseCase(api: ref.read(networkSdkApiProvider));
|
||||
});
|
||||
|
||||
/// 领取红包 UseCase Provider
|
||||
final receiveRedEnvelopeUseCaseProvider =
|
||||
Provider<ReceiveRedEnvelopeUseCase>((ref) {
|
||||
return ReceiveRedEnvelopeUseCase(api: ref.read(networkSdkApiProvider));
|
||||
});
|
||||
|
||||
/// 游戏横幅 UseCase Provider
|
||||
final fetchBannerUseCaseProvider = Provider<FetchBannerUseCase>((ref) {
|
||||
return FetchBannerUseCase(api: ref.read(networkSdkApiProvider));
|
||||
});
|
||||
Reference in New Issue
Block a user