notebook.dart 5.27 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 tableinfo;
  String id;
  String orderid;
  String openid;
  String sid;
  String uid;
  String room_demand;
  String tid;
  String pnum;
  String actual_pnum;
  String pnum_str;
  String rname;
  String sex;
  String aname;
  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 label;
  String name;
  OrderInfo orderInfo;
  String nick_name;
  bool issimple;

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

  String get tableinfoStr {
    List list = json.decode(tableinfo);
    String temp = '';
    for (var item in list) {
      temp += item['name'] + '、';
    }
    if (temp.endsWith('、')) {
      temp = temp.substring(0, temp.length - 1);
    }

    return temp;
  }

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

    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);
}

@JsonSerializable()
class OrderInfo extends Object {
  @JsonKey(name: 'id')
  String id;

  @JsonKey(name: 'order_no')
  String orderNo;

  @JsonKey(name: 'out_trade_no')
  String outTradeNo;

  @JsonKey(name: 'openid')
  String openid;

  @JsonKey(name: 'sid')
  String sid;

  @JsonKey(name: 'uid')
  String uid;

  @JsonKey(name: 'rid')
  String rid;

  @JsonKey(name: 'sellername')
  String sellername;

  @JsonKey(name: 'tablename')
  String tablename;

  @JsonKey(name: 'wechat_no')
  String wechatNo;

  @JsonKey(name: 'bill_list')
  List<dynamic> billList;

  @JsonKey(name: 'price')
  String price;

  @JsonKey(name: 'should_price')
  String shouldPrice;

  @JsonKey(name: 'subsidy_type')
  String subsidyType;

  @JsonKey(name: 'subsidy_price')
  String subsidyPrice;

  @JsonKey(name: 'is_wine')
  String isWine;

  @JsonKey(name: 'is_pack')
  String isPack;

  @JsonKey(name: 'status')
  String status;

  @JsonKey(name: 'pay_time')
  String payTime;

  @JsonKey(name: 'confirm_time')
  String confirmTime;

  @JsonKey(name: 'remarks')
  String remarks;

  @JsonKey(name: 'attach')
  String attach;

  @JsonKey(name: 'currency')
  String currency;

  @JsonKey(name: 'detail')
  String detail;

  @JsonKey(name: 'description')
  String description;

  @JsonKey(name: 'profit_sharing')
  String profitSharing;

  @JsonKey(name: 'create_time')
  String createTime;

  OrderInfo(
    this.id,
    this.orderNo,
    this.outTradeNo,
    this.openid,
    this.sid,
    this.uid,
    this.rid,
    this.sellername,
    this.tablename,
    this.wechatNo,
    this.billList,
    this.price,
    this.shouldPrice,
    this.subsidyType,
    this.subsidyPrice,
    this.isWine,
    this.isPack,
    this.status,
    this.payTime,
    this.confirmTime,
    this.remarks,
    this.attach,
    this.currency,
    this.detail,
    this.description,
    this.profitSharing,
    this.createTime,
  );

  factory OrderInfo.fromJson(Map<String, dynamic> srcJson) =>
      _$OrderInfoFromJson(srcJson);

  Map<String, dynamic> toJson() => _$OrderInfoToJson(this);
}