1.主要判断是否首次签到;如果不是首次签到,则判断从数据库中获得的签到日期是否属于今天范围,如果是,则进入已签到页面;如果不是,则进入签到页面
//接收请求当中的参数
String userName = request.getParameter("userName");
request.setAttribute("userName", userName);
//根据userName查询用户信息
User user = userService.get(userName);
//获取用户id
int id = user.getUserId();
//根据用户id查询签到信息
Sign sign = userService.signQuery(id);
//判断是否首次签到
if(sign == null) {
userService.signFirst(id);
sign = userService.signQuery(id);
//存放到request作用域
request.setAttribute("sign", sign);
request.setAttribute("msg", "已签到");
//响应用户,去已签到页面
request.getRequestDispatcher("/admin/pages/user/sign2.jsp").forward(request, response);
}else {
//判断日期是否属于在今天范围内
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = sign.getSignCreateTime(); //获取数据库签到日期
Date now = sdf.parse(nowTime);
String startTime = DateSet.startTime(); //今天开始时间
Date start = sdf.parse(startTime);
String endTime = DateSet.endTime(); //今天结束时间
Date close = sdf.parse(endTime);
Calendar date = Calendar.getInstance();
date.setTime(now);
Calendar begin = Calendar.getInstance();
begin.setTime(start);
Calendar end = Calendar.getInstance();
end.setTime(close);
if (date.after(begin) && date.before(end)) {
//日期属于今天范围
//存放到request作用域
request.setAttribute("sign", sign);
request.setAttribute("msg", "已签到");
//响应用户,去已签到页面
request.getRequestDispatcher("/admin/pages/user/sign2.jsp").forward(request, response);
} else {
//日期不属于今天范围
//存放到request作用域
request.setAttribute("sign", sign);
//响应用户,去签到页面
request.getRequestDispatcher("/admin/pages/user/sign.jsp").forward(request, response);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2.与签到有关的时间
//签到更新时间
public static String dateSet() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 1);
// 时
calendar.set(Calendar.HOUR_OF_DAY, 0);
// 分
calendar.set(Calendar.MINUTE, 0);
// 秒
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = df.format(time);
return format;
}
//今天开始时间
public static String startTime() {
Calendar calendar = Calendar.getInstance();
// 时
calendar.set(Calendar.HOUR_OF_DAY, 0);
// 分
calendar.set(Calendar.MINUTE, 0);
// 秒
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = df.format(time);
return format;
}
//今天结束时间
public static String endTime() {
Calendar calendar = Calendar.getInstance();
// 时
calendar.set(Calendar.HOUR_OF_DAY, 23);
// 分
calendar.set(Calendar.MINUTE, 59);
// 秒
calendar.set(Calendar.SECOND, 59);
Date time = calendar.getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = df.format(time);
return format;
}