package cn.superdesk.uniorder.dto.param.accounting.score.customer;

import cn.superdesk.uniorder.common.pagination.AnBaseQueryCriteria;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.util.List;

/**
 * @Description: XML getScoreOrderReconciliationNotYet
 * @Author: linjinyu
 * @CreateDate: 2022/1/4 上午10:47
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/1/4 上午10:47
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder(toBuilder = true)
@Data
public class AccountingOrderScoreCustomerNotYetDimCreditQueryCriteria extends AnBaseQueryCriteria {

    /****************************************** 场景1 start ******************************************/

    @ApiModelProperty("筛选条件-下单时间 so.create_time")
    private String startTime;
    @ApiModelProperty("筛选条件-下单时间 so.create_time")
    private String endTime;

    @ApiModelProperty("筛选条件-订单编号 uo.order_sn like CONCAT('%',#{orderSn},'%') or uo.refund_order_sn like CONCAT('%',#{orderSn},'%')")
    private String orderSn;
    @ApiModelProperty("筛选条件-订单编号 uo.order_sn = #{orderSnEq} or uo.refund_order_sn = #{orderSnEq}")
    private String orderSnEq;

    @ApiModelProperty("筛选条件-企业Id so.purchase_virt_id")
    private Long   purchaseVirtId;
    @ApiModelProperty("筛选条件-企业名称 so.purchase_virt_name")
    private String purchaseVirtName;
    private String purchaseDepartmentName;
    private Long   purchaseUserId;
    @ApiModelProperty("筛选条件-下单人姓名 so.purchase_user_name")
    private String purchaseUserName;
    private String purchasePhone;

    @ApiModelProperty("积分类型 soc.credit_name")
    private String creditName;

    /**
     * 1积分支付  2微信支付 TODO ? 待确认
     */
    private Integer payType;
    //
    @ApiModelProperty("积分批次 soc.batchs")
    private String  batchs;

//	// 是否要求 数据脱敏 开关 参考名
//	params.put(SensitiveRequireSwitchConstants.SWITCH_PARAM, getInteger(SensitiveRequireSwitchConstants.SWITCH_PARAM));
//	params.put(SensitiveRequireSwitchConstants.SWITCH_PARAM, SensitiveRequireSwitchEnum.On.getKey());

    /****************************************** 场景1   end ******************************************/

    @ApiModelProperty("前端不用传 用于区分 积分结算2.0-未对账流水|订单流水 ")
    private Integer accountingStateCustomer;

    /****************************************** 场景2 流水内相关 start ******************************************/

    @ApiModelProperty("前端勾选情况-客户结算(积分)-创建结算单 预览")
    private List<AccountingOrderScoreCustomerCreateSelectedCreditParam> creditSelected;

//	【后端已完成-20220222-对映文档-2. 积分结算-2.3 未对账流水-已整理-20220222】 https://www.tapd.cn/33003868/prong/stories/view/1133003868001003945
//	①将当前所勾选的未对账流水数据及其关联的未对账流水数据一并自动带入到"创建对账单"页面:
//	·勾选"正单/负单"未对账流水所关联当前未对账流水同订单同商品的"负单/正单"一并带入,同一条流水id去重;
//	·勾选"同一订单流水组合支付其中一条"未对账流水所关联当前未对账流水"同订单同商品其他支付流水 "一并带入,同一条流水id去重;
//	·不再过滤当前所勾选积分类型为`微信支付`的未对账流水;
//	②注:所有关联流水带入时必须为"未对账"状态,已对账和存在数据变动的流水不关联带入,自动过滤掉;

    @ApiModelProperty("自动补全;按维度:-1-不补;0-订单;1-商品(没逻辑);2-流水;ref AccountingOrderDimCreateByEnum")
    private Integer      autoComplete = 2;
    @ApiModelProperty("前端不用传;当自动补全=1时,creditSelected(不为空)转换填充")
    private List<String> orderSnsSelected;
    @ApiModelProperty("前端不用传;当自动补全=0时,creditSelected(不为空)转换填充")
    private List<Long>   idsCredit;

    /****************************************** 场景2 流水内相关   end ******************************************/


//    @ApiModelProperty("引用Enum CommonSourceFromEnum-支持多选-add at v2.3 20220516")
//    private List<String> sourceFromsSelected;
    @ApiModelProperty("引用Enum CommonServiceNoEnum-支持多选-add at v2.3 20220516")
    private List<String> serviceNosSelected;


    /**************************************** v2.5.1 mark by linjinyu at 2022-07-14 14:27:06 - start ****************************************/


    //    orderSn: "245764065100"
//    goodsName: "菊芝韵 茶叶 花草茶 庐山金菊 金丝皇菊大菊花茶30朵礼盒装"
//    goodsId: 5128573
//    unifiedOrderGoodsId: 1911428
//    operationTaxCode: "1010116010000000000"


//    @ApiModelProperty("")
//    private String orderSn;
    @ApiModelProperty("")
    private String goodsName;
    @ApiModelProperty("")
    private Long   goodsId;
    @ApiModelProperty("")
    private Long   unifiedOrderGoodsId;
    @ApiModelProperty("")
    private String operationTaxCode;

    /**************************************** v2.5.1 mark by linjinyu at 2022-07-14 14:27:06 -  end ****************************************/

}
