Commit 4df36adf313514785534956fd3ea12b427222bf2

Authored by weixin_45529955
1 parent d8aa8c04

买单前送消费金 OK

... ... @@ -36,6 +36,7 @@ class ReturnMoneySunModel {
String? isTogether;
TogetherJsonModel? togetherJson;
String? cdate;
BeforePayJson? beforePayJson;
ReturnMoneySunModel(
{this.id,
... ... @@ -44,7 +45,8 @@ class ReturnMoneySunModel {
this.returnJson,
this.isTogether,
this.togetherJson,
this.cdate});
this.cdate,
this.beforePayJson});
ReturnMoneySunModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
... ... @@ -60,6 +62,15 @@ class ReturnMoneySunModel {
}
}
if (json['before_pay_json'] != null && json['before_pay_json'] != '') {
if (json['before_pay_json'] is Map) {
beforePayJson = new BeforePayJson.fromJson(json['before_pay_json']);
} else {
beforePayJson =
new BeforePayJson.fromJson(jsonDecode(json['before_pay_json']));
}
}
isTogether = json['is_together'];
if (json['together_json'] != null && json['together_json'] != '') {
... ... @@ -175,3 +186,84 @@ class TogetherJsonModel {
return data;
}
}
class BeforePayJson {
NewUser? newUser;
NewUser? oldUser;
String? isOld;
String? isNew;
BeforePayJson({this.newUser, this.oldUser, this.isOld, this.isNew});
BeforePayJson.fromJson(Map<String, dynamic> json) {
if (json['new'] is Map) {
newUser = json['new'] != null ? new NewUser.fromJson(json['new']) : null;
} else {
newUser = json['new'] != null
? new NewUser.fromJson(jsonDecode(json['new']))
: null;
}
if (json['old'] is Map) {
oldUser = json['old'] != null ? new NewUser.fromJson(json['old']) : null;
} else {
oldUser = json['old'] != null ? new NewUser.fromJson(jsonDecode(json['old'])) : null;
}
isOld = json['is_old'];
isNew = json['is_new'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.newUser != null) {
data['new'] = this.newUser!.toJson();
}
if (this.oldUser != null) {
data['old'] = this.oldUser!.toJson();
}
data['is_old'] = this.isOld;
data['is_new'] = this.isNew;
return data;
}
}
class NewUser {
String? stime;
String? etime;
String? isFix;
String? randomMin;
String? randomMax;
String? fixPrice;
NewUser(
{this.stime,
this.etime,
this.isFix,
this.randomMin,
this.randomMax,
this.fixPrice});
NewUser.fromJson(Map<String, dynamic> json) {
stime = json['stime'];
etime = json['etime'];
isFix = json['is_fix'];
randomMin = json['random_min'];
randomMax = json['random_max'];
fixPrice = json['fix_price'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['stime'] = this.stime;
data['etime'] = this.etime;
data['is_fix'] = this.isFix;
data['random_min'] = this.randomMin;
data['random_max'] = this.randomMax;
data['fix_price'] = this.fixPrice;
return data;
}
}
... ...
... ... @@ -661,4 +661,7 @@ class HttpUrl {
static const get_free_meal_config_by_seller =
"?service=App.Activity.GetFreeMealConfigBySeller"; // 获取当餐免费的配置信息
}
... ...
... ... @@ -81,9 +81,9 @@ class _FinanceManageHomePageState extends State<FinanceManageHomePage> {
NavigatorUtil.goReturnMoneyPage(context);
}),
// _item('买单前送消费金', () {
// NavigatorUtil.goGiveMoneyBeforePayPage(context);
// }),
_item('买单前送消费金', () {
NavigatorUtil.goGiveMoneyBeforePayPage(context);
}),
_item('交易记录', () {
NavigatorUtil.goTransactionRecordHomePage(context);
... ...
import 'dart:convert';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
... ... @@ -68,176 +70,228 @@ class _GiveMoneyBeforePayPageState extends State<GiveMoneyBeforePayPage> {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
// _getConsumeConfig();
_getConsumeConfig();
});
}
// _getConsumeConfig() async {
// Map<String, String?> pramas = {
// 'sellerid':
// Provider.of<UserModel>(context, listen: false).user!.sellerid!,
// };
// await financeProvider!.getConsumeConfig(context, pramas);
// if (financeProvider!.returnMoneySunModel != null) {
// isOld =
// financeProvider!.returnMoneySunModel?.isReturn == '1' ? true : false;
// if (financeProvider!.returnMoneySunModel!.returnJson?.stime != null) {
// DateTime dateTimes = DateTime.fromMillisecondsSinceEpoch(int.parse(
// financeProvider!.returnMoneySunModel!.returnJson!.stime
// .toString()) *
// 1000);
// fromDateNew =
// DateUtil.formatDate(dateTimes, format: DateFormats.y_mo_d);
// }
// if (financeProvider!.returnMoneySunModel!.returnJson?.etime != null) {
// DateTime dateTimee = DateTime.fromMillisecondsSinceEpoch(int.parse(
// financeProvider!.returnMoneySunModel!.returnJson!.etime
// .toString()) *
// 1000);
// endDateNew =
// DateUtil.formatDate(dateTimee, format: DateFormats.y_mo_d);
// }
// isRandom = financeProvider!.returnMoneySunModel!.returnJson?.isRandom == '1'
// ? true
// : false;
// ratioC.text =
// financeProvider!.returnMoneySunModel!.returnJson?.ratioData ?? '';
// ladderSelectFree =
// financeProvider!.returnMoneySunModel!.returnJson?.ladderData ?? [];
// if (ladderSelectFree.length == 0) {
// LadderData ladderReturnMoneyModel = LadderData();
// ladderSelectFree.add(ladderReturnMoneyModel);
// }
// isCoexist = financeProvider!.returnMoneySunModel!.isTogether == '1'
// ? true
// : false;
// proportionC.text =
// financeProvider!.returnMoneySunModel!.togetherJson?.ratioData ?? '';
// setState(() {});
// }
// }
_getConsumeConfig() async {
Map<String, String?> pramas = {
'sellerid':
Provider.of<UserModel>(context, listen: false).user!.sellerid!,
};
await financeProvider!.getConsumeConfig(context, pramas);
if (financeProvider!.returnMoneySunModel?.beforePayJson != null) {
isNew = financeProvider!.returnMoneySunModel?.beforePayJson?.isNew == '1'
? true
: false;
isOld = financeProvider!.returnMoneySunModel?.beforePayJson?.isOld == '1'
? true
: false;
if (financeProvider!.returnMoneySunModel!.beforePayJson?.newUser !=
null) {
DateTime dateTimes = DateTime.fromMillisecondsSinceEpoch(int.parse(
financeProvider!
.returnMoneySunModel!.beforePayJson!.newUser!.stime!
.toString()) *
1000);
fromDateNew =
DateUtil.formatDate(dateTimes, format: DateFormats.y_mo_d);
DateTime dateTimeEnd = DateTime.fromMillisecondsSinceEpoch(int.parse(
financeProvider!
.returnMoneySunModel!.beforePayJson!.newUser!.etime!
.toString()) *
1000);
endDateNew =
DateUtil.formatDate(dateTimeEnd, format: DateFormats.y_mo_d);
isRandomNew = financeProvider!
.returnMoneySunModel!.beforePayJson!.newUser!.isFix ==
'1'
? false
: true;
fixCNew.text = financeProvider!
.returnMoneySunModel!.beforePayJson!.newUser!.fixPrice ??
'';
minCNew.text = financeProvider!
.returnMoneySunModel!.beforePayJson!.newUser!.randomMin ??
'';
maxCNew.text = financeProvider!
.returnMoneySunModel!.beforePayJson!.newUser!.randomMax ??
'';
}
if (financeProvider!.returnMoneySunModel!.beforePayJson?.oldUser !=
null) {
DateTime dateTimes = DateTime.fromMillisecondsSinceEpoch(int.parse(
financeProvider!
.returnMoneySunModel!.beforePayJson!.oldUser!.stime!
.toString()) *
1000);
fromDateOld =
DateUtil.formatDate(dateTimes, format: DateFormats.y_mo_d);
DateTime dateTimeEnd = DateTime.fromMillisecondsSinceEpoch(int.parse(
financeProvider!
.returnMoneySunModel!.beforePayJson!.oldUser!.etime!
.toString()) *
1000);
endDateOld =
DateUtil.formatDate(dateTimeEnd, format: DateFormats.y_mo_d);
isRandomOld = financeProvider!
.returnMoneySunModel!.beforePayJson!.oldUser!.isFix ==
'1'
? false
: true;
fixCOld.text = financeProvider!
.returnMoneySunModel!.beforePayJson!.oldUser!.fixPrice ??
'';
minC.text = financeProvider!
.returnMoneySunModel!.beforePayJson!.oldUser!.randomMin ??
'';
maxC.text = financeProvider!
.returnMoneySunModel!.beforePayJson!.oldUser!.randomMax ??
'';
}
setState(() {});
}
}
//提交接口
// _setConsumeConfig() async {
// FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
// Map<String, String?> fullReductionData = {};
// if (isOld) {
// if (fromDateNew == '选择日期') {
// Utils.showToast('请选择活动的开始时间!');
// return;
// }
// if (endDateNew == '选择日期') {
// Utils.showToast('请选择活动的结束时间!');
// return;
// }
// if (isRandom) {
// //按照比例返还
// //需要填写比例百分比
// if (ratioC.text.trim().length == 0) {
// Utils.showToast('请输入返还消费金占实际支付金额的百分比!');
// return;
// }
// fullReductionData['is_ratio'] = '1';
// fullReductionData['ratio_data'] = ratioC.text;
// } else {
// //按阶梯返还
// //没有数据时,提示新增阶梯设置数据
// if (ladderSelectFree.length == 0) {
// Utils.showToast('请点击增加阶梯设置数据!');
// return;
// }
// //判断阶梯里面的数据 实际支付金额是否输入
// bool canPrice =
// ladderSelectFree.any((e) => e.givePriceC.text.trim().length == 0);
// if (canPrice) {
// int index = ladderSelectFree
// .indexWhere((e) => e.givePriceC.text.trim().length == 0);
// Utils.showToast('请输入阶梯(${index + 1})的实际支付金额!');
// return;
// }
// //判断返回消费金额是否输入
// bool can =
// ladderSelectFree.any((e) => e.backPriceC.text.trim().length == 0);
// if (can) {
// int index = ladderSelectFree
// .indexWhere((e) => e.backPriceC.text.trim().length == 0);
// Utils.showToast('请输入阶梯(${index + 1})的返还消费金额!');
// return;
// }
// fullReductionData['is_ratio'] = '0'; //按阶梯
// List<Map<String, String>> ladderData = [];
// ladderSelectFree.forEach((e) {
// Map<String, String> price = {
// 'give_price': e.givePriceC.text,
// 'back_price': e.backPriceC.text,
// };
// ladderData.add(price);
// });
// fullReductionData['ladder_data'] =
// (ladderData.length == 0 ? null : jsonEncode(ladderData));
// }
// //设置数据
// if (fromDateNew != '选择日期') {
// String fromfull = fromDateNew + ' 00:00:00';
// String sfull =
// '${(DateUtil.getDateMsByTimeStr(fromfull)! / 1000).floor()}';
// fullReductionData['stime'] = sfull;
// }
// if (endDateNew != '选择日期') {
// String endfull = endDateNew + ' 23:59:59';
// String efull =
// '${(DateUtil.getDateMsByTimeStr(endfull)! / 1000).floor()}';
// fullReductionData['etime'] = efull;
// }
// }
// if (proportionC.text.trim().length == 0) {
// Utils.showToast('请输入消费金支付占实际消费金额的百分比!');
// return;
// }
// Map<String, String?> togetherJson = {};
// togetherJson['is_coexist'] = isCoexist ? '1' : '0';
// togetherJson['ratio_data'] = proportionC.text;
// Map<String, String?> pramas = {
// 'sellerid':
// Provider.of<UserModel>(context, listen: false).user!.sellerid!,
// 'is_return': isOld ? '1' : '0',
// 'return_json':
// fullReductionData.length == 0 ? null : jsonEncode(fullReductionData),
// 'is_together': isCoexist ? '1' : '0',
// 'together_json':
// togetherJson.length == 0 ? null : jsonEncode(togetherJson),
// };
// bool success = await financeProvider!.setConsumeConfig(context, pramas);
// if (success) {
// if (Navigator.canPop(context)) {
// Navigator.pop(context);
// }
// }
// }
_setConsumeConfig() async {
FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
if (isNew) {
// 新用户买单开关打开
if (fromDateNew == '选择日期') {
Utils.showToast('请选择新用户活动的开始时间!');
return;
}
if (endDateNew == '选择日期') {
Utils.showToast('请选择新用户活动的结束时间!');
return;
}
if (isRandomNew) {
//随机
if (minCNew.text.trim().length == 0) {
Utils.showToast('请输入新用户随机金额的最少值!');
return;
}
if (maxCNew.text.trim().length == 0) {
Utils.showToast('请输入新用户随机金额的最多值!');
return;
}
} else {
//固定
if (fixCNew.text.trim().length == 0) {
Utils.showToast('请设置新用户固定金额!');
return;
}
}
}
//设置数据
Map<String, String> newData = {};
if (fromDateNew != '选择日期') {
String fromfull = fromDateNew + ' 00:00:00';
String sfull =
'${(DateUtil.getDateMsByTimeStr(fromfull)! / 1000).floor()}';
newData['stime'] = sfull;
}
if (endDateNew != '选择日期') {
String endfull = endDateNew + ' 23:59:59';
String efull =
'${(DateUtil.getDateMsByTimeStr(endfull)! / 1000).floor()}';
newData['etime'] = efull;
}
newData['is_fix'] = isRandomNew ? '0' : '1';
if (isRandomNew) {
newData['random_min'] = minCNew.text;
newData['random_max'] = maxCNew.text;
} else {
newData['fix_price'] = fixCNew.text;
}
if (isOld) {
// 老用户买单开关打开
if (fromDateOld == '选择日期') {
Utils.showToast('请选择老用户活动的开始时间!');
return;
}
if (endDateOld == '选择日期') {
Utils.showToast('请选择老用户活动的结束时间!');
return;
}
if (isRandomOld) {
//随机
if (minC.text.trim().length == 0) {
Utils.showToast('请输入老用户随机金额的最少值!');
return;
}
if (maxC.text.trim().length == 0) {
Utils.showToast('请输入老用户随机金额的最多值!');
return;
}
} else {
//固定
if (fixCOld.text.trim().length == 0) {
Utils.showToast('请设置老用户固定金额!');
return;
}
}
}
//设置数据
Map<String, String> oldData = {};
if (fromDateOld != '选择日期') {
String fromfull = fromDateOld + ' 00:00:00';
String sfull =
'${(DateUtil.getDateMsByTimeStr(fromfull)! / 1000).floor()}';
oldData['stime'] = sfull;
}
if (endDateOld != '选择日期') {
String endfull = endDateOld + ' 23:59:59';
String efull =
'${(DateUtil.getDateMsByTimeStr(endfull)! / 1000).floor()}';
oldData['etime'] = efull;
}
oldData['is_fix'] = isRandomOld ? '0' : '1';
if (isRandomOld) {
oldData['random_min'] = minC.text;
oldData['random_max'] = maxC.text;
} else {
oldData['fix_price'] = fixCOld.text;
}
Map<String, String?> beforePayJson = {};
beforePayJson['new'] = jsonEncode(newData);
beforePayJson['old'] = jsonEncode(oldData);
beforePayJson['is_old'] = isOld ? '1' : '0';
beforePayJson['is_new'] = isNew ? '1' : '0';
Map<String, String?> pramas = {
'sellerid':
Provider.of<UserModel>(context, listen: false).user!.sellerid!,
'before_pay_json': jsonEncode(beforePayJson),
};
bool success = await financeProvider!.setConsumeConfig(context, pramas);
if (success) {
if (Navigator.canPop(context)) {
Navigator.pop(context);
}
}
}
///是否立即启用
Widget _canUse(
... ... @@ -808,7 +862,7 @@ class _GiveMoneyBeforePayPageState extends State<GiveMoneyBeforePayPage> {
fontSize: 32,
onPressed: () {
// 调用接口
// _setConsumeConfig()
_setConsumeConfig();
},
),
)
... ...