//日期格式:yyyy-MM-dd HH:mm:ss
public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
//系统运行最大日期
public static final String STRING_END_DATE = "2047-12-31 23:59:59";
//系统运行最小日期
public static final String STRING_START_DATE = "2017-08-01 00:00:00";
/**
* @Title: getScore
* @Description: 获得Score
* @param sortNo 排序号
* @param sortTime 排序时间
* @param order 排序方式(1:降序,0升序)
* @return score
*/
public static double getScore(String sortNo, Timestamp sortTime, int order) {
double result = -1;
try {
// 排序以1开始
StringBuilder scoreStr = new StringBuilder("1");
// sort 未入力时为000
if (StringUtils.isNoneEmpty(sortNo)) {
scoreStr.append(StringFormat.padRight(String.valueOf(sortNo),
3, '0'));
} else {
scoreStr.append("000");
}
// 统一时间格式(数据库保存时会舍弃毫秒造成精度丢失)
DateFormat formator = new SimpleDateFormat(DATE_FORMAT);
String updateTimeStr = formator.format(sortTime);
long time = formator.parse(updateTimeStr).getTime();
long score = -1;
if (1 == order) {
// 降顺
Date maxDate = DateUtil.strParceDate(STRING_END_DATE);
score = maxDate.getTime() - time;
} else {
// 升顺
Date minDate = DateUtil.strParceDate(STRING_START_DATE);
score = time - minDate.getTime();
}
// 补足12位
scoreStr.append(StringFormat.padRight(String.valueOf(score), 12,
'0'));
result = Double.valueOf(scoreStr.toString());
} catch (ParseException e) {
e.printStackTrace();
Logger.getLogger().info(
"sort生成失败: sortNo:" + sortNo + " sortTime:"
+ sortTime.toString() + " order:" + order
+ " 失败信息:" + e.getMessage());
}
return result;
}
ZSET缓存中score的生成方法
最新推荐文章于 2022-12-08 14:30:41 发布