You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

105 lines
2.7 KiB

import 'package:dating_touchme_app/model/mine/rose_data.dart';
import 'package:dating_touchme_app/network/user_api.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:fluwx/fluwx.dart';
import 'package:get/get.dart';
import 'package:url_launcher/url_launcher_string.dart';
class RoseController extends GetxController {
// UserApi实例
late UserApi _userApi;
final roseList = <RoseData>[].obs;
final roseNum = 0.obs;
final payChecked = true.obs;
final activePay = 0.obs;
final Fluwx fluwx = Fluwx();
changePayActive(int index){
activePay.value = index;
}
@override
void onInit() {
super.onInit();
_userApi = Get.find<UserApi>();
getRoseList();
getRoseNum();
}
getRoseList() async {
try{
final response = await _userApi.listVirtualCurrencyProduct({});
if (response.data.isSuccess && response.data.data != null) {
final data = response.data.data;
roseList.addAll(data?.toList() ?? []);
} else {
// 响应失败,抛出异常
throw Exception(response.data.message ?? '获取数据失败');
}
} catch (e) {
print('玫瑰列表获取失败: $e');
SmartDialog.showToast('玫瑰列表获取失败');
rethrow;
}
}
getRoseNum() async {
try {
final response = await _userApi.getVirtualAccount({});
if (response.data.isSuccess && response.data.data != null) {
final data = response.data.data;
roseNum.value = data?.balance ?? 0;
} else {
roseNum.value = 0;
}
} catch (e){
print('玫瑰数量取失败: $e');
SmartDialog.showToast('玫瑰数量取失败');
rethrow;
}
}
submitOrder() async {
try {
print(roseList[activePay.value].productDesc);
final response = await _userApi.submitOrder({
"productSpecId": roseList[activePay.value].productSpecId
});
if (response.data.isSuccess && response.data.data != null) {
final data = response.data.data;
if(payChecked.value){
var e = await launchUrlString("alipays://platformapi/startapp?appId=20000067&url=https://www.baidu.com");
} else {
fluwx.open(target: MiniProgram(
username: 'gh_9ea8d46add6f',
path:"pages/index/index?amount=0.01&paymentOrderId=${data!.paymentOrderId}&url=match-fee"
));
}
SmartDialog.showToast('下单成功');
} else {
// 响应失败,抛出异常
throw Exception(response.data.message ?? '获取数据失败');
}
} catch (e) {
print('玫瑰列表获取失败: $e');
SmartDialog.showToast('下单失败');
rethrow;
}
}
}