package edu.fudan.weixin.utils; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.mongodb.util.JSON; import edu.fudan.eservice.common.utils.CommonUtil; import edu.fudan.eservice.common.utils.Config; import edu.fudan.weixin.utils.AccessTokenHelper; public class TACOAuth2Helper { private static Log log = LogFactory.getLog(TACOAuth2Helper.class); /** * 获取用户信息 * * @param accesstoken * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> fetchUser(String accesstoken) { String urlstr = Config.getInstance().get("tac.userinfourl")+"?access_token=" + accesstoken; try { Map<String, Object> ret = (Map<String, Object>) JSON .parse(CommonUtil.getWebContent(urlstr).toString()); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取一卡通消费信息 * * @param accesstoken * @param bdate * 起始日期 * @param edate * 结束日期 两个日期都不写取昨天的消费统计数据,写其中一个返回指定日期的消息统计数据 * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> yktxf(String accesstoken, String bdate, String edate) { String urlstr = "https://tac.fudan.edu.cn/resource/yktxf.act?access_token=" + accesstoken + "&bdate=" + bdate + "&edate=" + edate; try { return (Map<String, Object>) JSON.parse("{\"list\":" + CommonUtil.getWebContent(urlstr).toString() + "}"); } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取一卡通信息 * * @param accesstoken * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> yktxx(String accesstoken) { String urlstr = "https://tac.fudan.edu.cn/resource/yktxx.act?access_token=" + accesstoken; try { Map<String, Object> ret = (Map<String, Object>) JSON .parse(CommonUtil.getWebContent(urlstr).toString()); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取学生成绩 * * @param accesstoken * @param term * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> score(String accesstoken, String term) { String urlstr = "https://tac.fudan.edu.cn/resource/score.act?access_token=" + accesstoken + "&term=" + term; try { Map<String, Object> ret = (Map<String, Object>) JSON .parse("{\"list\":" + CommonUtil.getWebContent(urlstr).toString() + "}"); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取学生选课信息 * * @param accesstoken * @param term * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> lesson(String accesstoken, String term) { String urlstr = "https://tac.fudan.edu.cn/resource/lesson.act?access_token=" + accesstoken + "&term=" + term; try { Map<String, Object> ret = (Map<String, Object>) JSON .parse("{\"list\":" + CommonUtil.getWebContent(urlstr).toString() + "}"); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取校车信息 * * @param accesstoken * @param from * 开车校区 * @param to * 到达校区 * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> schoolbus(String from, String to) { String urlstr = "https://tac.fudan.edu.cn/resource/schoolbus.act?access_token=" + AccessTokenHelper.getInstance().getToken( AccessTokenHelper.TAC) + "&from=" + from + "&to=" + to; try { Map<String, Object> ret = (Map<String, Object>) JSON .parse("{\"list\":" + CommonUtil.getWebContent(urlstr).toString() + "}"); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取电话黄页 * @param qkey * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> phoneyp(String qkey) { try { String urlstr = "https://tac.fudan.edu.cn/resource/phoneyp.act?access_token=" + AccessTokenHelper.getInstance().getToken( AccessTokenHelper.TAC) + "&qkey=" + URLEncoder.encode(qkey, "utf-8"); Map<String, Object> ret = (Map<String, Object>) JSON .parse("{\"list\":" + CommonUtil.getWebContent(urlstr).toString() + "}"); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 获取学期信息 * @param term * @param date * @param week * @return */ @SuppressWarnings("unchecked") public static Map<String, Object> schoolterm(String term,String date,String week) { try { String urlstr = "https://tac.fudan.edu.cn/resource/schoolterm.act?access_token=" + AccessTokenHelper.getInstance().getToken( AccessTokenHelper.TAC) + "&term=" + term+"&date="+date+"&week="+week; Map<String, Object> ret = (Map<String, Object>) JSON .parse(CommonUtil.getWebContent(urlstr).toString()); return ret; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /** * 废除access_token,即解绑 * * @param access_token * @return */ public static Map<String, Object> revokeToken(String access_token) { Config conf = Config.getInstance(); try { String urlstr = "https://tac.fudan.edu.cn/oauth2/token.act?client_id=" + conf.get("tac.clientid") + "&client_secret=" + URLEncoder.encode(conf.get("tac.secret"), "utf-8"); urlstr += "&grant_type=revoke_token&access_token=" + access_token; String ret; ret = CommonUtil.getWebContent(urlstr).toString(); Map<String, Object> retobj = (Map<String, Object>) JSON.parse(ret); return retobj; } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } /* public static String startclass(int startclass) { String ret = ""; switch (startclass) { case 1:ret+="8:00";break; case 2:ret+="8:55";break; case 3:ret+="9:55";break; case 4:ret+="10:50";break; case 5:ret+="11:45";break; case 6:ret+="13:30";break; case 7:ret+="14:25";break; case 8:ret+="15:25";break; case 9:ret+="16:20";break; case 10:ret+="17:15";break; case 11:ret+="18:30";break; case 12:ret+="19:25";break; case 13:ret+="20:20";break; } return ret; } public static String endclass(int endclass) { String ret = ""; switch (endclass) { case 1:ret+="8:45";break; case 2:ret+="9:40";break; case 3:ret+="10:40";break; case 4:ret+="11:35";break; case 5:ret+="12:30";break; case 6:ret+="14:15";break; case 7:ret+="15:10";break; case 8:ret+="16:10";break; case 9:ret+="17:05";break; case 10:ret+="18:00";break; case 11:ret+="19:15";break; case 12:ret+="20:10";break; case 13:ret+="21:05";break; } return ret; } */ /** * 生成上课时间 * @param evenodd,startclass,endclass,weekday * @return */ /* public static String classtime(int evenodd, int startclass, int endclass, int weekday) { String ret=""; switch (evenodd) { case 0:ret+="每周";break; case 1:ret+="单周";break; case 2:ret+="双周";break; } switch (weekday) { case 0:ret+="日";break; case 1:ret+="一";break; case 2:ret+="二";break; case 3:ret+="三";break; case 4:ret+="四";break; case 5:ret+="五";break; case 6:ret+="六";break; } return ret+startclass(startclass)+"-"+endclass(endclass); }*/ /** * 获取电费信息 * @param accesstoken * @return */ public static Map<String, Object> electric(String accesstoken) { String urlstr = "https://tac.fudan.edu.cn/resource/electric.act?access_token=" + accesstoken ; try { return (Map<String, Object>) JSON.parse("{\"list\":" + CommonUtil.getWebContent(urlstr).toString() + "}"); } catch (Exception e) { log.error(e); } return new HashMap<String, Object>(); } }