提交 517b3728 authored 作者: yueweilu's avatar yueweilu

二次支付

上级 38d60d25
......@@ -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
......@@ -222,6 +222,7 @@ abstract class LibraryAPI {
'title':title,
'content':content
},
showLoading: true
);
if (result.data is Map && result.data['is_success'] == 1){
return true;
......@@ -293,8 +294,9 @@ abstract class LibraryAPI {
'note_content':noteContent
},
showLoading: true
);
if (result.data is Map && result.data['is_success'] == 1){
if (result.data is Map && result.data['id']!= ''){
return true;
}
return false;
......
......@@ -470,7 +470,7 @@ abstract class MineAPI {
params: {
'ordersNum':ordersNum,
},
showLoading: true
// showLoading: true
);
if (result.data is! Map) return PayOrderModel();
return PayOrderModel.fromJson(result.data);
......@@ -485,7 +485,7 @@ abstract class MineAPI {
params: {
'ordersNum':ordersNum,
},
showLoading: true
// showLoading: true
);
if (result.data is Map && result.data['is_success'] == 1) {
return true;
......
......@@ -51,6 +51,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
final FlutterSoundRecorder _mRecorder = FlutterSoundRecorder();
// 录音开始
bool startRecording = false;
// 是否存在离线文件
bool isExistFile = false;
///------------------------------------------ 页面 生命周期--------------------------------------------------------
......@@ -194,6 +196,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
}
// 重置所有信息
void reset(){
clearAllDiscussInput();
clearDiscussInputImages();
clearDiscussAudios();
}
// 添加讨论图片
void addDiscussInputImages(String path){
discussInputImages.add(path);
......@@ -224,6 +233,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
discussInputAudios.clear();
titleInput.text = '';
contentInput.text = '';
isPublic = false;
Console.log('clearAllDiscussInput--------------------------------');
update();
}
......@@ -290,10 +300,17 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
positioning: notePosition,
noteContent: jsonEncode(contentMap)
);
if(result){
Toast.show('笔记发表成功');
}
else{
Toast.show('笔记发表失败');
}
titleInput.text = '';
contentInput.text = '';
// 重置所有信息
reset();
setShowChat(false);
return result;
}
......@@ -317,8 +334,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
Toast.show('话题发表失败');
}
titleInput.text = '';
contentInput.text = '';
// 重置所有信息
reset();
setShowChat(false);
return result;
......@@ -446,6 +463,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return await Directory('${directory.path}/$bookId').exists();
}
isExistFile = directoryExists;
print('不存在名为 "$bookId" 的文件夹');
return false;
......
......@@ -42,7 +42,7 @@ class _ReadPageState extends State<ReadPage> {
readController.getBookDown();
},
child: Text(
'离线阅读',
readController.isExistFile?'':'离线阅读',
style: TextStyle(
fontSize: 14.w, color: Colours.c3),
))
......@@ -62,11 +62,6 @@ class _ReadPageState extends State<ReadPage> {
color: Colors.white,
child: Stack(
children: [
// Container(
// height: 40,
// width: double.infinity,
// color: Colors.lightBlue,
// ),
InAppWebView(
initialUrlRequest: URLRequest(
url: Uri.parse('http://150.158.138.40:9200/read.html'),
......@@ -106,18 +101,22 @@ class _ReadPageState extends State<ReadPage> {
// 监听笔记回调
controller.addJavaScriptHandler(handlerName: 'noteCallBack', callback: (args){
readController.noteTitle = args.first;
readController.setShowChat(true);
readController.setChatType(1);
// readController.titleInput.text = args.toString();
});
// 监听百科回调
controller.addJavaScriptHandler(handlerName: 'baikeCallBack', callback: (args){
context.pushNamed(Routes.baiKe,queryParameters: {'keyword':args});
context.pushNamed(Routes.baiKe,queryParameters: {'keyword':args.first});
});
// 监听讨论回调
controller.addJavaScriptHandler(handlerName: 'discussCallBack', callback: (args){
readController.setShowChat(true);
readController.setChatType(0);
readController.titleInput.text = args.toString();
readController.titleInput.text = args.first.toString();
});
},
......
......@@ -18,6 +18,7 @@ class _ReadInputDiscussState extends State<ReadInputDiscuss> {
color: Colors.white,
margin: EdgeInsets.symmetric(horizontal: 15.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.symmetric(vertical: 10.w),
......
......@@ -63,23 +63,27 @@ class _ReadNotePageState extends State<ReadNotePage> {
),
BuildBook(bookDetailModel: widget.bookDetailModel,),
Expanded(
child: ListView.builder(
itemBuilder: (BuildContext context,int index){
NoteModel model = controller.notes[index];
// 划线
if(model.types == 1){
return BuildLine(model: model,);
}
// 高亮
else if(model.types == 2){
return BuildHigh(model: model,);
}
// 笔记
else if(model.types == 3){
return BuildNote(model: model,);
}
},
itemCount: controller.notes.length,
child: MediaQuery.removePadding(
context: context,
removeTop: true,
child: ListView.builder(
itemBuilder: (BuildContext context,int index){
NoteModel model = controller.notes[index];
// 划线
if(model.types == 1){
return BuildLine(model: model,);
}
// 高亮
else if(model.types == 2){
return BuildHigh(model: model,);
}
// 笔记
else if(model.types == 3){
return BuildNote(model: model,);
}
},
itemCount: controller.notes.length,
),
),
),
],
......
......@@ -62,7 +62,7 @@ class BuildNote extends StatelessWidget {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(model.noteContent?.text?.content??'',style: TextStyle(
Text(model.noteContent?.text?.privacyStatus == 0?'审核中': model.noteContent?.text?.content??'',style: TextStyle(
fontSize: 14.w,
height: 1.5,
// color: Colors.red,
......@@ -105,7 +105,32 @@ class BuildNote extends StatelessWidget {
childAspectRatio: 1
),
itemBuilder: (BuildContext context, int index) {
return CustomImage.network(url: model.noteContent?.image?[index].content??'',fit: BoxFit.cover,);
MediaModel? mediaModel = model.noteContent?.image?[index];
return Stack(
children: [
Positioned(
left: 0,
right:0,
top:0,
bottom: 0,
child: CustomImage.network(url: mediaModel?.content??'',fit: BoxFit.cover,)
),
Visibility(
visible: mediaModel?.privacyStatus == 0?true:false,
child: Positioned(
left: 0,
right:0,
top:0,
bottom: 0,
child: Container(
alignment: Alignment.center,
color: Colours.c9,
child: Text('审核中',style: TextStyle(fontSize: 14.w,height: 1.5,color: Colours.c3),),
)
),
),
],
);
},
itemCount: model.noteContent?.image?.length,
);
......
......@@ -3,8 +3,9 @@ part of user_order_awaiting;
/// 等待付款订单
class UserOrderAwaitingController extends GetxController {
final String orderNum;
final BuildContext context;
UserOrderAwaitingController(this.orderNum); // 订单编号
UserOrderAwaitingController(this.orderNum,this.context); // 订单编号
late OrderInfoModel model;
// 应付款、订单编号等
......@@ -57,36 +58,37 @@ class UserOrderAwaitingController extends GetxController {
}
Future<void> payOrder() async {
if (model.payType == 3){
final result = await MineAPI.coinPay(ordersNum: orderNum);
if (result){
Toast.show('订单支付完成');
getOrderInfo();
payOrderModel = await MineAPI.getPayInfo(ordersNum: orderNum);
// 支付宝
if (model.payType == 2){
final result = await tobias.isAliPayInstalled;
if(!result){
Toast.show('请先安装支付宝');
}
else{
requestAliPay();
}
}
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('请先安装微信');
}
// 微信
if (model.payType ==1){
final result = await fluwx.isWeChatInstalled;
if(!result){
Toast.show('请先安装微信');
}
else{
requestWechat();
}
else{
requestWechat();
}
}
// if (model.payType == 3){
// final result = await MineAPI.coinPay(ordersNum: orderNum);
// if (result){
// Toast.show('订单支付完成');
// getOrderInfo();
// }
// }
// else{
//
// }
}
// 支付宝支付
......@@ -128,7 +130,7 @@ class UserOrderAwaitingController extends GetxController {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: '');
if (result.paySuccess == 1){
Toast.show('订单支付完成');
getOrderInfo();
context.pop();
}
}
......
......@@ -13,7 +13,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
@override
void initState() {
myController = Get.put(UserOrderAwaitingController(widget.orderNum));
myController = Get.put(UserOrderAwaitingController(widget.orderNum,context));
super.initState();
}
......@@ -34,7 +34,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
return false;
},
child: GetBuilder<UserOrderAwaitingController>(
init: UserOrderAwaitingController(widget.orderNum),
init: UserOrderAwaitingController(widget.orderNum,context),
builder: (controller) => Scaffold(
appBar: CustomAppBar(
title: const Text('等待付款'),
......@@ -166,27 +166,27 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
SizedBox(
height: 39.w,
),
Container(
margin: EdgeInsets.symmetric(horizontal: 15.w),
height: 40.w,
decoration: BoxDecoration(
color: AppTheme.primary,
borderRadius: BorderRadius.circular(180.w),
border:
Border.all(color: Colours.cC31F4C, width: 0.5.w)),
child: Center(
child: GestureDetector(
onTap: () {
// print("保存昵称");
// context.pushNamed(Routes.orderEvaluate);
},
child: Text(
'立即支付 ¥${controller.model.finalTotalPrice}',
style: TextStyle(
fontWeight: Fonts.medium,
fontSize: 14.w,
color: Colours.cFF),
)),
GestureDetector(
onTap: (){
controller.payOrder();
},
child: Container(
margin: EdgeInsets.symmetric(horizontal: 15.w),
height: 40.w,
decoration: BoxDecoration(
color: AppTheme.primary,
borderRadius: BorderRadius.circular(180.w),
border:
Border.all(color: Colours.cC31F4C, width: 0.5.w)),
child: Center(
child: Text(
'立即支付 ¥${controller.model.finalTotalPrice}',
style: TextStyle(
fontWeight: Fonts.medium,
fontSize: 14.w,
color: Colours.cFF),
),
),
),
),
SizedBox(
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论