You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
app/lib/pages/home/promotion_time_tool.dart

120 lines
4.0 KiB

import 'package:recook/constants/header.dart';
import 'package:recook/models/goods_detail_model.dart';
import 'package:recook/models/goods_simple_list_model.dart';
import 'package:recook/models/promotion_goods_list_model.dart';
enum PromotionStatus{
none,
ready, //预热中
start, //活动中
end, //已结束
tomorrow//明日预告
}
class PromotionTimeTool{
static getPromotionStatusWithTabbar(String startTime, String endTime){
DateTime time = DateTime.now();
// DateTime time = DateTime.parse("2020-03-18 23:00:00");
if (!TextUtils.isEmpty(startTime) && !TextUtils.isEmpty(endTime)) {
if (DateTime.parse(startTime).isBefore(time) && DateTime.parse(endTime).isAfter(time)) {
//活动中
return PromotionStatus.start;
}
if (DateTime.parse(startTime).isAfter(time)){
DateTime startDate = DateTime.parse(startTime);
if (startDate.day != time.day) {
return PromotionStatus.tomorrow;
}else{
return PromotionStatus.ready;
}
}
if(DateTime.parse(endTime).isBefore(time)){
return PromotionStatus.end;
}
return PromotionStatus.none;
}
return PromotionStatus.none;
}
static getPromotionStatus(String startTime, String endTime){
// DateTime time = DateTime.parse("2020-03-18 23:00:00");
DateTime time = DateTime.now();
if (!TextUtils.isEmpty(startTime) && !TextUtils.isEmpty(endTime)) {
if (DateTime.parse(startTime).isBefore(time) && DateTime.parse(endTime).isAfter(time)) {
//活动中
return PromotionStatus.start;
}
if (DateTime.parse(startTime).isAfter(time)){
return PromotionStatus.ready;
}
if(DateTime.parse(endTime).isBefore(time)){
return PromotionStatus.end;
}
return PromotionStatus.none;
}
return PromotionStatus.none;
}
static getPromotionStatusWithGoodsSimple(GoodsSimple model){
String startTime = model.startTime;
String endTime = model.endTime;
if (!TextUtils.isEmpty(startTime) && !TextUtils.isEmpty(endTime)) {
if (DateTime.parse(startTime).isBefore(DateTime.now()) && DateTime.parse(endTime).isAfter(DateTime.now())) {
//活动中
return PromotionStatus.start;
}
if (DateTime.parse(startTime).isAfter(DateTime.now())){
return PromotionStatus.ready;
}
if(DateTime.parse(endTime).isBefore(DateTime.now())){
return PromotionStatus.end;
}
return PromotionStatus.none;
}
return PromotionStatus.none;
}
static getPromotionStatusWithPGModel(PromotionGoodsModel model){
String startTime = model.startTime;
String endTime = model.endTime;
if (!TextUtils.isEmpty(startTime) && !TextUtils.isEmpty(endTime)) {
if (DateTime.parse(startTime).isBefore(DateTime.now()) && DateTime.parse(endTime).isAfter(DateTime.now())) {
//活动中
return PromotionStatus.start;
}
if (DateTime.parse(startTime).isAfter(DateTime.now())){
return PromotionStatus.ready;
}
if(DateTime.parse(endTime).isBefore(DateTime.now())){
return PromotionStatus.end;
}
return PromotionStatus.none;
}
return PromotionStatus.none;
}
static getPromotionStatusWithGoodDetailModel(GoodsDetailModel model){
bool hasPromotion = model.data.promotion != null;
if (!hasPromotion) {
return PromotionStatus.none;
}
String startTime = model.data.promotion.startTime;
String endTime = model.data.promotion.endTime;
if (!TextUtils.isEmpty(startTime) && !TextUtils.isEmpty(endTime)) {
if (DateTime.parse(startTime).isBefore(DateTime.now()) && DateTime.parse(endTime).isAfter(DateTime.now())) {
//活动中
return PromotionStatus.start;
}
if (DateTime.parse(startTime).isAfter(DateTime.now())){
return PromotionStatus.ready;
}
if(DateTime.parse(endTime).isBefore(DateTime.now())){
return PromotionStatus.end;
}
return PromotionStatus.none;
}
return PromotionStatus.none;
}
}