Browse Source

上传支付用量代码

newdev_shunjiawei
liwei1dao 11 months ago
parent
commit
c38e27c033
  1. 75
      lib/data/models/user_Info.dart
  2. 6
      lib/modules/agent/controllers/agent_controller.dart
  3. 17
      lib/modules/agent/views/agent_view.dart
  4. 4
      lib/modules/goods/views/goodsai_view.dart
  5. 4
      lib/modules/goods/views/goodsmeet_view.dart
  6. 4
      lib/modules/goods/views/goodstrade_view.dart

75
lib/data/models/user_Info.dart

@ -46,12 +46,13 @@ class User {
String password; String password;
int viplv = 0; //添加会员等级字段,0表示普通用户 int viplv = 0; //添加会员等级字段,0表示普通用户
int viptime = 0; // 会员到期/剩余时间(秒/毫秒,按后端定义) int viptime = 0; // 会员到期/剩余时间(秒/毫秒,按后端定义)
int tradetotaltime = 0; // 翻译总时长 int aichatintegral = 0; // ai聊天积分
int meettotaltime = 0; // 会议总时长 int aichattotalintegral = 0; // ai聊天总积分
int aichattotaltimer = 0; // 智能体总次数(兼容 aichattotaltime/aichattotaltimer) int tradeintegral = 0; // 翻译积分
int tradetime = 0; // 翻译剩余时长 int tradetotalintegral = 0; // 翻译总积分
int meettime = 0; // 会议剩余时长 int meetintegral = 0; // 会议积分
int aichattimer = 0; // 智能体剩余次数 int meettotalintegral = 0; // 会议总积分
List<UserDevice> devices; List<UserDevice> devices;
// 私有构造函数 // 私有构造函数
@ -67,12 +68,12 @@ class User {
required this.password, required this.password,
required this.viplv, required this.viplv,
required this.viptime, required this.viptime,
required this.aichattotaltimer, required this.aichatintegral,
required this.meettotaltime, required this.aichattotalintegral,
required this.tradetotaltime, required this.tradeintegral,
required this.aichattimer, required this.tradetotalintegral,
required this.meettime, required this.meetintegral,
required this.tradetime, required this.meettotalintegral,
required this.devices, required this.devices,
}); });
@ -97,12 +98,12 @@ class User {
viplv: (userData?['viplv'] as int?) ?? 0, // 提供默认值 viplv: (userData?['viplv'] as int?) ?? 0, // 提供默认值
viptime: (userData?['viptime'] as int?) ?? 0, // 提供默认值 viptime: (userData?['viptime'] as int?) ?? 0, // 提供默认值
aichattotaltimer: (userData?['aichattotaltimer'] as int?) ?? 0, aichatintegral: (userData?['aichatintegral'] as int?) ?? 0,
meettotaltime: (userData?['meettotaltime'] as int?) ?? 0, aichattotalintegral: (userData?['aichattotalintegral'] as int?) ?? 0,
tradetotaltime: (userData?['tradetotaltime'] as int?) ?? 0, tradeintegral: (userData?['tradeintegral'] as int?) ?? 0,
aichattimer: (userData?['aichattimer'] as int?) ?? 0, tradetotalintegral: (userData?['tradetotalintegral'] as int?) ?? 0,
meettime: (userData?['meettime'] as int?) ?? 0, meetintegral: (userData?['meetintegral'] as int?) ?? 0,
tradetime: (userData?['tradetime'] as int?) ?? 0, meettotalintegral: (userData?['meettotalintegral'] as int?) ?? 0,
devices: devicesData devices: devicesData
?.map((e) => UserDevice.fromJson(e as Map<String, dynamic>)) ?.map((e) => UserDevice.fromJson(e as Map<String, dynamic>))
@ -130,12 +131,12 @@ class User {
password: (userData?['password'] as String?) ?? '', password: (userData?['password'] as String?) ?? '',
viplv: (userData?['viplv'] as int?) ?? 0, // 提供默认值 viplv: (userData?['viplv'] as int?) ?? 0, // 提供默认值
viptime: (userData?['viptime'] as int?) ?? 0, // 提供默认值 viptime: (userData?['viptime'] as int?) ?? 0, // 提供默认值
aichattotaltimer: (userData?['aichattotaltimer'] as int?) ?? 0, aichatintegral: (userData?['aichatintegral'] as int?) ?? 0,
meettotaltime: (userData?['meettotaltime'] as int?) ?? 0, aichattotalintegral: (userData?['aichattotalintegral'] as int?) ?? 0,
tradetotaltime: (userData?['tradetotaltime'] as int?) ?? 0, tradeintegral: (userData?['tradeintegral'] as int?) ?? 0,
aichattimer: (userData?['aichattimer'] as int?) ?? 0, tradetotalintegral: (userData?['tradetotalintegral'] as int?) ?? 0,
meettime: (userData?['meettime'] as int?) ?? 0, meetintegral: (userData?['meetintegral'] as int?) ?? 0,
tradetime: (userData?['tradetime'] as int?) ?? 0, meettotalintegral: (userData?['meettotalintegral'] as int?) ?? 0,
devices: devicesData != null devices: devicesData != null
? (devicesData) ? (devicesData)
.map((e) => UserDevice.fromJson(e as Map<String, dynamic>)) .map((e) => UserDevice.fromJson(e as Map<String, dynamic>))
@ -156,12 +157,14 @@ class User {
password = user['password'] as String? ?? password; password = user['password'] as String? ?? password;
viplv = user['viplv'] as int? ?? viplv; viplv = user['viplv'] as int? ?? viplv;
viptime = user['viptime'] as int? ?? viptime; viptime = user['viptime'] as int? ?? viptime;
tradetotaltime = user['tradetotaltime'] as int? ?? tradetotaltime; aichatintegral = user['aichatintegral'] as int? ?? aichatintegral;
meettotaltime = user['meettotaltime'] as int? ?? meettotaltime; aichattotalintegral =
aichattotaltimer = user['aichattotaltimer'] as int? ?? aichattotaltimer; user['aichattotalintegral'] as int? ?? aichattotalintegral;
tradetime = user['tradetime'] as int? ?? tradetime; tradeintegral = user['tradeintegral'] as int? ?? tradeintegral;
meettime = user['meettime'] as int? ?? meettime; tradetotalintegral =
aichattimer = user['aichattimer'] as int? ?? aichattimer; user['tradetotalintegral'] as int? ?? tradetotalintegral;
meetintegral = user['meetintegral'] as int? ?? meetintegral;
meettotalintegral = user['meettotalintegral'] as int? ?? meettotalintegral;
// 触发全局刷新信号,驱动依赖UI重建 // 触发全局刷新信号,驱动依赖UI重建
refreshTick.value++; refreshTick.value++;
@ -181,12 +184,12 @@ class User {
'password': password, 'password': password,
'viplv': viplv, 'viplv': viplv,
'viptime': viptime, 'viptime': viptime,
'tradetotaltime': tradetotaltime, 'aichatintegral': aichatintegral,
'meettotaltime': meettotaltime, 'aichattotalintegral': aichattotalintegral,
'aichattotaltimer': aichattotaltimer, 'tradeintegral': tradeintegral,
'tradetime': tradetime, 'tradetotalintegral': tradetotalintegral,
'meettime': meettime, 'meetintegral': meetintegral,
'aichattimer': aichattimer, 'meettotalintegral': meettotalintegral,
'devices': devices.map((device) => device.toJson()).toList(), 'devices': devices.map((device) => device.toJson()).toList(),
}, },
}; };

