发表于: 2018-01-04 22:51:18
1 477
今天完成的事情
写了进入签到界面的接口和进行签到的接口
门卫处接口:
"a/u/user/sign/",method = RequestMethod.GET
从session中获取用户的id,然后通过用户id获取签到表对应记录的id:
Long uid = (Long) session.getAttribute("UserId");
Long id = null;
//通过用户id获取签到记录id
try {
id = signService.getIdByUid(uid);
} catch (ServiceException e) {
e.printStackTrace();
code = 100000;
} catch (ServiceDaoException e) {
e.printStackTrace();
code = 100000;
}
然后通过id获取签到记录:
sign = signService.getObjectById(id);
判断当天是否签到:
Long last = sign.getLastTime(); //上次签到时间
TimeUtil time = new TimeUtil();
Integer status = null; //当天签到状态,1:已经签到,2:未签到
if (null==last){ //从来没有签到过
status = 2;
}else if (time.getZero()<last && last<time.getTwelve()){//当天已经签到
status = 1;
}else {
status = 2;
}
获取累积签到天数:
Integer total = sign.getTotal(); //累记签到天数
通过用户id,当天对应的年份,月份,查询对应的
historyId = signHistoryService.getIdByYear(uid,time.getYear(),time.getMonth());
然后获取签到历史:
signHistory = signHistoryService.getObjectById(historyId);
转换为数组并转为json格式:
Integer[] signCalendar = TimeUtil.getSignCalendar(signHistory.getSignDay());
JSONArray jsonArray = JSONArray.fromObject(signCalendar);
返回数据:
model.addAttribute("status",status);
model.addAttribute("total",total);
model.addAttribute("signCalendar",jsonArray);
model.addAttribute("code",code);
执行结果:
进行签到的接口:
value = "/a/u/user/sign/",method = RequestMethod.PUT
先从session中获取用户id:
Long uid = (Long) session.getAttribute("userId");
获取签到记录:
signId = signService.getIdByUid(uid); //通过用户id获取签到记录id
sign = signService.getObjectById(signId); //通过id获取签到记录
取得上次签到当天的最后时刻:
Long secondDay = time.getSecondDay(sign.getLastTime()); //上次签到时间当天的最后一毫秒
判断是否连续:
if (time.getCurrent() - secondDay<(24 * 60 * 60)) { //在第二天的24小时之内,属于连续签到
然后更新用户表的逆袭豆数和签到表的上次签到时间,连续签到数,最高连续签到数,累记签到数,
signService.update(sign); //更新签到表
user = userService.getObjectById(uid);
user.setBean(user.getBean() + bean);
userService.update(user); //更新逆袭豆
然后更新签到历史表
明天的计划:
写学生证部分的接口
遇到的问题
put请求会出现405,改用resin,jetty即可
收获
无
评论