马良AI写作初始化仓库

This commit is contained in:
邓滨杰
2025-09-10 00:07:52 +08:00
parent 3c06bb1a03
commit 39c0f8840f
1309 changed files with 318528 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
import 'package:equatable/equatable.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../models/user_credit.dart';
import '../../services/api_service/repositories/credit_repository.dart';
import '../../utils/logger.dart';
part 'credit_event.dart';
part 'credit_state.dart';
/// 用户积分BLoC
/// 负责管理用户积分状态和数据获取
class CreditBloc extends Bloc<CreditEvent, CreditState> {
final CreditRepository _repository;
static const String _tag = 'CreditBloc';
CreditBloc({required CreditRepository repository})
: _repository = repository,
super(const CreditInitial()) {
on<LoadUserCredits>(_onLoadUserCredits);
on<RefreshUserCredits>(_onRefreshUserCredits);
on<ClearCredits>(_onClearCredits);
}
/// 处理加载用户积分事件
Future<void> _onLoadUserCredits(
LoadUserCredits event,
Emitter<CreditState> emit,
) async {
emit(const CreditLoading());
await _loadCredits(emit);
}
/// 处理刷新用户积分事件
Future<void> _onRefreshUserCredits(
RefreshUserCredits event,
Emitter<CreditState> emit,
) async {
// 刷新不显示loading状态保持当前显示
await _loadCredits(emit);
}
/// 处理清空用户积分事件
Future<void> _onClearCredits(
ClearCredits event,
Emitter<CreditState> emit,
) async {
AppLogger.i(_tag, '清空用户积分状态,重置为初始状态');
emit(const CreditInitial());
}
/// 加载积分的公共方法
Future<void> _loadCredits(Emitter<CreditState> emit) async {
try {
AppLogger.i(_tag, '开始加载用户积分');
final userCredit = await _repository.getUserCredits();
AppLogger.i(_tag, '用户积分加载成功: ${userCredit.credits}');
emit(CreditLoaded(userCredit: userCredit));
} catch (e, stackTrace) {
AppLogger.e(_tag, '加载用户积分失败', e, stackTrace);
emit(CreditError(message: '加载用户积分失败: ${e.toString()}'));
}
}
}