package cn.com.ty.lift.ud.userOrders.controller.query;

import java.math.BigDecimal;
import java.util.Date;

import cn.com.ty.lift.ud.common.BasePageQuery;
import cn.com.ty.lift.ud.userOrders.mapper.entity.UserOrders;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 订单 查询条件
 * 
 * @author Xson
 * @date 2020-05-23
 */
@Data
@ApiModel(description = "订单 查询条件")
public final class UserOrdersQuery extends BasePageQuery {

	/**
	 * 数据id 对应数据id
	 */
	@ApiModelProperty("数据id 对应数据id")
	private Integer dataId;

	/**
	 * 数据关联表 出诊、问诊
	 */
	@ApiModelProperty("数据关联表 出诊、问诊")
	private Integer dataTable;

	/**
	 * 用户 用户
	 */
	@ApiModelProperty("用户 用户")
	private Integer userId;

	/**
	 * 红包抵扣
	 */
	@ApiModelProperty("红包抵扣")
	private BigDecimal redEnvelopeDeduction;

	/**
	 * 优惠券抵扣
	 */
	@ApiModelProperty("优惠券抵扣")
	private BigDecimal couponDeduction;

	/**
	 * 总价 总价
	 */
	@ApiModelProperty("总价 总价")
	private BigDecimal totalCost;

	/**
	 * 实际支付价 实际支付价
	 */
	@ApiModelProperty("实际支付价 实际支付价")
	private BigDecimal payCost;

	/**
	 * 订单编号 订单编号
	 */
	@ApiModelProperty("订单编号 订单编号")
	private String orderNo;

	/**
	 * 支付方式 1:微信2:支付宝
	 */
	@ApiModelProperty("支付方式 1:微信2:支付宝")
	private Integer payType;

	/**
	 * 订单状态
	 */
	@ApiModelProperty("订单状态")
	private Integer orderStatus;

	/**
	 * 创建人
	 */
	@ApiModelProperty("创建人")
	private String createBy;

	/**
	 * 创建时间
	 */
	@ApiModelProperty("创建时间")
	private Date createTime;

	/**
	 * 更新人
	 */
	@ApiModelProperty("更新人")
	private String updateBy;

	/**
	 * 更新时间
	 */
	@ApiModelProperty("更新时间")
	private Date updateTime;

	/**
	 * 查询条件
	 * 
	 * @return
	 */
	@Override
	public Wrapper condition() {
		LambdaQueryWrapper<UserOrders> query = new LambdaQueryWrapper<>();
		if(null != userId) {
        	query.eq(UserOrders::getUserId, userId);
        }
		if(null != payType) {
        	query.eq(UserOrders::getPayType, payType);
        }
		if(null != orderStatus) {
        	query.eq(UserOrders::getOrderStatus, orderStatus);
        }
		return query;
	}

	/**
	 * 分页条件
	 * 
	 * @return
	 */
	@Override
	public IPage page() {
		Page<UserOrders> page = new Page<>(getPageNum(), getPageSize());
		return page;
	}

}
