Commit d5e57a77a984fce56ec7c3867039f91c4704da48
1 parent
831c9f5b
Exists in
master
app-api
1. A 设备授权接口加密计算 app-ht 1. F 添加序列号界面逻辑调整 2. F 删除序列号列表的筛选条件改为和列表一样 3. F admin 不能编辑自己的权限和禁用自己 4. F 厂商登录之后无法修改版本和提交版本 common 1. U 优化RSA 和AES的代码类
Showing
15 changed files
with
524 additions
and
331 deletions
Show diff stats
app-api/config/url-rules.php
@@ -5,11 +5,13 @@ return [ | @@ -5,11 +5,13 @@ return [ | ||
5 | 5 | ||
6 | 6 | ||
7 | 'POST authDevice' => 'auth-device/index', | 7 | 'POST authDevice' => 'auth-device/index', |
8 | + 'POST authDeviceT' => 'auth-device/indext', | ||
8 | 'POST checkOtaVersion' => 'upgrade/check-version', | 9 | 'POST checkOtaVersion' => 'upgrade/check-version', |
9 | 'POST reportOtaUpgradeEvent' => 'upgrade/report-upgrade-event', | 10 | 'POST reportOtaUpgradeEvent' => 'upgrade/report-upgrade-event', |
10 | 'POST checkAppVersion' => 'upgrade/check-app-version', | 11 | 'POST checkAppVersion' => 'upgrade/check-app-version', |
11 | 'POST reportAppUpgradeEvent' => 'upgrade/report-app-upgrade-event', | 12 | 'POST reportAppUpgradeEvent' => 'upgrade/report-app-upgrade-event', |
12 | 'POST reportDeviceVersion' => 'upgrade/report-device-version', | 13 | 'POST reportDeviceVersion' => 'upgrade/report-device-version', |
14 | + 'POST CryptTxt' => 'auth-device/crypt-txt', | ||
13 | 'GET errorPage' => 'site/error-page-info', | 15 | 'GET errorPage' => 'site/error-page-info', |
14 | 'GET minaQuery' => 'site/mina-query', | 16 | 'GET minaQuery' => 'site/mina-query', |
15 | ]; | 17 | ]; |
16 | \ No newline at end of file | 18 | \ No newline at end of file |
app-api/controllers/AuthDeviceController.php
@@ -2,14 +2,13 @@ | @@ -2,14 +2,13 @@ | ||
2 | 2 | ||
3 | namespace app\api\controllers; | 3 | namespace app\api\controllers; |
4 | 4 | ||
5 | - | ||
6 | use Yii; | 5 | use Yii; |
7 | - | 6 | +use common\exts\RSACrypt; |
7 | +use common\exts\Aes; | ||
8 | use common\helpers\Utils; | 8 | use common\helpers\Utils; |
9 | use common\helpers\Log as AppLog; | 9 | use common\helpers\Log as AppLog; |
10 | -use domain\device\DeviceRepository; | ||
11 | use domain\device\Device; | 10 | use domain\device\Device; |
12 | -use domain\device\DeviceStatus; | 11 | + |
13 | use stdClass; | 12 | use stdClass; |
14 | 13 | ||
15 | use function date; | 14 | use function date; |
@@ -37,66 +36,135 @@ class AuthDeviceController extends BaseController | @@ -37,66 +36,135 @@ class AuthDeviceController extends BaseController | ||
37 | { | 36 | { |
38 | AppLog::DEBUG($str); | 37 | AppLog::DEBUG($str); |
39 | } | 38 | } |
39 | + | ||
40 | /** | 40 | /** |
41 | * 设备授权接口 | 41 | * 设备授权接口 |
42 | * @return stdClass | 42 | * @return stdClass |
43 | */ | 43 | */ |
44 | - public function actionIndex() | ||
45 | - { | ||
46 | - $e = new stdClass(); | ||
47 | - $e->status = 1; | ||
48 | - $e->message = 'message'; | ||
49 | - $e->serial_no = '';; | ||
50 | - $e->mac = ''; | ||
51 | - | ||
52 | - $getPostData = file_get_contents('php://input', 'r'); | ||
53 | - self::myLog('actionIndex postData:'.$getPostData); | ||
54 | - if (!$getPostData) { | ||
55 | - $e->status = 1; | ||
56 | - $e->message = '传入的数据为空'; | ||
57 | - return $e; | ||
58 | - } | ||
59 | - $getPostData = json_decode($getPostData, true); | ||
60 | - $manufactureNo = isset($getPostData['manufacture'])?$getPostData['manufacture']:''; | ||
61 | - $deviceId = isset($getPostData['device_id'])?$getPostData['device_id']:''; | ||
62 | - $projectNo = isset($getPostData['project'])?$getPostData['project']:''; | ||
63 | - $modelNo = isset($getPostData['model'])?$getPostData['model']:''; | ||
64 | - $productionNo = isset($getPostData['production'])?$getPostData['production']:''; | ||
65 | - $timestamp = isset($getPostData['timestamp'])?$getPostData['timestamp']:''; | ||
66 | - $sign = isset($getPostData['sign'])?$getPostData['sign']:''; | ||
67 | - if (empty($deviceId) || empty($manufactureNo) || empty($projectNo) || empty($modelNo) || empty($productionNo)) { | ||
68 | - $e->message = '传入的数据部分为空'; | ||
69 | - return $e; | ||
70 | - } | ||
71 | - $pattern = "/^[a-zA-Z0-9]+$/"; | ||
72 | - $dexPattern = "/^[0-9a-fA-F]+$/"; | ||
73 | - if (!preg_match($pattern, $deviceId) || !preg_match($dexPattern, $manufactureNo) || !preg_match($dexPattern, $modelNo) || !preg_match($dexPattern, $productionNo)) { | ||
74 | - $e->status = 9; | ||
75 | - $e->message = '传入的数据字段格式不对'; | ||
76 | - return $e; | ||
77 | - } | ||
78 | - if (isset(Yii::$app->params['secretKey']) && !empty(Yii::$app->params['secretKey'])) { | ||
79 | - $salt = Yii::$app->params['secretKey']; | ||
80 | - } else { | ||
81 | - $salt = isset(Yii::$app->params['secretKey'])? Yii::$app->params['secretKey']: self::$SIGN_SALT; | ||
82 | - } | ||
83 | - | ||
84 | - $makeSign = md5($manufactureNo . $projectNo. $modelNo . $productionNo . $timestamp . $deviceId. $salt); | ||
85 | - if ($sign != $makeSign || empty($sign)) { | ||
86 | - $e->status = 2; | ||
87 | - $e->message = '签名出错'; | ||
88 | - return $e; | ||
89 | - } | ||
90 | - | ||
91 | - $authResult = Device::authDevice($deviceId, $manufactureNo, $projectNo, $modelNo, $productionNo); | ||
92 | - | ||
93 | - $e->status = $authResult->status; | ||
94 | - $e->message = $authResult->message; | ||
95 | - if ($authResult->success) { | ||
96 | - $e->mac = $authResult->mac; | ||
97 | - $e->serial_no = $authResult->serial_no; | ||
98 | - } | ||
99 | - | ||
100 | - return $e; | ||
101 | - } | 44 | + public function actionIndex() |
45 | + { | ||
46 | + $getPostData = file_get_contents('php://input', 'r'); | ||
47 | + self::myLog('actionIndex postData:'.$getPostData); | ||
48 | + | ||
49 | + return $this->authDevice($getPostData); | ||
50 | + } | ||
51 | + | ||
52 | + /** | ||
53 | + * @param $getPostData | ||
54 | + * @return stdClass | ||
55 | + */ | ||
56 | + private function authDevice($getPostData) | ||
57 | + { | ||
58 | + $e = new stdClass(); | ||
59 | + $e->status = 1; | ||
60 | + $e->message = 'message'; | ||
61 | + $e->serial_no = '';; | ||
62 | + $e->mac = ''; | ||
63 | + | ||
64 | + $getPostData = json_decode($getPostData, true); | ||
65 | + if (empty($getPostData)) { | ||
66 | + $e->status = 1; | ||
67 | + $e->message = '传入的数据为空'; | ||
68 | + return $e; | ||
69 | + } | ||
70 | + $manufactureNo = isset($getPostData['manufacture'])?$getPostData['manufacture']:''; | ||
71 | + $deviceId = isset($getPostData['device_id'])?$getPostData['device_id']:''; | ||
72 | + $projectNo = isset($getPostData['project'])?$getPostData['project']:''; | ||
73 | + $modelNo = isset($getPostData['model'])?$getPostData['model']:''; | ||
74 | + $productionNo = isset($getPostData['production'])?$getPostData['production']:''; | ||
75 | + $timestamp = isset($getPostData['timestamp'])?$getPostData['timestamp']:''; | ||
76 | + $sign = isset($getPostData['sign'])?$getPostData['sign']:''; | ||
77 | + if (empty($deviceId) || empty($manufactureNo) || empty($projectNo) || empty($modelNo) || empty($productionNo)) { | ||
78 | + $e->message = '传入的数据部分为空'; | ||
79 | + return $e; | ||
80 | + } | ||
81 | + $pattern = "/^[a-zA-Z0-9]+$/"; | ||
82 | + $dexPattern = "/^[0-9a-fA-F]+$/"; | ||
83 | + if (!preg_match($pattern, $deviceId) || !preg_match($dexPattern, $manufactureNo) || !preg_match($dexPattern, $modelNo) || !preg_match($dexPattern, $productionNo)) { | ||
84 | + $e->status = 9; | ||
85 | + $e->message = '传入的数据字段格式不对'; | ||
86 | + return $e; | ||
87 | + } | ||
88 | + if (isset(Yii::$app->params['secretKey']) && !empty(Yii::$app->params['secretKey'])) { | ||
89 | + $salt = Yii::$app->params['secretKey']; | ||
90 | + } else { | ||
91 | + $salt = isset(Yii::$app->params['secretKey'])? Yii::$app->params['secretKey']: self::$SIGN_SALT; | ||
92 | + } | ||
93 | + | ||
94 | + $makeSign = md5($manufactureNo . $projectNo. $modelNo . $productionNo . $timestamp . $deviceId. $salt); | ||
95 | + if ($sign != $makeSign || empty($sign)) { | ||
96 | + $e->status = 2; | ||
97 | + $e->message = '签名出错'; | ||
98 | + return $e; | ||
99 | + } | ||
100 | + | ||
101 | + $authResult = Device::authDevice($deviceId, $manufactureNo, $projectNo, $modelNo, $productionNo); | ||
102 | + | ||
103 | + $e->status = $authResult->status; | ||
104 | + $e->message = $authResult->message; | ||
105 | + if ($authResult->success) { | ||
106 | + $e->mac = $authResult->mac; | ||
107 | + $e->serial_no = $authResult->serial_no; | ||
108 | + } | ||
109 | + | ||
110 | + return $e; | ||
111 | + } | ||
112 | + | ||
113 | + /** | ||
114 | + * | ||
115 | + */ | ||
116 | + public function actionCryptTxt() | ||
117 | + { | ||
118 | + $e = new stdClass(); | ||
119 | + | ||
120 | + $getPostDataTxt = file_get_contents('php://input', 'r'); | ||
121 | + $getPostData = json_decode($getPostDataTxt, true); | ||
122 | + $randomKey = $getPostData['randomKey']; | ||
123 | + $content = $getPostData['content']; | ||
124 | + $rsa = new RSACrypt(); | ||
125 | + $randKey = $rsa->decrypt($randomKey); | ||
126 | + $aes = new Aes($randKey); | ||
127 | + $contentStr = $aes->decrypt($content); | ||
128 | + | ||
129 | + $returnContent = [ | ||
130 | + "mac" => Utils::macGenerate(), | ||
131 | + "serial_no" => Utils::rand(16), | ||
132 | + 'random_key' =>$randKey, | ||
133 | + ]; | ||
134 | + | ||
135 | + $e->content = $aes->encrypt(json_encode($returnContent)); | ||
136 | + | ||
137 | + return $e; | ||
138 | + } | ||
139 | + | ||
140 | + /** | ||
141 | + * @return stdClass | ||
142 | + */ | ||
143 | + public function actionIndext() | ||
144 | + { | ||
145 | + $e = new stdClass(); | ||
146 | + $e->content = ''; | ||
147 | + | ||
148 | + $getPostData = file_get_contents('php://input', 'r'); | ||
149 | + self::myLog('actionIndext postData:'.$getPostData); | ||
150 | + $getPostData = json_decode($getPostData, true); | ||
151 | + $randomKey = $getPostData['randomKey']; | ||
152 | + $content = $getPostData['content']; | ||
153 | + $rsa = new RSACrypt(); | ||
154 | + $randKey = $rsa->decrypt($randomKey); | ||
155 | + if (16 != strlen($randKey)) { | ||
156 | + // 检查randKey,当前只是做长度判断 | ||
157 | + $randKey = null; | ||
158 | + } | ||
159 | + $aes = new Aes($randKey); | ||
160 | + $contentStr = $aes->decrypt($content); | ||
161 | + $authResult = $this->authDevice($contentStr); | ||
162 | + | ||
163 | + $returnStr = json_encode($authResult, JSON_UNESCAPED_UNICODE); | ||
164 | + | ||
165 | + $e->content = $aes->encrypt($returnStr); | ||
166 | + | ||
167 | + return $e; | ||
168 | + } | ||
169 | + | ||
102 | } | 170 | } |
103 | \ No newline at end of file | 171 | \ No newline at end of file |
app-api/helpers/Aes.php
@@ -1,73 +0,0 @@ | @@ -1,73 +0,0 @@ | ||
1 | -<?php | ||
2 | - | ||
3 | -namespace app\api\helpers; | ||
4 | - | ||
5 | -class Aes | ||
6 | -{ | ||
7 | - /** | ||
8 | - * var string $method 加解密方法,可通过openssl_get_cipher_methods()获得 | ||
9 | - */ | ||
10 | - protected $method; | ||
11 | - | ||
12 | - /** | ||
13 | - * var string $secret_key 加解密的密钥 | ||
14 | - */ | ||
15 | - protected $secret_key; | ||
16 | - | ||
17 | - /** | ||
18 | - * var string $iv 加解密的向量,有些方法需要设置比如CBC | ||
19 | - */ | ||
20 | - protected $iv; | ||
21 | - | ||
22 | - /** | ||
23 | - * var string $options (不知道怎么解释,目前设置为0没什么问题) | ||
24 | - */ | ||
25 | - protected $options; | ||
26 | - | ||
27 | - /** | ||
28 | - * 构造函数 | ||
29 | - * | ||
30 | - * @param string $key 密钥 | ||
31 | - * @param string $method 加密方式 | ||
32 | - * @param string $iv iv向量 | ||
33 | - * @param mixed $options 还不是很清楚 | ||
34 | - * | ||
35 | - */ | ||
36 | - public function __construct($key, $method = 'AES-128-ECB', $iv = '', $options = 0) | ||
37 | - { | ||
38 | - // key是必须要设置的 | ||
39 | - $this->secret_key = isset($key) ? $key : 'king_board_key_01'; | ||
40 | - | ||
41 | - $this->method = $method; | ||
42 | - | ||
43 | - $this->iv = $iv; | ||
44 | - | ||
45 | - $this->options = $options; | ||
46 | - } | ||
47 | - | ||
48 | - /** | ||
49 | - * 加密方法,对数据进行加密,返回加密后的数据 | ||
50 | - * | ||
51 | - * @param string $data 要加密的数据 | ||
52 | - * | ||
53 | - * @return string | ||
54 | - * | ||
55 | - */ | ||
56 | - public function encrypt($data) | ||
57 | - { | ||
58 | - return openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv); | ||
59 | - } | ||
60 | - | ||
61 | - /** | ||
62 | - * 解密方法,对数据进行解密,返回解密后的数据 | ||
63 | - * | ||
64 | - * @param string $data 要解密的数据 | ||
65 | - * | ||
66 | - * @return string | ||
67 | - * | ||
68 | - */ | ||
69 | - public function decrypt($data) | ||
70 | - { | ||
71 | - return openssl_decrypt($data, $this->method, $this->secret_key, $this->options, $this->iv); | ||
72 | - } | ||
73 | -} | ||
74 | \ No newline at end of file | 0 | \ No newline at end of file |
app-ht/modules/device/controllers/DeviceController.php
@@ -32,7 +32,7 @@ class DeviceController extends BaseController | @@ -32,7 +32,7 @@ class DeviceController extends BaseController | ||
32 | return $this->render('index', $params); | 32 | return $this->render('index', $params); |
33 | } | 33 | } |
34 | 34 | ||
35 | - private function dataList($type) | 35 | + private function dataList($type, $delete = 0) |
36 | { | 36 | { |
37 | $request = Yii::$app->request; | 37 | $request = Yii::$app->request; |
38 | $serialNo = $request->get('serial_no'); | 38 | $serialNo = $request->get('serial_no'); |
@@ -48,13 +48,15 @@ class DeviceController extends BaseController | @@ -48,13 +48,15 @@ class DeviceController extends BaseController | ||
48 | $endApplyAt = $request->get('end_apply_at'); | 48 | $endApplyAt = $request->get('end_apply_at'); |
49 | $startAuthAt = $request->get('start_auth_at'); | 49 | $startAuthAt = $request->get('start_auth_at'); |
50 | $endAuthAt = $request->get('end_auth_at'); | 50 | $endAuthAt = $request->get('end_auth_at'); |
51 | + $startCreatedAt = $request->get('start_created_at'); | ||
52 | + $endCreatedAt = $request->get('end_created_at'); | ||
51 | 53 | ||
52 | $has_re_auth = $request->get('has_re_auth'); | 54 | $has_re_auth = $request->get('has_re_auth'); |
53 | 55 | ||
54 | $page = $request->get('page'); | 56 | $page = $request->get('page'); |
55 | $where = [ | 57 | $where = [ |
56 | 'and', | 58 | 'and', |
57 | - ['=','a.is_delete', 0] | 59 | + ['=','a.is_delete', $delete] |
58 | ]; | 60 | ]; |
59 | if (!empty($serialNo)) { | 61 | if (!empty($serialNo)) { |
60 | $where[] = ['like', 'a.serial_no', $serialNo]; | 62 | $where[] = ['like', 'a.serial_no', $serialNo]; |
@@ -87,11 +89,17 @@ class DeviceController extends BaseController | @@ -87,11 +89,17 @@ class DeviceController extends BaseController | ||
87 | $where[] = ['>=', 'a.auth_at', strtotime($startAuthAt)]; | 89 | $where[] = ['>=', 'a.auth_at', strtotime($startAuthAt)]; |
88 | } | 90 | } |
89 | if ($endAuthAt) { | 91 | if ($endAuthAt) { |
90 | - $where[] = ['>=', 'a.auth_at', strtotime($endAuthAt) + 86400]; | 92 | + $where[] = ['<=', 'a.auth_at', strtotime($endAuthAt) + 86400]; |
91 | } | 93 | } |
92 | if ($has_re_auth) { | 94 | if ($has_re_auth) { |
93 | $where[] = ['=', 'a.has_re_auth', $has_re_auth]; | 95 | $where[] = ['=', 'a.has_re_auth', $has_re_auth]; |
94 | } | 96 | } |
97 | + if ($startCreatedAt) { | ||
98 | + $where[] = ['>=', 'a.created_at', strtotime($startCreatedAt)]; | ||
99 | + } | ||
100 | + if ($endCreatedAt) { | ||
101 | + $where[] = ['<=', 'a.created_at', strtotime($endCreatedAt) + 86400]; | ||
102 | + } | ||
95 | if (isset($_GET['status']) && -1 != $status) { | 103 | if (isset($_GET['status']) && -1 != $status) { |
96 | $where[] = ['=', 'a.status', $status]; | 104 | $where[] = ['=', 'a.status', $status]; |
97 | } else { | 105 | } else { |
@@ -129,6 +137,8 @@ class DeviceController extends BaseController | @@ -129,6 +137,8 @@ class DeviceController extends BaseController | ||
129 | 'start_auth_at' => $startAuthAt, | 137 | 'start_auth_at' => $startAuthAt, |
130 | 'end_auth_at' => $endAuthAt, | 138 | 'end_auth_at' => $endAuthAt, |
131 | 'has_re_auth' => $has_re_auth, | 139 | 'has_re_auth' => $has_re_auth, |
140 | + 'start_created_at' => $startCreatedAt, | ||
141 | + 'end_created_at' => $endCreatedAt, | ||
132 | 'status' => $status | 142 | 'status' => $status |
133 | ]; | 143 | ]; |
134 | 144 | ||
@@ -140,92 +150,7 @@ class DeviceController extends BaseController | @@ -140,92 +150,7 @@ class DeviceController extends BaseController | ||
140 | */ | 150 | */ |
141 | public function actionDeleteIndex() | 151 | public function actionDeleteIndex() |
142 | { | 152 | { |
143 | - $request = Yii::$app->request; | ||
144 | - $serialNo = $request->get('serial_no'); | ||
145 | - $mac = $request->get('mac'); | ||
146 | - $project = $request->get('project'); | ||
147 | - $model = $request->get('model'); | ||
148 | - $production = $request->get('production'); | ||
149 | - $manufacture = $request->get('manufacture'); | ||
150 | - $deviceId = $request->get('device_id'); | ||
151 | - $status = $request->get('status'); | ||
152 | - | ||
153 | - $startApplyAt = $request->get('start_apply_at'); | ||
154 | - $endApplyAt = $request->get('end_apply_at'); | ||
155 | - $startAuthAt = $request->get('start_auth_at'); | ||
156 | - $endAuthAt = $request->get('end_auth_at'); | ||
157 | - $page = $request->get('page'); | ||
158 | - $where = [ | ||
159 | - 'and', | ||
160 | - ['=','a.is_delete', 1] | ||
161 | - ]; | ||
162 | - if (!empty($serialNo)) { | ||
163 | - $where[] = ['like', 'a.serial_no', $serialNo]; | ||
164 | - } | ||
165 | - if (!empty($project)) { | ||
166 | - $where[] = ['like', 'p.name', $project]; | ||
167 | - } | ||
168 | - if (!empty($model)) { | ||
169 | - $where[] = ['like', 'mo.name', $model]; | ||
170 | - } | ||
171 | - if (!empty($production)) { | ||
172 | - $where[] = ['like', 'pd.name', $production]; | ||
173 | - } | ||
174 | - if (!empty($mac)) { | ||
175 | - $where[] = ['like', 'a.mac', $mac]; | ||
176 | - } | ||
177 | - if (!empty($manufacture)) { | ||
178 | - $where[] = ['like', 'm.name', $manufacture]; | ||
179 | - } | ||
180 | - if (!empty($deviceId)) { | ||
181 | - $where[] = ['like', 'a.device_id', $deviceId]; | ||
182 | - } | ||
183 | - | ||
184 | - if ($startApplyAt) { | ||
185 | - $where[] = ['>=', 'a.apply_at', strtotime($startApplyAt)]; | ||
186 | - } | ||
187 | - if ($endApplyAt) { | ||
188 | - $where[] = ['<=', 'a.apply_at', strtotime($endApplyAt) + 86400]; | ||
189 | - } | ||
190 | - if ($startAuthAt) { | ||
191 | - $where[] = ['>=', 'a.auth_at', strtotime($startAuthAt)]; | ||
192 | - } | ||
193 | - if ($endAuthAt) { | ||
194 | - $where[] = ['<=', 'a.auth_at', strtotime($endAuthAt) + 86400]; | ||
195 | - } | ||
196 | - if (isset($_GET['status']) && -1 != $status) { | ||
197 | - $where[] = ['=', 'a.status', $status]; | ||
198 | - } else { | ||
199 | - $status = -1; | ||
200 | - } | ||
201 | - | ||
202 | - if (0 >= $page) { | ||
203 | - $page = 1; | ||
204 | - } | ||
205 | - $pageSize = 20; | ||
206 | - $page = ($page -1) * $pageSize; | ||
207 | - // DeviceRepository::getList($where, $pageSize, $page); | ||
208 | - $deviceData = DeviceRepository::getList($where, $pageSize, $page); | ||
209 | - $pages = new Pagination(['totalCount' => DeviceRepository::getListCount($where), 'pageSize' => $pageSize]); | ||
210 | - $statusList = DeviceStatus::statusLabels(); // | ||
211 | - | ||
212 | - $params['statusList'] = $statusList; | ||
213 | - $params['deviceList'] = $deviceData; | ||
214 | - $params['pages'] = $pages; | ||
215 | - $params["gets"] = [ | ||
216 | - 'serial_no' => $serialNo, | ||
217 | - 'mac' => $mac, | ||
218 | - 'project' => $project, | ||
219 | - 'model' => $model, | ||
220 | - 'device_id' => $deviceId, | ||
221 | - 'production' => $production, | ||
222 | - 'manufacture' => $manufacture, | ||
223 | - 'start_apply_at' => $startApplyAt, | ||
224 | - 'end_apply_at' => $endApplyAt, | ||
225 | - 'start_auth_at' => $startAuthAt, | ||
226 | - 'end_auth_at' => $endAuthAt, | ||
227 | - 'status' => $status | ||
228 | - ]; | 153 | + $params = $this->dataList(1, 1); |
229 | 154 | ||
230 | return $this->render('delete-index', $params); | 155 | return $this->render('delete-index', $params); |
231 | } | 156 | } |
@@ -245,16 +170,10 @@ class DeviceController extends BaseController | @@ -245,16 +170,10 @@ class DeviceController extends BaseController | ||
245 | public function actionDoCreateDevice() | 170 | public function actionDoCreateDevice() |
246 | { | 171 | { |
247 | $req = Yii::$app->request; | 172 | $req = Yii::$app->request; |
248 | - $manufactureId = $req->post('manufactureId'); | ||
249 | - $projectId = $req->post('projectId'); | ||
250 | - $modelId = $req->post('modelId'); | ||
251 | - $productionId = $req->post('productionId'); | ||
252 | - | ||
253 | - $manufactureNo = $req->post('manufactureNo'); | ||
254 | - $projectNo = $req->post('projectNo'); | ||
255 | - $modelNo = $req->post('modelNo'); | ||
256 | - $productionNo = $req->post('productionNo'); | ||
257 | - | 173 | + $manufacture = $req->post('manufacture'); |
174 | + $project = $req->post('project'); | ||
175 | + $model = $req->post('model'); | ||
176 | + $production = $req->post('production'); | ||
258 | $num = $req->post('num'); | 177 | $num = $req->post('num'); |
259 | $e = new stdClass(); | 178 | $e = new stdClass(); |
260 | $e->success = false; | 179 | $e->success = false; |
@@ -271,6 +190,34 @@ class DeviceController extends BaseController | @@ -271,6 +190,34 @@ class DeviceController extends BaseController | ||
271 | $e->message = '数量不能超过1万'; | 190 | $e->message = '数量不能超过1万'; |
272 | return $this->renderJson($e); | 191 | return $this->renderJson($e); |
273 | } | 192 | } |
193 | + if (empty($manufacture) || empty($project) || empty($model) || empty($production)) { | ||
194 | + $e->message = '厂商,项目,型号,生产日期必填'; | ||
195 | + return $this->renderJson($e); | ||
196 | + } | ||
197 | + $manufactureArr = explode('_', $manufacture); | ||
198 | + $projectArr = explode('_', $project); | ||
199 | + $modelArr = explode('_', $model); | ||
200 | + $productionArr = explode('_', $production); | ||
201 | + | ||
202 | + $manufactureId = isset($manufactureArr[0])? $manufactureArr[0] :0; | ||
203 | + $manufactureNo = isset($manufactureArr[1])? $manufactureArr[1] :''; | ||
204 | + | ||
205 | + $projectId = isset($projectArr[0])? $projectArr[0] :0; | ||
206 | + $projectNo = isset($projectArr[1])? $projectArr[1] :''; | ||
207 | + | ||
208 | + $modelId = isset($modelArr[0])? $modelArr[0] :0; | ||
209 | + $modelNo = isset($modelArr[1])? $modelArr[1] :''; | ||
210 | + | ||
211 | + $productionId = isset($productionArr[0])? $productionArr[0] :0; | ||
212 | + $productionNo = isset($productionArr[1])? $productionArr[1] :0; | ||
213 | + if (empty($manufactureId) || empty($projectId) || empty($modelId) || empty($productionId)) { | ||
214 | + $e->message = '找不到对应的厂商,项目,型号,生产日期'; | ||
215 | + return $this->renderJson($e); | ||
216 | + } | ||
217 | + if (empty($manufactureNo) || empty($projectNo) || empty($modelNo) || empty($productionNo)) { | ||
218 | + $e->message = '找不到对应的厂商,项目,型号,生产日期!'; | ||
219 | + return $this->renderJson($e); | ||
220 | + } | ||
274 | 221 | ||
275 | $batchNo = strtoupper(Device::getBatchNo($manufactureNo, $projectNo, $modelNo, $productionNo)); | 222 | $batchNo = strtoupper(Device::getBatchNo($manufactureNo, $projectNo, $modelNo, $productionNo)); |
276 | $batchModel = CreateBatchRepository::findOne(['batch_no' => $batchNo]); | 223 | $batchModel = CreateBatchRepository::findOne(['batch_no' => $batchNo]); |
@@ -725,7 +672,7 @@ class DeviceController extends BaseController | @@ -725,7 +672,7 @@ class DeviceController extends BaseController | ||
725 | if ($needGen) { | 672 | if ($needGen) { |
726 | $trans = Yii::$app->getDb()->beginTransaction(); | 673 | $trans = Yii::$app->getDb()->beginTransaction(); |
727 | try { | 674 | try { |
728 | - $genDeviceModel = Device::createWithMacSerialNo($batchId, $batchNo, $deviceId, $tt, 1, DeviceStatus::HAS_AUTH); | 675 | + Device::createWithMacSerialNo($batchId, $batchNo, $deviceId, $tt, 1, DeviceStatus::NO_AUTH); |
729 | $deviceFailModel->is_delete = 1; | 676 | $deviceFailModel->is_delete = 1; |
730 | $deviceFailModel->save(); | 677 | $deviceFailModel->save(); |
731 | $trans->commit(); | 678 | $trans->commit(); |
@@ -748,7 +695,7 @@ class DeviceController extends BaseController | @@ -748,7 +695,7 @@ class DeviceController extends BaseController | ||
748 | $trans = Yii::$app->getDb()->beginTransaction(); | 695 | $trans = Yii::$app->getDb()->beginTransaction(); |
749 | try { | 696 | try { |
750 | $newDeviceModel->device_id = $deviceId; | 697 | $newDeviceModel->device_id = $deviceId; |
751 | - $newDeviceModel->status = DeviceStatus::HAS_AUTH; | 698 | + $newDeviceModel->status = DeviceStatus::NO_AUTH; |
752 | $newDeviceModel->apply_at = $tt ; | 699 | $newDeviceModel->apply_at = $tt ; |
753 | $newDeviceModel->auth_at = $tt; | 700 | $newDeviceModel->auth_at = $tt; |
754 | $newDeviceModel->save(); | 701 | $newDeviceModel->save(); |
app-ht/modules/device/views/device/createDevice.php
@@ -201,28 +201,28 @@ $(function() { | @@ -201,28 +201,28 @@ $(function() { | ||
201 | alert('请选择厂商'); | 201 | alert('请选择厂商'); |
202 | return false; | 202 | return false; |
203 | } | 203 | } |
204 | - manufacture = manufacture.split('_'); | 204 | + //manufacture = manufacture.split('_'); |
205 | 205 | ||
206 | var project = $('#project').val(); | 206 | var project = $('#project').val(); |
207 | if ('' == project) { | 207 | if ('' == project) { |
208 | alert('请选择项目'); | 208 | alert('请选择项目'); |
209 | return false; | 209 | return false; |
210 | } | 210 | } |
211 | - project = project.split('_'); | 211 | + //project = project.split('_'); |
212 | 212 | ||
213 | var model = $('#model').val(); | 213 | var model = $('#model').val(); |
214 | if ('' == model) { | 214 | if ('' == model) { |
215 | alert('请选择型号'); | 215 | alert('请选择型号'); |
216 | return false; | 216 | return false; |
217 | } | 217 | } |
218 | - model = model.split('_'); | 218 | + //model = model.split('_'); |
219 | 219 | ||
220 | var production = $('#production').val(); | 220 | var production = $('#production').val(); |
221 | if ('' == production) { | 221 | if ('' == production) { |
222 | alert('请选生产日期'); | 222 | alert('请选生产日期'); |
223 | return false; | 223 | return false; |
224 | } | 224 | } |
225 | - production = production.split('_'); | 225 | + //production = production.split('_'); |
226 | var num = $('#num').val(); | 226 | var num = $('#num').val(); |
227 | var par = /^[0-9]+$/; | 227 | var par = /^[0-9]+$/; |
228 | if (par.test(num) && (num > 0)) { | 228 | if (par.test(num) && (num > 0)) { |
@@ -233,17 +233,10 @@ $(function() { | @@ -233,17 +233,10 @@ $(function() { | ||
233 | } | 233 | } |
234 | 234 | ||
235 | var params = { | 235 | var params = { |
236 | - manufactureId: manufacture[0], | ||
237 | - manufactureNo: manufacture[1], | ||
238 | - | ||
239 | - projectId: project[0], | ||
240 | - projectNo: project[1], | ||
241 | - | ||
242 | - modelId: model[0], | ||
243 | - modelNo: model[1], | ||
244 | - | ||
245 | - productionId: production[0], | ||
246 | - productionNo: production[1], | 236 | + manufacture: manufacture, |
237 | + project: project, | ||
238 | + model: model, | ||
239 | + production: production, | ||
247 | num: num | 240 | num: num |
248 | } | 241 | } |
249 | $.post(saveUrl, params, function(res) { | 242 | $.post(saveUrl, params, function(res) { |
@@ -271,14 +264,13 @@ $(function() { | @@ -271,14 +264,13 @@ $(function() { | ||
271 | return false; | 264 | return false; |
272 | } | 265 | } |
273 | 266 | ||
274 | - return false; | ||
275 | if (append_num*1 > 3000) { | 267 | if (append_num*1 > 3000) { |
276 | alert('追加数量不要超过3000'); | 268 | alert('追加数量不要超过3000'); |
277 | return false; | 269 | return false; |
278 | } | 270 | } |
279 | $.post(appendSerialUrl,{batch_id:batch_id, append_num:append_num}, function(ajaxRes){ | 271 | $.post(appendSerialUrl,{batch_id:batch_id, append_num:append_num}, function(ajaxRes){ |
280 | if (ajaxRes.success) { | 272 | if (ajaxRes.success) { |
281 | - alert('成功追加'); | 273 | + alert('成功追加'+append_num+'个序列号'); |
282 | window.location.href = '<?=Url::toRoute('/datas/device/index')?>' | 274 | window.location.href = '<?=Url::toRoute('/datas/device/index')?>' |
283 | } else { | 275 | } else { |
284 | alert(ajaxRes.message); | 276 | alert(ajaxRes.message); |
app-ht/modules/device/views/device/delete-index.php
@@ -48,13 +48,6 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -48,13 +48,6 @@ $this->params['breadcrumbs'][] = $this->title; | ||
48 | <div class="col-sm-2 form-inline"> | 48 | <div class="col-sm-2 form-inline"> |
49 | <input type="text" class="form-control" id="manufacture" name="manufacture" value="<?php if (!empty($gets['manufacture'])){ echo $gets['manufacture'];} ?>" autocomplete="off"> | 49 | <input type="text" class="form-control" id="manufacture" name="manufacture" value="<?php if (!empty($gets['manufacture'])){ echo $gets['manufacture'];} ?>" autocomplete="off"> |
50 | </div> | 50 | </div> |
51 | - <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label> | ||
52 | - <div class="col-sm-5 form-inline"> | ||
53 | - <input type="date" class="form-control" id="start_apply_at" name="start_apply_at" value="<?php if (!empty($gets['start_apply_at'])){ echo $gets['start_apply_at'];} ?>" autocomplete="off"> - <input type="date" class="form-control" id="end_apply_at" name="end_apply_at" value="<?php if (!empty($gets['end_apply_at'])){ echo $gets['end_apply_at'];} ?>" autocomplete="off"> | ||
54 | - </div> | ||
55 | - </div> | ||
56 | - | ||
57 | - <div class="form-group col-sm-12"> | ||
58 | <label for="mac" class="col-sm-1 control-label text-right">MAC地址:</label> | 51 | <label for="mac" class="col-sm-1 control-label text-right">MAC地址:</label> |
59 | <div class="col-sm-2 form-inline"> | 52 | <div class="col-sm-2 form-inline"> |
60 | <input type="text" class="form-control" id="mac" name="mac" value="<?php if (!empty($gets['mac'])){ echo $gets['mac'];} ?>" autocomplete="off"> | 53 | <input type="text" class="form-control" id="mac" name="mac" value="<?php if (!empty($gets['mac'])){ echo $gets['mac'];} ?>" autocomplete="off"> |
@@ -63,12 +56,30 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -63,12 +56,30 @@ $this->params['breadcrumbs'][] = $this->title; | ||
63 | <div class="col-sm-2 form-inline"> | 56 | <div class="col-sm-2 form-inline"> |
64 | <input type="text" class="form-control" id="device_id" name="device_id" value="<?php if (!empty($gets['device_id'])){ echo $gets['device_id'];} ?>" autocomplete="off"> | 57 | <input type="text" class="form-control" id="device_id" name="device_id" value="<?php if (!empty($gets['device_id'])){ echo $gets['device_id'];} ?>" autocomplete="off"> |
65 | </div> | 58 | </div> |
59 | + </div> | ||
60 | + <div class="form-group col-sm-12"> | ||
61 | + <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label> | ||
62 | + <div class="col-sm-2 form-inline"> | ||
63 | + <input type="date" class="form-control" id="start_apply_at" name="start_apply_at" value="<?php if (!empty($gets['start_apply_at'])){ echo $gets['start_apply_at'];} ?>" autocomplete="off"> <br>-<br> <input type="date" class="form-control" id="end_apply_at" name="end_apply_at" value="<?php if (!empty($gets['end_apply_at'])){ echo $gets['end_apply_at'];} ?>" autocomplete="off"> | ||
64 | + </div> | ||
66 | <label for="auth_at" class="col-sm-1 control-label text-right">授权时间:</label> | 65 | <label for="auth_at" class="col-sm-1 control-label text-right">授权时间:</label> |
67 | - <div class="col-sm-5 form-inline"> | ||
68 | - <input type="date" class="form-control" id="start_auth_at" name="start_auth_at" value="<?php if (!empty($gets['start_auth_at'])){ echo $gets['start_auth_at'];} ?>" autocomplete="off"> - <input type="date" class="form-control" id="end_auth_at" name="end_auth_at" value="<?php if (!empty($gets['end_auth_at'])){ echo $gets['end_auth_at'];} ?>" autocomplete="off"> | 66 | + <div class="col-sm-2 form-inline"> |
67 | + <input type="date" class="form-control" id="start_auth_at" name="start_auth_at" value="<?php if (!empty($gets['start_auth_at'])){ echo $gets['start_auth_at'];} ?>" autocomplete="off"> <br>-<br> <input type="date" class="form-control" id="end_auth_at" name="end_auth_at" value="<?php if (!empty($gets['end_auth_at'])){ echo $gets['end_auth_at'];} ?>" autocomplete="off"> | ||
69 | </div> | 68 | </div> |
70 | - </div> | ||
71 | 69 | ||
70 | + <label for="auth_at" class="col-sm-1 control-label text-right">生成时间:</label> | ||
71 | + <div class="col-sm-2 form-inline"> | ||
72 | + <input type="date" class="form-control" id="start_auth_at" name="start_created_at" value="<?php if (!empty($gets['start_created_at'])){ echo $gets['start_created_at'];} ?>" autocomplete="off"> <br>-<br> <input type="date" class="form-control" id="end_created_at" name="end_created_at" value="<?php if (!empty($gets['end_created_at'])){ echo $gets['end_created_at'];} ?>" autocomplete="off"> | ||
73 | + </div> | ||
74 | + <label for="auth_at" class="col-sm-1 control-label text-right">处理:</label> | ||
75 | + <div class="col-sm-2 form-inline"> | ||
76 | + <select name="has_re_auth" class="form-control"> | ||
77 | + <option value="">全部</option> | ||
78 | + <option value="1" <?php if(1 ==$gets['has_re_auth']) {echo "selected";}?>>已处理</option> | ||
79 | + <option value="2" <?php if(2 ==$gets['has_re_auth']) {echo "selected";}?>>未处理</option> | ||
80 | + </select> | ||
81 | + </div> | ||
82 | + </div> | ||
72 | <div class="form-group col-sm-12" style="text-align: center;"> | 83 | <div class="form-group col-sm-12" style="text-align: center;"> |
73 | <button type="submit" class="btn btn-primary font-1" id="submitFilterBtn">查询</button> | 84 | <button type="submit" class="btn btn-primary font-1" id="submitFilterBtn">查询</button> |
74 | </div> | 85 | </div> |
@@ -88,15 +99,14 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -88,15 +99,14 @@ $this->params['breadcrumbs'][] = $this->title; | ||
88 | <tr> | 99 | <tr> |
89 | <th >ID</th> | 100 | <th >ID</th> |
90 | <th width="6%">ID</th> | 101 | <th width="6%">ID</th> |
91 | - <th width="6%">序列号</th> | ||
92 | - <th width="8%">厂商</th> | ||
93 | - <th width="6%">项目</th> | ||
94 | - <th width="7%">设备型号</th> | ||
95 | - <th width="6%">生产日期</th> | 102 | + <th width="8%">序列号</th> |
103 | + <th width="10%">批次信息</th> | ||
104 | + | ||
96 | <th>MAC地址</th> | 105 | <th>MAC地址</th> |
97 | - <th width="7%">设备ID</th> | ||
98 | - <th width="7%">申请时间</th> | ||
99 | - <th width="7%">授权时间</th> | 106 | + <th width="8%">设备ID</th> |
107 | + <th width="8%">申请时间</th> | ||
108 | + <th width="8%">授权时间</th> | ||
109 | + <th width="8%">状态</th> | ||
100 | <th width="7%">状态</th> | 110 | <th width="7%">状态</th> |
101 | <th >操作</th> | 111 | <th >操作</th> |
102 | </tr> | 112 | </tr> |
@@ -114,16 +124,10 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -114,16 +124,10 @@ $this->params['breadcrumbs'][] = $this->title; | ||
114 | <div class="cell-cls"><?= $item['serial_no'] ?></div> | 124 | <div class="cell-cls"><?= $item['serial_no'] ?></div> |
115 | </td> | 125 | </td> |
116 | <td class="td-cls"> | 126 | <td class="td-cls"> |
117 | - <?= $item['manufacture'] ?> | ||
118 | - </td> | ||
119 | - <td class="td-cls"> | ||
120 | - <?= $item['project'] ?> | ||
121 | - </td> | ||
122 | - <td class="td-cls"> | ||
123 | - <?= $item['model'] ?> | ||
124 | - </td> | ||
125 | - <td class="td-cls"> | ||
126 | - <?= $item['production'] ?> | 127 | + 厂商: <?= $item['manufacture'] ?><br/> |
128 | + 项目:<?= $item['project'] ?><br/> | ||
129 | + 型号:<?= $item['model'] ?><br/> | ||
130 | + 生产日期:<?= $item['production'] ?><br/> | ||
127 | </td> | 131 | </td> |
128 | <td class="td-cls"> | 132 | <td class="td-cls"> |
129 | <div class="cell-cls edit_mac edit_mac_<?=$item['id']?>" data-id="<?=$item['id']?>" data="<?= $item['mac'] ?>"><?= $item['mac'] ?></div> | 133 | <div class="cell-cls edit_mac edit_mac_<?=$item['id']?>" data-id="<?=$item['id']?>" data="<?= $item['mac'] ?>"><?= $item['mac'] ?></div> |
@@ -138,6 +142,9 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -138,6 +142,9 @@ $this->params['breadcrumbs'][] = $this->title; | ||
138 | <?= $item['auth_at']? date('Y-m-d H:i:s', $item['auth_at']):'暂无' ?> | 142 | <?= $item['auth_at']? date('Y-m-d H:i:s', $item['auth_at']):'暂无' ?> |
139 | </td> | 143 | </td> |
140 | <td class="td-cls"> | 144 | <td class="td-cls"> |
145 | + <?= $item['created_at']? date('Y-m-d H:i:s', $item['created_at']):'暂无' ?> | ||
146 | + </td> | ||
147 | + <td class="td-cls"> | ||
141 | <?= $statusList[$item['status']] ?> | 148 | <?= $statusList[$item['status']] ?> |
142 | </td> | 149 | </td> |
143 | <td class="td-cls"> | 150 | <td class="td-cls"> |
app-ht/modules/device/views/device/index.php
@@ -59,22 +59,25 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -59,22 +59,25 @@ $this->params['breadcrumbs'][] = $this->title; | ||
59 | </div> | 59 | </div> |
60 | <div class="form-group col-sm-12"> | 60 | <div class="form-group col-sm-12"> |
61 | <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label> | 61 | <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label> |
62 | - <div class="col-sm-4 form-inline"> | ||
63 | - <input type="date" class="form-control" id="start_apply_at" name="start_apply_at" value="<?php if (!empty($gets['start_apply_at'])){ echo $gets['start_apply_at'];} ?>" autocomplete="off"> - <input type="date" class="form-control" id="end_apply_at" name="end_apply_at" value="<?php if (!empty($gets['end_apply_at'])){ echo $gets['end_apply_at'];} ?>" autocomplete="off"> | 62 | + <div class="col-sm-2 form-inline"> |
63 | + <input type="date" class="form-control" id="start_apply_at" name="start_apply_at" value="<?php if (!empty($gets['start_apply_at'])){ echo $gets['start_apply_at'];} ?>" autocomplete="off"> <br>-<br> <input type="date" class="form-control" id="end_apply_at" name="end_apply_at" value="<?php if (!empty($gets['end_apply_at'])){ echo $gets['end_apply_at'];} ?>" autocomplete="off"> | ||
64 | </div> | 64 | </div> |
65 | - <label for="auth_at" class="col-sm-1 control-label text-right">授权时间:</label> | ||
66 | - <div class="col-sm-4 form-inline"> | ||
67 | - <input type="date" class="form-control" id="start_auth_at" name="start_auth_at" value="<?php if (!empty($gets['start_auth_at'])){ echo $gets['start_auth_at'];} ?>" autocomplete="off"> - <input type="date" class="form-control" id="end_auth_at" name="end_auth_at" value="<?php if (!empty($gets['end_auth_at'])){ echo $gets['end_auth_at'];} ?>" autocomplete="off"> | 65 | + <label class="col-sm-1 control-label text-right">授权时间:</label> |
66 | + <div class="col-sm-2 form-inline"> | ||
67 | + <input type="date" class="form-control" id="start_auth_at" name="start_auth_at" value="<?php if (!empty($gets['start_auth_at'])){ echo $gets['start_auth_at'];} ?>" autocomplete="off"> <br>-<br> <input type="date" class="form-control" id="end_auth_at" name="end_auth_at" value="<?php if (!empty($gets['end_auth_at'])){ echo $gets['end_auth_at'];} ?>" autocomplete="off"> | ||
68 | </div> | 68 | </div> |
69 | 69 | ||
70 | - | ||
71 | - <label for="auth_at" class="col-sm-1 control-label text-right">处理:</label> | ||
72 | - <div class="col-sm-1 form-inline"> | ||
73 | - <select name="has_re_auth" class="form-control"> | ||
74 | - <option value="">全部</option> | ||
75 | - <option value="1" <?php if(1 ==$gets['has_re_auth']) {echo "selected";}?>>已处理</option> | ||
76 | - <option value="2" <?php if(2 ==$gets['has_re_auth']) {echo "selected";}?>>未处理</option> | ||
77 | - </select> | 70 | + <label class="col-sm-1 control-label text-right">生成时间:</label> |
71 | + <div class="col-sm-2 form-inline"> | ||
72 | + <input type="date" class="form-control" id="start_auth_at" name="start_created_at" value="<?php if (!empty($gets['start_created_at'])){ echo $gets['start_created_at'];} ?>" autocomplete="off"> <br>-<br> <input type="date" class="form-control" id="end_created_at" name="end_created_at" value="<?php if (!empty($gets['end_created_at'])){ echo $gets['end_created_at'];} ?>" autocomplete="off"> | ||
73 | + </div> | ||
74 | + <label for="handle_status" class="col-sm-1 control-label text-right">处理:</label> | ||
75 | + <div class="col-sm-2 form-inline"> | ||
76 | + <select id="handle_status" name="has_re_auth" class="form-control"> | ||
77 | + <option value="">全部</option> | ||
78 | + <option value="1" <?php if(1 ==$gets['has_re_auth']) {echo "selected";}?>>已处理</option> | ||
79 | + <option value="2" <?php if(2 ==$gets['has_re_auth']) {echo "selected";}?>>未处理</option> | ||
80 | + </select> | ||
78 | </div> | 81 | </div> |
79 | </div> | 82 | </div> |
80 | 83 | ||
@@ -98,15 +101,14 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -98,15 +101,14 @@ $this->params['breadcrumbs'][] = $this->title; | ||
98 | <tr> | 101 | <tr> |
99 | <th></th> | 102 | <th></th> |
100 | <th width="6%">ID</th> | 103 | <th width="6%">ID</th> |
101 | - <th width="5%">序列号</th> | ||
102 | - <th width="8%">厂商</th> | ||
103 | - <th width="6%">项目</th> | ||
104 | - <th width="8%">设备型号</th> | ||
105 | - <th width="6%">生产日期</th> | 104 | + <th width="8%">序列号</th> |
105 | + <th width="10%">批次信息</th> | ||
106 | + | ||
106 | <th>MAC地址</th> | 107 | <th>MAC地址</th> |
107 | - <th width="7%">设备ID</th> | ||
108 | - <th width="7%">申请时间</th> | ||
109 | - <th width="7%">授权时间</th> | 108 | + <th width="8%">设备ID</th> |
109 | + <th width="8%">申请时间</th> | ||
110 | + <th width="8%">授权时间</th> | ||
111 | + <th width="8%">生成时间</th> | ||
110 | <th width="7%">状态</th> | 112 | <th width="7%">状态</th> |
111 | <th >操作</th> | 113 | <th >操作</th> |
112 | </tr> | 114 | </tr> |
@@ -124,17 +126,12 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -124,17 +126,12 @@ $this->params['breadcrumbs'][] = $this->title; | ||
124 | <div class="cell-cls"><?= $item['serial_no'] ?></div> | 126 | <div class="cell-cls"><?= $item['serial_no'] ?></div> |
125 | </td> | 127 | </td> |
126 | <td class="td-cls"> | 128 | <td class="td-cls"> |
127 | - <?= $item['manufacture'] ?> | ||
128 | - </td> | ||
129 | - <td class="td-cls"> | ||
130 | - <?= $item['project'] ?> | ||
131 | - </td> | ||
132 | - <td class="td-cls"> | ||
133 | - <?= $item['model'] ?> | ||
134 | - </td> | ||
135 | - <td class="td-cls"> | ||
136 | - <?= $item['production'] ?> | 129 | + 厂商: <?= $item['manufacture'] ?><br/> |
130 | + 项目:<?= $item['project'] ?><br/> | ||
131 | + 型号:<?= $item['model'] ?><br/> | ||
132 | + 生产日期:<?= $item['production'] ?><br/> | ||
137 | </td> | 133 | </td> |
134 | + | ||
138 | <td class="td-cls"> | 135 | <td class="td-cls"> |
139 | <div class="cell-cls edit_mac edit_mac_<?=$item['id']?>" data-id="<?=$item['id']?>" data="<?= $item['mac'] ?>"><?= $item['mac'] ?></div> | 136 | <div class="cell-cls edit_mac edit_mac_<?=$item['id']?>" data-id="<?=$item['id']?>" data="<?= $item['mac'] ?>"><?= $item['mac'] ?></div> |
140 | </td> | 137 | </td> |
@@ -148,6 +145,9 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -148,6 +145,9 @@ $this->params['breadcrumbs'][] = $this->title; | ||
148 | <?= $item['auth_at']? date('Y-m-d H:i:s', $item['auth_at']):'暂无' ?> | 145 | <?= $item['auth_at']? date('Y-m-d H:i:s', $item['auth_at']):'暂无' ?> |
149 | </td> | 146 | </td> |
150 | <td class="td-cls"> | 147 | <td class="td-cls"> |
148 | + <?= $item['created_at']? date('Y-m-d H:i:s', $item['created_at']):'暂无' ?> | ||
149 | + </td> | ||
150 | + <td class="td-cls"> | ||
151 | <?= $statusList[$item['status']] ?> | 151 | <?= $statusList[$item['status']] ?> |
152 | </td> | 152 | </td> |
153 | <td class="td-cls"> | 153 | <td class="td-cls"> |
app-ht/modules/system/views/account/index.php
@@ -70,9 +70,9 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -70,9 +70,9 @@ $this->params['breadcrumbs'][] = $this->title; | ||
70 | <?= $user['is_enable_label'] ?> | 70 | <?= $user['is_enable_label'] ?> |
71 | </td> | 71 | </td> |
72 | <td style="padding:12px;"> | 72 | <td style="padding:12px;"> |
73 | - <a href="<?php echo Url::toRoute(['/system/account/set-role', 'id' => $user['id']]) ?>"><span class="btn btn-success" style="padding:8px;">设置角色</span></a> | 73 | + <?php if('admin' != $user['username'] ) {?><a href="<?php echo Url::toRoute(['/system/account/set-role', 'id' => $user['id']]) ?>"><span class="btn btn-success" style="padding:8px;">设置角色</span></a> <?php }?> |
74 | <a href="<?php echo Url::toRoute(['/system/account/update', 'id' => $user['id']]) ?>"><span class="btn btn-primary" style="padding:8px;">编辑</span></a> | 74 | <a href="<?php echo Url::toRoute(['/system/account/update', 'id' => $user['id']]) ?>"><span class="btn btn-primary" style="padding:8px;">编辑</span></a> |
75 | - <a href="<?php echo Url::toRoute(['/system/account/enable', 'id' => $user['id']]) ?>"><span class="btn btn-danger" style="padding:8px;"><?php echo $user['is_enable_opt'] ?></span></a> | 75 | + <?php if('admin' != $user['username'] ) {?> <a href="<?php echo Url::toRoute(['/system/account/enable', 'id' => $user['id']]) ?>"><span class="btn btn-danger" style="padding:8px;"><?php echo $user['is_enable_opt'] ?></span></a><?php }?> |
76 | </td> | 76 | </td> |
77 | </tr> | 77 | </tr> |
78 | <?php endforeach; ?> | 78 | <?php endforeach; ?> |
app-ht/modules/upgrade/controllers/UpgradeController.php
@@ -132,7 +132,7 @@ class UpgradeController extends BaseController | @@ -132,7 +132,7 @@ class UpgradeController extends BaseController | ||
132 | $user = Yii::$app->user->identity; | 132 | $user = Yii::$app->user->identity; |
133 | if (isset($user->is_manufacture) && $user->is_manufacture == 1) { | 133 | if (isset($user->is_manufacture) && $user->is_manufacture == 1) { |
134 | $manufacturer = ManufacturerRepository::findOne(["sys_user_id" => $user->id]); | 134 | $manufacturer = ManufacturerRepository::findOne(["sys_user_id" => $user->id]); |
135 | - if (empty($manufacturer) || $manufacturer->id != $request->post("manufacturer_id")) { | 135 | + if (empty($manufacturer) || $manufacturer->id != $request->post("manufacture_id")) { |
136 | Yii::$app->session->setFlash('error', '添加失败'); | 136 | Yii::$app->session->setFlash('error', '添加失败'); |
137 | return $this->render('create'); | 137 | return $this->render('create'); |
138 | } | 138 | } |
@@ -218,7 +218,7 @@ class UpgradeController extends BaseController | @@ -218,7 +218,7 @@ class UpgradeController extends BaseController | ||
218 | $user = Yii::$app->user->identity; | 218 | $user = Yii::$app->user->identity; |
219 | if (isset($user->is_manufacture) && $user->is_manufacture == 1) { | 219 | if (isset($user->is_manufacture) && $user->is_manufacture == 1) { |
220 | $manufacturer = ManufacturerRepository::findOne(["sys_user_id" => $user->id]); | 220 | $manufacturer = ManufacturerRepository::findOne(["sys_user_id" => $user->id]); |
221 | - if (empty($manufacturer) || $manufacturer->id != $request->post("manufacturer_id")) { | 221 | + if (empty($manufacturer) || $manufacturer->id != $request->post("manufacture_id")) { |
222 | Yii::$app->session->setFlash('error', '编辑失败'); | 222 | Yii::$app->session->setFlash('error', '编辑失败'); |
223 | $params = $this->dataList(1); | 223 | $params = $this->dataList(1); |
224 | return $this->render('index', $params); | 224 | return $this->render('index', $params); |
@@ -277,8 +277,8 @@ class UpgradeController extends BaseController | @@ -277,8 +277,8 @@ class UpgradeController extends BaseController | ||
277 | $user = Yii::$app->user->identity; | 277 | $user = Yii::$app->user->identity; |
278 | if (isset($user->is_manufacture) && $user->is_manufacture == 1) { | 278 | if (isset($user->is_manufacture) && $user->is_manufacture == 1) { |
279 | $manufacturer = ManufacturerRepository::findOne(["sys_user_id" => $user->id]); | 279 | $manufacturer = ManufacturerRepository::findOne(["sys_user_id" => $user->id]); |
280 | - $upgrade = UpgradeRepository::selectOne($itemId,true); | ||
281 | - if (empty($upgrade) || empty($manufacturer) || $manufacturer->id != $request->post("manufacturer_id")) { | 280 | + $upgrade = UpgradeRepository::selectOne($itemId, true); |
281 | + if (empty($upgrade) || empty($manufacturer) || $manufacturer->id != $upgrade['manufacture_id']) { | ||
282 | $msg['status'] = 0; | 282 | $msg['status'] = 0; |
283 | $msg['msg'] = "删除"; | 283 | $msg['msg'] = "删除"; |
284 | return $this->renderJson($msg); | 284 | return $this->renderJson($msg); |
@@ -717,6 +717,7 @@ class UpgradeController extends BaseController | @@ -717,6 +717,7 @@ class UpgradeController extends BaseController | ||
717 | $manufactureId = $request->post("manufacture"); | 717 | $manufactureId = $request->post("manufacture"); |
718 | $projectId = $request->post("project"); | 718 | $projectId = $request->post("project"); |
719 | $modelId = $request->post("model"); | 719 | $modelId = $request->post("model"); |
720 | + $type = $request->post("type"); | ||
720 | $id = $request->post('id'); | 721 | $id = $request->post('id'); |
721 | if (empty($manufactureId)) { | 722 | if (empty($manufactureId)) { |
722 | $e->message = '请先选择厂商'; | 723 | $e->message = '请先选择厂商'; |
@@ -733,14 +734,14 @@ class UpgradeController extends BaseController | @@ -733,14 +734,14 @@ class UpgradeController extends BaseController | ||
733 | return $this->renderJson($e); | 734 | return $this->renderJson($e); |
734 | } | 735 | } |
735 | 736 | ||
736 | - $upgradeModel = UpgradeRepository::findOne(['manufacture_id' => $manufactureId, 'project_id' => $projectId, 'model_id' => $modelId, 'is_delete' => 0, 'status' => UpgradeStatus::STATUS_ON]); | 737 | + $upgradeModel = UpgradeRepository::findOne(['manufacture_id' => $manufactureId, 'project_id' => $projectId, 'model_id' => $modelId, 'is_delete' => 0, 'status' => UpgradeStatus::STATUS_ON, 'type' => $type]); |
737 | if ($upgradeModel && empty($id)) { | 738 | if ($upgradeModel && empty($id)) { |
738 | - $e->message = '该厂商该批次已经存在一个版本号为:'.$upgradeModel->version.'的发布版本,请先取消发布的版本再上传'; | 739 | + $e->message = '该厂商该批次已经存在一个版本号为:'.$upgradeModel->version.'的发布版本,请先取消发布的版本再上传'.$upgradeModel->id; |
739 | return $this->renderJson($e); | 740 | return $this->renderJson($e); |
740 | } | 741 | } |
741 | 742 | ||
742 | if ($upgradeModel && !empty($id) && $id != $upgradeModel->id) { | 743 | if ($upgradeModel && !empty($id) && $id != $upgradeModel->id) { |
743 | - $e->message = '该厂商该批次已经存在一个版本号为:'.$upgradeModel->version.'的发布版本,请先取消发布的版本再上传'; | 744 | + $e->message = '该厂商该批次已经存在一个版本号为:'.$upgradeModel->version.'的发布版本,请先取消发布的版本再上传!'; |
744 | return $this->renderJson($e); | 745 | return $this->renderJson($e); |
745 | } | 746 | } |
746 | 747 |
app-ht/modules/upgrade/views/upgrade/create.php
@@ -37,7 +37,13 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -37,7 +37,13 @@ $this->params['breadcrumbs'][] = $this->title; | ||
37 | <?php } ?> | 37 | <?php } ?> |
38 | </div> | 38 | </div> |
39 | <div class="form-group col-sm-12"> | 39 | <div class="form-group col-sm-12"> |
40 | - <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>APP版本号:</label> | 40 | + <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span> |
41 | + <?php if (isset($gets["type"]) && $gets["type"] == UpgradeStatus::TYPE_OTA) { ?> | ||
42 | + OTA版本号 | ||
43 | + <?php } else { ?> | ||
44 | + APP版本号 | ||
45 | + <?php } ?> | ||
46 | + </label> | ||
41 | <div class="col-sm-4 text-left"> | 47 | <div class="col-sm-4 text-left"> |
42 | <input type="text" value="<?= (isset($gets["version"]) ? $gets["version"] : "") ?>" name="version" placeholder="请填写APP版本号" style="margin-top: -6px;" class="form-control""> | 48 | <input type="text" value="<?= (isset($gets["version"]) ? $gets["version"] : "") ?>" name="version" placeholder="请填写APP版本号" style="margin-top: -6px;" class="form-control""> |
43 | </div> | 49 | </div> |
@@ -261,7 +267,8 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -261,7 +267,8 @@ $this->params['breadcrumbs'][] = $this->title; | ||
261 | var manufacture = $('#manufacture').val(); | 267 | var manufacture = $('#manufacture').val(); |
262 | var project = $('#project').val(); | 268 | var project = $('#project').val(); |
263 | var model = $('#model').val(); | 269 | var model = $('#model').val(); |
264 | - $.post(checkUpgradeUrl, {manufacture:manufacture, project:project,model:model}, function(res){ | 270 | + var type = $('#type').val(); |
271 | + $.post(checkUpgradeUrl, {manufacture:manufacture, project:project,model:model,type:type}, function(res){ | ||
265 | if (res.success) { | 272 | if (res.success) { |
266 | if (that.hasClass('disabled')) { | 273 | if (that.hasClass('disabled')) { |
267 | return false; | 274 | return false; |
app-ht/modules/upgrade/views/upgrade/edit.php
@@ -36,7 +36,12 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -36,7 +36,12 @@ $this->params['breadcrumbs'][] = $this->title; | ||
36 | <?php } ?> | 36 | <?php } ?> |
37 | </div> | 37 | </div> |
38 | <div class="form-group col-sm-12"> | 38 | <div class="form-group col-sm-12"> |
39 | - <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>APP版本号:</label> | 39 | + <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span> |
40 | + <?php if (isset($info["type"]) && $info["type"] == UpgradeStatus::TYPE_OTA) { ?> | ||
41 | + OTA版本号 | ||
42 | + <?php } else { ?> | ||
43 | + APP版本号 | ||
44 | + <?php } ?>:</label> | ||
40 | <div class="col-sm-4 text-left"> | 45 | <div class="col-sm-4 text-left"> |
41 | <input type="text" value="<?= (isset($info["version"]) ? $info["version"] : "") ?>" name="version" placeholder="请填写APP版本号" style="margin-top: -6px;" class="form-control""> | 46 | <input type="text" value="<?= (isset($info["version"]) ? $info["version"] : "") ?>" name="version" placeholder="请填写APP版本号" style="margin-top: -6px;" class="form-control""> |
42 | </div> | 47 | </div> |
@@ -251,7 +256,8 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -251,7 +256,8 @@ $this->params['breadcrumbs'][] = $this->title; | ||
251 | var manufacture = $('#manufacture').val(); | 256 | var manufacture = $('#manufacture').val(); |
252 | var project = $('#project').val(); | 257 | var project = $('#project').val(); |
253 | var model = $('#model').val(); | 258 | var model = $('#model').val(); |
254 | - $.post(checkUpgradeUrl, {manufacture:manufacture, project:project,model:model, id: $('#uid').val()}, function(res){ | 259 | + var type = $('#type').val(); |
260 | + $.post(checkUpgradeUrl, {manufacture:manufacture, project:project,model:model, id: $('#uid').val(), 'type':type}, function(res){ | ||
255 | if (res.success) { | 261 | if (res.success) { |
256 | if (that.hasClass('disabled')) { | 262 | if (that.hasClass('disabled')) { |
257 | return false; | 263 | return false; |
@@ -0,0 +1,73 @@ | @@ -0,0 +1,73 @@ | ||
1 | +<?php | ||
2 | + | ||
3 | +namespace common\exts; | ||
4 | + | ||
5 | +class Aes | ||
6 | +{ | ||
7 | + /** | ||
8 | + * var string $method 加解密方法,可通过openssl_get_cipher_methods()获得 | ||
9 | + */ | ||
10 | + protected $method; | ||
11 | + | ||
12 | + /** | ||
13 | + * var string $secret_key 加解密的密钥 | ||
14 | + */ | ||
15 | + protected $secret_key; | ||
16 | + | ||
17 | + /** | ||
18 | + * var string $iv 加解密的向量,有些方法需要设置比如CBC | ||
19 | + */ | ||
20 | + protected $iv; | ||
21 | + | ||
22 | + /** | ||
23 | + * var string $options (不知道怎么解释,目前设置为0没什么问题) | ||
24 | + */ | ||
25 | + protected $options; | ||
26 | + | ||
27 | + /** | ||
28 | + * 构造函数 | ||
29 | + * | ||
30 | + * @param string $key 密钥 | ||
31 | + * @param string $method 加密方式 | ||
32 | + * @param string $iv iv向量 | ||
33 | + * @param mixed $options 还不是很清楚 | ||
34 | + * | ||
35 | + */ | ||
36 | + public function __construct($key, $method = 'AES-128-ECB', $iv = '', $options = 0) | ||
37 | + { | ||
38 | + // key是必须要设置的 | ||
39 | + $this->secret_key = isset($key) ? $key : 'king_board_key_01'; | ||
40 | + | ||
41 | + $this->method = $method; | ||
42 | + | ||
43 | + $this->iv = $iv; | ||
44 | + | ||
45 | + $this->options = $options; | ||
46 | + } | ||
47 | + | ||
48 | + /** | ||
49 | + * 加密方法,对数据进行加密,返回加密后的数据 | ||
50 | + * | ||
51 | + * @param string $data 要加密的数据 | ||
52 | + * | ||
53 | + * @return string | ||
54 | + * | ||
55 | + */ | ||
56 | + public function encrypt($data) | ||
57 | + { | ||
58 | + return openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv); | ||
59 | + } | ||
60 | + | ||
61 | + /** | ||
62 | + * 解密方法,对数据进行解密,返回解密后的数据 | ||
63 | + * | ||
64 | + * @param string $data 要解密的数据 | ||
65 | + * | ||
66 | + * @return string | ||
67 | + * | ||
68 | + */ | ||
69 | + public function decrypt($data) | ||
70 | + { | ||
71 | + return openssl_decrypt($data, $this->method, $this->secret_key, $this->options, $this->iv); | ||
72 | + } | ||
73 | +} | ||
0 | \ No newline at end of file | 74 | \ No newline at end of file |
@@ -0,0 +1,86 @@ | @@ -0,0 +1,86 @@ | ||
1 | +<?php | ||
2 | + | ||
3 | +namespace common\exts; | ||
4 | + | ||
5 | +class RSACrypt | ||
6 | +{ | ||
7 | + | ||
8 | + public static $private_key = "-----BEGIN RSA PRIVATE KEY----- | ||
9 | +MIICXQIBAAKBgQCpS7mxdU6svbDcs10qbq9f9t5D4yfqC1jLmZD3GDD4D/8TbNkf | ||
10 | +vcYDvde6nyPRSxrnzl9YmZhJKlP2iCIwdwwmW6yulXZyvPurfN/1AJt4JYDxnN/q | ||
11 | +u1bSG5DZMribLsR2dlfA5J0D6lQ7g40eSgp4D6UWy8ezLy6UWFQCrnUHEQIDAQAB | ||
12 | +AoGAQCQeoKtvOWdNIPEb9T2mWFdx8oqXzsapx8nQ8K1LsFBvNe7hfHMsGLLOjzhI | ||
13 | +G7223eiEm07mMaJF2XvOaEpSYX/qQ1LZRSdBrzCec1lcDbB95dcRg9NmgBuCpUxE | ||
14 | +3SGYm3VB8rurfsrRUUYoIbjWz8qyuIGdMbaNkHG/CpnUYpkCQQDfWYDYtQ3DxCt+ | ||
15 | +JBoLfuCykk8+nIV12CIYb023naoR2s/aQQRk9BkGCkDrdOAgZAN3BGOHYseKAfTP | ||
16 | +nARDzfiDAkEAwgtYfgCDTOfW5/kJK1lZO21CdCCZnePwGYmWDLPzNiJIn8k0U6Ig | ||
17 | +9GmxG+0GKzY71XO8W3Nh18ilZbX9dYel2wJASQ+AJGNlc0pyZ7rrgiMo4YEWxwZw | ||
18 | +adIfpRqTs6KxhVGseFqYU2W94cns3pjG0BGnSIF5BUp8t1pYeKkyg/OWfQJBAK1w | ||
19 | +mq41IycQaoR5kfqPKDT32dgWc3gvDqKk2duM1KzkQ+meXAkM90u/VLDTURo6pYyK | ||
20 | +oCdVoHTRQRUCcAQnNNUCQQCO/zDRaY+5ssjPqj77eJqWfAhtbSDRRw+NurmUSas1 | ||
21 | +FT1cD5nil+uT48bIRoC5nk/XWfvAvMg/Yw5bslGUNx7f | ||
22 | +-----END RSA PRIVATE KEY-----"; | ||
23 | + | ||
24 | + public static $public_key = "-----BEGIN PUBLIC KEY----- | ||
25 | +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpS7mxdU6svbDcs10qbq9f9t5D | ||
26 | +4yfqC1jLmZD3GDD4D/8TbNkfvcYDvde6nyPRSxrnzl9YmZhJKlP2iCIwdwwmW6yu | ||
27 | +lXZyvPurfN/1AJt4JYDxnN/qu1bSG5DZMribLsR2dlfA5J0D6lQ7g40eSgp4D6UW | ||
28 | +y8ezLy6UWFQCrnUHEQIDAQAB | ||
29 | +-----END PUBLIC KEY-----"; | ||
30 | + | ||
31 | + private $pubkey; | ||
32 | + private $privkey; | ||
33 | + | ||
34 | + /** | ||
35 | + * RSACrypt constructor. | ||
36 | + * @param null $privateKey | ||
37 | + * @param null $publicKey | ||
38 | + */ | ||
39 | + function __construct($privateKey = null, $publicKey = null) | ||
40 | + { | ||
41 | + // 获得资源类型公钥和私钥, | ||
42 | + if ($publicKey) { | ||
43 | + $_publicKey = $publicKey; | ||
44 | + } else { | ||
45 | + $_publicKey = self::$public_key; | ||
46 | + } | ||
47 | + | ||
48 | + if ($privateKey) { | ||
49 | + $_privateKey = $privateKey; | ||
50 | + } else { | ||
51 | + $_privateKey = self::$private_key; | ||
52 | + } | ||
53 | + $this->privkey = openssl_pkey_get_private($_privateKey); | ||
54 | + $this->pubkey = openssl_pkey_get_public($_publicKey); | ||
55 | + } | ||
56 | + | ||
57 | + /** | ||
58 | + * 加密 | ||
59 | + * @param $data | ||
60 | + * @return string | ||
61 | + */ | ||
62 | + public function encrypt($data) | ||
63 | + { | ||
64 | + if (openssl_public_encrypt($data, $encrypted, $this->pubkey)) { | ||
65 | + $data = base64_encode($encrypted); | ||
66 | + return $data; | ||
67 | + } else { | ||
68 | + return null; | ||
69 | + } | ||
70 | + } | ||
71 | + | ||
72 | + /** | ||
73 | + * 解密 | ||
74 | + * @param $data | ||
75 | + * @return mixed | ||
76 | + */ | ||
77 | + public function decrypt($data) | ||
78 | + { | ||
79 | + if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey)) { | ||
80 | + $data = $decrypted; | ||
81 | + return $data; | ||
82 | + } else { | ||
83 | + return null; | ||
84 | + } | ||
85 | + } | ||
86 | +} | ||
0 | \ No newline at end of file | 87 | \ No newline at end of file |
common/helpers/Utils.php
@@ -42,7 +42,7 @@ class Utils | @@ -42,7 +42,7 @@ class Utils | ||
42 | * @param bool|false $onlyNumber 是否纯数字 | 42 | * @param bool|false $onlyNumber 是否纯数字 |
43 | * @return string | 43 | * @return string |
44 | */ | 44 | */ |
45 | - public static function rand($len,$onlyNumber = false) | 45 | + public static function rand($len, $onlyNumber = false) |
46 | { | 46 | { |
47 | $randString = ''; | 47 | $randString = ''; |
48 | $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz_"; | 48 | $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz_"; |
console/controllers/TestController.php
@@ -7,15 +7,15 @@ namespace console\controllers; | @@ -7,15 +7,15 @@ namespace console\controllers; | ||
7 | * Time: 11:32 AM | 7 | * Time: 11:32 AM |
8 | */ | 8 | */ |
9 | 9 | ||
10 | - | ||
11 | -use app\api\helpers\Aes; | 10 | +use common\exts\Aes; |
11 | +use common\exts\RSACrypt; | ||
12 | use common\exts\Http; | 12 | use common\exts\Http; |
13 | +use common\helpers\Utils; | ||
13 | use domain\device\Device; | 14 | use domain\device\Device; |
14 | use GuzzleHttp\Psr7; | 15 | use GuzzleHttp\Psr7; |
15 | use yii\console\Controller; | 16 | use yii\console\Controller; |
16 | use GuzzleHttp\Psr7\Request; | 17 | use GuzzleHttp\Psr7\Request; |
17 | use function chr; | 18 | use function chr; |
18 | -use yii\helpers\ArrayHelper; | ||
19 | 19 | ||
20 | class TestController extends Controller | 20 | class TestController extends Controller |
21 | { | 21 | { |
@@ -43,7 +43,7 @@ class TestController extends Controller | @@ -43,7 +43,7 @@ class TestController extends Controller | ||
43 | $modelNo = '0001'; | 43 | $modelNo = '0001'; |
44 | $productionNo = '0001'; | 44 | $productionNo = '0001'; |
45 | $timestamp = time(); | 45 | $timestamp = time(); |
46 | - $salt = 13456; | 46 | + $salt = '13456'; |
47 | $sign = md5($manufactureNo. $projectNo. $modelNo . $productionNo . $timestamp .$device_id. $salt); | 47 | $sign = md5($manufactureNo. $projectNo. $modelNo . $productionNo . $timestamp .$device_id. $salt); |
48 | $params = [ | 48 | $params = [ |
49 | 'manufacture' => $manufactureNo, | 49 | 'manufacture' => $manufactureNo, |
@@ -154,7 +154,6 @@ class TestController extends Controller | @@ -154,7 +154,6 @@ class TestController extends Controller | ||
154 | echo $postResult; | 154 | echo $postResult; |
155 | } | 155 | } |
156 | 156 | ||
157 | - | ||
158 | public function actionReportAppEvent() | 157 | public function actionReportAppEvent() |
159 | { | 158 | { |
160 | //actionCheckAppVersion | 159 | //actionCheckAppVersion |
@@ -177,5 +176,83 @@ class TestController extends Controller | @@ -177,5 +176,83 @@ class TestController extends Controller | ||
177 | $postResult = Http::POST($url, $params); | 176 | $postResult = Http::POST($url, $params); |
178 | echo $postResult; | 177 | echo $postResult; |
179 | } | 178 | } |
179 | + | ||
180 | + public function actionEncodePost() | ||
181 | + { | ||
182 | + $url = 'http://kingb:8012/app-api/web/CryptTxt'; | ||
183 | + $randKey = '98765432';//Utils::rand(32); | ||
184 | + $rsa = new RSACrypt(); | ||
185 | + $aes = new Aes($randKey); | ||
186 | + $deviceId = 'oelooeloeloeloe'; | ||
187 | + $manufactureNo = '0001'; | ||
188 | + $tt = time(); | ||
189 | + $sign = md5($deviceId . $tt . $randKey); | ||
190 | + $dd = json_encode(['manufacture' => $manufactureNo, 'timestamp' => $tt, 'sign' => $sign, 'device_id' => $deviceId]); | ||
191 | + $params = [ | ||
192 | + 'randomKey' => $rsa->encrypt($randKey), | ||
193 | + 'content' => $aes->encrypt($dd) | ||
194 | + ]; | ||
195 | + $params = json_encode($params); | ||
196 | + $postResult = Http::POST($url, $params); | ||
197 | + $postResult = json_decode($postResult, true); | ||
198 | + $decodeJson = $aes->decrypt($postResult['content']); | ||
199 | + print_r($decodeJson); | ||
200 | + } | ||
201 | + | ||
202 | + /** | ||
203 | + * | ||
204 | + */ | ||
205 | + public function actionAuthDeviceT() | ||
206 | + { | ||
207 | + $url = 'http://kingb:8012/app-api/web/authDeviceT'; | ||
208 | + //$url = 'http://47.107.95.101/app-api/web/authDeviceT'; | ||
209 | + $manufactureNo = '0001'; | ||
210 | + $device_id = 'DEVICE00000A'; | ||
211 | + $projectNo = '0001'; | ||
212 | + $modelNo = '0001'; | ||
213 | + $productionNo = '0001'; | ||
214 | + $timestamp = time(); | ||
215 | + | ||
216 | + | ||
217 | + $randKey = Utils::rand(16).$timestamp; | ||
218 | + $salt = "13456"; | ||
219 | + $sign = md5($manufactureNo. $projectNo. $modelNo . $productionNo . $timestamp .$device_id. $salt); | ||
220 | + $deviceParams = [ | ||
221 | + 'manufacture' => $manufactureNo, | ||
222 | + 'device_id' => $device_id, | ||
223 | + 'project' => $projectNo, | ||
224 | + 'model' => $modelNo, | ||
225 | + 'production' => $productionNo, | ||
226 | + 'timestamp' => $timestamp, | ||
227 | + 'sign' => $sign, | ||
228 | + ]; | ||
229 | + $deviceParams = json_encode($deviceParams); | ||
230 | + $rsa = new RSACrypt(); | ||
231 | + $randomKey = $rsa->encrypt($randKey); | ||
232 | + $aes = new Aes($randKey); | ||
233 | + $params = [ | ||
234 | + 'randomKey' => $randomKey, | ||
235 | + 'content' => $aes->encrypt($deviceParams) | ||
236 | + ]; | ||
237 | + $params = json_encode($params); | ||
238 | + $postResult = Http::POST($url, $params); | ||
239 | + | ||
240 | + $postResult = json_decode($postResult, true); | ||
241 | + $decodeJson = $aes->decrypt($postResult['content']); | ||
242 | + | ||
243 | + echo $decodeJson; | ||
244 | + } | ||
245 | + | ||
246 | + | ||
247 | + public function actionA() | ||
248 | + { | ||
249 | + $str = "87654321"; | ||
250 | + $rsa = new RSACrypt(); | ||
251 | + $deStr = "dFz10grDo8eO/+APJvPG4B4suilGLsFcHyMc/JIVUhIUWpILFhJD6g2z1TVusvzSxXsQJpNO44fFxzy8F4j/u/l61HAxS3owpgcmJ4e5mU3ugXftBqazOYErYssnoh03khaJUalwwlw/N5NpspRT6GXVwegEQnJKnGsIwZqXbsY="; | ||
252 | + | ||
253 | + //echo $deStr."\r\n"; | ||
254 | + echo $rsa->decrypt($deStr); | ||
255 | + } | ||
256 | + | ||
180 | } | 257 | } |
181 | 258 |