message.dart 2.81 KB
import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/utils.dart';

part 'message.g.dart';

@JsonSerializable()
class Message {
    Message();

    String id;
    dynamic message_type;
    String handle_time;//10在线预订 11取消预订
    String read_time;
    String is_read;
    String is_handle;
    String ddate;
    String rname;
    dynamic sex;
    dynamic cdate;
    dynamic rid;
    String room_demand;
    String ddate_solt;
    dynamic ddate_long;
    String status;
    String room_info;

    String get rnameStr{
        switch(sex.toString()){
            case "1"://先生
            case "男":
            case "先生":
                return rname+"先生";
            case "2"://女士
            case "女":
            case "女士":
                return rname+"女士";
            case "3"://公司
            case "公司":
                return rname+"公司";
        }
    }

    String get ddateStr{
        String ymd="";
        if(ddate_long!=null){
            DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(ddate_long.toString())*1000);
            ymd=dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day);   
        }else{
            ymd=ddate.substring(0,10);
        }
        switch(ddate_solt){
            case "1"://早餐
            return ymd+" 早餐";
            case "2"://午餐
            return ymd+" 午餐";
            case "3"://晚餐
            return ymd+" 晚餐";
            default:
                return ymd;
        }
    }

    String get cdateStr{
        String temp_date=cdate;
        switch (message_type){
            case "1"://提前点餐
            case "2"://内部预订
                if (is_read=="0"){//未读 下单时间
                    temp_date=cdate;
                }else{
                    temp_date=read_time; //已读 查看时间
                }
                break;
            case "10"://在线预订
            case "11"://在线预订
                if (is_handle=="0"){//未处理 下单时间
                    temp_date=cdate;
                }else{
                    temp_date=handle_time;//已处理 处理时间
                }
                break;
        }
        DateTime dateTime=DateTime.fromMillisecondsSinceEpoch(int.parse(temp_date.toString())*1000);
        if((DateTime.now().difference(dateTime)).inMilliseconds<60000){
            return "刚刚";
        }else{
            return dateTime.year.toString()+"/"+Utils.addZeroNumber(dateTime.month)+"/"+Utils.addZeroNumber(dateTime.day)+" "+Utils.addZeroNumber(dateTime.hour)+":"+Utils.addZeroNumber(dateTime.minute);
        }
    }

    factory Message.fromJson(Map<String,dynamic> json) => _$MessageFromJson(json);
    Map<String, dynamic> toJson() => _$MessageToJson(this);
}