零、判斷ES索引是否存在
public boolean isExistsIndex(String indexName){
IndicesExistsResponse response =client.admin().indices().exists(
new IndicesExistsRequest().indices(new String[]{indexName})).actionGet();
return response.isExists();
}
一、只啓動一次方法
@PostConstruct
public void init(){
if(!isExistsIndex("index")){ elasticsearchTemplate.putMapping(User.class); }
}
@Service
public class IndexService implements ApplicationListener<ApplicationReadyEvent> {
@Override
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
if(!isExistsIndex("index")){ elasticsearchTemplate.putMapping(User.class); }
}
}
二、時間計算工具類
public static Long getMinutesToMilliseconds(long timingTime){
return timingTime * 60000;
}
public static Long getNextTime(String workDate, String time){
List<String> list = Arrays.asList(workDate.split(","));
String week = getWeek();
if(list.size() > 1){
String theNext = getTheNext(list, week);
if(theNext != null){
return dateToStamp(nextDate(),time);
}
String thePrevious = getThePrevious(list, week);
if(thePrevious != null){
String oneWeek = list.get(0);
return dateToStamp(weekDate(oneWeek),time);
}
}
if(list.size() == 1 && list.contains(week)){
return dateToStamp(weekSevenDate(),time);
}
return 0L;
}
public static String getThePrevious(List<String> list,String week){
String thePrevious = null;
int size = list.size();
for (int i = 0; i < size; i++) {
String n = list.get(i);
if(n.equals(week)){
if(i-1 >= 0){
thePrevious = list.get(i-1);
}
}
}
return thePrevious;
}
public static String getTheNext(List<String> list,String week){
String theNext = null;
int size = list.size();
for (int i = 0; i < size; i++) {
String n = list.get(i);
if(n.equals(week)){
if(size > i+1){
theNext = list.get(i+1);
}
}
}
return theNext;
}
public static String getWeek() {
String week = "";
Date today = new Date();
Calendar c = Calendar.getInstance();
c.setTime(today);
int weekday = c.get(Calendar.DAY_OF_WEEK);
if (weekday == 1) {
week = "7";
} else if (weekday == 2) {
week = "1";
} else if (weekday == 3) {
week = "2";
} else if (weekday == 4) {
week = "3";
} else if (weekday == 5) {
week = "4";
} else if (weekday == 6) {
week = "5";
} else if (weekday == 7) {
week = "6";
}
return week;
}
public static Long dateToStamp(String date, String time){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
long endTime = 0L;
try {
endTime = sdf.parse(date.concat(" ").concat(time)).getTime();
} catch (Exception e) {
log.error("日期轉時間戳異常:{}",e.getMessage());
}
return endTime;
}
public static String nextDate(){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date date = calendar.getTime();
return sdf.format(date);
}
public static String weekDate(String week){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
calendar.add(Calendar.DAY_OF_YEAR,CalculationDaysUtils.getDays(getWeek(),week));
Date date = calendar.getTime();
return sdf.format(date);
}
public static String weekSevenDate(){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
calendar.add(Calendar.DAY_OF_YEAR, 7);
Date date = calendar.getTime();
return sdf.format(date);
}
public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
Calendar date = Calendar.getInstance();
date.setTime(nowTime);
Calendar begin = Calendar.getInstance();
begin.setTime(beginTime);
Calendar end = Calendar.getInstance();
end.setTime(endTime);
if (date.after(begin) && date.before(end)) {
return true;
} else {
return false;
}
}
public static Integer getDays(String weekOne,String weekTwo){
Map<String, Integer> head = new HashMap<>(53);
head.put("12",6);
head.put("13",5);
head.put("14",4);
head.put("15",3);
head.put("16",2);
head.put("17",1);
head.put("21",6);
head.put("23",6);
head.put("24",5);
head.put("25",4);
head.put("26",3);
head.put("27",2);
head.put("31",5);
head.put("32",6);
head.put("34",6);
head.put("35",5);
head.put("36",4);
head.put("37",3);
head.put("41",4);
head.put("42",5);
head.put("43",6);
head.put("45",6);
head.put("46",5);
head.put("47",4);
head.put("51",3);
head.put("52",4);
head.put("53",5);
head.put("54",6);
head.put("56",6);
head.put("57",5);
head.put("61",2);
head.put("62",3);
head.put("63",4);
head.put("64",5);
head.put("65",6);
head.put("67",6);
head.put("71",1);
head.put("72",2);
head.put("73",3);
head.put("74",4);
head.put("75",5);
head.put("76",6);
return head.get(weekOne.concat(weekTwo));
}