update data to device
This commit is contained in:
@@ -8,6 +8,8 @@ use app\models\DeviceSearch;
|
||||
use app\models\Area;
|
||||
use app\models\common;
|
||||
use app\models\Door;
|
||||
use app\models\Staff;
|
||||
use app\models\Schedule;
|
||||
use yii\web\Controller;
|
||||
use yii\web\NotFoundHttpException;
|
||||
use yii\filters\VerbFilter;
|
||||
@@ -322,4 +324,114 @@ class DeviceController extends Controller {
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSync() {
|
||||
if (Yii::$app->request->post()) {
|
||||
Yii::$app->response->format = "json";
|
||||
return [
|
||||
"title" => Html::tag("i", "", ["class" => "fa fa-exchange"]) . " Đồng bộ dữ liệu đến thiết bị",
|
||||
"form" => $this->renderPartial("sync"),
|
||||
"lists" => Yii::$app->request->post("lists")
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function actionGetDataSync() {
|
||||
if (Yii::$app->request->post()) {
|
||||
Yii::$app->response->format = "json";
|
||||
$device_id = Yii::$app->request->post("data");
|
||||
$doors = Door::find()->andWhere(["device_id" => $device_id])->all();
|
||||
$filter = ["OR"];
|
||||
foreach ($doors as $key => $value) {
|
||||
$filter[] = ["LIKE", "door_access", '"' . $value->id . '"'];
|
||||
}
|
||||
$staffs = Staff::find()->andWhere($filter)->all();
|
||||
|
||||
$schedule = [];
|
||||
foreach ($staffs as $key => $value) {
|
||||
$schedule[] = $value->schedule_id;
|
||||
}
|
||||
|
||||
$schedule = array_unique($schedule);
|
||||
return [
|
||||
"IP" => $this->findModel($device_id)->ip_address,
|
||||
"staffs" => $staffs,
|
||||
"schedule" => $schedule
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSyncSchedule() {
|
||||
if (Yii::$app->request->post()) {
|
||||
Yii::$app->response->format = "json";
|
||||
$post = Yii::$app->request->post();
|
||||
$schedule_lists = $post["data"];
|
||||
$TimeZoneInfos = [];
|
||||
foreach ($schedule_lists as $key => $value) {
|
||||
$schedule = Schedule::findOne($value);
|
||||
$TimeZoneInfos[] = [
|
||||
"TimezoneId" => $schedule->id,
|
||||
"SunTime1" => Schedule::convertTimeAttr($schedule->SunTime1), "SunTime2" => Schedule::convertTimeAttr($schedule->SunTime2), "SunTime3" => Schedule::convertTimeAttr($schedule->SunTime3),
|
||||
"MonTime1" => Schedule::convertTimeAttr($schedule->MonTime1), "MonTime2" => Schedule::convertTimeAttr($schedule->MonTime2), "MonTime3" => Schedule::convertTimeAttr($schedule->MonTime3),
|
||||
"TueTime1" => Schedule::convertTimeAttr($schedule->TueTime1), "TueTime2" => Schedule::convertTimeAttr($schedule->TueTime2), "TueTime3" => Schedule::convertTimeAttr($schedule->TueTime3),
|
||||
"WedTime1" => Schedule::convertTimeAttr($schedule->WedTime1), "WedTime2" => Schedule::convertTimeAttr($schedule->WedTime2), "WedTime3" => Schedule::convertTimeAttr($schedule->WedTime3),
|
||||
"ThuTime1" => Schedule::convertTimeAttr($schedule->ThuTime1), "ThuTime2" => Schedule::convertTimeAttr($schedule->ThuTime2), "ThuTime3" => Schedule::convertTimeAttr($schedule->ThuTime3),
|
||||
"FriTime1" => Schedule::convertTimeAttr($schedule->FriTime1), "FriTime2" => Schedule::convertTimeAttr($schedule->FriTime2), "FriTime3" => Schedule::convertTimeAttr($schedule->FriTime3),
|
||||
"SatTime1" => Schedule::convertTimeAttr($schedule->SatTime1), "SatTime2" => Schedule::convertTimeAttr($schedule->SatTime2), "SatTime3" => Schedule::convertTimeAttr($schedule->SatTime3),
|
||||
"Hol1Time1" => 0, "Hol1Time2" => 0, "Hol1Time3" => 0,
|
||||
"Hol2Time1" => 0, "Hol2Time2" => 0, "Hol2Time3" => 0,
|
||||
"Hol3Time1" => 0, "Hol3Time2" => 0, "Hol3Time3" => 0
|
||||
];
|
||||
}
|
||||
$res = json_decode(common::requestToCardService("/SetDeviceData/TimeZone", [
|
||||
"DeviceIP" => $post["ip"],
|
||||
"TimeZoneInfos" => $TimeZoneInfos
|
||||
]), true);
|
||||
return [
|
||||
"res" => $res,
|
||||
"IP" => $post["ip"]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSyncStaffs() {
|
||||
if (Yii::$app->request->post()) {
|
||||
Yii::$app->response->format = "json";
|
||||
$post = Yii::$app->request->post();
|
||||
$staff_lists = $post["data"];
|
||||
$UserInfos = [];
|
||||
$UserAuthorizeInfos = [];
|
||||
foreach ($staff_lists as $key => $value) {
|
||||
$UserInfos[] = [
|
||||
"CardNo" => $value["card_number"],
|
||||
"Pin" => $value["id"],
|
||||
"Password" => "",
|
||||
"Group" => "",
|
||||
"StartTime" => "",
|
||||
"EndTime" => ""
|
||||
];
|
||||
$doors = json_decode($value["door_access"], true);
|
||||
foreach ($doors as $k => $v) {
|
||||
$doorInfo = Door::findOne($v);
|
||||
$UserAuthorizeInfos[] = [
|
||||
"Pin" => $value["id"],
|
||||
"AuthorizeTimezoneId" => $value["schedule_id"],
|
||||
"AuthorizeDoorId" => $doorInfo->code
|
||||
];
|
||||
}
|
||||
}
|
||||
$resUser = json_decode(common::requestToCardService("/SetDeviceData/User", [
|
||||
"DeviceIP" => $post["ip"],
|
||||
"UserInfos" => $UserInfos
|
||||
]), true);
|
||||
common::requestToCardService("/SetDeviceData/UserAuthorize", [
|
||||
"DeviceIP" => $post["ip"],
|
||||
"UserAuthorizeInfos" => $UserAuthorizeInfos
|
||||
]);
|
||||
return [
|
||||
"resUser" => $resUser,
|
||||
"IP" => $post["ip"]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user