1. 程式人生 > >節假日api--java呼叫與獲取資料

節假日api--java呼叫與獲取資料

獲取指定日期的節假日資訊

1、介面地址:http://api.goseek.cn/Tools/holiday?date=數字日期,支援https協議。 
2、返回資料:工作日對應結果為 0, 休息日對應結果為 1, 節假日對應的結果為 2 
3、節假日資料說明:本介面包含2017年起的中國法定節假日資料,資料來源國務院釋出的公告,每年更新1次,確保資料最新 
4、示例: http://api.goseek.cn/Tools/holiday?date=20180501
java呼叫:     業務需求:我需要提前2周檢查節假日,如果有節假日,就每個user都生成一張節日券,且相同節日
只能發一張
// 節日券
public void addCouponToAllUser() {
    List<String> valueList = new ArrayList<>();
    List<String> dayList = new ArrayList<>();
    for(int i=0; i<14; i++) {
    	BufferedReader in = null;
        StringBuffer sb = new StringBuffer();
    	try{
            // 提前14天判斷節假日
	    SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");  
	    SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
	    Date date=new Date();  
            Calendar calendar = Calendar.getInstance();  
            calendar.setTime(date);  
	    calendar.add(Calendar.DAY_OF_MONTH, + i);  
	    String after14 = sdf.format(calendar.getTime());  
	    String dayForTest = sdf2.format(calendar.getTime()); 
	    URL url = new URL("http://api.goseek.cn/Tools/holiday?date="+after14);
            in = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
            String str = null;
            while((str = in.readLine()) != null) {
                sb.append( str );
            }
            //json串轉化為json物件
            JSONObject json =  JSONObject.fromString(sb.toString());
            String value = json.get("data").toString();
            valueList.add(value);
            if (value.equals("2")) {
		dayList.add(dayForTest);
	    }
        } catch (Exception ex) {
        } finally{
            try{
                if(in!=null) {
                    in.close();
                }
            }catch(IOException ex) {
            }
        }
    }
    if (dayList.size() > 0) {
        List<Integer> idList = dhyxxDao.queryId();
	for (Integer userId : idList) {
	    // 判斷使用者是否已經擁有相同節日券
	    List<Integer> rows = dcouponsDao.queryHaveHoliday(userId, "節日券", dayList.get(0), dayList.get(dayList.size()-1));
	    if (rows.size() > 0) {
	        return;
	    }
	    dcouponsDao.addCouponToAllUser(userId,"滿1500減450",450,"節日券",dayList.get(0),dayList.get(dayList.size()-1),true,false,false);
        }
    }
}