order_info_model.dart 4.47 KB

import 'package:json_annotation/json_annotation.dart';
import 'package:one_key/utils/utils.dart';

part 'order_info_model.g.dart';

@JsonSerializable()
class OrderInfoModel extends Object {
  @JsonKey(name: 'ret')
  int? ret;

  @JsonKey(name: 'data')
  OrderInfoSunModel? data;

  @JsonKey(name: 'msg')
  String? msg;

  OrderInfoModel(
    this.ret,
    this.data,
    this.msg,
  );

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

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

@JsonSerializable()
class OrderInfoSunModel 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: '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;

  @JsonKey(name: 'invoice')
  Invoice? invoice;

  @JsonKey(name: 'discount')
  List<dynamic>? discount;

//订单备注
  String get orderRemark {
    String orderRemark = '';
    if (isWine == '1' || isPack == '1') {
      orderRemark = '*顾客';
      if (isWine == '1') {
        orderRemark += '有酒水要退';
      }
      if (isPack == '1') {
        if (isWine == '1') {
          orderRemark += ',菜品需要打包';
        } else {
          orderRemark += '菜品需要打包';
        }
      }
    }
    return orderRemark;
  }

  OrderInfoSunModel(
    this.id,
    this.orderNo,
    this.outTradeNo,
    this.openid,
    this.sid,
    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,
    this.discount,
  );

  // 买单时间
  String get payTimeStr {
    DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
        int.parse(payTime.toString()) * 1000);
    return dateTime.year.toString() +
        "/" +
        Utils.addZeroNumber(dateTime.month) +
        "/" +
        Utils.addZeroNumber(dateTime.day) +
        " " +
        Utils.addZeroNumber(dateTime.hour) +
        ":" +
        Utils.addZeroNumber(dateTime.minute);
  }

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

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

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

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

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

  @JsonKey(name: 'type')
  String? type;

  @JsonKey(name: 'title')
  String? title;

  @JsonKey(name: 'taxnumber')
  String? taxnumber;

  @JsonKey(name: 'companyaddress')
  String? companyaddress;

  @JsonKey(name: 'telephone')
  String? telephone;

  @JsonKey(name: 'bankname')
  String? bankname;

  @JsonKey(name: 'bankaccount')
  String? bankaccount;

  @JsonKey(name: 'cdate')
  String? cdate;

  Invoice(
    this.id,
    this.rid,
    this.openid,
    this.type,
    this.title,
    this.taxnumber,
    this.companyaddress,
    this.telephone,
    this.bankname,
    this.bankaccount,
    this.cdate,
  );

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

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