package com.zksy.common.convert;

import com.zksy.common.core.domain.entity.SysDictData;
import com.zksy.common.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

/**
 * @author ：BIN.LI
 * @date ：2022/6/15 16:06
 * @description：
 */
@Slf4j
public abstract class BaseCovert {
    public abstract List<SysDictData> getDictData(String dictType);


    public List<String> getDictValue(String dictType) {
        List<SysDictData> dictDatas = getDictData(dictType);
        List<String> list = new ArrayList<>();
        dictDatas.stream().map(bean -> {
            list.add(bean.getDictLabel());
            return bean;
        }).collect(Collectors.toList());
        return list;
    }

    public abstract Object transferValue(Map<String, Object> param);

    public Date convertDate(Map<String, String> param) {
        return DateUtils.dateTime(param.get("dateFormat"), param.get("ts"));
    }

    public Boolean checkData(String rex, String data) {
        return Pattern.compile(rex).matcher(data).find();
    }
}
