提交 e92deee8 authored 作者: yueweilu's avatar yueweilu

支付前的逻辑

上级 0742a081
......@@ -4,5 +4,5 @@ keyPassword=123456
keyAlias=zijing
#storeFile=/Users/apple/zijiing_key.jks
storeFile=zijiing_key.jks
\ No newline at end of file
storeFile=/Users/apple/zijiing_key.jks
#storeFile=zijiing_key.jks
\ No newline at end of file
......@@ -477,6 +477,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = MYN43C5WGE;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "紫荆数智学堂";
......@@ -644,6 +645,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = MYN43C5WGE;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "紫荆数智学堂";
......@@ -664,6 +666,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = MYN43C5WGE;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "紫荆数智学堂";
......
......@@ -52,9 +52,10 @@ class MyApp extends StatelessWidget {
behavior: _NoShadowScrollBehavior(),
child: OKToast(
radius: 8.0,
backgroundColor: AppTheme.primary,
backgroundColor: const Color(0xFF000000).withOpacity(0.2),
textPadding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0),
position: ToastPosition.bottom,
// textStyle: ,
child: child ?? const Material(),
),
);
......
......@@ -70,23 +70,30 @@ class CreditPointModel {
class ShowModel {
ShowModel({
this.couponSwitch,
this.integralSwitch,});
this.integralSwitch,
this.membersBean,
});
ShowModel.fromJson(dynamic json) {
couponSwitch = json['coupon_switch'];
integralSwitch = json['integral_switch'];
membersBean = json['members_bean'];
}
String? couponSwitch;
String? integralSwitch;
String? membersBean;
ShowModel copyWith({ String? couponSwitch,
String? integralSwitch,
String? membersBean,
}) => ShowModel( couponSwitch: couponSwitch ?? this.couponSwitch,
integralSwitch: integralSwitch ?? this.integralSwitch,
membersBean: membersBean ?? this.integralSwitch
);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['coupon_switch'] = couponSwitch;
map['integral_switch'] = integralSwitch;
map['members_bean'] = membersBean;
return map;
}
......@@ -161,7 +168,10 @@ class PayOrderModel {
this.timestamp,
this.sign,
this.ordersnum,
this.encryptionOrder,});
this.encryptionOrder,
this.code,
String? msg,
});
PayOrderModel.fromJson(dynamic json) {
appid = json['appid'];
......@@ -173,6 +183,8 @@ class PayOrderModel {
sign = json['sign'];
ordersnum = json['ordersnum'];
encryptionOrder = json['encryption_order'];
code = json['code'];
msg = json['msg'];
}
String? appid;
String? partnerid;
......@@ -183,6 +195,8 @@ class PayOrderModel {
String? sign;
String? ordersnum;
String? encryptionOrder;
num? code;
String? msg;
PayOrderModel copyWith({ String? appid,
String? partnerid,
String? prepayid,
......@@ -192,6 +206,8 @@ class PayOrderModel {
String? sign,
String? ordersnum,
String? encryptionOrder,
num? code,
String? msg,
}) => PayOrderModel( appid: appid ?? this.appid,
partnerid: partnerid ?? this.partnerid,
prepayid: prepayid ?? this.prepayid,
......@@ -201,6 +217,8 @@ class PayOrderModel {
sign: sign ?? this.sign,
ordersnum: ordersnum ?? this.ordersnum,
encryptionOrder: encryptionOrder ?? this.encryptionOrder,
code: code ?? this.code,
msg: msg?? this.msg,
);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
......@@ -213,6 +231,8 @@ class PayOrderModel {
map['sign'] = sign;
map['ordersnum'] = ordersnum;
map['encryption_order'] = encryptionOrder;
map['code'] = code;
map['msg'] = msg;
return map;
}
......
......@@ -39,6 +39,14 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
super.onClose();
}
/// 加入书架
void addCart(String bookId) async {
final result = await ShopAPI.addCart(bookId: bookId);
if(result){
Toast.show('添加购物车成功');
}
}
/// 获取目录信息
void _getChapters() async {
chapters = await LibraryAPI.chapters(bookId: bookId);
......
......@@ -98,7 +98,12 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
Expanded(
child: GestureDetector(
onTap: (){
if(controller.bookDetails.isHave ==1){
context.pushNamed(Routes.studyReport,queryParameters: {'book_id':widget.bookId});
}
else{
controller.addCart(widget.bookId);
}
},
child: Container(
alignment: Alignment.center,
......@@ -126,7 +131,22 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
/// 没有购买并且没有试读直接跳转 购买页
bool noTryRead = true;
if(controller.bookDetails.isHave == 0 && noTryRead){
context.pushNamed(Routes.bookPay);
List<CourseModel> buy = [];
CourseModel model= CourseModel(
bookId: controller.bookDetails.bookId,
price: controller.bookDetails.price,
vipPrice: controller.bookDetails.vipPrice,
img: controller.bookDetails.img,
bookName: controller.bookDetails.bookName,
cartId: 0,
status: 1,
selected: true
);
buy.add(model);
context.pushNamed(Routes.bookPay,extra: buy);
}
else {
context.pushNamed(Routes.web);
}
},
child: Container(
......
......@@ -113,9 +113,11 @@ class BookPayController extends GetxController {
if (model.status == 1){
if (model.selected == true){
price = price + Decimal.parse(model.vipPrice??'0.00');
print('==============11111111111==================$price');
}
}
}
print('================================$price');
return price.toDouble();
}
......@@ -145,7 +147,11 @@ class BookPayController extends GetxController {
bookIdsList.add(tempMap);
}
// 书豆支付的话先判断书豆数量
if (finalPrice.toDouble() > double.parse(showModel.membersBean.toString())){
Toast.show('紫金币不足,请先充值紫荆币');
return;
}
final result = await CommonAPI.createOrder(
bookIdsList:jsonEncode(bookIdsList) ,
totalPrice: finalPrice.toString(),
......@@ -155,6 +161,26 @@ class BookPayController extends GetxController {
);
payOrderModel = result;
// 微信
if(payModel.type == 1){
String orderNumber = payOrderModel.ordersnum.toString();
//TODO: 拿到订单编号进行微信支付操作
}
// 支付宝
else if(payModel.type == 2){
String orderNumber = payOrderModel.ordersnum.toString();
//TODO: 拿到订单编号进行支付宝支付操作
}
// 书豆
else if (payModel.type == 3){
if(payOrderModel.code == -1){
Toast.show('紫金币不足,请先充值紫荆币');
}
String orderNumber = payOrderModel.ordersnum.toString();
//TODO: 拿到订单编号进行后续操作
}
}
......
......@@ -152,7 +152,7 @@ class BookshopController extends GetxController {
);
// 如果是刷新 清理数据
if (isRefresh) carts.clear();
carts.addAll(_test());
// carts.addAll(_test());
carts.addAll(result);
_page ++;
_noMore = result.length < _limit;
......
......@@ -26,8 +26,6 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta
int _page = 1;
bool _noMore = false;
final String price = '200';
......@@ -38,7 +36,7 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta
page: _page,
limit: _limit,
type: tag,
price: price
price: payController.finalPrice.toString()
);
for(CouponModel model in result.list!) {
print('================================${tag}');
......
......@@ -20,8 +20,10 @@ class _ReadPageState extends State<ReadPage> {
return GetBuilder<ReadController>(
init: ReadController(),
builder: (readController) => Scaffold(
// appBar: AppBar(title:const Text('章节名称'),),
body: Stack(
appBar: AppBar(title:const Text('阅读'),),
body: Container(
color: Colors.white,
child: Stack(
children: [
Container(
height: 40,
......@@ -132,6 +134,7 @@ class _ReadPageState extends State<ReadPage> {
],
),
),
),
);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论