发表于: 2017-12-30 21:13:49
1 410
今天完成的事情
写了执行签到的模块
更新签到表:
//时间工具类,用于获取各种时间
TimeUtil timeUtil = new TimeUtil();
/**
* 跟新签到表
*/
String result = "";
Session session = request.getSession();
Integer usrId = Integer.parseInt(session.getAttribute("UsrId")) ;
Long last = timeUtil.getCurrent();
try {
Sign sign = service.getSign(usrId);
sign.setLast_time(last);
service.updateSign(sign);
} catch (Exception e) {
e.printStackTrace();
result = "签到表,更新失败";
}
更新签到历史表
/**
* 跟新签到历史表
*/
try {
SignHistory sh = service.getSignHistory(usrId,timeUtil.getYear(),timeUtil.getMonth());
sh.setDays(sh.getDays()+","+timeUtil.getDay());
service.updateSignHistory(sh);
} catch (Exception e) {
e.printStackTrace();
result = "更新失败";
}
判断是否连续签到:
/**
* 判断是否连续签到
* 更新逆袭豆
*/
//上次签到时间的第二天零点
Sign sign = service.getSign(usrId);
Long secondDay = timeUtil.getSecondDay(sign.getLast_time());
if (timeUtil.getCurrent() - secondDay<(24 * 60 * 60)){ //在第二天的24小时之内,属于连续签到
Integer bean = sign.getContinue_count() >= 5 ? 5 : sign.getContinue_count() + 1; //计算
sign.setContinue_count(sign.getContinue_count()+1); //更新连续签到记录
//更新最高连续签到记录
Integer top = sign.getContinue_count() > sign.getTop() ? sign.getContinue_count() : sign.getTop();
sign.setTop(top);
sign.setTotal(sign.getTotal() + 1); //累计签到次数
service.updateSign(sign);
User user = service.getUser(usrId); //更新逆袭豆
user.setBean(bean);
service.updateUser(user);
}else { //在第二天24小时之外,需要将连续签到次数清零,又因为当天签到又签到,需要+1
sign.setContinue_count(1);
service.updateSign(sign);
}
还需要加上判空以及try/catch语句来处理异常
明天的计划
添加try/catch语句来处理异常
遇到的问题
无
收获
将常用的功能封装成工具类,需要时再调用
评论