Browse Source

feat(会议任务): 添加会议积分扣除功能

在创建会议任务时,根据会议音频时长扣除用户积分
newdev_shunjiawei
lxm 9 months ago
parent
commit
0e759ca94a
  1. 27
      lib/data/services/meeting/meeting_task_service.dart

27
lib/data/services/meeting/meeting_task_service.dart

@ -1,9 +1,11 @@
import 'dart:convert';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import '../db/sqflite_api.dart';
import '../network/api.dart';
import '../../models/user_Info.dart';
import 'meeting_upload_service.dart';
class MeetingTaskService extends GetxService {
@ -81,6 +83,8 @@ class MeetingTaskService extends GetxService {
'isdistinguishspeaker': isdistinguishspeaker,
'templateid': templateid,
});
final seconds = await _getMeetingSeconds(id);
_decrementMeetingIntegral(cost: seconds);
_taskList.add({
'id': id,
'tasktype': 1,
@ -207,4 +211,27 @@ class MeetingTaskService extends GetxService {
}
}
}
/// 获取会议音频秒数
Future<int> _getMeetingSeconds(int id) async {
try {
final data = await SqfliteApi.getMeetingDetails(id);
final v = data['seconds'];
if (v is int) return v;
if (v is num) return v.toInt();
if (v is String) return int.tryParse(v) ?? 0;
return 0;
} catch (_) {
return 0;
}
}
/// 减少用户会议积分
void _decrementMeetingIntegral({required int cost}) {
if (!User.isLoggedIn()) return;
if (cost <= 0) return;
final next = User.instance.meetintegral - cost;
User.instance.updateUserInfo({'meetintegral': next < 0 ? 0 : next});
//GetStorage().write('user_info', User.instance.toJson());
}
}

Loading…
Cancel
Save