发表于: 2017-12-30 21:13:49

1 409


今天完成的事情

写了执行签到的模块

更新签到表:

//时间工具类,用于获取各种时间
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语句来处理异常


遇到的问题



收获

将常用的功能封装成工具类,需要时再调用


返回列表 返回列表
评论

    分享到