notebook.dart 2.79 KB
import 'dart:convert';

import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/utils.dart';
part 'notebook.g.dart';

@JsonSerializable()
class Notebook {
  Notebook();

  String id;
  String orderid;
  String openid;
  String sid;
  String room_demand;
  String tid;
  String pnum;
  String pnum_str;
  String rname;
  String sex;
  String phone;
  String cusdem;
  String cusman;
  String cusman_openid;
  String cusman_id;
  String cusman_phone;
  String cusman_account;
  String rdate;
  String edate;
  String vdate;
  String ddate;
  String is_set_ddate;
  String topic;
  String ddate_solt;
  String status; //订单状态 0:待确认,1:已定座,2:确认到店,3:用餐完成,4:取消预订,5:安排包间,6拒绝订单
  String cause;
  String abolition;
  String action;
  String type;
  String code;
  String note_openid;
  String note_name;
  String operator_openid;
  String channel;
  String cdate;
  String name;

  String get tableinfoStr {
    return name +
        "\n" +
        (tid.split(",").length >= 2
            ? ('等' + tid.split(",").length.toString() + '桌')
            : '');
  }

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

  String get ddateStr {
    String ddateStr;
    if (type == "1" && is_set_ddate == "0") {
      //在线预订,没有设置到店时间
      switch (ddate_solt) {
        case "1":
          ddateStr = "早餐";
          break;
        case "2":
          ddateStr = "午餐";
          break;
        case "3":
          ddateStr = "晚餐";
          break;
        default:
          ddateStr = "";
          break;
      }
    } else {
      DateTime dateTime =
          DateTime.fromMillisecondsSinceEpoch(int.parse(ddate) * 1000);
      ddateStr = Utils.addZeroNumber(dateTime.hour) +
          ":" +
          Utils.addZeroNumber(dateTime.minute);
    }
    return ddateStr;
  }

  String get phoneStr {
    return phone.isNotEmpty
        ? (phone.length == 11 ? phone.replaceRange(3, 7, "**") : phone)
        : "";
  }

  String get operationText {
    switch (status) {
      //订单状态 0:待确认,1:已定座,2:确认到店,3:用餐完成,4:取消预订
      case "1":
        return "通知客户";
      case "2":
        return "已到店";
      case "3":
        return "已完成";
      case "4":
        return "已取消";
      case "6":
        return "已拒绝";
      default:
        return "通知客户";
    }
  }

  factory Notebook.fromJson(Map<String, dynamic> json) =>
      _$NotebookFromJson(json);
  Map<String, dynamic> toJson() => _$NotebookToJson(this);
}