FollowPoolQueryVO.java 4.39 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 org.springframework.util.CollectionUtils;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;

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

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class FollowPoolQueryVO extends PoolQuery {
    private Integer type;
    /**
     * 贷款期客户
     */
    private Boolean loanCustomer;
    /**
     * 跟进开始时间(区间)
     */
    private String followStartTime;
    /**
     * 跟进状态
     */
    private String state;
    /**
     * 二次分配
     */
    private Boolean redistribution;
    /**
     * 战败类型
     */
    private Integer initiative;
    /**
     * 来源[公共池线索用]
     */
    private String source;
    private String closeTime;

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

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

    public Date getStartTime1() {
        if (StringUtils.isBlank(followStartTime)) {
            return null;
        }
        String[] times = followStartTime.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(followStartTime)) {
            return null;
        }
        String[] times = followStartTime.split(",");
        if (times.length < TIME_STR_LENGTH) {
            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 getCloseTime1() {
        if (StringUtils.isBlank(closeTime)) {
            return null;
        }
        String[] times = closeTime.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 getCloseTime2() {
        if (StringUtils.isBlank(closeTime)) {
            return null;
        }
        String[] times = closeTime.split(",");
        if (times.length < TIME_STR_LENGTH) {
            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 List<Integer> getState() {
        if (StringUtils.isBlank(state)) {
            return null;
        }
        List<Integer> stateList = Stream.of(state.split(",")).filter(cn.fw.valhalla.common.utils.StringUtils::isNumber).map(Integer::valueOf).collect(Collectors.toList());
        return CollectionUtils.isEmpty(stateList) ? null : stateList;
    }

    public List<Integer> getSource() {
        if (StringUtils.isBlank(source)) {
            return null;
        }
        List<Integer> sourceList = Stream.of(source.split(",")).filter(cn.fw.valhalla.common.utils.StringUtils::isNumber).map(Integer::valueOf).collect(Collectors.toList());
        return CollectionUtils.isEmpty(sourceList) ? null : sourceList;
    }
}