因为项目开发考勤系统,需要用到今年的所有节假日,在找到根据年返回当年所有的节假日日期的调用接口,
对接口返回数据进行处理得到 yyyy-MM-dd 日期格式,并存入数据库。
处理代码为:
public class HolidayController {
@ResponseBody
@RequestMapping(value = {"createDate"})
public BaseOpMsg date() {
sysVacationsMapper.delete();
BaseOpMsg result = new BaseOpMsg();
Calendar a=Calendar.getInstance();
System.out.println(a.get(Calendar.YEAR));//得到当前年份
String httpArg = String.valueOf(a.get(Calendar.YEAR));
System.out.println(httpArg);
List<String> list = new ArrayList<>();
list.add(httpArg);
Map<String, Object> map = new HashMap<>();
StringBuffer stringBuffer = new StringBuffer();
for (String s : list) {
String json = request(s);
//将返回json转为Map
map = convertJsonStrToMap(json);
System.out.println(stringBuffer);
//对返回数据进行处理,使用stringBuffer拼接成 yyyy-MM-dd格式
for (Map.Entry<String, Object> map1 : map.entrySet()) {
System.out.println(map1.getValue());
convertJsonStrToMap(String.valueOf(map1.getValue()));
System.out.println("+++++++" + convertJsonStrToMap(String.valueOf(map1.getValue())));
Map<String, Object> ma = convertJsonStrToMap(String.valueOf(map1.getValue()));
for (Map.Entry<String, Object> map2 : ma.entrySet()) {
Map<String, Object> map3 = convertJsonStrToMap(String.valueOf(map2.getValue()));
for (Map.Entry<String, Object> map4 : map3.entrySet()) {
String day = map4.getKey();
//System.out.println("+++++++" + convertJsonStrToMap(String.valueOf(map4.getValue())));
// System.out.println(httpArg+"-"+DAY);
//拼接年月日
stringBuffer.append(map2.getKey()).append("-").append(day.substring(0,2)).append("-").append(day.substring(2,4));
System.out.println(map2.getValue());
SysVacations sysVacations = new SysVacations();
try {
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
Date date = format1.parse(stringBuffer.toString());
sysVacations.setDate(date);
sysVacations.setStatus(String.valueOf(map4.getValue()));
//存入数据库(添加之前应删除之前的数据)
if (sysVacationsMapper.insert(sysVacations) == 1) {
result.setCode(StatusCode.CURD_SINGLE_DELETE_SUCCESS);
result.setStatus("success");
result.setMsg("生成节假日成功!");
stringBuffer=new StringBuffer();
} else {
result.setCode(StatusCode.CURD_SINGLE_DELETE_FAILURE);
result.setStatus("error");
result.setMsg("生成节假日失败!");
if (logger.isDebugEnabled()) {
result.setDescription("生成失败");
}
}
stringBuffer = new StringBuffer();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
}
}
return result;
}
//打开连接获取指定年份节假日
public String request(String httpArg) {
String httpUrl = "http://tool.bitefu.net/jiari/vip.php";//为他人开发的网上接口,可百度进行查阅具体说明
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?d=" + httpArg + "&type=0&apikey=123456";
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
Map<String, Object> map = convertJsonStrToMap(result);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public Map<String, Object> convertJsonStrToMap(String jsonStr) {
Map<String, Object> map = JSON.parseObject(
jsonStr, new TypeReference<Map<String, Object>>() {
});
return map;
}
}