发表于: 2017-12-28 22:03:45
1 570
今天完成的事情
写了判断当天是否签到的模块
当点击门卫处时,根据用户id获取签到表的上次签到时间,并获取到当前的时间,将签到表中的上次签到时间转换为当天的时间区间,判断当前时间是否在此时间内,在的话就说明当天已经签到
/**
* 判断当天是否已经签到
*/
public String check(Request request){
String result = "";
Session session = request.getSession();
Integer id = Integer.parseInt(session.getAttribute("UserId"));
Sign sign = null;
try {
sign = service.getSign(id); //从数据库获取签到表信息
} catch (Exception e) {
e.printStackTrace();
result = "查询失败";
}
Long last = sign.getLast_time(); //上次签到时间
TimeUtil time = new TimeUtil();
if (null==last){ //从来没有签到过
result = "未签到页面";
}else if (time.getZero()<last && last<time.getTwelve()){//当天已经签到
result = "已经签到页面";
}
return result;
}
写了用于签到日历展示的模块
/**
* 签到历史
* 用于日历的显示
*
*
* 还要考虑空数组的情况!!!
*/
public void history(Model model,Request request){
String result = "";
Session session = request.getSession();
Integer id = Integer.parseInt(session.getAttribute("UserId"));
TimeUtil timeUtil = new TimeUtil(); //获取当前时间,年份,月份
String year = timeUtil.getYear();
String month = timeUtil.getMonth();
SignHistory history = null;
try {
history = service.getSignHistory(id,year,month);
} catch (Exception e) {
e.printStackTrace();
result = "查询失败";
}
Integer[] calendar = null;
if (null==history){ //当月没有签到
//返回空数组???
}else {
//根据分隔符,将字符串打断,获取数组
calendar = timeUtil.getSignCalendar(history.getDays());//判断为空???
}
//返回数据
model.add(calendar);
}
核心思路是将字符串转换为数组
服务器暂时还用不了,只能在本地测试
明天的计划
写完成签到动作的模块
遇到的问题
无
收获
具体业务逻辑的分析
评论