6
lib/modules/agent/controllers/agent_controller.dart

@ -45,7 +45,7 @@ class AgentController extends GetxController with WidgetsBindingObserver {
// 聊天消息列表 // 聊天消息列表
final messages = <Message>[].obs; final messages = <Message>[].obs;
final currsessionid = ''.obs; final currsessionid = ''.obs;
final aichatintegral = 0.obs;
// UI控制器 // UI控制器
final TextEditingController textController = TextEditingController(); final TextEditingController textController = TextEditingController();
final ScrollController scrollController = ScrollController(); final ScrollController scrollController = ScrollController();
@ -165,6 +165,7 @@ class AgentController extends GetxController with WidgetsBindingObserver {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
aichatintegral.value = User.isLoggedIn() ? User.instance.aichatintegral : 0;
_initAppDir(); _initAppDir();
_loadTtsPreference(); //加载TTS偏好设置 _loadTtsPreference(); //加载TTS偏好设置
_loadTtsInterrupe(); //加载TTS播报打断偏好设置 _loadTtsInterrupe(); //加载TTS播报打断偏好设置
@ -1022,7 +1023,8 @@ class AgentController extends GetxController with WidgetsBindingObserver {
case AgentServiceEventType.assistantUsages: case AgentServiceEventType.assistantUsages:
final sessionid = event.data['sessionid'] ?? ''; final sessionid = event.data['sessionid'] ?? '';
final integral = event.data['integral'] ?? 0; final integral = event.data['integral'] ?? 0;
User.instance.aiIntegral = integral; User.instance.aichatintegral = integral;
aichatintegral.value = integral;
break; break;
default: default:
break; break;

17
lib/modules/agent/views/agent_view.dart

@ -6,6 +6,7 @@ import 'package:flutter_intro/flutter_intro.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:haptic_feedback/haptic_feedback.dart'; import 'package:haptic_feedback/haptic_feedback.dart';
import '../../../core/widgets/intro_overlay_builder.dart'; import '../../../core/widgets/intro_overlay_builder.dart';
import '../../../data/models/user_Info.dart';
import '../controllers/agent_controller.dart'; import '../controllers/agent_controller.dart';
import '../controllers/message_action_controller.dart'; import '../controllers/message_action_controller.dart';
import 'message_bubble.dart'; import 'message_bubble.dart';
@ -118,14 +119,14 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
), ),
), ),
SizedBox(width: 4.w), SizedBox(width: 4.w),
Text( Obx(() => Text(
'online'.tr, '剩余积分: ${controller.aichatintegral.value}',
style: TextStyle( style: TextStyle(
fontSize: 12.sp, fontSize: 12.sp,
color: Colors.green, color: Colors.green,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
), ),
), )),
], ],
), ),
], ],

