具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到现有考勤方式中存在的考勤效率低,且考勤准确率不高的问题,本发明实施例提供的一种移动考勤方法、装置及服务器,能够有效提高考勤效率和考勤准确率,以下对本发明实施例进行详细介绍。
实施例一:
首先,参照图1来描述用于实现本发明实施例的移动考勤方法。
如图1所示的一种移动考勤方法的流程图,该方法由服务器执行,该方法包括以下步骤:
步骤S102,接收移动终端发送的签到请求;其中,签到请求携带的信息包括:移动终端标识、用户信息、签到位置和签到时间。
移动终端可以是手机、iPad等设备,每台移动终端的移动终端标识都是唯一的,即不同的移动终端的标识是不同的,用户信息可以是用户的姓名,签到位置如会议室、办公室或者教室等。
步骤S104,根据签到请求携带的信息判断签到请求是否合法。
由于用户可能会通过浏览器或者模拟器进行非法签到,也可能代替他人通过移动终端进行一次或者多次签到,因此需要判断签到请求是否合法。签到请求中携带的信息有移动终端标识,通过判断移动终端标识可以判断在某个时间段用户是否已经通过移动终端签到成功,若已经签到成功,且再次接收的签到请求和之前接收的签到请求有时间冲突即时间重叠,则判断此次签到请求为签到冲突请求,不允许用户再次进行签到,即防止代替他人签到的情况,也就是每一个移动设备在一个特定的时间段和区域内(时间+空间的区域限制)只能签到一次。在签到请求中还可以有移动终端通过计算得到的加密秘钥,当服务器接收到签到请求时,若判断加密秘钥为空,则说明用户是通过浏览器或者模拟器进行的非法签到请求。
步骤S106,如果是,向移动终端下发签到成功标识。
签到成功标识可以是带有签到成功的文字提示,也可以是表示签到成功的语音提示。如果判断签到请求为非法,当请求非法属于本次签到请求和之前的成功签到有时间冲突的情况时,向移动终端下发签到冲突标识;当请求非法属于用户通过浏览器或者模拟器进行签到请求时,记录签到请求中携带的用户信息,并标记用户信息,向移动终端发送签到无效标识以及表征用户信息已被标记的标识,用户非法签到达到一定次数就会进入黑名单。
在本实施例提供的上述考勤方法中,用户只需通过移动终端即可进行签到,方便快捷,直接由服务器与移动终端进行交互,能够有效提升考勤效率。此外,移动终端发送的签到请求中携带有移动终端标识、用户信息、签到位置和签到时间,由于移动终端标识具有唯一性,因此可以有效防止代替签到行为,而且签到位置和签到时间能够以时间维度和空间维度双重限定考勤范围,再结合用户信息,可综合验证签到请求的合法性,只有在签到请求合法时才认为签到成功。这种方式能够使考勤结果更加准确。综上所述,本实施例能够有效提高考勤效率和考勤准确率。
本实施例在上述移动考勤方法的基础上进一步给出了移动考勤方法的具体过程,如图2所示的另一种移动考勤方法的流程图,可参见如下步骤:
步骤S202,接收移动终端发送的签到请求;其中,签到请求携带的信息包括:移动终端标识、用户信息、签到位置和签到时间,还包括第一加密秘钥;其中,第一加密秘钥是移动终端按照第一预设算法生成的。
第一加密秘钥是移动终端发送签到请求时,根据签到请求按照第一预设算法生成的并附在签到请求中。
步骤S204,根据签到请求携带的信息,按照第二预设算法生成第二加密秘钥;其中,第一预设算法与第二预设算法相关。
相关可以表示第一预设算法和第二预设算法相同,也可以表示第一预设算法和第二预设算法不同。第一加密秘钥是移动终端根据第一预设算法生成的,第二加密秘钥是服务器根据第一预设算法生成的。
步骤S206,判断第一加密秘钥和第二加密秘钥是否相同。如果是,执行步骤S208;如果否,执行步骤S216。
步骤S208,查找服务器的数据库中存储的多个移动终端标识中与接收的签到请求携带的移动终端标识相同的移动终端标识,并确定与相同的移动终端标识对应的数据库中存储的签到请求;其中,存储的签到请求为签到成功标识对应的签到请求,存储的签到请求携带的信息包括:移动终端标识、用户信息、签到位置和签到时间。
根据移动终端发送的签到请求携带的移动终端标识,在服务器中存储的多个移动终端标识中查找相同的移动终端标识,确定相同的移动终端标识对应的在服务器中存储的完成签到的签到请求,即签到成功标识对应的签到请求,如学生通过自己的手机向服务器发送了签到请求,在此次签到请求之前该学生通过自己的手机向服务器发送过签到请求并且完成了签到,则服务器会存储完成签到对应的签到请求,包括签到请求携带的信息。
步骤S210,判断接收的签到请求携带的签到时间与存储的签到请求携带的签到时间是否冲突;如果否,执行步骤S212;如果是,执行步骤S214。
服务器中存储的签到请求携带的签到时间可以为年月日几时几分的形式记录的签到时间,若此次签到请求携带的签到时间与最近一次签到成功后在服务器中存储的对应的签到请求中的签到时间相差不到一节课的时间,则认为此次签到请求是冲突签到,冲突签到也包括重复签到,如学生在上某节课时完成签到,在该课程上课期间又一次发送了自己的签到请求,则认为再次发送的签到请求是重复签到。
步骤S212,确定签到请求合法,并向移动终端下发签到成功标识。
如果第一加密秘钥和第二加密秘钥相同,说明此次签到请求和之前通过移动终端完成的签到没有时间冲突,确定签到请求合法。
步骤S214,向移动终端下发签到冲突标识。
若此次签到请求和之前通过移动终端完成的签到存在时间冲突,说明此次签到请求和之前通过移动终端完成的签到有时间冲突,可能是用户自己通过移动终端完成签到后再次通过移动终端帮别人进行签到,向移动终端下发签到冲突标识,防止通过代替他人签到行为。
步骤S216,确定签到请求非法并记录签到请求中携带的用户信息,向移动终端下发签到无效标识和表征用户信息已被标记的标识。
如果第一加密秘钥和第二加密秘钥不同,说明用户可能是通过模拟器向服务器发送签到请求,服务器会确定签到请求为非法请求,记录签到请求中携带的用户信息如用户的姓名,并对用户信息进行标记。签到无效标识可以是带有签到无效标识的文字或语音,表征用户信息已被标记的标识可以是带有用户姓名等信息已被标记的文字或语音。
本发明实施例提供的上述移动考勤方法,通过接收移动终端发送的签到请求,且签到请求还携带有移动终端根据签到请求按照第一预设算法生成的第一加密秘钥,根据签到请求携带的信息,服务器按照第二预设算法生成第二加密秘钥,判断第一加密秘钥和第二加密秘钥是否相同,若不相同,表示用户不是通过移动终端发送的签到请求,而是可能通过诸如浏览器或者模拟器等非法途径发送的签到请求,因而可以确定此次签到请求为非法请求,从而有效防止用户的非法签到行为,因此使考勤结果更加准确,若第一加密秘钥和第二加密秘钥相同,再判断接收的签到请求携带的签到时间与存储的签到请求携带的签到时间是否冲突,如果不冲突,则向移动终端发送签到成功标识,如果冲突,则表示用户可能代替他人签到或者是用户自己的重复签到,向移动终端发送签到冲突标识,防止代替他人签到的行为,能够有效提高考勤准确率。
在具体实施时,在图1基础上给出了如图3所示的另一种移动考勤方法的流程图,可参见如下步骤:
步骤S302,接收移动终端发送的查询请求;其中,查询请求携带有移动终端连接的AP信息和当前时间。
以用户在会议室进行签到为例,用户可以通过自己的手机向服务器发送查询请求,通过利用与移动终端连接的AP(Access Point,无线接入点)信息(诸如,MAC地址)的唯一特性能够唯一确定AP信息对应区域的位置划分。
步骤S304,通过预先记录的签到选项表,查找与AP信息和当前时间均对应的签到选项;签到选项表中记录有AP信息、时间和签到选项的对应关系。
通过预先记录的签到选型表查找此AP(MAC地址)对应区域如用户所在会议室和隔壁会议室在当前时间的会议主题。
步骤S306,将查找到的签到选项确定为响应信息;其中,响应信息包括针对AP信息和当前时间的至少一种签到选项。
查找到用户所在会议室和隔壁会议室在当前时间的会议主题,将查找到的当前时间不同会议室的对应会议主题作为响应信息,包含的签到选项如第一会议室在当前时间的会议主题,第二会议室在当前时间的会议主题,此时是两种签到选项,响应信息的签到选项不小于一个。
步骤S308,将响应信息下发给移动终端,以使移动终端确定目标签到选项,并基于目标签到选项发送签到请求。
用户根据下发给移动终端的响应信息,选择签到选项,如选择第一会议室在当前时间的会议主题作为目标签到选项,基于目标签到选项发送签到请求,签到请求携带的信息包括:移动终端标识、用户信息、签到位置和签到时间。
步骤S310,根据签到请求携带的信息判断签到请求是否合法。
步骤S312,如果是,向移动终端下发签到成功标识。
签到成功标识可以是带有签到成功的文字提示,也可以是表示签到成功的语音提示,提示用户签到成功。如果判断签到请求为非法,具体过程在步骤S106中已说明,在此不再赘述。
本发明实施例提供的上述种移动考勤方法,查询请求中携带有移动终端连接的AP信息和当前时间,通过利用与移动终端连接的AP信息的唯一特性,能够唯一确定AP信息对应区域的位置划分,并根据当前时间能够下发较准确地响应信息,进而根据响应信息由移动终端发送签到请求,进一步提高了考勤准确率。
实施例二:
在前述实施例一提供的移动考勤方法的基础上,本实施例以学生上课签到为例,将考勤对象为学生,考勤场合为课程签到,应用于前述移动考勤方法,如图4所示的一种移动考勤方法的流程图,具体步骤如下:
(1)如果学生的客户端(也即,前述移动终端)在某一个有Wi-Fi覆盖的教室连上WI-FI,学生就会通过客户端向服务器发送查询请求,其中,查询请求包括当前Wi-Fi包含的MAC地址(也即,前述AP信息)和当前时间。
(2)服务器在收到客户端的查询请求时,根据接收的MAC地址信息和时间信息对MySQL数据库中的课程进行筛选匹配,筛选结果如果有出符合当前时间当前地点下的课程信息,则把当前时间和空间下对应的课程信息下发到客户端。
(3)客户端获得服务器端下发的课程信息,如果课程信息为空就提示学生换个位置或者刷新客户端重新发送查询请求,也可以由客户端向服务器发送当前地点MAC地址信息没有录入后台数据库的信息,如果当前课程信息不为空,则可以选择需要签到的课程,发送签到请求。
(4)客户端的学生在发送签到请求时,客户端会将当前学生信息(学号、姓名等)、选择课程信息(课程地点、课程时间、课程教师、课程名称等)、当前签到时间、第一预设算法计算得到的加密秘钥信息作为签到请求发送给服务器,由服务器进行校验。
(5)服务器接收到客户端发送的签到请求后,解析出加密秘钥,如果解析出加密秘钥为空,则向客户端下发签到无效标识;如果不为空,通过第二预设算法计算得到加密秘钥,判断客户端计算的加密秘钥和服务器计算的加密秘钥是否相同,如果否,则说明客户端和服务器的加密算法不同,学生是通过模拟器发送的签到请求,签到标识为非法签到,如果是,再根据签到请求判断该客户端是否在请求签到的课程对应的课程时间范围内已经完成了其它课程的签到,如果是则向客户端下发签到冲突标识;如果否,则再判断该客户端是否在请求签到的课程对应的课程时间范围内已经完成了该课程的签到,如果是则向客户端下发签到重复标识,如果否表示签到成功,将签到请求信息存入数据库,并向客户端下发签到成功标识。
(6)客户端接收服务器下发的信息,如果下发的信息为签到冲突标识标识中有提示学生是否需要撤销该移动终端之前签到的信息,如果不撤销就不能进行本课程签到;如果下发的信息为签到无效标识,则表明当前是在进行接口模拟伪造签到,签到无效标识中有提示当前学生信息已经被标记的信息,签到无效;如果下发的信息为签到成功标识,表明签到成功。
图5示意出了一种管理员录入相应教室的MAC地址信息的流程图,可参见如下步骤:
(1)移动端管理员录入教室MAC地址信息,首先在教室连接上Wi-Fi信息,输入当前教室对应的物理地址,点击上传到服务器后台等待。
(2)服务器接收到移动端发送MAC地址信息和对应的物理位置信息(教室信息),判断接收的信息是否已经存在MySQL数据库中,如果接收的信息存在数据库,说明上传冲突,反馈标识上传失败;如果接收到的信息不存在与数据库汇总,说明上传不冲突,上传成功,写入数据库,反馈标识上传成功。
(3)移动端接收服务器下发的反馈标识,若反馈标识为上传冲突,则表明当前位置的MAC地址信息已经上传过,管理员就需要移动位置重新进行上述(1)和(2)的步骤;如果反馈标识为上传成功,表明当前位置的MAC地址信息已经成功上传。
图6示意出了一种课程信息录入的流程图,可参见如下步骤:
(1)在Web端可以是教师或者管理员进行选择一个时间、地点进行课程信息的构建,提交构建的课程信息到服务器后台,等待服务器的反馈信息。
(2)服务器在接收到Web端发送的课程构建的信息之后,先判断构建课程所包含的教室、时间,通过特定的规则来判断接收的信息是否和数据库汇总信息发生冲突,如果发生冲突,则反馈给Web端的标识为创建课程冲突,如果没有冲突就表明创建成功,写入数据库。
(3)Web端的用户教师或管理员接收到服务器后台返回的标识如果是创建课程冲突,用户就需要对自己选择的时间段或地点进行编辑选择重新进行步骤(1)和(2)。
在学生上课签到为例的方案,适用于基于AP信息(诸如,MAC地址)的移动考勤方法。在整个签到的过程中,为了保证移动考勤方法的可用性,分析了RESTFUL、MD5加密、信息互斥和异步加载、实时刷新等技术,通过对Wi-Fi的MAC地址信息的设计,实现了将Wi-Fi的MAC地址信息自动添加到数据库中,用户在手机链接Wi-Fi信息之后就会自动向后台发送请求获取相应的考勤教室的信息。
从Wi-Fi的MAC地址信息获取的角度来讲,移动终端会允许获取到所链接Wi-Fi的信息的MAC地址,而且其中的MAC地址信息都是唯一的,可以作为唯一识别的标识,并且考勤的信息也做了相应的加密技术,能够保证传输过程的安全性,不会被模拟和篡改。
同时移动终端进行签到时请求的标识也是移动终端的唯一标识,能够确保每个移动终端都是代表了一个用户,在进行签到请求时,通过全局互斥处理,保证了签到成功的课程没有结束时,不能进行其他的课程的签到,除非用户取消本次已经签到成功的信息,才可以进行下一课程的签到。
当用户签到成功之后,签到请求信息存储到MYSQL数据库,目的是将签到信息存储起来并确保签到的准确性和可靠性。
签到过程可以最终概况为:通过在移动端的唯一识别标识来标记用户,并通过Wi-Fi的MAC地址或者基站中唯一标识的信息,对当前时间的签到课程信息和签到教室信息绑定,并保存到数据库中。在进行签到时可通过该课程信息的时间判断当前签到时间是否已经结束,且判断是否存在通过一个移动终端对多个用户进行签到,保证一个移动终端只可以对一次课程进行有效签到,其它签到信息都无效,最终签到信息和每个用户手机绑定。
签到过程的最终概况主要是为了说明移动考勤方法不局限于特定场景,只要是有可以标记移动终端的,通过时间和空间的两个维度来进行一个特定场合的签到模式,能够达到准确和可靠的签到方式。
通过上述方式,用户只需通过客户端即移动终端进行签到,方便快捷,直接由服务器与移动终端进行交互,能够有效提升考勤效率。此外,移动终端发送的查询请求中带有当前Wi-Fi包含的MAC地址,签到请求中携带有用户信息、签到位置、签到时间和加密秘钥,由于MAC地址信息的唯一性,可以作为唯一识别的标识,因此可以有效防止代替签到行为,服务器根据签到请求计算得到加密秘钥,进而根据移动终端计算得到的加密秘钥和服务器计算得到的加密秘钥,判断签到请求是否合法,而且签到位置和签到时间能够以时间维度和空间维度双重限定考勤范围,再结合用户信息,可综合验证签到请求的合法性,只有在签到请求合法时才认为签到成功。这种方式能够使考勤结果更加准确。综上所述,本实施例能够有效提高考勤效率和考勤准确率。
实施例三:
对应于前述方法实施例,本实施例提供了一种移动考勤装置,参见图7所示的一种移动考勤装置的结构框图,该装置设置于服务器侧,包括如下模块:
接收模块702,用于接收移动终端发送的签到请求;其中,签到请求携带的信息包括:移动终端标识、用户信息、签到位置和签到时间;
判断模块704,用于根据签到请求携带的信息判断签到请求是否合法;
发送模块706,用于如果签到请求合法,向移动终端下发签到成功标识。
本发明实施例提供的上述移动考勤装置,通过接收移动终端发送的签到请求,且签到请求携带移动终端标识信息、用户信息、签到位置信息和签到时间信息,进而根据签到请求携带的信息判断签到请求是否合法,如果签到请求合法,向移动终端下发签到成功标识。在本实施例提供的考勤方式中,用户只需通过移动终端即可进行签到,方便快捷,直接由服务器与移动终端进行交互,能够有效提升考勤效率。此外,移动终端发送的签到请求中携带有移动终端标识、用户信息、签到位置和签到时间,由于移动终端标识具有唯一性,因此可以有效防止代替签到行为,而且签到位置和签到时间能够以时间维度和空间维度双重限定考勤范围,再结合用户信息,可综合验证签到请求的合法性,只有在签到请求合法时才认为签到成功。这种方式能够使考勤结果更加准确。综上所述,本实施例能够有效提高考勤效率和考勤准确率。
在具体实施时,签到请求还包括第一加密秘钥;其中,第一加密秘钥是移动终端按照第一预设算法生成的;上述判断模块704用于根据签到请求携带的信息,按照第二预设算法生成第二加密秘钥;其中,第一预设算法与第二预设算法相关;判断第一加密秘钥和第二加密秘钥是否相同;如果是,判断签到请求携带的信息与服务器的数据库中存储的签到请求携带的信息是否存在冲突,如果不存在冲突,确定签到请求合法。上述发送模块706用于如果第一加密秘钥和第二加密秘钥不同,向移动终端下发签到无效标识;如果签到请求携带的信息与服务器的数据库中存储的签到请求携带的信息存在冲突,向移动终端下发签到冲突标识。
在另一种实施方式中,上述接收模块702包括:查找单元,用于如果在接收签到请求之前接收到移动终端发送的查询请求,通过预先记录的签到选项表,查找与AP信息和当前时间均对应的签到选项;其中,查询请求携带有移动终端连接的AP信息和当前时间;签到选项表中记录有AP信息、时间和签到选项的对应关系;确定单元,用于将查找到的签到选项确定为响应信息;其中,响应信息包括针对AP信息和当前时间的至少一种签到选项;发送单元,用于将响应信息下发给移动终端,以使移动终端确定目标签到选项,并基于目标签到选项发送签到请求。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例提供了一种服务器,参见图8所示的一种服务器的结构示意图,该服务器包括:处理器80、存储器81、总线82和通信接口83,所述处理器80、通信接口83和存储器81通过总线82连接;处理器80用于执行存储器81中存储的可执行模块,例如计算机程序。
其中,存储器81可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口83(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线82可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器81用于存储程序,所述处理器80在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器80中,或者由处理器80实现。
处理器80可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器80中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器80可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器81,处理器80读取存储器81中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行前述实施例任一项的方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
本发明实施例所提供的移动考勤方法、装置及服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。