Commit 31765f5a41eb831aff4c093fb35568a09adf1794

Authored by wdn127929
1 parent 57aa676b

过期提示,有问题,重复提醒

... ... @@ -54,7 +54,8 @@ class SellerVersionSunModel {
vtype = json['vtype'];
vname = json['vname'];
rdate = json['rdate'];
edate = json['edate'];
edate = '1694830573';
// edate = json['edate'];
cdate = json['cdate'];
}
... ...
... ... @@ -44,6 +44,7 @@ import '../../models/customer_by_seller_model.dart';
import '../../app.dart';
import '../../models/get_seller_info_model.dart';
import '../../models/seller_version_model.dart';
import '../../models/user.dart';
import '../../provider/collect_store_provider.dart';
import '../../provider/feast_model.dart';
... ... @@ -89,6 +90,8 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
Timer timerSeller;
Timer timerSellerEdate; //店铺过期时间提醒
Timer timerSellerModuleEdate; //模块过期提醒
int xgCount = 1; //注册信鸽次数,最多5次
DateTime lastBack;
... ... @@ -101,6 +104,8 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
CollectStoreProvider collectStoreProvider;
Map dataSp = Map();
//实现监听
Future<dynamic> platformCallHandler(MethodCall call) async {
switch (call.method) {
... ... @@ -272,7 +277,32 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
getSellerVersion() async {
await collectStoreProvider.getSellerVersion(context);
if (collectStoreProvider.sellerVersionList != null) {
//获取到店铺过期时间
//店铺过期提醒
// 计算时间差
//店铺过期日期
List<SellerVersionSunModel> showData = [];
// App.sp.remove('sellerEdateModule');
collectStoreProvider.sellerVersionList.forEach((element) {
_edateSellerModuleShow(showData, element, dataSp);
});
print(showData);
print(dataSp);
App.sp.setString("sellerEdateModule", json.encode(dataSp));
if (showData != null && showData.length > 0) {
DialogUtil.showSellerVersionEdateDialog(context, showData, (object) {});
}
//通过showdata 弹窗
// timerSellerModuleEdate = Timer.periodic(Duration(days: 1), (_) {
// //店铺过期提醒
// // 计算时间差
// //店铺过期日期
// _edateShow();
// });
}
setState(() {});
}
... ... @@ -324,6 +354,179 @@ class HomePageState extends State<HomePage> with WidgetsBindingObserver {
//
}
_setSpSellerModule(String day, SellerVersionSunModel sellerVersionSunModel) {
Map data = Map();
List days = [];
//已经存进去过数据
if (App.sp.containsKey('sellerEdateModule')) {
data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
days = data[sellerVersionSunModel.vid] ?? [];
}
days.add(day);
print(data);
data[sellerVersionSunModel.vid] = days;
return data;
}
// _setSpSellerModule(String day, SellerVersionSunModel sellerVersionSunModel) {
// Map data = Map();
// List days = [];
// //已经存进去过数据
// if (App.sp.containsKey('sellerEdateModule')) {
// data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
// days = data[sellerVersionSunModel.vid] ?? [];
// }
// days.add(day);
// print(data);
// data[sellerVersionSunModel.vid] = days;
// print(data);
// App.sp.setString("sellerEdateModule", json.encode(data));
// }
_removeSpSellerModule(SellerVersionSunModel sellerVersionSunModel) {
//已经存进去过数据
if (App.sp.containsKey('sellerEdateModule')) {
Map data = {};
data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
data.removeWhere((key, value) => key == sellerVersionSunModel.vid);
if (data != null && data.length == 0) {
App.sp.remove("sellerEdateModule");
} else {
App.sp.setString("sellerEdateModule", json.encode(data));
}
}
}
_edateSellerModuleShow(List<SellerVersionSunModel> showData,
SellerVersionSunModel sellerVersionSunModel, Map dataSp) async {
//店铺过期提醒
// 计算时间差
//店铺过期日期
DateTime edate = DateTime.fromMillisecondsSinceEpoch(
int.parse(sellerVersionSunModel.edate) * 1000);
//当前日期
final datenow = DateTime.now();
//比较相差的天数
int difference = edate.difference(datenow).inDays;
int differenceSeconds = edate.difference(datenow).inSeconds;
if (difference == 7) {
if (App.sp.containsKey('sellerEdateModule')) {
//已经存进去过数据
Map data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
List days = data[sellerVersionSunModel.vid] ?? [];
if (!days.contains('7')) {
//7天没有提醒过
showData.add(sellerVersionSunModel); //7天已经提醒过了
_setSpSellerModule('7', sellerVersionSunModel);
}
} else {
//7天没有提醒过
showData.add(sellerVersionSunModel); //7天已经提醒过了
_setSpSellerModule('7', sellerVersionSunModel);
}
// _showSellerAlert('7', edate);
} else if (difference == 3) {
//过期差3天,提醒一次
// _showSellerAlert('3', edate);
if (App.sp.containsKey('sellerEdateModule')) {
//已经存进去过数据
Map data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
List days = data[sellerVersionSunModel.vid] ?? [];
if (!days.contains('3')) {
//3天没有提醒过
showData.add(sellerVersionSunModel); //3天已经提醒过了
_setSpSellerModule('3', sellerVersionSunModel);
}
} else {
//3天没有提醒过
showData.add(sellerVersionSunModel); //3天已经提醒过了
_setSpSellerModule('3', sellerVersionSunModel);
}
} else if (difference == 2) {
//过期差2天,提醒一次
if (App.sp.containsKey('sellerEdateModule')) {
//已经存进去过数据
Map data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
List days = data[sellerVersionSunModel.vid] ?? [];
if (!days.contains('2')) {
//2天没有提醒过
showData.add(sellerVersionSunModel); //2天已经提醒过了
// _showSellerAlert('2', edate);
_setSpSellerModule('2', sellerVersionSunModel);
}
} else {
//2天没有提醒过
showData.add(sellerVersionSunModel); //3天已经提醒过了
_setSpSellerModule('2', sellerVersionSunModel);
}
} else if (difference == 1) {
//过期差1天,提醒一次
if (App.sp.containsKey('sellerEdateModule')) {
//已经存进去过数据
Map data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
List days = data[sellerVersionSunModel.vid] ?? [];
if (!days.contains('1')) {
//1天没有提醒过
showData.add(sellerVersionSunModel); //1天已经提醒过了
// _showSellerAlert('1', edate);
_setSpSellerModule('1', sellerVersionSunModel);
}
} else {
//1天没有提醒过
showData.add(sellerVersionSunModel); //1天已经提醒过了
// _showSellerAlert('1', edate);
_setSpSellerModule('1', sellerVersionSunModel);
}
} else if (difference == 0 && differenceSeconds > 0) {
//剩余不足一天
if (App.sp.containsKey('sellerEdateModule')) {
//已经存进去过数据
Map data = json.decode(App.sp.getString('sellerEdateModule')) ?? {};
List days = data[sellerVersionSunModel.vid] ?? [];
if (!days.contains('0')) {
//0天没有提醒过
showData.add(sellerVersionSunModel); //0天已经提醒过了
// _showSellerAlert('0', edate);
dataSp.addAll(_setSpSellerModule('0', sellerVersionSunModel));
print(dataSp);
}
} else {
//0天没有提醒过
showData.add(sellerVersionSunModel); //0天已经提醒过了
// _showSellerAlert('0', edate);
dataSp.addAll(_setSpSellerModule('0', sellerVersionSunModel));
print(dataSp);
}
} else if (difference < 0 || (difference == 0 && differenceSeconds <= 0)) {
//已到期
// _showSellerAlert('-1', edate);
} else if (difference > 7) {
//没到期
//
_removeSpSellerModule(sellerVersionSunModel);
}
// 根据showdata 进行提醒
}
///获取店铺过期时间
_getSellerById() async {
StoreBaseIndoProvider storeBaseIndoProvider =
... ...
... ... @@ -38,6 +38,7 @@ import 'package:url_launcher/url_launcher.dart';
import '../models/cookbook_model.dart';
import '../models/radio_model.dart';
import '../models/seller_version_model.dart';
import '../models/theme_color_model.dart';
typedef CustomCallBack = void Function(Object object);
... ... @@ -55,6 +56,176 @@ typedef ClickCallback = void Function(String value);
// };
class DialogUtil {
//模块快过期提醒
static showSellerVersionEdateDialog(BuildContext context,
List<SellerVersionSunModel> showData, CustomCallBack callback,
{GestureTapCallback onTapLeft, GestureTapCallback onTapRight}) {
List<String> names = showData.map((e) => e.vname).toList();
return showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return Center(child: StatefulBuilder(builder: (context, state) {
// locationState = state;
return Material(
color: Colors.transparent,
child: Container(
width: double.infinity,
margin: EdgeInsets.symmetric(horizontal: w(37)),
decoration: BoxDecoration(
color: MyColours.color_ffffff,
borderRadius: BorderRadius.circular(
r(8),
)),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.symmetric(horizontal: w(10)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
VEmptyView(50),
Container(
child: Text('您的:',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)))),
VEmptyView(60),
ListView.builder(
itemCount: showData.length,
shrinkWrap: true,
itemBuilder:
(BuildContext context, int index) {
SellerVersionSunModel
sellerVersionSunModel =
showData[index];
return Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
child: Text(
'${sellerVersionSunModel.vname}功能即将在:',
style: TextStyle(
color: MyColours
.color_515151,
fontSize:
font(14)))),
VEmptyView(10),
Container(
child: Text(
DateUtil.formatDate(
DateTime.fromMillisecondsSinceEpoch(
int.parse(sellerVersionSunModel
.edate) *
1000),
format:
DateFormats.full,
),
style: TextStyle(
color: MyColours
.color_E34D59,
fontSize:
font(14)))),
]);
}),
Container(
child: Text('您可以:',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)))),
VEmptyView(60),
Container(
child: Text('点击“前往续费” ',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)))),
VEmptyView(20),
Container(
child: Text('或者',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)))),
VEmptyView(20),
Container(
child: Text('联系您的服务商续费 ${names.toString()}功能;',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)))),
VEmptyView(60),
Container(
child: Text('*您可以通过开通超能版获得全部软件功能。',
style: TextStyle(
color: MyColours.color_515151,
fontSize: font(14)))),
VEmptyView(50),
])),
MyDivider(double.infinity, w(1),
color: MyColours.color_DBDBDB),
Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 1,
child: RoundButton(
text: '取消',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_515151,
isBold: false,
fontSize: 32,
onPressed: () {
Navigator.pop(context);
})),
MyDivider(ScreenUtil().setWidth(2),
ScreenUtil().setWidth(112),
color: MyColours.color_DBDBDB),
Expanded(
flex: 1,
child: RoundButton(
text: '前往开通',
// width: (ScreenUtil().screenWidth -
// ScreenUtil().setWidth(62) * 2) /
// 2,
height: ScreenUtil().setWidth(112),
// radius: ScreenUtil().setWidth(10),
gradientStart: Colors.transparent,
gradientEnd: Colors.transparent,
textColor: MyColours.color_438E93,
fontSize: 32,
onPressed: () {
// Navigator.pop(context, {
// 'spec': menuSunModel.specCan != null &&
// menuSunModel.specCan.length > 0
// ? menuSunModel.specCan
// .where((element) =>
// element.select == true)
// .toList()
// : [],
// 'practice': menuSunModel.practice !=
// null &&
// menuSunModel.practice.length > 0
// ? menuSunModel.practice
// .where((element) =>
// element.select == true)
// .toList()
// : []
// });
})),
],
),
])));
}));
});
}
//功能购买提醒
static showSellerVersionBuyDialog(
BuildContext context, String title, CustomCallBack callback,
... ...