提交 e9bf922f authored 作者: maodou's avatar maodou

1:过期优惠券相关显示

2:紫荆币待支付界面
上级 d25f0f4d
......@@ -264,6 +264,8 @@ class OrderInfoModel {
OrderInfoModel({
this.id,
this.ordersnum,
this.goodsId,
this.goodsName,
this.totalPrice,
this.finalTotalPrice,
this.nums,
......@@ -282,6 +284,8 @@ class OrderInfoModel {
OrderInfoModel.fromJson(dynamic json) {
id = json['id'];
ordersnum = json['ordersnum'];
goodsId = json['goods_id'];
goodsName = json['goods_name'];
totalPrice = json['total_price'];
finalTotalPrice = json['final_total_price'];
nums = json['num'];
......@@ -304,6 +308,8 @@ class OrderInfoModel {
}
num? id;
String? ordersnum;
String? goodsId; //充值的凭证
String? goodsName;//充值名称
String? totalPrice;
String? finalTotalPrice;
num? nums;
......@@ -320,6 +326,8 @@ class OrderInfoModel {
List<BookListModel>? bookList;
OrderInfoModel copyWith({ num? id,
String? ordersnum,
String? goodsId,
String? goodsName,
String? totalPrice,
String? finalTotalPrice,
num? nums,
......@@ -336,6 +344,8 @@ class OrderInfoModel {
List<BookListModel>? bookList,
}) => OrderInfoModel( id: id ?? this.id,
ordersnum: ordersnum ?? this.ordersnum,
goodsId: ordersnum ?? this.goodsId,
goodsName: ordersnum ?? this.goodsName,
totalPrice: totalPrice ?? this.totalPrice,
finalTotalPrice: finalTotalPrice ?? this.finalTotalPrice,
nums: nums ?? this.nums,
......@@ -355,6 +365,8 @@ class OrderInfoModel {
final map = <String, dynamic>{};
map['id'] = id;
map['ordersnum'] = ordersnum;
map['goods_id'] = goodsId;
map['goods_name'] = goodsName;
map['total_price'] = totalPrice;
map['final_total_price'] = finalTotalPrice;
map['num'] = nums;
......
......@@ -42,7 +42,11 @@ class UserCouponController extends GetxController {
);
// 如果是刷新 清理数据
if (isRefresh) coupons.clear();
coupons.addAll(result);
for(CouponModel model in result){
model.type=type;
coupons.add(model);
}
// coupons.addAll(result);
_page ++;
_noMore = result.length < _limit;
update();
......
......@@ -15,83 +15,91 @@ class BuiltCoin extends StatelessWidget {
}else if(model.status==3){
status ='已完成';
}
return Container(
margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 10.w),
padding: EdgeInsets.only(left: 11.5.w),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.w),
color: Colors.white,
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: Offset(1.5.w, 0),
blurRadius: 7.w,
spreadRadius: 0.w,
),
],
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(top: 19.w, bottom: 19.w, right: 16.5.w),
child: Image.asset(
'assets/images/coin.png',
height: 27.w,
width: 27.w,
return GestureDetector(
onTap: () {
if(model.status == 1){
context.pushNamed(Routes.orderCoinAwaiting,
queryParameters: {'orderNum': model.ordersnum});
}
},
child: Container(
margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 10.w),
padding: EdgeInsets.only(left: 11.5.w),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.w),
color: Colors.white,
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: Offset(1.5.w, 0),
blurRadius: 7.w,
spreadRadius: 0.w,
),
),
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: 12.w,
),
Text(
model.createTime.toString(),
style: TextStyle(fontSize: 12.w, color: Colours.c9),
),
SizedBox(
height: 4.w,
),
Text(
'充值紫荆币',
style: TextStyle(
fontSize: 13.w,
color: Colours.c3,
fontWeight: Fonts.medium),
)
],
],
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(top: 19.w, bottom: 19.w, right: 16.5.w),
child: Image.asset(
'assets/images/coin.png',
height: 27.w,
width: 27.w,
),
Container(
margin: EdgeInsets.only(right: 15.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
),
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
SizedBox(
height: 6.5.w,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
height: 12.w,
),
Text(
model.createTime.toString(),
style: TextStyle(fontSize: 12.w, color: Colours.c9),
),
SizedBox(
height: 4.w,
),
Text(
'充值紫荆币',
style: TextStyle(
fontSize: 13.w,
color: Colours.c3,
fontWeight: Fonts.medium),
)
],
),
Container(
margin: EdgeInsets.only(right: 15.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
SizedBox(
height: 6.5.w,
),
Text(status, style: TextStyle(fontSize: 13.w, color: Colours.c9),),
SizedBox(height: 6.5.w,),
Text(
${model.finalTotalPrice}',
style: TextStyle(
fontSize: 14.w,
color: Colours.cAB1941,
fontWeight: Fonts.medium),
)
],
),
),
Text(status, style: TextStyle(fontSize: 13.w, color: Colours.c9),),
SizedBox(height: 6.5.w,),
Text(
${model.finalTotalPrice}',
style: TextStyle(
fontSize: 14.w,
color: Colours.cAB1941,
fontWeight: Fonts.medium),
)
],
),
),
],
)),
],
],
)),
],
),
),
);
}
......
part of user_order_coin_awaiting;
/// 紫荆币等待付款订单
class UserOrderCoinAwaitingController extends GetxController {
final String orderNum;
UserOrderCoinAwaitingController(this.orderNum); // 订单编号
late OrderInfoModel model;
// 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = [];
// 支付宝
Tobias tobias = Tobias();
// 微信
Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel;
@override
void onReady() {
getOrderInfo();
super.onReady();
}
/// 取消订单
void cancelPay() async {
final result = await MineAPI.cancelPay(ordersnum: orderNum);
if (result) {
Toast.show('取消成功');
update();
}
}
/// 获取订单信息
Future<void> getOrderInfo() async {
model = await MineAPI.getOrderInfo(orderNum: orderNum);
String payWay ='';
if(model.payType==1){
payWay='微信';
}else if(model.payType==2){
payWay='支付宝';
}else if(model.payType==3){
payWay='紫荆币';
}
orderAwaitings = [
OrderCompletedModel(name: '订单编号',value: model.ordersnum.toString()),
OrderCompletedModel(name: '支付方式',value: payWay),
OrderCompletedModel(name: '支付时间',value: model.payTime.toString()),
];
update();
}
Future<void> payOrder() async {
if (model.payType == 3){
final result = await MineAPI.coinPay(ordersNum: orderNum);
if (result){
Toast.show('订单支付完成');
getOrderInfo();
}
}
else{
payOrderModel = await MineAPI.getPayInfo(ordersNum: orderNum);
// 支付宝
if (model.payType == 2){
final result = await tobias.isAliPayInstalled;
if(!result){
Toast.show('请先安装支付宝');
}
else{
requestAliPay();
}
}
// 微信
if (model.payType ==1){
final result = await fluwx.isWeChatInstalled;
if(!result){
Toast.show('请先安装微信');
}
else{
requestWechat();
}
}
}
}
// 支付宝支付
void requestAliPay(){
print('================================================================${payOrderModel.encryptionOrder!}');
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
if (payResult['resultStatus'] == '9000') {
requestOrderStatus();
} else {
Toast.show(payResult['memo'].toString());
}
});
}
// 微信支付
void requestWechat(){
Payment payment = Payment(
appId: payOrderModel.appid??'',
partnerId: payOrderModel.partnerid??'',
prepayId: payOrderModel.prepayid??'',
packageValue: payOrderModel.package??'',
nonceStr: payOrderModel.noncestr??'',
timestamp: payOrderModel.timestamp!.toInt(),
sign: payOrderModel.sign??''
);
fluwx.pay(which: payment);
fluwx.addSubscriber((response) {
if (response.errCode == 0) {
requestOrderStatus();
}
else{
Toast.show('${response.errStr}');
}
});
}
void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: '');
if (result.paySuccess == 1){
Toast.show('订单支付完成');
getOrderInfo();
}
}
}
library user_order_coin_awaiting;
import 'package:flutter/material.dart';
import 'package:flutter_book/theme.dart';
import 'package:flutter_book/utils/index.dart';
import 'package:flutter_book/widgets/index.dart';
import 'package:fluwx/fluwx.dart';
import 'package:get/get.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_state_manager/src/simple/get_state.dart';
import 'package:go_router/go_router.dart';
import 'package:tobias/tobias.dart';
import '../../apis/index.dart';
import '../../models/index.dart';
part 'view.dart';
part 'controller.dart';
\ No newline at end of file
差异被折叠。
......@@ -15,7 +15,7 @@ class UserOrderEvaluatePage extends StatefulWidget {
State<UserOrderEvaluatePage> createState() => _UserOrderEvaluatePageState();
}
class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with AutomaticKeepAliveClientMixin{
late UserOrderEvaluateController myController;
List<TextEditingController> controllers = [];
List<OrderEvaluate> orderEvaluates = [];
......@@ -290,4 +290,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
),
);
}
@override
bool get wantKeepAlive => true;
}
......@@ -33,6 +33,7 @@ import 'package:flutter_book/pages/user_nick/index.dart';
import 'package:flutter_book/pages/user_notes/index.dart';
import 'package:flutter_book/pages/user_notes_des/index.dart';
import 'package:flutter_book/pages/user_order_awaiting/index.dart';
import 'package:flutter_book/pages/user_order_coin_awaiting/index.dart';
import 'package:flutter_book/pages/user_order_completed/index.dart';
import 'package:flutter_book/pages/user_order_refunded/index.dart';
import 'package:flutter_book/pages/user_point/index.dart';
......
......@@ -108,8 +108,10 @@ abstract class Routes {
static const order= 'order';
// 已完成订单
static const orderCompleted= 'order_completed';
// 待付款订单
// 图书待付款订单
static const orderAwaiting= 'order_awaiting';
// 紫荆币待付款订单
static const orderCoinAwaiting= 'order_coin_awaiting';
// 已退款订单
static const orderRefunded= 'order_refunded';
// 搜索订单
......@@ -528,7 +530,7 @@ abstract class Routes {
child: UserOrderCompletedPage(orderNum: state.uri.queryParameters['orderNum'].toString())
)
),
GoRoute( // 待付款订单
GoRoute( // 图书待付款订单
path: '/$orderAwaiting',
name: orderAwaiting,
pageBuilder: (context, state) =>CupertinoPage(
......@@ -537,6 +539,15 @@ abstract class Routes {
child: UserOrderAwaitingPage(orderNum: state.uri.queryParameters['orderNum'].toString())
)
),
GoRoute( // 紫荆币待付款订单
path: '/$orderCoinAwaiting',
name: orderCoinAwaiting,
pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(),
key: state.pageKey,
child: UserOrderCoinAwaitingPage(orderNum: state.uri.queryParameters['orderNum'].toString())
)
),
GoRoute( // 已退款订单
path: '/$orderRefunded',
name: orderRefunded,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论