生成今年所有节假日

因为项目开发考勤系统,需要用到今年的所有节假日,在找到根据年返回当年所有的节假日日期的调用接口,
对接口返回数据进行处理得到 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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

簡丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值