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;
int viplv = 0; //添加会员等级字段,0表示普通用户
int viptime = 0; // 会员到期/剩余时间(秒/毫秒,按后端定义)
int tradetotaltime = 0; // 翻译总时长
int meettotaltime = 0; // 会议总时长
int aichattotaltimer = 0; // 智能体总次数(兼容 aichattotaltime/aichattotaltimer)
int tradetime = 0; // 翻译剩余时长
int meettime = 0; // 会议剩余时长
int aichattimer = 0; // 智能体剩余次数
int aichatintegral = 0; // ai聊天积分
int aichattotalintegral = 0; // ai聊天总积分
int tradeintegral = 0; // 翻译积分
int tradetotalintegral = 0; // 翻译总积分
int meetintegral = 0; // 会议积分
int meettotalintegral = 0; // 会议总积分
List<UserDevice> devices;
// 私有构造函数
@ -67,12 +68,12 @@ class User {
required this.password,
required this.viplv,
required this.viptime,
required this.aichattotaltimer,
required this.meettotaltime,
required this.tradetotaltime,
required this.aichattimer,
required this.meettime,
required this.tradetime,
required this.aichatintegral,
required this.aichattotalintegral,
required this.tradeintegral,
required this.tradetotalintegral,
required this.meetintegral,
required this.meettotalintegral,
required this.devices,
});
@ -97,12 +98,12 @@ class User {
viplv: (userData?['viplv'] as int?) ?? 0, // 提供默认值
viptime: (userData?['viptime'] as int?) ?? 0, // 提供默认值
aichattotaltimer: (userData?['aichattotaltimer'] as int?) ?? 0,
meettotaltime: (userData?['meettotaltime'] as int?) ?? 0,
tradetotaltime: (userData?['tradetotaltime'] as int?) ?? 0,
aichattimer: (userData?['aichattimer'] as int?) ?? 0,
meettime: (userData?['meettime'] as int?) ?? 0,
tradetime: (userData?['tradetime'] as int?) ?? 0,
aichatintegral: (userData?['aichatintegral'] as int?) ?? 0,
aichattotalintegral: (userData?['aichattotalintegral'] as int?) ?? 0,
tradeintegral: (userData?['tradeintegral'] as int?) ?? 0,
tradetotalintegral: (userData?['tradetotalintegral'] as int?) ?? 0,
meetintegral: (userData?['meetintegral'] as int?) ?? 0,
meettotalintegral: (userData?['meettotalintegral'] as int?) ?? 0,
devices: devicesData
?.map((e) => UserDevice.fromJson(e as Map<String, dynamic>))
@ -130,12 +131,12 @@ class User {
password: (userData?['password'] as String?) ?? '',
viplv: (userData?['viplv'] as int?) ?? 0, // 提供默认值
viptime: (userData?['viptime'] as int?) ?? 0, // 提供默认值
aichattotaltimer: (userData?['aichattotaltimer'] as int?) ?? 0,
meettotaltime: (userData?['meettotaltime'] as int?) ?? 0,
tradetotaltime: (userData?['tradetotaltime'] as int?) ?? 0,
aichattimer: (userData?['aichattimer'] as int?) ?? 0,
meettime: (userData?['meettime'] as int?) ?? 0,
tradetime: (userData?['tradetime'] as int?) ?? 0,
aichatintegral: (userData?['aichatintegral'] as int?) ?? 0,
aichattotalintegral: (userData?['aichattotalintegral'] as int?) ?? 0,
tradeintegral: (userData?['tradeintegral'] as int?) ?? 0,
tradetotalintegral: (userData?['tradetotalintegral'] as int?) ?? 0,
meetintegral: (userData?['meetintegral'] as int?) ?? 0,
meettotalintegral: (userData?['meettotalintegral'] as int?) ?? 0,
devices: devicesData != null
? (devicesData)
.map((e) => UserDevice.fromJson(e as Map<String, dynamic>))
@ -156,12 +157,14 @@ class User {
password = user['password'] as String? ?? password;
viplv = user['viplv'] as int? ?? viplv;
viptime = user['viptime'] as int? ?? viptime;
tradetotaltime = user['tradetotaltime'] as int? ?? tradetotaltime;
meettotaltime = user['meettotaltime'] as int? ?? meettotaltime;
aichattotaltimer = user['aichattotaltimer'] as int? ?? aichattotaltimer;
tradetime = user['tradetime'] as int? ?? tradetime;
meettime = user['meettime'] as int? ?? meettime;
aichattimer = user['aichattimer'] as int? ?? aichattimer;
aichatintegral = user['aichatintegral'] as int? ?? aichatintegral;
aichattotalintegral =
user['aichattotalintegral'] as int? ?? aichattotalintegral;
tradeintegral = user['tradeintegral'] as int? ?? tradeintegral;
tradetotalintegral =
user['tradetotalintegral'] as int? ?? tradetotalintegral;
meetintegral = user['meetintegral'] as int? ?? meetintegral;
meettotalintegral = user['meettotalintegral'] as int? ?? meettotalintegral;
// 触发全局刷新信号,驱动依赖UI重建
refreshTick.value++;
@ -181,12 +184,12 @@ class User {
'password': password,
'viplv': viplv,
'viptime': viptime,
'tradetotaltime': tradetotaltime,
'meettotaltime': meettotaltime,
'aichattotaltimer': aichattotaltimer,
'tradetime': tradetime,
'meettime': meettime,
'aichattimer': aichattimer,
'aichatintegral': aichatintegral,
'aichattotalintegral': aichattotalintegral,
'tradeintegral': tradeintegral,
'tradetotalintegral': tradetotalintegral,
'meetintegral': meetintegral,
'meettotalintegral': meettotalintegral,
'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 currsessionid = ''.obs;
final aichatintegral = 0.obs;
// UI控制器
final TextEditingController textController = TextEditingController();
final ScrollController scrollController = ScrollController();
@ -165,6 +165,7 @@ class AgentController extends GetxController with WidgetsBindingObserver {
@override
void onInit() {
super.onInit();
aichatintegral.value = User.isLoggedIn() ? User.instance.aichatintegral : 0;
_initAppDir();
_loadTtsPreference(); //加载TTS偏好设置
_loadTtsInterrupe(); //加载TTS播报打断偏好设置
@ -1022,7 +1023,8 @@ class AgentController extends GetxController with WidgetsBindingObserver {
case AgentServiceEventType.assistantUsages:
final sessionid = event.data['sessionid'] ?? '';
final integral = event.data['integral'] ?? 0;
User.instance.aiIntegral = integral;
User.instance.aichatintegral = integral;
aichatintegral.value = integral;
break;
default:
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:haptic_feedback/haptic_feedback.dart';
import '../../../core/widgets/intro_overlay_builder.dart';
import '../../../data/models/user_Info.dart';
import '../controllers/agent_controller.dart';
import '../controllers/message_action_controller.dart';
import 'message_bubble.dart';
@ -118,14 +119,14 @@ class _AgentViewState extends State<AgentView> with WidgetsBindingObserver {
),
),
SizedBox(width: 4.w),
Text(
'online'.tr,
style: TextStyle(
fontSize: 12.sp,
color: Colors.green,
fontWeight: FontWeight.w500,
),
),
Obx(() => Text(
'剩余积分: ${controller.aichatintegral.value}',
style: TextStyle(
fontSize: 12.sp,
color: Colors.green,
fontWeight: FontWeight.w500,
),
)),
],
),
],

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

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

Loading…
Cancel
Save