update đồng bộ dữ liệu giữa các thiết bị

This commit is contained in:
2020-12-09 10:40:35 +07:00
parent f694e9fe71
commit 4cb2f77598
6 changed files with 239 additions and 0 deletions

View File

@@ -96,4 +96,36 @@ class ApiController extends Controller {
return $allFeatures;
}
public function actionData() {
Yii::$app->response->format = "json";
return ListManagement::find()->orderBy(['id' => SORT_DESC])->all();
}
public function actionFullData() {
if (Yii::$app->request->post()) {
Yii::$app->response->format = "json";
$lists = ListManagement::find()->andWhere(["IN", "id", Yii::$app->request->post()])->orderBy(['id' => SORT_DESC])->all();
$res = [];
foreach ($lists as $key => $value) {
$f = [];
$features = json_decode($value->image, true);
foreach ($features as $k => $v) {
$f[] = ["url" => base64_encode(file_get_contents(Yii::getAlias('@webroot') . "/data/uploads/face/" . $v['url'])), "features" => $v['features']];
}
$res[] = [
"id" => $value->id,
"type" => $value->type,
"name" => $value->name,
"gender" => $value->gender,
"birthday" => $value->birthday,
"telephone" => $value->telephone,
"address" => $value->address,
"time" => $value->time,
"image" => $f
];
}
return $res;
}
}
}

View File

@@ -233,4 +233,59 @@ class ListManagementController extends Controller {
}
}
public function actionFormSync() {
if (Yii::$app->request->post()) {
$data = Yii::$app->request->post();
$results = file_get_contents("http://" . $data['ip'] . "/api/data");
Yii::$app->response->format = "json";
return [
"title" => $data['ip'],
"form" => $this->renderPartial("list", [
"results" => json_decode($results, true),
"typeArray" => ListManagement::$typeArray,
"ip" => $data['ip']
])
];
}
}
public function actionSync($ip) {
if (Yii::$app->request->post()) {
$data = Yii::$app->request->post();
$results = json_decode(file_get_contents("http://" . $ip . "/api/full-data", false, stream_context_create([
'http' => [
'header' => "Content-Type: application/json",
'method' => "POST",
'content' => json_encode($data['lists'])
]
])), true);
foreach ($results as $key => $value) {
$images = [];
foreach ($value['image'] as $k => $v) {
$key = common::generateRandomString();
$RootFolder = Yii::getAlias('@webroot') . "/data/uploads";
$targetPath = $RootFolder . "/face";
$fileName = "face_" . $key . "_" . time() . ".png";
FileHelper::createDirectory($targetPath, 0777);
file_put_contents($targetPath . "/" . $fileName, base64_decode($v['url']));
$images[] = ["url" => $fileName, "features" => $v['features']];
}
$model = new ListManagement();
$model->create([
'type' => $value['type'],
'name' => $value['name'],
'image' => json_encode($images),
'gender' => $value['gender'],
'birthday' => date("d/m/Y", $value['birthday']),
'telephone' => $value['telephone'],
'address' => $value['address'],
'time' => $value['time']
]);
}
file_get_contents("http://localhost:2305/update-feature");
Yii::$app->response->format = "json";
return $results;
}
}
}