notebook.dart 3.02 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);
}