4
lib/modules/goods/views/goodsai_view.dart

@ -141,8 +141,8 @@ class GoodsaiView extends GetView<GoodsaiController> {
int remainAi = 0; int remainAi = 0;
if (User.isLoggedIn()) { if (User.isLoggedIn()) {
final u = User.instance; final u = User.instance;
totalAi = u.aichattotaltimer; totalAi = u.aichattotalintegral;
remainAi = u.aichattimer; remainAi = u.aichatintegral;
} }
// 进度显示为“剩余额度比例”,remain/total: // 进度显示为“剩余额度比例”,remain/total:
final progress = (totalAi > 0) ? (remainAi / totalAi).clamp(0.0, 1.0) : 0.0; final progress = (totalAi > 0) ? (remainAi / totalAi).clamp(0.0, 1.0) : 0.0;

4
lib/modules/goods/views/goodsmeet_view.dart

@ -135,8 +135,8 @@ class GoodsmeetView extends GetView<GoodsmeetController> {
int remainAi = 0; int remainAi = 0;
if (User.isLoggedIn()) { if (User.isLoggedIn()) {
final u = User.instance; final u = User.instance;
totalAi = u.meettotaltime; totalAi = u.meettotalintegral;
remainAi = u.meettime; remainAi = u.meetintegral;
} }
final progress = (totalAi > 0) ? (remainAi / totalAi).clamp(0.0, 1.0) : 0.0; final progress = (totalAi > 0) ? (remainAi / totalAi).clamp(0.0, 1.0) : 0.0;

4
lib/modules/goods/views/goodstrade_view.dart

@ -135,8 +135,8 @@ class GoodstradeView extends GetView<GoodstradeController> {
int remainAi = 0; int remainAi = 0;
if (User.isLoggedIn()) { if (User.isLoggedIn()) {
final u = User.instance; final u = User.instance;
totalAi = u.tradetotaltime; totalAi = u.tradetotalintegral;
remainAi = u.tradetime; remainAi = u.tradeintegral;
} }
final progress = (totalAi > 0) ? (remainAi / totalAi).clamp(0.0, 1.0) : 0.0; final progress = (totalAi > 0) ? (remainAi / totalAi).clamp(0.0, 1.0) : 0.0;

Loading…
Cancel
Save