|
|
|
import 'package:common_utils/common_utils.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:one_key/provider/user_model.dart';
|
|
|
|
import 'package:provider/provider.dart';
|
|
...
|
...
|
@@ -6,6 +7,7 @@ import '../app.dart'; |
|
|
|
import '../constant/constant.dart';
|
|
|
|
import '../constant/error.dart';
|
|
|
|
import '../models/seller_version_model.dart';
|
|
|
|
import '../models/wechat_pay_model.dart';
|
|
|
|
import '../net/base_resp.dart';
|
|
|
|
import '../net/dio_util.dart';
|
|
|
|
import '../net/http_url.dart';
|
|
...
|
...
|
@@ -13,6 +15,7 @@ import '../utils/utils.dart'; |
|
|
|
|
|
|
|
class CollectStoreProvider with ChangeNotifier {
|
|
|
|
List<SellerVersionSunModel> sellerVersionList = [];
|
|
|
|
WechatPaySunModel sunModel;
|
|
|
|
|
|
|
|
bool sellerCoupon = false; //优惠券营销
|
|
|
|
bool sellerRecharge = false; //储值营销
|
|
...
|
...
|
@@ -81,6 +84,121 @@ class CollectStoreProvider with ChangeNotifier { |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_getSellerVersionList() {
|
|
|
|
List<DateTime> cdates = [];
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
if (element.vid == '1' ||
|
|
|
|
element.vid == '2' ||
|
|
|
|
element.vid == '3' ||
|
|
|
|
element.vid == '4' ||
|
|
|
|
element.vid == '13' ||
|
|
|
|
element.vid == '15' ||
|
|
|
|
element.vid == '16' ||
|
|
|
|
element.vid == '17' ||
|
|
|
|
element.vid == '14') {
|
|
|
|
cdates.add(DateTime.fromMillisecondsSinceEpoch(
|
|
|
|
int.parse(element.cdate) * 1000));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
print(cdates);
|
|
|
|
|
|
|
|
for (var i = 0; i < cdates.length - 1; i++) {
|
|
|
|
for (var j = 0; j < cdates.length - 1 - i; j++) {
|
|
|
|
if (cdates[j].difference(cdates[j + 1]).inSeconds > 0) {
|
|
|
|
DateTime temp = cdates[j];
|
|
|
|
cdates[j] = cdates[j + 1];
|
|
|
|
cdates[j + 1] = temp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
print(cdates); //最后一个是最新的充值
|
|
|
|
// //找到最新的版本,并且移除其他版本
|
|
|
|
// sellerNormalEdate = sellerVersionList
|
|
|
|
// .where((element) =>
|
|
|
|
// int.parse(element.cdate) * 1000 ==
|
|
|
|
// cdates[cdates.length - 1].microsecondsSinceEpoch)
|
|
|
|
// .toList()[0]
|
|
|
|
// .edate;
|
|
|
|
|
|
|
|
List<SellerVersionSunModel> temp = [];
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
if (element.vid == '1' ||
|
|
|
|
element.vid == '2' ||
|
|
|
|
element.vid == '3' ||
|
|
|
|
element.vid == '4' ||
|
|
|
|
element.vid == '13' ||
|
|
|
|
element.vid == '15' ||
|
|
|
|
element.vid == '16' ||
|
|
|
|
element.vid == '17') {
|
|
|
|
if (int.parse(element.cdate) * 1000 ==
|
|
|
|
cdates[cdates.length - 1].millisecondsSinceEpoch) {
|
|
|
|
temp.add(element); //最新的版本信息
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
temp.add(element); //模块信息
|
|
|
|
}
|
|
|
|
});
|
|
|
|
sellerVersionList = temp.toList();
|
|
|
|
print(sellerVersionList);
|
|
|
|
}
|
|
|
|
|
|
|
|
_getSellerVersionListOld() {
|
|
|
|
List<DateTime> cdates = [];
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
if (element.vid == '1' ||
|
|
|
|
element.vid == '2' ||
|
|
|
|
element.vid == '3' ||
|
|
|
|
element.vid == '4' ||
|
|
|
|
element.vid == '13' ||
|
|
|
|
element.vid == '15' ||
|
|
|
|
element.vid == '16' ||
|
|
|
|
element.vid == '17') {
|
|
|
|
cdates.add(DateTime.fromMillisecondsSinceEpoch(
|
|
|
|
int.parse(element.cdate) * 1000));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
print(cdates);
|
|
|
|
|
|
|
|
for (var i = 0; i < cdates.length - 1; i++) {
|
|
|
|
for (var j = 0; j < cdates.length - 1 - i; j++) {
|
|
|
|
if (cdates[j].difference(cdates[j + 1]).inSeconds > 0) {
|
|
|
|
DateTime temp = cdates[j];
|
|
|
|
cdates[j] = cdates[j + 1];
|
|
|
|
cdates[j + 1] = temp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
print(cdates); //最后一个是最新的充值
|
|
|
|
// //找到最新的版本,并且移除其他版本
|
|
|
|
// sellerNormalEdate = sellerVersionList
|
|
|
|
// .where((element) =>
|
|
|
|
// int.parse(element.cdate) * 1000 ==
|
|
|
|
// cdates[cdates.length - 1].microsecondsSinceEpoch)
|
|
|
|
// .toList()[0]
|
|
|
|
// .edate;
|
|
|
|
|
|
|
|
List<SellerVersionSunModel> temp = [];
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
if (element.vid == '1' ||
|
|
|
|
element.vid == '2' ||
|
|
|
|
element.vid == '3' ||
|
|
|
|
element.vid == '4' ||
|
|
|
|
element.vid == '13' ||
|
|
|
|
element.vid == '15' ||
|
|
|
|
element.vid == '16' ||
|
|
|
|
element.vid == '17') {
|
|
|
|
if (int.parse(element.cdate) * 1000 ==
|
|
|
|
cdates[cdates.length - 1].millisecondsSinceEpoch) {
|
|
|
|
temp.add(element); //最新的版本信息
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
temp.add(element); //模块信息
|
|
|
|
}
|
|
|
|
});
|
|
|
|
sellerVersionList = temp.toList();
|
|
|
|
print(sellerVersionList);
|
|
|
|
}
|
|
|
|
|
|
|
|
// 获取商家的版本信息
|
|
|
|
Future<bool> getSellerVersion(BuildContext context,
|
|
|
|
{bool showLoading = true}) async {
|
|
...
|
...
|
@@ -96,103 +214,53 @@ class CollectStoreProvider with ChangeNotifier { |
|
|
|
return false;
|
|
|
|
});
|
|
|
|
if (baseResp.code == Constant.status_success) {
|
|
|
|
sellerVersionList =
|
|
|
|
sellerVersionList = [];
|
|
|
|
List<SellerVersionSunModel> tempList =
|
|
|
|
SellerVersionModel.fromJson(baseResp.responseData).data;
|
|
|
|
if (sellerVersionList != null && sellerVersionList.length > 0) {
|
|
|
|
List<String> versionCodeList = [];
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
versionCodeList.add(element.vid);
|
|
|
|
});
|
|
|
|
|
|
|
|
if (tempList != null && tempList.length > 0) {
|
|
|
|
tempList.forEach((element) {
|
|
|
|
DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
|
|
|
|
int.parse(element.rdate.toString()) * 1000);
|
|
|
|
|
|
|
|
String fromDate =
|
|
|
|
DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
|
|
|
|
String from = fromDate + ' 00:00:00';
|
|
|
|
int fff = DateUtil.getDateMsByTimeStr(from);
|
|
|
|
print(fff);
|
|
|
|
DateTime stime = DateTime.fromMillisecondsSinceEpoch(
|
|
|
|
DateUtil.getDateMsByTimeStr(from)); //启用日期
|
|
|
|
print(stime);
|
|
|
|
|
|
|
|
String now =
|
|
|
|
DateUtil.formatDate(DateTime.now(), format: DateFormats.y_mo_d);
|
|
|
|
String nowStr = now + ' 00:00:00';
|
|
|
|
DateTime nowtime = DateTime.fromMillisecondsSinceEpoch(
|
|
|
|
DateUtil.getDateMsByTimeStr(nowStr)); //目前时间
|
|
|
|
|
|
|
|
//比较相差的天数
|
|
|
|
int difference = stime.difference(nowtime).inDays;
|
|
|
|
|
|
|
|
// int differenceSeconds = stime.difference(nowtime).inSeconds;
|
|
|
|
if (difference < 0 || difference == 0) {
|
|
|
|
//启用时间在今天或者之前
|
|
|
|
sellerVersionList.add(element);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (Constant.normalApp) {
|
|
|
|
sellerCoupon = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '8' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
|
|
|
|
sellerRecharge = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '9');
|
|
|
|
|
|
|
|
sellerWine = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '7');
|
|
|
|
|
|
|
|
sellerOrderCustomer = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '6');
|
|
|
|
sellerOrderManager = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '5');
|
|
|
|
sellerFeast = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '12');
|
|
|
|
sellerPreserve = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '10' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
sellerMarketing = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '11' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
|
|
|
|
sellerNormal = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '4' ||
|
|
|
|
element == '13' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
_getSellerVersionListOld(); //筛出cdate最新的
|
|
|
|
} else {
|
|
|
|
_getSellerVersionList(); //筛出cdate最新的
|
|
|
|
}
|
|
|
|
//准备好数据
|
|
|
|
|
|
|
|
if (sellerVersionList != null && sellerVersionList.length > 0) {
|
|
|
|
List<String> versionCodeList = [];
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
if (element.vid == '1' ||
|
|
|
|
element.vid == '2' ||
|
|
|
|
element.vid == '3' ||
|
|
|
|
element.vid == '4' ||
|
|
|
|
element.vid == '13') {
|
|
|
|
sellerNormalEdate = element.edate;
|
|
|
|
}
|
|
|
|
versionCodeList.add(element.vid);
|
|
|
|
});
|
|
|
|
if (!sellerNormal) {
|
|
|
|
//超能版或者标准版过期
|
|
|
|
App.sp.setStringList("sellerEdate", ['-1']);
|
|
|
|
} else {
|
|
|
|
if (App.sp.containsKey("sellerEdate")) {
|
|
|
|
App.sp.remove("sellerEdate");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
sellerSimple = versionCodeList.any((element) => element == '14');
|
|
|
|
|
|
|
|
if (sellerSimple) {
|
|
|
|
//极速版
|
|
|
|
if (App.sp.containsKey("sellerEdate")) {
|
|
|
|
App.sp.remove("sellerEdate");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (Constant.normalApp) {
|
|
|
|
sellerCoupon = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
...
|
...
|
@@ -273,7 +341,100 @@ class CollectStoreProvider with ChangeNotifier { |
|
|
|
App.sp.remove("sellerEdate");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
sellerSimple = versionCodeList.any((element) => element == '14');
|
|
|
|
|
|
|
|
if (sellerSimple) {
|
|
|
|
//极速版
|
|
|
|
if (App.sp.containsKey("sellerEdate")) {
|
|
|
|
App.sp.remove("sellerEdate");
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
sellerCoupon = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '8' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
|
|
|
|
sellerRecharge = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '9');
|
|
|
|
|
|
|
|
sellerWine = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '7');
|
|
|
|
|
|
|
|
sellerOrderCustomer = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '6');
|
|
|
|
sellerOrderManager = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '5');
|
|
|
|
sellerFeast = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '12');
|
|
|
|
sellerPreserve = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '10' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
sellerMarketing = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '11' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
|
|
|
|
sellerNormal = versionCodeList.any((element) =>
|
|
|
|
element == '1' ||
|
|
|
|
element == '2' ||
|
|
|
|
element == '3' ||
|
|
|
|
element == '4' ||
|
|
|
|
element == '13' ||
|
|
|
|
element == '15' ||
|
|
|
|
element == '16' ||
|
|
|
|
element == '17');
|
|
|
|
sellerVersionList.forEach((element) {
|
|
|
|
if (element.vid == '1' ||
|
|
|
|
element.vid == '2' ||
|
|
|
|
element.vid == '3' ||
|
|
|
|
element.vid == '4' ||
|
|
|
|
element.vid == '13') {
|
|
|
|
sellerNormalEdate = element.edate;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
if (!sellerNormal) {
|
|
|
|
//超能版或者标准版过期
|
|
|
|
App.sp.setStringList("sellerEdate", ['-1']);
|
|
|
|
} else {
|
|
|
|
if (App.sp.containsKey("sellerEdate")) {
|
|
|
|
App.sp.remove("sellerEdate");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
//超能版或者标准版过期 && 极速版也没有
|
|
|
|
App.sp.setStringList("sellerEdate", ['-1']);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
//超能版或者标准版过期 && 极速版也没有
|
|
...
|
...
|
@@ -286,4 +447,27 @@ class CollectStoreProvider with ChangeNotifier { |
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
/// App调起支付(购买版本)
|
|
|
|
Future<bool> appPayJiSuVersion(
|
|
|
|
BuildContext context, Map<String, String> params,
|
|
|
|
{isShowLoading = true}) async {
|
|
|
|
BaseResp<dynamic> baseResp = await DioUtil()
|
|
|
|
.request<dynamic>(context, Method.get, HttpUrl.app_pay_jisu_version,
|
|
|
|
data: params, showLoading: isShowLoading)
|
|
|
|
.catchError((error) {
|
|
|
|
print(error.toString());
|
|
|
|
if (error is MyError) {}
|
|
|
|
return false;
|
|
|
|
});
|
|
|
|
if (baseResp != null && baseResp.code == Constant.status_success) {
|
|
|
|
sunModel = WechatPayModel.fromJson(baseResp.responseData).data;
|
|
|
|
if (sunModel != null) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
Utils.showToast(baseResp.msg ?? "");
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|