SecretReportHistoryQuery.java 2.22 KB
package cn.fw.valhalla.domain.query;

import cn.fw.common.validator.EnumValue;
import cn.fw.valhalla.common.utils.DateUtil;
import cn.fw.valhalla.domain.enums.CallTypeEnum;
import cn.fw.valhalla.domain.enums.FollowTypeEnum;
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;

/**
 * @author : kurisu
 * @className : SecretReportHistoryQuery
 * @description : 查询条件
 * @date: 2021-02-21 15:55
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class SecretReportHistoryQuery extends PoolQuery {
    @EnumValue(enumClass = FollowTypeEnum.class, message = "跟进类型不正确")
    private Integer taskType;

    /**
     * 主叫/被叫
     */
    @EnumValue(enumClass = CallTypeEnum.class, message = "主被叫类型不正确")
    private Integer callType;

    /**
     * 通话时间段(区间)
     */
    private String callTime;
    /**
     * 客户名称
     */
    private String customerName;


    public Date getStartTime1() {
        if (StringUtils.isBlank(callTime)) {
            return null;
        }
        String[] times = callTime.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(callTime)) {
            return null;
        }
        String[] times = callTime.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;
    }
}