做个简单的Java学生考勤系统06--签到功能完善

Posted exodus3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了做个简单的Java学生考勤系统06--签到功能完善相关的知识,希望对你有一定的参考价值。

有些人就会问,学生签到,就根据学生id,和对应的课表id,调用添加签到功能就行了吗?不用校验吗?比如这节课是10点开始上课,我11点了还签到,这不是有漏洞吗?是的,所以,就接下来,是对签到功能的完善。

public String qiandao(int kebiao_id,int xuesheng_id) //提前10分钟签到
    {
    	String s="";
    	
    	try
    	{
    		System.out.println(utilService.get_kebiao(kebiao_id).getShijian()+"TTT");
        	Long s1= Util.newDate1(utilService.get_kebiao(kebiao_id).getShijian()).getTime();//上课时间
    		Long s2= Util.newDate1(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date())).getTime();//当期时间
    		//如果上课时间(10点)>当期时间(11点)
    		
    		
    		
    		if(s1<s2)
    		{
    			s="签到时间已过,本节课按照旷课处理";
    		}
    		else
    		{
    			if(s1-s2>600000)
    			{
    				s="未到签到时间,请与上课时间前10分钟签到";
    			}
    			else
    			{
    				String ssss=utilService.panduan_xuesheng_qiandao(xuesheng_id, kebiao_id);
    				System.out.println(ssss+"^^^^");
    				if(ssss.equals("shi"))
    				{
    					s="已经签到过,请不要重复签到";
    				}
    				else
    				{
    					utilService.qiandao_add(xuesheng_id, kebiao_id);
    					s="成功完成签到";
    				}
    				
    			}
    		}
    	}
    	catch (Exception e) 
    	{
			
		}
		
		return s;
    }

方法讲解:
1、该方法传入学生id,和课表id两个参数,根据课表id查询课表信息,拿到课表的上课时间。
2、接着,获得系统当前时间,根据这两个时间进行对比,如果课表时间早于当前时间,那么该学生迟到了,提示学生迟到,并标记签到为迟到。
3、如果当前时间比课表时间早,则进一步判断,如果距离上课时间超过10分钟以上,则提示还没有达到签到时间。如果10点的课,学生8点,9点就签到,岂不是乱来,所以,限制选择10分钟是个合适的的时间
4、根据学生id,和课表id从数据库查询该学生有没有签到,调用的是之前写的panduan_xuesheng_qiandao方法,如果之前已经签到过了,就不用再签到了,不然一个劲的在签到
5、如果以上情况都没有,那么就是正常签到,提示签到成功

public void qiandao_tongji(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
{
	int kebiao_id=Integer.parseInt(req.getParameter("kebiao_id"));	
	
	req.setAttribute("qiandaoList", utilService.get_qiandao_list(kebiao_id));
	req.getRequestDispatcher("admin/qiandao/qiandao_tongji.jsp").forward(req, res);
}

public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response) 
{
	RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
	try 
	{
	    dispatch.forward(request, response);
	    return;
	} 
	catch (ServletException e) 
	{
        e.printStackTrace();
	} 
	catch (IOException e) 
	{
		
	    e.printStackTrace();
	}
}

方法讲解
上面的方法是拦截签到的代码,跳转到签到页面,拿到签到的相关信息

以上是关于做个简单的Java学生考勤系统06--签到功能完善的主要内容,如果未能解决你的问题,请参考以下文章

做个简单的Java学生考勤系统07--完善学生相关功能

做个简单的Java学生考勤系统08--完善老师相关功能

做个简单的Java学生考勤系统03--登录功能的开发

做个简单的Java学生考勤系统05--查询课程课表学生与老师信息

求大神帮我做个设计 用JAVA 设计和实现学生信息管理系统,提供常见学生信息管理功能

IDEA+Java+Servlet+JSP+Mysql实现学生选课签到系统