1、订单页查询定点杆状态

This commit is contained in:
cuiyouliang 2025-09-04 18:08:01 +08:00
parent fd71158f9d
commit 1903385ff3
3 changed files with 41 additions and 30 deletions

View File

@ -21,4 +21,7 @@ class ShopApi {
//
static const String goodsOrderDetail = '/app/order';
//
static const String goodsOrderStatus= '/trans/easypay/paymentQuery';
}

View File

@ -9,6 +9,7 @@ import 'package:loopin/utils/wxsdk.dart';
import 'package:loopin/utils/index.dart';
import '../../behavior/custom_scroll_behavior.dart';
import '../../utils/lifecycle_handler.dart';
class OrderDetail extends StatefulWidget {
const OrderDetail({super.key});
@ -28,6 +29,37 @@ class _OrderDetailState extends State<OrderDetail> with SingleTickerProviderStat
super.initState();
_orderId = Get.arguments;
getOrderDetail(orderId: _orderId);
LifecycleHandler.onAppResumed = _onAppResumed;
}
@override
void dispose() {
//
LifecycleHandler.onAppResumed = null;
super.dispose();
}
void _onAppResumed() {
print('App回到前台刷新订单状态,订单Id${_orderId}');
getOrderDetail(orderId: _orderId); //
getOrderRealStatus(orderId: _orderId); //
_showPaymentResultDialog(); //
}
//
void getOrderRealStatus({required String orderId}) async {
try {
final res = await Http.get('${ShopApi.goodsOrderStatus}/$orderId');
// transState
var orderStatus = res['data']['transState'];
print('状态-------------->${orderStatus}');
if (orderStatus == 2) { //
MyDialog.toast('支付成功');
} else {
MyDialog.toast('支付尚未完成,请稍后查看');
}
} catch (e) {
print('报错-------------->${e}');
}
}
//
@ -107,7 +139,7 @@ class _OrderDetailState extends State<OrderDetail> with SingleTickerProviderStat
child: OutlinedButton(
onPressed: () {
Navigator.of(context).pop();
_checkOrderStatus();
getOrderRealStatus(orderId: _orderId); //
},
style: OutlinedButton.styleFrom(
backgroundColor: Colors.white,
@ -128,7 +160,7 @@ class _OrderDetailState extends State<OrderDetail> with SingleTickerProviderStat
child: ElevatedButton(
onPressed: () {
Navigator.of(context).pop();
_checkOrderStatus();
getOrderRealStatus(orderId: _orderId); //
},
style: ElevatedButton.styleFrom(
backgroundColor: Color(0xFFFF5000),
@ -153,30 +185,6 @@ class _OrderDetailState extends State<OrderDetail> with SingleTickerProviderStat
});
}
//
void _checkOrderStatus() async {
try {
//
final res = await Http.get('${ShopApi.goodsOrderDetail}/$_orderId');
if (res['data'] != null) {
setState(() {
orderGoodsInfo = res['data'];
});
// todo
int status = orderGoodsInfo?['orderStatus'] ?? 0;
if (status == 2) { //
MyDialog.toast('支付成功');
} else {
MyDialog.toast('支付尚未完成,请稍后查看');
}
}
} catch (e) {
print('查询订单状态失败: $e');
MyDialog.toast('查询订单状态失败,请稍后重试');
}
}
//
String getOrderStatusText(int status) {
switch (status) {
@ -242,10 +250,6 @@ class _OrderDetailState extends State<OrderDetail> with SingleTickerProviderStat
onPressed: () {
// pages/index/index
Wxsdk.openMiniApp(orderId: _orderId);
//
Future.delayed(Duration(milliseconds: 1500), () {
_showPaymentResultDialog();
});
},
style: ButtonStyle(
backgroundColor: WidgetStateProperty.all(Color(0xff07c160)),

View File

@ -4,6 +4,7 @@ import 'package:loopin/IM/im_service.dart';
class LifecycleHandler with WidgetsBindingObserver {
static bool isInForeground = true;
static DateTime appBecameActiveTime = DateTime.now();
static VoidCallback? onAppResumed; //
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
@ -11,6 +12,9 @@ class LifecycleHandler with WidgetsBindingObserver {
case AppLifecycleState.resumed:
isInForeground = true;
appBecameActiveTime = DateTime.now();
if (onAppResumed != null) {
onAppResumed!();
}
logger.i("App 回到前台:$appBecameActiveTime");
break;
case AppLifecycleState.inactive: