今日份代码如下:

/**

*

* @Author: SXD

* @Description:

* @Date: create in 2019/9/20 15:39

*/

public class ProSkuSearchRecordRedisData {

private String recordId;

private String skuSearchData;

private Date exportDate;

private String exportUrl;

private String errorMsg;

private Double score;

private Integer status;//异步导出状态 【1 可导出】【0后台未处理】【-1后台处理失败】

public static ProSkuSearchRecordRedisData init(String recordId,String skuSearchData){

ProSkuSearchRecordRedisData redisData = new ProSkuSearchRecordRedisData();

redisData.setRecordId(recordId); //格式yyyyMMddXXXXXXXXXX

redisData.setSkuSearchData(skuSearchData);

redisData.setExportDate(new Date());

redisData.setScore(Double.parseDouble(recordId.substring(0, 8))); //权重为Double.parseDouble(yyyyMMdd))

redisData.setStatus(ProExprotRecordStatusEnum.STATUS_WAIT.getValue());

return redisData;

}

/**

* 获取 对象的 属性名+属性值

* @param redisData

* @return

*/

public static Map getReflexRecord(ProSkuSearchRecordRedisData redisData){

Map map = new HashMap<>();

Class aClass = redisData.getClass();

Field[] declaredFields = aClass.getDeclaredFields();

for (Field declaredField : declaredFields) {

declaredField.setAccessible(true);

String fieldName = declaredField.getName();

Object fieldValue = null;

try {

fieldValue = declaredField.get(redisData);

if (fieldValue instanceof Date){

Date date = (Date)fieldValue;

fieldValue = getDateStr(date);

}

} catch (IllegalAccessException e) {

e.printStackTrace();

}

map.put(fieldName,String.valueOf(fieldValue));

}

return map;

}

/**

* 时间转成字符串

* @param date

* @return

*/

private static String getDateStr(Date date){

LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

return localDateTime.format(format);

}

/**

* 字符串转时间

* @param dateStr

* @return

*/

private static Date getDateByStr(String dateStr){

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

LocalDateTime localDateTime = LocalDateTime.parse(dateStr, formatter);

ZoneId zone = ZoneId.systemDefault();

Instant instant = localDateTime.atZone(zone).toInstant();

return Date.from(instant);

}

/**

* 设置 对象的 属性名+属性值

* @param map

* @return

*/

public static ProSkuSearchRecordRedisData setReflexRecord(Map map){

ProSkuSearchRecordRedisData obj = new ProSkuSearchRecordRedisData();

Set fieldSet = map.keySet();

Class aClass = obj.getClass();

for (String field : fieldSet) {

try {

Field declaredField = aClass.getDeclaredField(field);

declaredField.setAccessible(true);

Type genericType = declaredField.getGenericType();

if (genericType.getTypeName().contains("String")){

declaredField.set(obj,map.get(field));

}

if (genericType.getTypeName().contains("Double")){

declaredField.set(obj,Double.parseDouble(map.get(field)));

}

if (genericType.getTypeName().contains("Integer")){

declaredField.set(obj,Integer.parseInt(map.get(field)));

}

if (genericType.getTypeName().contains("Date")){

Date value = getDateByStr(map.get(field));

declaredField.set(obj,value);

}

} catch (NoSuchFieldException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

}

return obj;

}

public String getRecordId() {

return recordId;

}

public void setRecordId(String recordId) {

this.recordId = recordId;

}

public String getSkuSearchData() {

return skuSearchData;

}

public void setSkuSearchData(String skuSearchData) {

this.skuSearchData = skuSearchData;

}

public Date getExportDate() {

return exportDate;

}

public void setExportDate(Date exportDate) {

this.exportDate = exportDate;

}

public String getExportUrl() {

return exportUrl;

}

public void setExportUrl(String exportUrl) {

this.exportUrl = exportUrl;

}

public String getErrorMsg() {

return errorMsg;

}

public void setErrorMsg(String errorMsg) {

this.errorMsg = errorMsg;

}

public Double getScore() {

return score;

}

public void setScore(Double score) {

this.score = score;

}

public Integer getStatus() {

return status;

}

public void setStatus(Integer status) {

this.status = status;

}

}

 

查看原文