message.dart 2.79 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;
  String uid;
  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 {
    if (rname == null || rname == '') return "";
    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);
}