|
|
@ -12,7 +12,9 @@ |
|
|
namespace app\api\controller\apiController; |
|
|
namespace app\api\controller\apiController; |
|
|
|
|
|
|
|
|
use app\Request; |
|
|
use app\Request; |
|
|
|
|
|
use app\service\admin\campus\CampusService; |
|
|
use app\service\api\apiService\AttendanceService; |
|
|
use app\service\api\apiService\AttendanceService; |
|
|
|
|
|
use app\service\api\apiService\CommonService; |
|
|
use core\base\BaseApiService; |
|
|
use core\base\BaseApiService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
@ -50,6 +52,8 @@ class Attendance extends BaseApiService |
|
|
$coordinate = '';//坐标 |
|
|
$coordinate = '';//坐标 |
|
|
if(!empty($longitude) && !empty($latitude)){ |
|
|
if(!empty($longitude) && !empty($latitude)){ |
|
|
$coordinate = "{$longitude},{$latitude}"; |
|
|
$coordinate = "{$longitude},{$latitude}"; |
|
|
|
|
|
}else{ |
|
|
|
|
|
return fail('缺少定位坐标'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(empty($campus_id) || empty($attendance_date) || empty($status)){ |
|
|
if(empty($campus_id) || empty($attendance_date) || empty($status)){ |
|
|
@ -59,6 +63,22 @@ class Attendance extends BaseApiService |
|
|
return fail('状态类型不正确'); |
|
|
return fail('状态类型不正确'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//获取校区的经纬度坐标 |
|
|
|
|
|
$campus_data = (new CampusService)->getInfo($campus_id);//查校区详情 |
|
|
|
|
|
$campus_lng = $campus_data['campus_coordinates']['lng'];//校区经度坐标 |
|
|
|
|
|
$campus_lat = $campus_data['campus_coordinates']['lat'];//校区纬度坐标 |
|
|
|
|
|
$radius = 1500.0;//打卡半径(米) |
|
|
|
|
|
|
|
|
|
|
|
//判断签到+签退时是否超出打卡范围 |
|
|
|
|
|
if(in_array($status,['present','sign_out'])){ |
|
|
|
|
|
$isInCheckRange = (new CommonService())->isInCheckRange((float)$campus_lng, (float)$campus_lat, (float)$longitude, (float)$latitude, (float)$radius); |
|
|
|
|
|
if(!$isInCheckRange){ |
|
|
|
|
|
return fail("超出打卡范围,规定打卡范围({$radius}米)"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询数据是否存在,一天一个校区同一个人只能产生一条数据 |
|
|
//查询数据是否存在,一天一个校区同一个人只能产生一条数据 |
|
|
$date_h = date('H:i:s'); |
|
|
$date_h = date('H:i:s'); |
|
|
|
|
|
|
|
|
|