package com.zfire.mall.manager.bean.k3;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;
import java.util.Date;

@Data
public class RequestApiBean implements Serializable {

    /**
     * 组织
     */
    @JsonIgnore
    private String orgId;
    /**
     * 组织编码
     */
    @JsonIgnore
    private String orgNumber;
    /**
     * 范围查询开始时间
     */
    @JsonIgnore
    private String startTime;
    /**
     * 范围查询结束时间
     */
    @JsonIgnore
    private String endTime;
    /**
     * 表单类型(默认基础资料)
     */
    @JsonIgnore
    private int formType = 0;
    /**
     * 不记录同步时间
     */
    private Boolean notTime = false;

    /**
     * 业务对象表单Id
     */
    @JsonProperty("FormId")
    private String formId;
    /**
     * 需查询的字段key集合，字符串类型
     */
    @JsonProperty("FieldKeys")
    private String fieldKeys;
    /**
     * 过滤条件，字符串类型，"fieldKey = '123' AND fieldKey in('123','456') AND fieldKey like '测试'"
     *
     */
    @JsonProperty("FilterString")
    private String filterString;
    /**
     * 排序字段，字符串类型
     */
    @JsonProperty("RrderString")
    private String orderString;
    /**
     * 返回总行数，整型
     */
    @JsonProperty("TopRowCount")
    private Integer topRowCount = 1000;
    /**
     * 开始行索引，整型
     */
    @JsonProperty("StartRow")
    private Integer startRow = 0;
    /**
     * 最大行数，整型，不能超过2000
     */
    @JsonProperty("Limit")
    private Integer limit = 1000;

    public void setEndTime(String endTime) {
        if (StringUtils.isBlank(endTime)) {
            endTime = DateUtil.formatDateTime(new Date());
        }
        this.endTime = endTime;
    }

//    public void setFieldKeys(String... fieldKeys) {
//        if (ArrayUtils.isNotEmpty(fieldKeys)) {
//            StringBuilder sb = new StringBuilder();
//            for (int i = 0; i < fieldKeys.length; i++) {
//                sb.append(fieldKeys[i]).append(",");
//            }
//            this.fieldKeys = sb.deleteCharAt(sb.lastIndexOf(",")).toString();
//        } else {
//            this.fieldKeys = "";
//        }
//    }

}
