Device.php
3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
namespace domain\device;
use stdClass;
class Device
{
/**
* 序列号前缀,也是batchNo
* @param $manufacture
* @param $project
* @param $model
* @param $production
* @return string
*/
static function getBatchNo($manufacture, $project, $model, $production)
{
return $manufacture. $project. $model. $production;
}
/**
* @param $deviceId
* @param $manufactureNo
* @param $projectNo
* @param $modelNo
* @param $productionNo
* @return stdClass
*/
static function authDevice($deviceId, $manufactureNo, $projectNo, $modelNo, $productionNo)
{
$e = new stdClass();
$e->success = false;
$e->message = '';
$e->serial_no = '';
$e->mac = '';
$tt = time();
$batchNo = self::getBatchNo($manufactureNo, $projectNo, $modelNo, $productionNo);
$batchModel = CreateBatchRepository::findOne(['batch_no' => $batchNo]);
if (empty($batchModel)) {
$e->message = '没有该批次';
return $e;
}
$batchId = $batchModel->id;
$count = DeviceRepository::rowsCount(['batch_id' => $batchId, 'is_delete' => 0]);
if (($count *1) >= ($batchModel->num * 1)) {
// 超过了限制数,记录到另外一个表里面
// to do 记录到表里面
$failRecord = DeviceAuthFailRepository::findOne(['device_id' => $deviceId]);
if (!$failRecord) {
$item = [
'manufacture_no' => $manufactureNo,
'project_no' => $projectNo,
'model_no' => $modelNo,
'production_no' => $productionNo,
'device_id' => $deviceId,
];
DeviceAuthFail::create($item);
}
$e->message = '授权失败';
return $e;
}
$deviceModel = DeviceRepository::findOne(['device_id' => $deviceId, 'batch_id' => $batchId, 'is_delete' => 0]);
if (empty($deviceModel)) {
$newDeviceModel = DeviceRepository::findOne(['device_id'=> null,'batch_id' => $batchId, 'is_delete' => 0, 'status' => DeviceStatus::NO_AUTH]);
$newDeviceModel->device_id = $deviceId;
$newDeviceModel->status = DeviceStatus::HAS_AUTH;
$newDeviceModel->apply_at = $tt ;
$newDeviceModel->auth_at = $tt;
$newDeviceModel->save();
$e->message = '授权成功';
$e->success = true;
$e->serial_no = $newDeviceModel->serial_no;
$e->mac = $newDeviceModel->mac;
return $e;
}
if (DeviceStatus::HAS_AUTH == $deviceModel->status) {
$e->message = '授权成功';
$e->success = true;
$e->serial_no = $deviceModel->serial_no;
$e->mac = $deviceModel->mac;
} elseif (DeviceStatus::FAIL_AUTH == $deviceModel->status) {
$e->message = '授权失败';
} else {
$e->message = '授权失败!';
}
return $e;
}
}