|
@@ -29,13 +29,26 @@ class EditAttendanceItems extends API {
|
|
|
|
|
|
// 检查必需的参数是否缺失
|
|
|
if ([uuid, session, id, name, user, day_of_week, loopy, begintime, endtime, position, radius].some(value => value === '' || value === null || value === undefined)) {
|
|
|
- res.json({
|
|
|
+ return res.json({
|
|
|
...BaseStdResponse.MISSING_PARAMETER,
|
|
|
endpoint: 1513123
|
|
|
});
|
|
|
- return;
|
|
|
}
|
|
|
|
|
|
+ if (radius <= 0 || radius >= 10000000) {
|
|
|
+ return res.json({
|
|
|
+ ...BaseStdResponse.ERR,
|
|
|
+ msg: '打卡半径不在限制范围内!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!this.getTime(begintime, endtime)) {
|
|
|
+ return res.json({
|
|
|
+ ...BaseStdResponse.ERR,
|
|
|
+ msg: '考勤时间不合法!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
// 检查 session 是否有效
|
|
|
if (!await AccessControl.checkSession(uuid, session)) {
|
|
|
res.json({
|
|
@@ -115,7 +128,7 @@ class EditAttendanceItems extends API {
|
|
|
id
|
|
|
]);
|
|
|
|
|
|
- if (updateResult.affectedRows !== 1) {
|
|
|
+ if (!updateResult || updateResult.affectedRows !== 1) {
|
|
|
res.json({
|
|
|
...BaseStdResponse.DATABASE_ERR,
|
|
|
endpoint: 513513
|
|
@@ -127,6 +140,14 @@ class EditAttendanceItems extends API {
|
|
|
...BaseStdResponse.OK
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ getTime(begintime, endtime) {
|
|
|
+ const [bhours, bminutes, bseconds] = begintime.split(':').map(Number);
|
|
|
+ const [ehours, eminutes, eseconds] = endtime.split(':').map(Number);
|
|
|
+ const begin = bhours * 3600 + bminutes * 60 + bseconds;
|
|
|
+ const end = ehours * 3600 + eminutes * 60 + eseconds;
|
|
|
+ return begin < end
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
module.exports.EditAttendanceItems = EditAttendanceItems;
|