18 changed files with 411 additions and 130 deletions
@ -1,31 +0,0 @@ |
|||
package org.dromara.business.domain.enums; |
|||
|
|||
import cn.hutool.core.util.StrUtil; |
|||
import lombok.Getter; |
|||
|
|||
import java.util.Arrays; |
|||
|
|||
/** |
|||
* 预警类型枚举类 |
|||
*/ |
|||
@Getter |
|||
public enum AlertTypeEnum { |
|||
|
|||
|
|||
|
|||
|
|||
; |
|||
|
|||
|
|||
private String code; |
|||
|
|||
private String description; |
|||
|
|||
|
|||
public static AlertTypeEnum getTypeByCode(String code){ |
|||
if(StrUtil.isNotEmpty(code)){ |
|||
return Arrays.stream(values()).filter(p -> StrUtil.equals(p.name(),code.toUpperCase())).findAny().orElse(null); |
|||
} |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,51 @@ |
|||
package org.dromara.business.handler; |
|||
|
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.apache.ibatis.type.JdbcType; |
|||
import org.apache.ibatis.type.MappedJdbcTypes; |
|||
import org.apache.ibatis.type.MappedTypes; |
|||
import org.apache.ibatis.type.TypeHandler; |
|||
import org.dromara.business.utils.JsonUtil; |
|||
|
|||
import java.sql.CallableStatement; |
|||
import java.sql.PreparedStatement; |
|||
import java.sql.ResultSet; |
|||
import java.sql.SQLException; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
@MappedJdbcTypes(JdbcType.VARCHAR) // 数据库类型
|
|||
@MappedTypes({List.class}) // java数据类型
|
|||
public class AlertTypeHandler implements TypeHandler<List<String>> { |
|||
|
|||
@Override |
|||
public void setParameter(PreparedStatement preparedStatement, int i, List<String> alertTypeList, JdbcType jdbcType) throws SQLException { |
|||
preparedStatement.setString(i, JsonUtil.toJson(alertTypeList)); |
|||
} |
|||
|
|||
@Override |
|||
public List<String> getResult(ResultSet resultSet, String s) throws SQLException { |
|||
if (StringUtils.isBlank(resultSet.getString(s))) { |
|||
return new ArrayList<>(); |
|||
} |
|||
return JsonUtil.jsonToList(resultSet.getString(s), String.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<String> getResult(ResultSet resultSet, int i) throws SQLException { |
|||
if (StringUtils.isBlank(resultSet.getString(i))) { |
|||
return new ArrayList<>(); |
|||
} |
|||
return JsonUtil.jsonToList(resultSet.getString(i), String.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<String> getResult(CallableStatement callableStatement, int i) throws SQLException { |
|||
String value = callableStatement.getString(i); |
|||
|
|||
if (StringUtils.isBlank(value)) { |
|||
return new ArrayList<>(); |
|||
} |
|||
return JsonUtil.jsonToList(value, String.class); |
|||
} |
|||
} |
@ -0,0 +1,126 @@ |
|||
package org.dromara.business.utils; |
|||
|
|||
import cn.hutool.core.util.ObjectUtil; |
|||
import com.fasterxml.jackson.core.JsonProcessingException; |
|||
import com.fasterxml.jackson.core.type.TypeReference; |
|||
import com.fasterxml.jackson.databind.JavaType; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
|
|||
import java.lang.reflect.Field; |
|||
import java.util.HashMap; |
|||
import java.util.LinkedHashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 定义响应结构 |
|||
*/ |
|||
public class JsonUtil { |
|||
|
|||
private static ObjectMapper MAPPER; |
|||
static{ |
|||
MAPPER=new ObjectMapper(); |
|||
} |
|||
|
|||
/** |
|||
* 将对象转换成json字符串。 |
|||
* @param data |
|||
* @return |
|||
*/ |
|||
public static String toJson(Object data){ |
|||
String string = null; |
|||
try { |
|||
string = MAPPER.writeValueAsString(data); |
|||
if(StringUtils.isEmpty(string)){ |
|||
return null; |
|||
} |
|||
return string; |
|||
} catch (JsonProcessingException e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 将json结果集转化为对象 |
|||
* |
|||
* @param jsonData json数据 |
|||
* @return |
|||
*/ |
|||
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) { |
|||
try { |
|||
T t = MAPPER.readValue(jsonData, beanType); |
|||
return t; |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
/** |
|||
* 将json数据转换成pojo对象list |
|||
* <p>Title: jsonToList</p> |
|||
* <p>Description: </p> |
|||
* @param jsonData |
|||
* @param beanType |
|||
* @return |
|||
*/ |
|||
public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) { |
|||
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); |
|||
try { |
|||
List<T> list = MAPPER.readValue(jsonData, javaType); |
|||
return list; |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
|
|||
return null; |
|||
} |
|||
|
|||
/** |
|||
* 将Object对象里面的属性和值转化成Map对象 |
|||
* |
|||
* @param obj |
|||
* @return |
|||
* @throws IllegalAccessException |
|||
*/ |
|||
public static Map<String, Object> objectToMap(Object obj){ |
|||
try { |
|||
Map<String, Object> map = new HashMap<String,Object>(); |
|||
Class<?> clazz = obj.getClass(); |
|||
for (Field field : clazz.getDeclaredFields()) { |
|||
field.setAccessible(true); |
|||
String fieldName = field.getName(); |
|||
if(ObjectUtil.isNotEmpty(field.get(obj))){ |
|||
Object value = field.get(obj); |
|||
map.put(fieldName, value); |
|||
}else{ |
|||
map.put(fieldName, ""); |
|||
} |
|||
} |
|||
return map; |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
public static Map<String, Object> jsonToMap(String json){ |
|||
try { |
|||
return MAPPER.readValue(json, new TypeReference<Map<String, Object>>(){}); |
|||
} catch (JsonProcessingException e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
public static LinkedHashMap<String, String> jsonToStrMap(String json){ |
|||
try { |
|||
return MAPPER.readValue(json, new TypeReference<LinkedHashMap<String, String>>(){}); |
|||
} catch (JsonProcessingException e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue