|
|
|
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();
|
|
|
|
},
|
|
|
|
),
|
|
|
|
)
|
...
|
...
|
|