StammkundePoolQueryVO.java 4.32 KB
package cn.fw.valhalla.domain.query;

import cn.fw.valhalla.common.utils.DateUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.Objects;

/**
 * 档案查询条件
 *
 * @author kurisu
 */

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class StammkundePoolQueryVO extends PoolQuery {
    private String frameNo;
    private Long brandId;
    private Long seriesId;
    private Long specId;
    /**
     * 档案创建时间
     */
    private String activationTime;
    private Integer sources;
    private Integer reason;
    /**
     * 区间
     */
    private String defeatTime;
    private Integer poolStatus;
    private String customerName;
    private String address;
    private Integer level;
    private Boolean warrantyCard;
    private Boolean maintainCard;
    private Boolean defeated;
    private String startTime;
    /**
     * 贷款期客户
     */
    private Boolean loanCustomer;

    public Integer getLoanCustomer() {
        if (Objects.isNull(loanCustomer)) {
            return null;
        }
        return loanCustomer ? 1 : 0;
    }

    public Integer getWarrantyCard() {
        if (Objects.isNull(warrantyCard)) {
            return null;
        }
        return warrantyCard ? 1 : 0;
    }

    public Integer getMaintainCard() {
        if (Objects.isNull(maintainCard)) {
            return null;
        }
        return maintainCard ? 1 : 0;
    }

    public Integer getDefeated() {
        if (Objects.isNull(defeated)) {
            return null;
        }
        return defeated ? 1 : 0;
    }

    public Date getActivationTime() {
        if (StringUtils.isNotBlank(activationTime) && NumberUtils.isDigits(activationTime)) {
            LocalDateTime localDateTime = Instant.ofEpochMilli(NumberUtils.toLong(activationTime)).atZone(ZoneId.systemDefault()).toLocalDateTime();
            return DateUtil.getEndInTime(DateUtil.localDateTime2Date(localDateTime));
        }
        return null;
    }

    public Date getStartTime1() {
        if (StringUtils.isBlank(startTime)) {
            return null;
        }
        String[] times = startTime.split(",");
        if (StringUtils.isNotBlank(times[0]) && NumberUtils.isDigits(times[0])) {
            LocalDateTime localDateTime = Instant.ofEpochMilli(NumberUtils.toLong(times[0])).atZone(ZoneId.systemDefault()).toLocalDateTime();
            return DateUtil.getBeginInTime(DateUtil.localDateTime2Date(localDateTime));
        }
        return null;
    }

    public Date getStartTime2() {
        if (StringUtils.isBlank(startTime)) {
            return null;
        }
        String[] times = startTime.split(",");
        if (times.length < 2) {
            return null;
        }
        if (StringUtils.isNotBlank(times[1]) && NumberUtils.isDigits(times[1])) {
            LocalDateTime localDateTime = Instant.ofEpochMilli(NumberUtils.toLong(times[1])).atZone(ZoneId.systemDefault()).toLocalDateTime();
            return DateUtil.getEndInTime(DateUtil.localDateTime2Date(localDateTime));
        }
        return null;
    }

    public Date getDefeatTime1() {
        if (StringUtils.isBlank(defeatTime)) {
            return null;
        }
        String[] times = defeatTime.split(",");
        if (StringUtils.isNotBlank(times[0]) && NumberUtils.isDigits(times[0])) {
            LocalDateTime localDateTime = Instant.ofEpochMilli(NumberUtils.toLong(times[0])).atZone(ZoneId.systemDefault()).toLocalDateTime();
            return DateUtil.getBeginInTime(DateUtil.localDateTime2Date(localDateTime));
        }
        return null;
    }

    public Date getDefeatTime2() {
        if (StringUtils.isBlank(defeatTime)) {
            return null;
        }
        String[] times = defeatTime.split(",");
        if (times.length < 2) {
            return null;
        }
        if (StringUtils.isNotBlank(times[1]) && NumberUtils.isDigits(times[1])) {
            LocalDateTime localDateTime = Instant.ofEpochMilli(NumberUtils.toLong(times[1])).atZone(ZoneId.systemDefault()).toLocalDateTime();
            return DateUtil.getEndInTime(DateUtil.localDateTime2Date(localDateTime));
        }
        return null;
    }
}