diff --git a/app/Http/Controllers/Api/PublicController.php b/app/Http/Controllers/Api/PublicController.php
index ea19fd2ac..14ee037fa 100755
--- a/app/Http/Controllers/Api/PublicController.php
+++ b/app/Http/Controllers/Api/PublicController.php
@@ -65,7 +65,9 @@ class PublicController extends AbstractController
}
/**
- * {post} 签到 - 路由器(openwrt)上报
+ * {post} 签到 - 上报
+ * - 1、路由器(openwrt)签到上报
+ * - 2、考勤机签到上报
*
* @apiParam {String} key
* @apiParam {String} mac 使用逗号分割多个
@@ -84,6 +86,7 @@ class PublicController extends AbstractController
if ($setting['open'] !== 'open') {
return 'function off';
}
+ $alreadyTip = false;
if ($type === 'face') {
if (!in_array('face', $setting['modes'])) {
return 'mode off';
@@ -91,6 +94,7 @@ class PublicController extends AbstractController
if ($key != $setting['face_key']) {
return 'key error';
}
+ $alreadyTip = $setting['face_retip'] === 'open';
} else {
if (!in_array('auto', $setting['modes'])) {
return 'mode off';
@@ -99,8 +103,7 @@ class PublicController extends AbstractController
return 'key error';
}
}
-
- if ($error = UserBot::checkinBotCheckin($mac, $time)) {
+ if ($error = UserBot::checkinBotCheckin($mac, $time, $alreadyTip)) {
return $error;
}
return 'success';
diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php
index 055256e4e..82984f641 100755
--- a/app/Http/Controllers/Api/SystemController.php
+++ b/app/Http/Controllers/Api/SystemController.php
@@ -399,7 +399,10 @@ class SystemController extends AbstractController
'remindin',
'remindexceed',
'edit',
- 'faceupload',
+ 'face_upload',
+ 'face_remark',
+ 'face_retip',
+ 'manual_remark',
'modes',
'key',
])) {
@@ -433,7 +436,10 @@ class SystemController extends AbstractController
}
//
$setting['open'] = $setting['open'] ?: 'close';
- $setting['faceupload'] = $setting['faceupload'] ?: 'close';
+ $setting['face_upload'] = $setting['face_upload'] ?: 'close';
+ $setting['face_remark'] = $setting['face_remark'] ?: Doo::translate('考勤机');
+ $setting['face_retip'] = $setting['face_retip'] ?: 'open';
+ $setting['manual_remark'] = $setting['manual_remark'] ?: Doo::translate('手动签到');
$setting['time'] = $setting['time'] ? Base::json2array($setting['time']) : ['09:00', '18:00'];
$setting['advance'] = intval($setting['advance']) ?: 120;
$setting['delay'] = intval($setting['delay']) ?: 120;
diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php
index 8e87dc02c..6ba776532 100755
--- a/app/Http/Controllers/Api/UsersController.php
+++ b/app/Http/Controllers/Api/UsersController.php
@@ -1680,7 +1680,11 @@ class UsersController extends AbstractController
* @apiGroup users
* @apiName checkin__save
*
- * @apiParam {Array} list 优先级数据,格式:[{mac,remark}]
+ * @apiParam {String} type 类型
+ * - face: 人脸识别设置
+ * - mac: MAC设置
+ * @apiParam {String} faceimg 人脸图片地址
+ * @apiParam {Array} list 优先级数据,格式:[{mac,remark}]
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
@@ -1694,52 +1698,52 @@ class UsersController extends AbstractController
if ($setting['open'] !== 'open') {
return Base::retError('此功能未开启,请联系管理员开启');
}
- if ($setting['edit'] !== 'open' && $setting['faceupload'] !== 'open') {
- return Base::retError('未开放修改权限,请联系管理员');
- }
//
+ $type = Request::input('type');
$list = Request::input('list');
$faceimg = Request::input('faceimg');
- // 默认返回值,使用用户传递数据
+ //
$data = [
'list' => $list,
'faceimg' => $faceimg
];
- // 当mac允许修改
- if ($setting['edit' === 'open']) {
- $array = [];
- if (empty($list) || !is_array($list)) {
- return Base::retError('参数错误');
- }
- foreach ($list AS $item) {
- $item = Base::newTrim($item);
- if (Base::isMac($item['mac'])) {
- $mac = strtoupper($item['mac']);
- $array[$mac] = [
- 'mac' => $mac,
- 'remark' => substr($item['remark'], 0, 50),
- ];
+ switch ($type) {
+ case 'face':
+ if ($setting['face_upload'] !== 'open') {
+ return Base::retError('未开放修改权限,请联系管理员');
}
- }
- if (count($array) > 3) {
- return Base::retError('最多只能添加3个MAC地址');
- }
- $saveMacRes = UserCheckinMac::saveMac($user->userid, $array);
- $data['list'] = $saveMacRes['data'];
- } else {
- $list = UserCheckinMac::whereUserid($user->userid)->orderBy('id')->get();
- $data['list'] = $list;
+ UserCheckinFace::saveFace($user->userid, $user->nickname(), $faceimg, "用户上传");
+ break;
+
+ case 'mac':
+ if ($setting['edit'] !== 'open') {
+ return Base::retError('未开放修改权限,请联系管理员');
+ }
+ $array = [];
+ if (empty($list) || !is_array($list)) {
+ return Base::retError('参数错误');
+ }
+ foreach ($list as $item) {
+ $item = Base::newTrim($item);
+ if (Base::isMac($item['mac'])) {
+ $mac = strtoupper($item['mac']);
+ $array[$mac] = [
+ 'mac' => $mac,
+ 'remark' => substr($item['remark'], 0, 50),
+ ];
+ }
+ }
+ if (count($array) > 3) {
+ return Base::retError('最多只能添加3个MAC地址');
+ }
+ $saveMacRes = UserCheckinMac::saveMac($user->userid, $array);
+ $data['list'] = $saveMacRes['data'];
+ break;
+
+ default:
+ return Base::retError('参数错误');
}
-
-
- // 当图片允许修改
- if ($setting['faceupload'] === 'open') {
- UserCheckinFace::saveFace($user->userid, $user->nickname(), $faceimg, "用户上传");
- } else {
- $userface = UserCheckinFace::whereUserid($user->userid)->first();
- $data['faceimg'] = $userface;
- }
-
+ //
return Base::retSuccess('修改成功', $data);
}
diff --git a/app/Models/UserBot.php b/app/Models/UserBot.php
index dc20f3642..d9b75d3b3 100644
--- a/app/Models/UserBot.php
+++ b/app/Models/UserBot.php
@@ -231,7 +231,7 @@ class UserBot extends AbstractModel
];
$checkins[] = [
'userid' => $UserInfo->userid,
- 'remark' => '手动签到',
+ 'remark' => $setting['manual_remark'] ?: 'Manual',
];
}
} elseif (Base::leftExists($mac, "checkin-", true)) {
@@ -244,7 +244,7 @@ class UserBot extends AbstractModel
];
$checkins[] = [
'userid' => $UserInfo->userid,
- 'remark' => '考勤机',
+ 'remark' => $setting['face_remark'] ?: 'Machine',
];
}
}
@@ -278,6 +278,7 @@ class UserBot extends AbstractModel
if (Cache::get($cacheKey) === "yes") {
if ($alreadyTip && $dialog = WebSocketDialog::checkUserDialog($botUser, $checkin['userid'])) {
$text = "今日已{$typeContent}打卡,无需重复打卡。";
+ $text .= $checkin['remark'] ? " ({$checkin['remark']})": "";
WebSocketDialogMsg::sendMsg(null, $dialog->id, 'template', [
'type' => 'content',
'content' => $text,
diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue
index 3dda810fe..337bbaa7b 100644
--- a/resources/assets/js/pages/manage/components/TeamManagement.vue
+++ b/resources/assets/js/pages/manage/components/TeamManagement.vue
@@ -1147,7 +1147,7 @@ export default {
type: data.type,
userid: data.userid,
nickname: data.nickname,
- checkin_face: data.faceimg[0] ? data.faceimg[0].url : ''
+ checkin_face: $A.arrayLength(data.faceimg) > 0 ? data.faceimg[0].url : ''
}
} else if (data.type == 'department') {
this.departmentEditLoading++;
diff --git a/resources/assets/js/pages/manage/setting/checkin.vue b/resources/assets/js/pages/manage/setting/checkin.vue
index a7b59a8ba..e8b792302 100644
--- a/resources/assets/js/pages/manage/setting/checkin.vue
+++ b/resources/assets/js/pages/manage/setting/checkin.vue
@@ -20,7 +20,7 @@
1. {{ $L('WiFi签到延迟时长为±1分钟。') }}
-2. {{ $L('设备连接上指定路由器(WiFi)后自动签到。') }}
-3. {{ $L('仅支持Openwrt系统的路由器。') }}
-4. {{ $L('关闭签到功能再开启需要重新安装。') }}
-5. {{ $L('进入路由器终端执行以下命令即可完成安装') }}:
- -1. {{ $L('WiFi签到延迟时长为±1分钟。') }}
+2. {{ $L('设备连接上指定路由器(WiFi)后自动签到。') }}
+3. {{ $L('仅支持Openwrt系统的路由器。') }}
+4. {{ $L('关闭签到功能再开启需要重新安装。') }}
+5. {{ $L('进入路由器终端执行以下命令即可完成安装') }}:
+ +