package com.qmth.teachcloud.report.business.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ConversionUtils {
    /**
     * 将属性的值从String类型转换成他们各自对应的数据类型的值
     *
     * @param type  属性的类型
     * @param value 属性的值
     * @return 对应数据类型的值
     */
    public static Object convertAttributeValue(String type, String value) throws ParseException {
        Object result;
        if ("int".equals(type)) {
            if (value != null && value.length() != 0){
                result = Integer.parseInt(value);
            }else {
                result = 0;
            }
        } else if ("double".equals(type)) {
            if (value != null && value.length() != 0) {
                result = Double.parseDouble(value);
            }else {
                result = 0;
            }
        } else if ("long".equals(type)) {
            if (value != null && value.length() != 0) {
                result = Long.parseLong(value);
            }else {
                result = 0;
            }
        } else if ("Date".equals(type)) {
            SimpleDateFormat sdf = null;
            if(value.matches("\\d{4}-\\d{2}-\\d{2}")){
                sdf = new SimpleDateFormat("yyyy-mm-dd");
            }else if (value.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}\\d{2}\\d{2}")){
                sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
            } else {
                return new Date();
            }
            return sdf.parse(value);
        } else {
            return value;
        }
        return result;
    }

    /**
     * 实现首字母大写
     * @param str 源字符串
     * @return 大写处理后的字符串
     */
    public static String initCap(String str){
        if (str == null || "".equals(str)){
            return str;
        }else if (str.length() == 1){
            return str.toUpperCase();
        }else {
            return str.substring(0,1).toUpperCase() + str.substring(1);
        }
    }
}
