package com.bonus.canteen.core.order.deprecated.vo;

import com.bonus.canteen.core.common.utils.SysUtil;
import com.bonus.canteen.core.order.common.vo.OrderDetailVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public class QueryOrdTradeForAppVO {
   @ApiModelProperty("主键自增")
   private Long id;
   @ApiModelProperty("商家订单号")
   private Long ordId;
   @ApiModelProperty("平台订单号")
   private Long leOrdId;
   @ApiModelProperty("人员id")
   private Long custId;
   @ApiModelProperty("openid 微信公众号、小程序、钉钉等平台的唯一id")
   private String openid;
   @ApiModelProperty("来源类型 如钉钉、小程序等")
   private Integer sourceType;
   @ApiModelProperty("下单时间")
   private LocalDateTime ordTime;
   @ApiModelProperty("档口名称")
   private String shopstallName;
   @ApiModelProperty("档口id")
   private Long shopstallId;
   @ApiModelProperty("设备编号")
   private String mchNum;
   @ApiModelProperty("设备名称")
   private String mchName;
   @ApiModelProperty("食堂id")
   private Long canteenId;
   @ApiModelProperty("食堂名称")
   private String canteenName;
   @ApiModelProperty("餐次id")
   private Long intervalId;
   @ApiModelProperty("餐次名称")
   private String intervalName;
   @ApiModelProperty("交易时间")
   private LocalDateTime tradeTime;
   @ApiModelProperty("支付方式 支付宝、微信等")
   private Integer payType;
   @ApiModelProperty("支付状态 1-已支付 2-未支付")
   private Integer payState;
   @ApiModelProperty("订单总金额 单位为分")
   private Integer amount;
   @ApiModelProperty("折扣券减免 单位为分")
   private Integer couponReduce;
   @ApiModelProperty("代金券减免 单位为分")
   private Integer voucherReduce;
   @ApiModelProperty("红包减免 单位为分")
   private Integer redEnvelopeReduce;
   @ApiModelProperty("补贴减免 单位为分")
   private Integer subsidyReduce;
   @ApiModelProperty("个人支付 单位为分")
   private Integer personalPay;
   @ApiModelProperty("第三方付款金额 单位为分")
   private Integer thirdAmount;
   @ApiModelProperty("第三方支付方式 如微信、支付宝、云闪付")
   private Integer thirdPayType;
   @ApiModelProperty("配送费 单位为分")
   private Integer deliveryFee;
   @ApiModelProperty("实际付款金额 单位为分")
   private Integer realAmount;
   @ApiModelProperty("支付时间")
   private LocalDateTime payTime;
   @ApiModelProperty("配送方式")
   private Integer deliveryType;
   @ApiModelProperty("配送地址")
   private String deliveryAddr;
   @ApiModelProperty("送达时间")
   private LocalDateTime deliveryTime;
   @ApiModelProperty("订单状态 接受单、拒绝订单、取消、退款、完成")
   private Integer ordState;
   @ApiModelProperty("订单备注")
   private String remark;
   private Long orderId;
   private String macOrderId;
   private String machineSn;
   private String machineNum;
   private String plateSerialNum;
   private String custName;
   private Long operatorId;
   private String operatorName;
   private Long cashierId;
   private String cashierName;
   private Integer nuClearMode;
   private Integer consumMode;
   private Integer ifOnline;
   private Long stallId;
   private String stallName;
   private Long roomId;
   private String roomName;
   private Integer mealtimeType;
   private String mealtimeName;
   private String mealCode;
   @DateTimeFormat(
      pattern = "yyyy-MM-dd"
   )
   @JsonFormat(
      pattern = "yyyy-MM-dd"
   )
   private LocalDate orderDate;
   private BigDecimal payableAmount;
   private BigDecimal discountsAmount;
   private BigDecimal couponAmount;
   private BigDecimal deliveryAmount;
   private BigDecimal packingAmount;
   private BigDecimal accPayAmount;
   private BigDecimal outPayAmount;
   private BigDecimal refundAmount;
   @DateTimeFormat(
      pattern = "yyyy-MM-dd HH:mm:ss"
   )
   @JsonFormat(
      pattern = "yyyy-MM-dd HH:mm:ss"
   )
   private LocalDateTime orderTime;
   private Integer orderType;
   private Integer orderState;
   private Integer orderRefundState;
   private Integer deductionType;
   private Integer payChannel;
   private String partPayReason;
   private Integer dishesState;
   private Integer commentState;
   private String imgUrl;
   private List<OrderDetailVO> orderDetailList;

   public Integer getAmount() {
      return this.payableAmount != null ? this.payableAmount.intValue() : null;
   }

   public String getImgUrl() {
      return SysUtil.getCutFileUrl(this.imgUrl);
   }

   public Long getId() {
      return this.id;
   }

   public Long getOrdId() {
      return this.ordId;
   }

   public Long getLeOrdId() {
      return this.leOrdId;
   }

   public Long getCustId() {
      return this.custId;
   }

   public String getOpenid() {
      return this.openid;
   }

   public Integer getSourceType() {
      return this.sourceType;
   }

   public LocalDateTime getOrdTime() {
      return this.ordTime;
   }

   public String getShopstallName() {
      return this.shopstallName;
   }

   public Long getShopstallId() {
      return this.shopstallId;
   }

   public String getMchNum() {
      return this.mchNum;
   }

   public String getMchName() {
      return this.mchName;
   }

   public Long getCanteenId() {
      return this.canteenId;
   }

   public String getCanteenName() {
      return this.canteenName;
   }

   public Long getIntervalId() {
      return this.intervalId;
   }

   public String getIntervalName() {
      return this.intervalName;
   }

   public LocalDateTime getTradeTime() {
      return this.tradeTime;
   }

   public Integer getPayType() {
      return this.payType;
   }

   public Integer getPayState() {
      return this.payState;
   }

   public Integer getCouponReduce() {
      return this.couponReduce;
   }

   public Integer getVoucherReduce() {
      return this.voucherReduce;
   }

   public Integer getRedEnvelopeReduce() {
      return this.redEnvelopeReduce;
   }

   public Integer getSubsidyReduce() {
      return this.subsidyReduce;
   }

   public Integer getPersonalPay() {
      return this.personalPay;
   }

   public Integer getThirdAmount() {
      return this.thirdAmount;
   }

   public Integer getThirdPayType() {
      return this.thirdPayType;
   }

   public Integer getDeliveryFee() {
      return this.deliveryFee;
   }

   public Integer getRealAmount() {
      return this.realAmount;
   }

   public LocalDateTime getPayTime() {
      return this.payTime;
   }

   public Integer getDeliveryType() {
      return this.deliveryType;
   }

   public String getDeliveryAddr() {
      return this.deliveryAddr;
   }

   public LocalDateTime getDeliveryTime() {
      return this.deliveryTime;
   }

   public Integer getOrdState() {
      return this.ordState;
   }

   public String getRemark() {
      return this.remark;
   }

   public Long getOrderId() {
      return this.orderId;
   }

   public String getMacOrderId() {
      return this.macOrderId;
   }

   public String getMachineSn() {
      return this.machineSn;
   }

   public String getMachineNum() {
      return this.machineNum;
   }

   public String getPlateSerialNum() {
      return this.plateSerialNum;
   }

   public String getCustName() {
      return this.custName;
   }

   public Long getOperatorId() {
      return this.operatorId;
   }

   public String getOperatorName() {
      return this.operatorName;
   }

   public Long getCashierId() {
      return this.cashierId;
   }

   public String getCashierName() {
      return this.cashierName;
   }

   public Integer getNuClearMode() {
      return this.nuClearMode;
   }

   public Integer getConsumMode() {
      return this.consumMode;
   }

   public Integer getIfOnline() {
      return this.ifOnline;
   }

   public Long getStallId() {
      return this.stallId;
   }

   public String getStallName() {
      return this.stallName;
   }

   public Long getRoomId() {
      return this.roomId;
   }

   public String getRoomName() {
      return this.roomName;
   }

   public Integer getMealtimeType() {
      return this.mealtimeType;
   }

   public String getMealtimeName() {
      return this.mealtimeName;
   }

   public String getMealCode() {
      return this.mealCode;
   }

   public LocalDate getOrderDate() {
      return this.orderDate;
   }

   public BigDecimal getPayableAmount() {
      return this.payableAmount;
   }

   public BigDecimal getDiscountsAmount() {
      return this.discountsAmount;
   }

   public BigDecimal getCouponAmount() {
      return this.couponAmount;
   }

   public BigDecimal getDeliveryAmount() {
      return this.deliveryAmount;
   }

   public BigDecimal getPackingAmount() {
      return this.packingAmount;
   }

   public BigDecimal getAccPayAmount() {
      return this.accPayAmount;
   }

   public BigDecimal getOutPayAmount() {
      return this.outPayAmount;
   }

   public BigDecimal getRefundAmount() {
      return this.refundAmount;
   }

   public LocalDateTime getOrderTime() {
      return this.orderTime;
   }

   public Integer getOrderType() {
      return this.orderType;
   }

   public Integer getOrderState() {
      return this.orderState;
   }

   public Integer getOrderRefundState() {
      return this.orderRefundState;
   }

   public Integer getDeductionType() {
      return this.deductionType;
   }

   public Integer getPayChannel() {
      return this.payChannel;
   }

   public String getPartPayReason() {
      return this.partPayReason;
   }

   public Integer getDishesState() {
      return this.dishesState;
   }

   public Integer getCommentState() {
      return this.commentState;
   }

   public List<OrderDetailVO> getOrderDetailList() {
      return this.orderDetailList;
   }

   public void setId(final Long id) {
      this.id = id;
   }

   public void setOrdId(final Long ordId) {
      this.ordId = ordId;
   }

   public void setLeOrdId(final Long leOrdId) {
      this.leOrdId = leOrdId;
   }

   public void setCustId(final Long custId) {
      this.custId = custId;
   }

   public void setOpenid(final String openid) {
      this.openid = openid;
   }

   public void setSourceType(final Integer sourceType) {
      this.sourceType = sourceType;
   }

   public void setOrdTime(final LocalDateTime ordTime) {
      this.ordTime = ordTime;
   }

   public void setShopstallName(final String shopstallName) {
      this.shopstallName = shopstallName;
   }

   public void setShopstallId(final Long shopstallId) {
      this.shopstallId = shopstallId;
   }

   public void setMchNum(final String mchNum) {
      this.mchNum = mchNum;
   }

   public void setMchName(final String mchName) {
      this.mchName = mchName;
   }

   public void setCanteenId(final Long canteenId) {
      this.canteenId = canteenId;
   }

   public void setCanteenName(final String canteenName) {
      this.canteenName = canteenName;
   }

   public void setIntervalId(final Long intervalId) {
      this.intervalId = intervalId;
   }

   public void setIntervalName(final String intervalName) {
      this.intervalName = intervalName;
   }

   public void setTradeTime(final LocalDateTime tradeTime) {
      this.tradeTime = tradeTime;
   }

   public void setPayType(final Integer payType) {
      this.payType = payType;
   }

   public void setPayState(final Integer payState) {
      this.payState = payState;
   }

   public void setAmount(final Integer amount) {
      this.amount = amount;
   }

   public void setCouponReduce(final Integer couponReduce) {
      this.couponReduce = couponReduce;
   }

   public void setVoucherReduce(final Integer voucherReduce) {
      this.voucherReduce = voucherReduce;
   }

   public void setRedEnvelopeReduce(final Integer redEnvelopeReduce) {
      this.redEnvelopeReduce = redEnvelopeReduce;
   }

   public void setSubsidyReduce(final Integer subsidyReduce) {
      this.subsidyReduce = subsidyReduce;
   }

   public void setPersonalPay(final Integer personalPay) {
      this.personalPay = personalPay;
   }

   public void setThirdAmount(final Integer thirdAmount) {
      this.thirdAmount = thirdAmount;
   }

   public void setThirdPayType(final Integer thirdPayType) {
      this.thirdPayType = thirdPayType;
   }

   public void setDeliveryFee(final Integer deliveryFee) {
      this.deliveryFee = deliveryFee;
   }

   public void setRealAmount(final Integer realAmount) {
      this.realAmount = realAmount;
   }

   public void setPayTime(final LocalDateTime payTime) {
      this.payTime = payTime;
   }

   public void setDeliveryType(final Integer deliveryType) {
      this.deliveryType = deliveryType;
   }

   public void setDeliveryAddr(final String deliveryAddr) {
      this.deliveryAddr = deliveryAddr;
   }

   public void setDeliveryTime(final LocalDateTime deliveryTime) {
      this.deliveryTime = deliveryTime;
   }

   public void setOrdState(final Integer ordState) {
      this.ordState = ordState;
   }

   public void setRemark(final String remark) {
      this.remark = remark;
   }

   public void setOrderId(final Long orderId) {
      this.orderId = orderId;
   }

   public void setMacOrderId(final String macOrderId) {
      this.macOrderId = macOrderId;
   }

   public void setMachineSn(final String machineSn) {
      this.machineSn = machineSn;
   }

   public void setMachineNum(final String machineNum) {
      this.machineNum = machineNum;
   }

   public void setPlateSerialNum(final String plateSerialNum) {
      this.plateSerialNum = plateSerialNum;
   }

   public void setCustName(final String custName) {
      this.custName = custName;
   }

   public void setOperatorId(final Long operatorId) {
      this.operatorId = operatorId;
   }

   public void setOperatorName(final String operatorName) {
      this.operatorName = operatorName;
   }

   public void setCashierId(final Long cashierId) {
      this.cashierId = cashierId;
   }

   public void setCashierName(final String cashierName) {
      this.cashierName = cashierName;
   }

   public void setNuClearMode(final Integer nuClearMode) {
      this.nuClearMode = nuClearMode;
   }

   public void setConsumMode(final Integer consumMode) {
      this.consumMode = consumMode;
   }

   public void setIfOnline(final Integer ifOnline) {
      this.ifOnline = ifOnline;
   }

   public void setStallId(final Long stallId) {
      this.stallId = stallId;
   }

   public void setStallName(final String stallName) {
      this.stallName = stallName;
   }

   public void setRoomId(final Long roomId) {
      this.roomId = roomId;
   }

   public void setRoomName(final String roomName) {
      this.roomName = roomName;
   }

   public void setMealtimeType(final Integer mealtimeType) {
      this.mealtimeType = mealtimeType;
   }

   public void setMealtimeName(final String mealtimeName) {
      this.mealtimeName = mealtimeName;
   }

   public void setMealCode(final String mealCode) {
      this.mealCode = mealCode;
   }

   @JsonFormat(
      pattern = "yyyy-MM-dd"
   )
   public void setOrderDate(final LocalDate orderDate) {
      this.orderDate = orderDate;
   }

   public void setPayableAmount(final BigDecimal payableAmount) {
      this.payableAmount = payableAmount;
   }

   public void setDiscountsAmount(final BigDecimal discountsAmount) {
      this.discountsAmount = discountsAmount;
   }

   public void setCouponAmount(final BigDecimal couponAmount) {
      this.couponAmount = couponAmount;
   }

   public void setDeliveryAmount(final BigDecimal deliveryAmount) {
      this.deliveryAmount = deliveryAmount;
   }

   public void setPackingAmount(final BigDecimal packingAmount) {
      this.packingAmount = packingAmount;
   }

   public void setAccPayAmount(final BigDecimal accPayAmount) {
      this.accPayAmount = accPayAmount;
   }

   public void setOutPayAmount(final BigDecimal outPayAmount) {
      this.outPayAmount = outPayAmount;
   }

   public void setRefundAmount(final BigDecimal refundAmount) {
      this.refundAmount = refundAmount;
   }

   @JsonFormat(
      pattern = "yyyy-MM-dd HH:mm:ss"
   )
   public void setOrderTime(final LocalDateTime orderTime) {
      this.orderTime = orderTime;
   }

   public void setOrderType(final Integer orderType) {
      this.orderType = orderType;
   }

   public void setOrderState(final Integer orderState) {
      this.orderState = orderState;
   }

   public void setOrderRefundState(final Integer orderRefundState) {
      this.orderRefundState = orderRefundState;
   }

   public void setDeductionType(final Integer deductionType) {
      this.deductionType = deductionType;
   }

   public void setPayChannel(final Integer payChannel) {
      this.payChannel = payChannel;
   }

   public void setPartPayReason(final String partPayReason) {
      this.partPayReason = partPayReason;
   }

   public void setDishesState(final Integer dishesState) {
      this.dishesState = dishesState;
   }

   public void setCommentState(final Integer commentState) {
      this.commentState = commentState;
   }

   public void setImgUrl(final String imgUrl) {
      this.imgUrl = imgUrl;
   }

   public void setOrderDetailList(final List<OrderDetailVO> orderDetailList) {
      this.orderDetailList = orderDetailList;
   }

}
