Commit b9c383085dd18650628958b75ee9a77fd89e1a74

Authored by xu
1 parent 54761512
Exists in master

1. A OTA版本和APP版本录入必须选择厂商+项目+型号(升级版本的时候也必须校验这三个字段)

2. F 代码初始化参数调整
3. F 调整删除序列号的列表
4. F 数据统计导出出错
5. F OTA版本和APP版本录入要可录入描述
app-api/controllers/UpgradeController.php
@@ -82,14 +82,29 @@ class UpgradeController extends BaseController @@ -82,14 +82,29 @@ class UpgradeController extends BaseController
82 */ 82 */
83 83
84 $ma = ManufacturerRepository::findOne(['manufacture_no' => $deviceBatchInfo[0]]); 84 $ma = ManufacturerRepository::findOne(['manufacture_no' => $deviceBatchInfo[0]]);
85 - $manufactureId = 0; 85 + $project = ProjectRepository::findOne(['project_no' => $deviceBatchInfo[1]]);
  86 + $model = ModelRepository::findOne(['model_no' => $deviceBatchInfo[2]]);
  87 + $manufactureId = $projectId = $modelId = 0;
86 if ($ma) { 88 if ($ma) {
87 $manufactureId = $ma->id; 89 $manufactureId = $ma->id;
88 } 90 }
  91 + if ($project) {
  92 + $projectId = $project->id;
  93 + }
  94 + if ($model) {
  95 + $modelId = $model->id;
  96 + }
  97 + if (empty($ma) || empty($project) || empty($model)) {
  98 + $e->status = 4;
  99 + $e->message = '厂商、项目、型号里面出现不在系统里面';
  100 + return $e;
  101 + }
89 102
90 $upgradeModel = UpgradeModel::find(); 103 $upgradeModel = UpgradeModel::find();
91 $upgradeModel->where([ 104 $upgradeModel->where([
92 'manufacture_id' => $manufactureId, 105 'manufacture_id' => $manufactureId,
  106 + 'project_id' => $projectId,
  107 + 'model_id' => $modelId,
93 'status' => UpgradeStatus::STATUS_ON, 108 'status' => UpgradeStatus::STATUS_ON,
94 'is_delete' => 0, 109 'is_delete' => 0,
95 'type' => UpgradeStatus::TYPE_OTA 110 'type' => UpgradeStatus::TYPE_OTA
@@ -301,14 +316,28 @@ class UpgradeController extends BaseController @@ -301,14 +316,28 @@ class UpgradeController extends BaseController
301 */ 316 */
302 317
303 $ma = ManufacturerRepository::findOne(['manufacture_no' => $deviceBatchInfo[0]]); 318 $ma = ManufacturerRepository::findOne(['manufacture_no' => $deviceBatchInfo[0]]);
304 - $manufactureId = 0; 319 + $project = ProjectRepository::findOne(['project_no' => $deviceBatchInfo[1]]);
  320 + $model = ModelRepository::findOne(['model_no' => $deviceBatchInfo[2]]);
  321 + $manufactureId = $projectId = $modelId = 0;
305 if ($ma) { 322 if ($ma) {
306 $manufactureId = $ma->id; 323 $manufactureId = $ma->id;
307 } 324 }
308 - 325 + if ($project) {
  326 + $projectId = $project->id;
  327 + }
  328 + if ($model) {
  329 + $modelId = $model->id;
  330 + }
  331 + if (empty($ma) || empty($project) || empty($model)) {
  332 + $e->status = 4;
  333 + $e->message = '厂商、项目、型号里面出现不在系统里面';
  334 + return $e;
  335 + }
309 $upgradeModel = UpgradeModel::find(); 336 $upgradeModel = UpgradeModel::find();
310 $upgradeModel->where([ 337 $upgradeModel->where([
311 'manufacture_id' => $manufactureId, 338 'manufacture_id' => $manufactureId,
  339 + 'project_id' => $projectId,
  340 + 'model_id' => $modelId,
312 'status' => UpgradeStatus::STATUS_ON, 341 'status' => UpgradeStatus::STATUS_ON,
313 'package_name' => $packageName, 342 'package_name' => $packageName,
314 'is_delete' => 0, 343 'is_delete' => 0,
app-ht/modules/datas/views/device/export.php
@@ -8,6 +8,7 @@ header('Cache-Control: max-age=0'); @@ -8,6 +8,7 @@ header('Cache-Control: max-age=0');
8 $fp = fopen('php://output', 'a'); 8 $fp = fopen('php://output', 'a');
9 $limit = 10000; 9 $limit = 10000;
10 $cnt = 0; 10 $cnt = 0;
  11 +
11 ?> 12 ?>
12 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 13 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
13 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 14 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -43,7 +44,7 @@ $cnt = 0; @@ -43,7 +44,7 @@ $cnt = 0;
43 <td style="padding:12px;"><?= (isset($item["project_name"]) ? $item["project_name"] : "") ?></td> 44 <td style="padding:12px;"><?= (isset($item["project_name"]) ? $item["project_name"] : "") ?></td>
44 <td style="padding:12px;"><?= (isset($item["model_name"]) ? $item["model_name"] : "") ?></td> 45 <td style="padding:12px;"><?= (isset($item["model_name"]) ? $item["model_name"] : "") ?></td>
45 <td style="padding:12px;"><?= (isset($item["production_name"]) ? $item["production_name"] : "") ?></td> 46 <td style="padding:12px;"><?= (isset($item["production_name"]) ? $item["production_name"] : "") ?></td>
46 - <td style="padding:12px;"><a href="<?=Url::toRoute('datas/device/device-list')?>"><?= (isset($item["num"]) ? $item["num"] : "0") ?></a></td> 47 + <td style="padding:12px;"><?= (isset($item["num"]) ? $item["num"] : "0") ?></td>
47 <td style="padding:12px;"><?= (isset($item["has_auth_num"]) ? $item["has_auth_num"] : "0") ?></td> 48 <td style="padding:12px;"><?= (isset($item["has_auth_num"]) ? $item["has_auth_num"] : "0") ?></td>
48 <td style="padding:12px;"><?= (!empty($item["auth_fail_num"]) ? $item["auth_fail_num"] : "0") ?></td> 49 <td style="padding:12px;"><?= (!empty($item["auth_fail_num"]) ? $item["auth_fail_num"] : "0") ?></td>
49 <td style="padding:12px;"><?= (!empty($item["no_auth_num"]) ? $item["no_auth_num"] : "0") ?></td> 50 <td style="padding:12px;"><?= (!empty($item["no_auth_num"]) ? $item["no_auth_num"] : "0") ?></td>
app-ht/modules/device/controllers/DeviceController.php
@@ -37,6 +37,12 @@ class DeviceController extends BaseController @@ -37,6 +37,12 @@ class DeviceController extends BaseController
37 $manufacture = $request->get('manufacture'); 37 $manufacture = $request->get('manufacture');
38 $deviceId = $request->get('device_id'); 38 $deviceId = $request->get('device_id');
39 $status = $request->get('status'); 39 $status = $request->get('status');
  40 +
  41 + $startApplyAt = $request->get('start_apply_at');
  42 + $endApplyAt = $request->get('end_apply_at');
  43 + $startAuthAt = $request->get('start_auth_at');
  44 + $endAuthAt = $request->get('end_auth_at');
  45 +
40 $page = $request->get('page'); 46 $page = $request->get('page');
41 $where = [ 47 $where = [
42 'and', 48 'and',
@@ -63,6 +69,18 @@ class DeviceController extends BaseController @@ -63,6 +69,18 @@ class DeviceController extends BaseController
63 if (!empty($deviceId)) { 69 if (!empty($deviceId)) {
64 $where[] = ['like', 'a.device_id', $deviceId]; 70 $where[] = ['like', 'a.device_id', $deviceId];
65 } 71 }
  72 + if ($startApplyAt) {
  73 + $where[] = ['>=', 'a.apply_at', strtotime($startApplyAt)];
  74 + }
  75 + if ($endApplyAt) {
  76 + $where[] = ['<=', 'a.apply_at', strtotime($endApplyAt) + 86400];
  77 + }
  78 + if ($startAuthAt) {
  79 + $where[] = ['>=', 'a.auth_at', strtotime($startAuthAt)];
  80 + }
  81 + if ($endAuthAt) {
  82 + $where[] = ['>=', 'a.auth_at', strtotime($endAuthAt) + 86400];
  83 + }
66 if (isset($_GET['status']) && -1 != $status) { 84 if (isset($_GET['status']) && -1 != $status) {
67 $where[] = ['=', 'a.status', $status]; 85 $where[] = ['=', 'a.status', $status];
68 } else { 86 } else {
@@ -90,6 +108,10 @@ class DeviceController extends BaseController @@ -90,6 +108,10 @@ class DeviceController extends BaseController
90 'device_id' => $deviceId, 108 'device_id' => $deviceId,
91 'production' => $production, 109 'production' => $production,
92 'manufacture' => $manufacture, 110 'manufacture' => $manufacture,
  111 + 'start_apply_at' => $startApplyAt,
  112 + 'end_apply_at' => $endApplyAt,
  113 + 'start_auth_at' => $startAuthAt,
  114 + 'end_auth_at' => $endAuthAt,
93 'status' => $status 115 'status' => $status
94 ]; 116 ];
95 117
@@ -110,6 +132,11 @@ class DeviceController extends BaseController @@ -110,6 +132,11 @@ class DeviceController extends BaseController
110 $manufacture = $request->get('manufacture'); 132 $manufacture = $request->get('manufacture');
111 $deviceId = $request->get('device_id'); 133 $deviceId = $request->get('device_id');
112 $status = $request->get('status'); 134 $status = $request->get('status');
  135 +
  136 + $startApplyAt = $request->get('start_apply_at');
  137 + $endApplyAt = $request->get('end_apply_at');
  138 + $startAuthAt = $request->get('start_auth_at');
  139 + $endAuthAt = $request->get('end_auth_at');
113 $page = $request->get('page'); 140 $page = $request->get('page');
114 $where = [ 141 $where = [
115 'and', 142 'and',
@@ -136,6 +163,19 @@ class DeviceController extends BaseController @@ -136,6 +163,19 @@ class DeviceController extends BaseController
136 if (!empty($deviceId)) { 163 if (!empty($deviceId)) {
137 $where[] = ['like', 'a.device_id', $deviceId]; 164 $where[] = ['like', 'a.device_id', $deviceId];
138 } 165 }
  166 +
  167 + if ($startApplyAt) {
  168 + $where[] = ['>=', 'a.apply_at', strtotime($startApplyAt)];
  169 + }
  170 + if ($endApplyAt) {
  171 + $where[] = ['<=', 'a.apply_at', strtotime($endApplyAt) + 86400];
  172 + }
  173 + if ($startAuthAt) {
  174 + $where[] = ['>=', 'a.auth_at', strtotime($startAuthAt)];
  175 + }
  176 + if ($endAuthAt) {
  177 + $where[] = ['>=', 'a.auth_at', strtotime($endAuthAt) + 86400];
  178 + }
139 if (isset($_GET['status']) && -1 != $status) { 179 if (isset($_GET['status']) && -1 != $status) {
140 $where[] = ['=', 'a.status', $status]; 180 $where[] = ['=', 'a.status', $status];
141 } else { 181 } else {
@@ -163,6 +203,10 @@ class DeviceController extends BaseController @@ -163,6 +203,10 @@ class DeviceController extends BaseController
163 'device_id' => $deviceId, 203 'device_id' => $deviceId,
164 'production' => $production, 204 'production' => $production,
165 'manufacture' => $manufacture, 205 'manufacture' => $manufacture,
  206 + 'start_apply_at' => $startApplyAt,
  207 + 'end_apply_at' => $endApplyAt,
  208 + 'start_auth_at' => $startAuthAt,
  209 + 'end_auth_at' => $endAuthAt,
166 'status' => $status 210 'status' => $status
167 ]; 211 ];
168 212
@@ -207,7 +251,7 @@ class DeviceController extends BaseController @@ -207,7 +251,7 @@ class DeviceController extends BaseController
207 return $this->renderJson($e); 251 return $this->renderJson($e);
208 } 252 }
209 253
210 - $batchNo = strtoupper(Device::getBatchNo($manufactureNo,$projectNo,$modelNo,$productionNo)); 254 + $batchNo = strtoupper(Device::getBatchNo($manufactureNo, $projectNo, $modelNo, $productionNo));
211 $batchModel = CreateBatchRepository::findOne(['batch_no' => $batchNo]); 255 $batchModel = CreateBatchRepository::findOne(['batch_no' => $batchNo]);
212 if ($batchModel) { 256 if ($batchModel) {
213 $e->message = '已经创建过这个批次序列号'; 257 $e->message = '已经创建过这个批次序列号';
@@ -258,7 +302,7 @@ class DeviceController extends BaseController @@ -258,7 +302,7 @@ class DeviceController extends BaseController
258 /** 302 /**
259 * @return string 303 * @return string
260 */ 304 */
261 - public function actionSearchItem() 305 + public function actionBatchItem()
262 { 306 {
263 $req = Yii::$app->request; 307 $req = Yii::$app->request;
264 $type = $req->post('type'); 308 $type = $req->post('type');
app-ht/modules/device/views/device/auth-fail-index.php
@@ -39,19 +39,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -39,19 +39,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
39 <div class="col-sm-2 form-inline"> 39 <div class="col-sm-2 form-inline">
40 <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"> 40 <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">
41 </div> 41 </div>
42 - <label for="handel" class="col-sm-1 control-label text-right">处理状态:</label>  
43 - <div class="col-sm-2 form-inline">  
44 - <input type="text" class="form-control" id="handel" name="handel" value="<?php if (!empty($gets['handel'])){ echo $gets['handel'];} ?>" autocomplete="off">  
45 - </div> 42 +
46 <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label> 43 <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label>
47 - <div class="col-sm-2 form-inline">  
48 - <input type="text" class="form-control" id="apply_at" name="apply_at" value="<?php if (!empty($gets['apply_at'])){ echo $gets['apply_at'];} ?>" autocomplete="off"> 44 + <div class="col-sm-5 form-inline">
  45 + <input type="text" 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="text" 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">
49 </div> 46 </div>
50 47
51 </div> 48 </div>
52 49
53 -  
54 -  
55 <div class="form-group col-sm-12" style="text-align: center;"> 50 <div class="form-group col-sm-12" style="text-align: center;">
56 <button type="submit" class="btn btn-primary font-1" id="submitFilterBtn">查询</button> 51 <button type="submit" class="btn btn-primary font-1" id="submitFilterBtn">查询</button>
57 </div> 52 </div>
app-ht/modules/device/views/device/createDevice.php
@@ -14,6 +14,7 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;); @@ -14,6 +14,7 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;);
14 <style> 14 <style>
15 .create-div .form-group{padding:1rem 0} 15 .create-div .form-group{padding:1rem 0}
16 .create-div .full-width{width:100%;} 16 .create-div .full-width{width:100%;}
  17 + .combo-select{max-width:100% !important;}
17 </style> 18 </style>
18 <div class="panel panel-default"> 19 <div class="panel panel-default">
19 <div class="panel-body form-inline create-div"> 20 <div class="panel-body form-inline create-div">
@@ -21,14 +22,19 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;); @@ -21,14 +22,19 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;);
21 <div class="form-group col-sm-12"> 22 <div class="form-group col-sm-12">
22 <label for="manufacture" class="col-sm-4 control-label text-right">厂商:</label> 23 <label for="manufacture" class="col-sm-4 control-label text-right">厂商:</label>
23 <div class="col-sm-4 form-inline"> 24 <div class="col-sm-4 form-inline">
24 - <input type="text" class="form-control full-width searchInput" id="manufacture" name="manufacture" value="" autocomplete="off"> 25 + <select class="form-control full-width searchInput" id="manufacture" name="manufacture">
  26 +
  27 + </select>
  28 +
25 </div> 29 </div>
26 <div class="col-sm-4"><a href="<?=Url::toRoute('/manufacturer/manufacturer/create')?>">+创建厂商</a></div> 30 <div class="col-sm-4"><a href="<?=Url::toRoute('/manufacturer/manufacturer/create')?>">+创建厂商</a></div>
27 </div> 31 </div>
28 <div class="form-group col-sm-12"> 32 <div class="form-group col-sm-12">
29 <label for="project" class="col-sm-4 control-label text-right">项目名:</label> 33 <label for="project" class="col-sm-4 control-label text-right">项目名:</label>
30 <div class="col-sm-4 form-inline"> 34 <div class="col-sm-4 form-inline">
31 - <input type="text" class="form-control full-width searchInput" id="project" name="project" value="" autocomplete="off"> 35 + <select class="form-control full-width searchInput" id="project" name="project">
  36 +
  37 + </select>
32 </div> 38 </div>
33 <div class="col-sm-4"><a href="<?=Url::toRoute('/project/project/create')?>">+创建项目</a></div> 39 <div class="col-sm-4"><a href="<?=Url::toRoute('/project/project/create')?>">+创建项目</a></div>
34 40
@@ -36,14 +42,18 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;); @@ -36,14 +42,18 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;);
36 <div class="form-group col-sm-12"> 42 <div class="form-group col-sm-12">
37 <label for="model" class="col-sm-4 control-label text-right">设备型号:</label> 43 <label for="model" class="col-sm-4 control-label text-right">设备型号:</label>
38 <div class="col-sm-4 form-inline"> 44 <div class="col-sm-4 form-inline">
39 - <input type="text" class="form-control full-width searchInput" id="model" name="model" value="" autocomplete="off"> 45 + <select class="form-control full-width searchInput" id="model" name="model">
  46 +
  47 + </select>
40 </div> 48 </div>
41 <div class="col-sm-4"><a href="<?=Url::toRoute('/model/model/create')?>">+创建型号</a></div> 49 <div class="col-sm-4"><a href="<?=Url::toRoute('/model/model/create')?>">+创建型号</a></div>
42 </div> 50 </div>
43 <div class="form-group col-sm-12"> 51 <div class="form-group col-sm-12">
44 <label for="production" class="col-sm-4 control-label text-right">生产日期:</label> 52 <label for="production" class="col-sm-4 control-label text-right">生产日期:</label>
45 <div class="col-sm-4 form-inline"> 53 <div class="col-sm-4 form-inline">
46 - <input type="text" class="form-control full-width searchInput" id="production" name="production" value="" autocomplete="off"> 54 + <select class="form-control full-width searchInput" id="production" name="production">
  55 +
  56 + </select>
47 </div> 57 </div>
48 <div class="col-sm-4"><a href="<?=Url::toRoute('/production/production/create')?>">+生产日期</a></div> 58 <div class="col-sm-4"><a href="<?=Url::toRoute('/production/production/create')?>">+生产日期</a></div>
49 </div> 59 </div>
@@ -63,66 +73,79 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;); @@ -63,66 +73,79 @@ CssFiles::register($this, &#39;exts/showimg/css/showimg.css&#39;);
63 73
64 </div> 74 </div>
65 75
66 -<script type="text/javascript" src="<?=Url::toRoute('/exts/base/1.0.0/ui/typeahead/bootstrap3-typeahead.min.js')?>" ></script> 76 +<script src="<?= Yii::$app->request->baseUrl . "/exts/combo-select/js/jquery.combo.select.js"?>"></script>
  77 +<link rel="stylesheet" type="text/css" href="<?= Yii::$app->request->baseUrl . "/exts/combo-select/css/combo.select.css"?>" />
67 <script type="text/javascript"> 78 <script type="text/javascript">
68 - var searchItemUrl = "<?=Url::toRoute('/device/device/search-item')?>"; 79 + var searchItemUrl = "<?=Url::toRoute('/device/device/batch-item')?>";
69 var saveUrl = "<?=Url::toRoute('/device/device/do-create-device')?>"; 80 var saveUrl = "<?=Url::toRoute('/device/device/do-create-device')?>";
70 $(function() { 81 $(function() {
71 82
72 - function typeaheadAll(id) {  
73 - var type = id;  
74 - $('#'+id).typeahead({  
75 - minLength: 2,  
76 - items:15,  
77 - source: function(query, process) {  
78 -  
79 - var parameter = {query: query, type: type};  
80 - $.post(searchItemUrl, parameter, function (res) {  
81 - var data = [];  
82 - var iList = res.list;  
83 - for(i in iList){  
84 - var tItem = iList[i];  
85 - data.push(JSON.stringify(tItem));  
86 - }  
87 - process(data);  
88 - },'json');  
89 - },  
90 - highlighter: function(item) {  
91 - var itemObject = JSON.parse(item);  
92 - var title = itemObject.name;  
93 - $('#'+id).attr('data-id', itemObject.id);  
94 - $('#'+id).attr('data-no', itemObject[id+'_no']);  
95 - return title ;  
96 - },  
97 -  
98 - updater: function(item) {  
99 - var itemObject = JSON.parse(item);  
100 - var title = itemObject.name;  
101 - $('#'+id).attr('data-id', itemObject.id);  
102 - $('#'+id).attr('data-no', itemObject[id+'_no']);  
103 - return title; 83 + function selectAll(id) {
  84 + $.post(searchItemUrl, {type:id}, function(res) {
  85 + if(res.list.length > 0) {
  86 + var wrapper = '<option value="">请选择</option>';
  87 + $.each(res.list, function(i,n){
  88 + wrapper = wrapper + '<option value="'+ n.uid+'">'+ n.name+'</option>';
  89 + })
  90 + $('#'+id).html(wrapper);
  91 + $('#'+id).comboSelect();
104 } 92 }
105 - }); 93 +
  94 + }, 'json')
  95 +
106 } 96 }
107 - typeaheadAll('manufacture');  
108 - typeaheadAll('project');  
109 - typeaheadAll('model');  
110 - typeaheadAll('production'); 97 + selectAll('manufacture');
  98 + selectAll('project');
  99 + selectAll('model');
  100 + selectAll('production');
111 101
112 $('#createDeviceBtn').click(function(e) { 102 $('#createDeviceBtn').click(function(e) {
113 e.preventDefault(); 103 e.preventDefault();
  104 + var manufacture = $('#manufacture').val();
  105 + if ('' == manufacture) {
  106 + alert('请选择厂商');
  107 + return false;
  108 + }
  109 + manufacture = manufacture.split('_');
  110 +
  111 + var project = $('#project').val();
  112 + if ('' == project) {
  113 + alert('请选择项目');
  114 + return false;
  115 + }
  116 + project = project.split('_');
  117 +
  118 + var model = $('#model').val();
  119 + if ('' == model) {
  120 + alert('请选择型号');
  121 + return false;
  122 + }
  123 + model = model.split('_');
  124 +
  125 + var production = $('#production').val();
  126 + if ('' == production) {
  127 + alert('请选生产日期');
  128 + return false;
  129 + }
  130 + production = production.split('_');
  131 + var num = $('#num').val();
  132 + if ('' == num || 0 == num) {
  133 + alert('请录入生成数量');
  134 + return false;
  135 + }
114 var params = { 136 var params = {
115 - manufactureId: $('#manufacture').attr('data-id'),  
116 - manufactureNo: $('#manufacture').attr('data-no'),  
117 - projectId: $('#project').attr('data-id'),  
118 - projectNo: $('#project').attr('data-no'), 137 + manufactureId: manufacture[0],
  138 + manufactureNo: manufacture[1],
  139 +
  140 + projectId: project[0],
  141 + projectNo: project[1],
119 142
120 - modelId: $('#model').attr('data-id'),  
121 - modelNo: $('#model').attr('data-no'), 143 + modelId: model[0],
  144 + modelNo: model[1],
122 145
123 - productionId: $('#production').attr('data-id'),  
124 - productionNo: $('#production').attr('data-no'),  
125 - num: $('#num').val() 146 + productionId: production[0],
  147 + productionNo: production[1],
  148 + num: num
126 } 149 }
127 $.post(saveUrl, params, function(res) { 150 $.post(saveUrl, params, function(res) {
128 if (!res.success) { 151 if (!res.success) {
app-ht/modules/device/views/device/delete-index.php
@@ -49,12 +49,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -49,12 +49,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
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> 51 <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label>
52 - <div class="col-sm-2 form-inline">  
53 - <input type="text" class="form-control" id="apply_at" name="apply_at" value="<?php if (!empty($gets['apply_at'])){ echo $gets['apply_at'];} ?>" autocomplete="off">  
54 - </div>  
55 - <label for="auth_at" class="col-sm-1 control-label text-right">授权时间:</label>  
56 - <div class="col-sm-2 form-inline">  
57 - <input type="text" class="form-control" id="auth_at" name="auth_at" value="<?php if (!empty($gets['auth_at'])){ echo $gets['auth_at'];} ?>" autocomplete="off"> 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">
58 </div> 54 </div>
59 </div> 55 </div>
60 56
@@ -67,13 +63,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -67,13 +63,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
67 <div class="col-sm-2 form-inline"> 63 <div class="col-sm-2 form-inline">
68 <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"> 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">
69 </div> 65 </div>
70 - <label for="handel" class="col-sm-1 control-label text-right">处理状态:</label>  
71 - <div class="col-sm-2 form-inline">  
72 - <input type="text" class="form-control" id="handel" name="handel" value="<?php if (!empty($gets['handel'])){ echo $gets['handel'];} ?>" autocomplete="off">  
73 - </div>  
74 - <label for="empty_serial" class="col-sm-1 control-label text-right">空序列号:</label>  
75 - <div class="col-sm-2 form-inline">  
76 - <input type="text" class="form-control" id="empty_serial" name="empty_serial" value="<?php if (!empty($gets['empty_serial'])){ echo $gets['empty_serial'];} ?>" autocomplete="off"> 66 + <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">
77 </div> 69 </div>
78 </div> 70 </div>
79 71
app-ht/modules/device/views/device/index.php
@@ -49,12 +49,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -49,12 +49,8 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
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> 51 <label for="apply_at" class="col-sm-1 control-label text-right">申请时间:</label>
52 - <div class="col-sm-2 form-inline">  
53 - <input type="text" class="form-control" id="apply_at" name="apply_at" value="<?php if (!empty($gets['apply_at'])){ echo $gets['apply_at'];} ?>" autocomplete="off">  
54 - </div>  
55 - <label for="auth_at" class="col-sm-1 control-label text-right">授权时间:</label>  
56 - <div class="col-sm-2 form-inline">  
57 - <input type="text" class="form-control" id="auth_at" name="auth_at" value="<?php if (!empty($gets['auth_at'])){ echo $gets['auth_at'];} ?>" autocomplete="off"> 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">
58 </div> 54 </div>
59 </div> 55 </div>
60 56
@@ -67,13 +63,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -67,13 +63,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
67 <div class="col-sm-2 form-inline"> 63 <div class="col-sm-2 form-inline">
68 <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"> 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">
69 </div> 65 </div>
70 - <label for="handel" class="col-sm-1 control-label text-right">处理状态:</label>  
71 - <div class="col-sm-2 form-inline">  
72 - <input type="text" class="form-control" id="handel" name="handel" value="<?php if (!empty($gets['handel'])){ echo $gets['handel'];} ?>" autocomplete="off">  
73 - </div>  
74 - <label for="empty_serial" class="col-sm-1 control-label text-right">空序列号:</label>  
75 - <div class="col-sm-2 form-inline">  
76 - <input type="text" class="form-control" id="empty_serial" name="empty_serial" value="<?php if (!empty($gets['empty_serial'])){ echo $gets['empty_serial'];} ?>" autocomplete="off"> 66 + <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">
77 </div> 69 </div>
78 </div> 70 </div>
79 71
app-ht/modules/upgrade/controllers/UpgradeController.php
@@ -10,6 +10,8 @@ use domain\manufacturer\ManufacturerRepository; @@ -10,6 +10,8 @@ use domain\manufacturer\ManufacturerRepository;
10 use domain\upgrade\Upgrade; 10 use domain\upgrade\Upgrade;
11 use domain\upgrade\UpgradeRepository; 11 use domain\upgrade\UpgradeRepository;
12 use domain\upgrade\UpgradeStatus; 12 use domain\upgrade\UpgradeStatus;
  13 +use domain\model\ModelRepository;
  14 +use domain\project\ProjectRepository;
13 15
14 use stdClass; 16 use stdClass;
15 17
@@ -567,6 +569,14 @@ class UpgradeController extends BaseController @@ -567,6 +569,14 @@ class UpgradeController extends BaseController
567 if (isset($manufacture["name"])) { 569 if (isset($manufacture["name"])) {
568 $info["manufacture_name"] = $manufacture["name"]; 570 $info["manufacture_name"] = $manufacture["name"];
569 } 571 }
  572 + $project = ProjectRepository::selectOne($info["project_id"]);
  573 + if (isset($project["name"])) {
  574 + $info["project_name"] = $project["name"];
  575 + }
  576 + $model = ModelRepository::selectOne($info["model_id"]);
  577 + if (isset($model["name"])) {
  578 + $info["model_name"] = $model["name"];
  579 + }
570 } 580 }
571 return $this->render('push-app', ["info" => $info]); 581 return $this->render('push-app', ["info" => $info]);
572 } 582 }
@@ -585,6 +595,14 @@ class UpgradeController extends BaseController @@ -585,6 +595,14 @@ class UpgradeController extends BaseController
585 if (isset($manufacture["name"])) { 595 if (isset($manufacture["name"])) {
586 $info["manufacture_name"] = $manufacture["name"]; 596 $info["manufacture_name"] = $manufacture["name"];
587 } 597 }
  598 + $project = ProjectRepository::selectOne($info["project_id"]);
  599 + if (isset($project["name"])) {
  600 + $info["project_name"] = $project["name"];
  601 + }
  602 + $model = ModelRepository::selectOne($info["model_id"]);
  603 + if (isset($model["name"])) {
  604 + $info["model_name"] = $model["name"];
  605 + }
588 } 606 }
589 return $this->render('push-ota', ["info" => $info]); 607 return $this->render('push-ota', ["info" => $info]);
590 } 608 }
app-ht/modules/upgrade/views/upgrade/create.php
@@ -12,7 +12,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -12,7 +12,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
12 #upload-container, #upload-list{width: 500px; margin: 0 auto; } 12 #upload-container, #upload-list{width: 500px; margin: 0 auto; }
13 #upload-container{cursor: pointer; border-radius: 15px; background: #EEEFFF; height: 200px;} 13 #upload-container{cursor: pointer; border-radius: 15px; background: #EEEFFF; height: 200px;}
14 #upload-list{height: 100px; border: 1px solid #EEE; border-radius: 5px; margin-top: 10px; padding: 10px 20px;} 14 #upload-list{height: 100px; border: 1px solid #EEE; border-radius: 5px; margin-top: 10px; padding: 10px 20px;}
15 - #upload-container>span{widows: 100%; text-align: center; color: gray; display: block; padding-top: 15%;} 15 + #upload-container>span{width: 100%; text-align: center; color: gray; display: block; padding-top: 15%;}
16 .upload-item{margin-top: 5px; padding-bottom: 5px; border-bottom: 1px dashed gray;} 16 .upload-item{margin-top: 5px; padding-bottom: 5px; border-bottom: 1px dashed gray;}
17 .percentage{height: 5px; background: green;} 17 .percentage{height: 5px; background: green;}
18 .btn-delete, .btn-retry{cursor: pointer; color: gray;} 18 .btn-delete, .btn-retry{cursor: pointer; color: gray;}
@@ -22,8 +22,10 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -22,8 +22,10 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
22 padding: 6px 15px!important; 22 padding: 6px 15px!important;
23 margin-right: 20px; 23 margin-right: 20px;
24 } 24 }
  25 + .combo-select{max-width: 100% !important;}
25 </style> 26 </style>
26 27
  28 +<link rel="stylesheet" type="text/css" href="<?= Yii::$app->request->baseUrl . "/exts/combo-select/css/combo.select.css"?>" />
27 <form action="<?php echo Url::toRoute(['/upgrade/upgrade/do-add']); ?>" name="myFrom" id="myFrom" method="post" enctype="multipart/form-data"> 29 <form action="<?php echo Url::toRoute(['/upgrade/upgrade/do-add']); ?>" name="myFrom" id="myFrom" method="post" enctype="multipart/form-data">
28 <div class="panel panel-default"> 30 <div class="panel panel-default">
29 <div class="panel-body"> 31 <div class="panel-body">
@@ -47,14 +49,27 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -47,14 +49,27 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
47 </div> 49 </div>
48 </div> 50 </div>
49 <div class="form-group col-sm-12"> 51 <div class="form-group col-sm-12">
50 - <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>请选择厂商名称:</label> 52 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>选择厂商:</label>
51 <div class="col-sm-4 text-left"> 53 <div class="col-sm-4 text-left">
52 - <input type="hidden" id="manufacture_id" name="manufacture_id" value="<?= (isset($gets["manufacture_id"]) ? $gets["manufacture_id"] : "") ?>"/>  
53 - <?php if (isset($gets["is_manufacture"]) && $gets["is_manufacture"] == 1) { ?>  
54 - <div class="form-control text-center"><span id="manufactureName"><?= (isset($gets["manufacture_name"]) && !empty($gets["manufacture_name"]) ? $gets["manufacture_name"] : "请选择厂商名称") ?></span> <span style="float: right;padding-right: 13px"> > </span></div>  
55 - <?php } else { ?>  
56 - <div class="form-control text-center" id="select_manufacture"><span id="manufactureName"><?= (isset($gets["manufacture_name"]) && !empty($gets["manufacture_name"]) ? $gets["manufacture_name"] : "请选择厂商名称") ?></span> <span style="float: right;padding-right: 13px"> > </span></div>  
57 - <?php } ?> 54 + <select name="manufacture_id" class="form-control" id ="manufacture"></select>
  55 + </div>
  56 + </div>
  57 + <div class="form-group col-sm-12">
  58 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>选择项目:</label>
  59 + <div class="col-sm-4 text-left">
  60 + <select name="project_id" class="form-control" id ="project"></select>
  61 + </div>
  62 + </div>
  63 + <div class="form-group col-sm-12">
  64 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>选择型号:</label>
  65 + <div class="col-sm-4 text-left">
  66 + <select name="model_id" class="form-control" id ="model"></select>
  67 + </div>
  68 + </div>
  69 + <div class="form-group col-sm-12">
  70 + <label class="col-sm-4 control-label text-right">描述:</label>
  71 + <div class="col-sm-4 text-left">
  72 + <textarea name="desc" class="form-control" id ="desc"></textarea>
58 </div> 73 </div>
59 </div> 74 </div>
60 <div class="form-group col-sm-12"> 75 <div class="form-group col-sm-12">
@@ -88,18 +103,19 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -88,18 +103,19 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
88 </div> 103 </div>
89 104
90 <div class="panel-footer text-center"> 105 <div class="panel-footer text-center">
91 - <button type="button" class="btn btn-primary ladda-button" data-style="slide-up" id="save">确认上传</button> 106 + <button type="button" class="btn btn-primary ladda-button" data-style="slide-up" id="save">确认提交</button>
92 </div> 107 </div>
93 </div> 108 </div>
94 109
95 </form> 110 </form>
96 - 111 +<script src="<?= Yii::$app->request->baseUrl . "/exts/combo-select/js/jquery.combo.select.js"?>"></script>
97 <!--引入CSS--> 112 <!--引入CSS-->
98 <link rel="stylesheet" type="text/css" href="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.css"> 113 <link rel="stylesheet" type="text/css" href="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.css">
99 <!--引入JS--> 114 <!--引入JS-->
100 <script type="text/javascript" src="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.js"></script> 115 <script type="text/javascript" src="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.js"></script>
101 116
102 <script> 117 <script>
  118 + var searchItemUrl = "<?=Url::toRoute('/device/device/batch-item')?>";
103 // 表单提交验证 119 // 表单提交验证
104 seajs.use("base/1.0.0/unit/validate/custom-1.0.0",function () { 120 seajs.use("base/1.0.0/unit/validate/custom-1.0.0",function () {
105 var validator = $("#myFrom").validate({ 121 var validator = $("#myFrom").validate({
@@ -114,7 +130,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -114,7 +130,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
114 $('#myFrom').attr('action', getUrl); 130 $('#myFrom').attr('action', getUrl);
115 var a = $("input[name='version']").val(); 131 var a = $("input[name='version']").val();
116 var package_name = $("input[name='package_name']").val(); 132 var package_name = $("input[name='package_name']").val();
117 - var manufacture_id = $("input[name='manufacture_id']").val(); 133 + var manufacture_id = $("#manufacture").val();
  134 + var project_id = $("#project").val();
  135 + var model_id = $("#model").val();
118 var path = $("input[name='path']").val(); 136 var path = $("input[name='path']").val();
119 if (a == ""){ 137 if (a == ""){
120 alert("APP版本号不能为空"); 138 alert("APP版本号不能为空");
@@ -124,10 +142,19 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -124,10 +142,19 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
124 alert("安装包名不能为空"); 142 alert("安装包名不能为空");
125 return false; 143 return false;
126 } 144 }
  145 +
127 if (manufacture_id == ""){ 146 if (manufacture_id == ""){
128 alert("请选择厂商"); 147 alert("请选择厂商");
129 return false; 148 return false;
130 } 149 }
  150 + if (project_id == ""){
  151 + alert("请选择项目");
  152 + return false;
  153 + }
  154 + if (model_id == ""){
  155 + alert("请选择型号");
  156 + return false;
  157 + }
131 if (path == ""){ 158 if (path == ""){
132 alert("请上传安装包"); 159 alert("请上传安装包");
133 return false; 160 return false;
@@ -141,27 +168,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -141,27 +168,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
141 l.start(); 168 l.start();
142 return false; 169 return false;
143 }); 170 });
144 - <?php if (!isset($gets["is_manufacture"]) || $gets["is_manufacture"] != 1) { ?>  
145 - $("#select_manufacture").bind("click", function () {  
146 - var getUrl = '<?=Url::toRoute("/upgrade/upgrade/select-manufacture")?>';  
147 - var version = $("input[name='version']").val();  
148 - var package_name = $("input[name='package_name']").val();  
149 - var manufacture_id = $("input[name='manufacture_id']").val();  
150 - var path = $("input[name='path']").val();  
151 - var size = $("input[name='size']").val();  
152 - var file_md5 = $("input[name='file_md5']").val();  
153 - var oldName = $("input[name='oldName']").val();  
154 - var type = $("input[name='type']").val();  
155 - getUrl = getUrl + "?version=" + version + "&package_name=" + package_name + "&manufacture_id=" + manufacture_id;  
156 - getUrl = getUrl + "&path=" + path;  
157 - getUrl = getUrl + "&size=" + size;  
158 - getUrl = getUrl + "&file_md5=" + file_md5;  
159 - getUrl = getUrl + "&oldName=" + oldName;  
160 - getUrl = getUrl + "&type=" + type;  
161 - getUrl = getUrl + "&isCreate=" + 1;  
162 - window.location.href = getUrl;  
163 - });  
164 - <?php } ?> 171 +
165 //上传文件函数 172 //上传文件函数
166 //ids唯一ID 173 //ids唯一ID
167 //folder文件保存目录 174 //folder文件保存目录
@@ -259,5 +266,24 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -259,5 +266,24 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
259 }); 266 });
260 } 267 }
261 268
262 - uploadfiles(2655,"files"); 269 + uploadfiles(2655, "files");
  270 + $(function(){
  271 + function selectAll(id) {
  272 + $.post(searchItemUrl, {type:id}, function(res) {
  273 + if(res.list.length > 0) {
  274 + var wrapper = '<option value="">请选择</option>';
  275 + $.each(res.list, function(i,n){
  276 + wrapper = wrapper + '<option value="'+ n.id+'">'+ n.name+'</option>';
  277 + })
  278 + $('#'+id).html(wrapper);
  279 + $('#'+id).comboSelect();
  280 + }
  281 +
  282 + }, 'json')
  283 +
  284 + }
  285 + selectAll('manufacture');
  286 + selectAll('project');
  287 + selectAll('model');
  288 + })
263 </script> 289 </script>
264 \ No newline at end of file 290 \ No newline at end of file
app-ht/modules/upgrade/views/upgrade/edit.php
@@ -22,8 +22,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -22,8 +22,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
22 padding: 6px 15px!important; 22 padding: 6px 15px!important;
23 margin-right: 20px; 23 margin-right: 20px;
24 } 24 }
  25 + .combo-select{max-width: 100% !important;}
25 </style> 26 </style>
26 - 27 +<link rel="stylesheet" type="text/css" href="<?= Yii::$app->request->baseUrl . "/exts/combo-select/css/combo.select.css"?>" />
27 <form action="<?php echo Url::toRoute(['/upgrade/upgrade/do-edit']); ?>" name="myFrom" id="myFrom" method="post" enctype="multipart/form-data"> 28 <form action="<?php echo Url::toRoute(['/upgrade/upgrade/do-edit']); ?>" name="myFrom" id="myFrom" method="post" enctype="multipart/form-data">
28 <div class="panel panel-default"> 29 <div class="panel panel-default">
29 <div class="panel-body"> 30 <div class="panel-body">
@@ -47,10 +48,27 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -47,10 +48,27 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
47 </div> 48 </div>
48 </div> 49 </div>
49 <div class="form-group col-sm-12"> 50 <div class="form-group col-sm-12">
50 - <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>请选择厂商名称:</label> 51 + <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>选择厂商:</label>
  52 + <div class="col-sm-4 text-left">
  53 + <select name="manufacture_id" class="form-control" id ="manufacture"></select>
  54 + </div>
  55 + </div>
  56 + <div class="form-group col-sm-12">
  57 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>选择项目:</label>
51 <div class="col-sm-4 text-left"> 58 <div class="col-sm-4 text-left">
52 - <input type="hidden" id="manufacture_id" name="manufacture_id" value="<?= (isset($info["manufacture_id"]) ? $info["manufacture_id"] : "") ?>"/>  
53 - <div class="form-control text-center" id="select_manufacture"><span id="manufactureName"><?= (isset($info["manufacture_name"]) && !empty($info["manufacture_name"]) ? $info["manufacture_name"] : "请选择厂商名称") ?></span> <span style="float: right;padding-right: 13px"> > </span></div> 59 + <select name="project_id" class="form-control" id ="project"></select>
  60 + </div>
  61 + </div>
  62 + <div class="form-group col-sm-12">
  63 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>选择型号:</label>
  64 + <div class="col-sm-4 text-left">
  65 + <select name="model_id" class="form-control" id ="model"></select>
  66 + </div>
  67 + </div>
  68 + <div class="form-group col-sm-12">
  69 + <label class="col-sm-4 control-label text-right">描述:</label>
  70 + <div class="col-sm-4 text-left">
  71 + <textarea name="desc" class="form-control" id ="desc"><?=$info['desc']?></textarea>
54 </div> 72 </div>
55 </div> 73 </div>
56 <div class="form-group col-sm-12"> 74 <div class="form-group col-sm-12">
@@ -90,13 +108,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -90,13 +108,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
90 </div> 108 </div>
91 109
92 </form> 110 </form>
93 - 111 +<script src="<?= Yii::$app->request->baseUrl . "/exts/combo-select/js/jquery.combo.select.js"?>"></script>
94 <!--引入CSS--> 112 <!--引入CSS-->
95 <link rel="stylesheet" type="text/css" href="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.css"> 113 <link rel="stylesheet" type="text/css" href="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.css">
96 <!--引入JS--> 114 <!--引入JS-->
97 <script type="text/javascript" src="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.js"></script> 115 <script type="text/javascript" src="<?=Yii::$app->request->baseUrl ?>/exts/webuploader-0.1.5/webuploader.js"></script>
98 116
99 <script> 117 <script>
  118 + var searchItemUrl = "<?=Url::toRoute('/device/device/batch-item')?>";
100 // 表单提交验证 119 // 表单提交验证
101 seajs.use("base/1.0.0/unit/validate/custom-1.0.0",function () { 120 seajs.use("base/1.0.0/unit/validate/custom-1.0.0",function () {
102 var validator = $("#myFrom").validate({ 121 var validator = $("#myFrom").validate({
@@ -105,7 +124,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -105,7 +124,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
105 } 124 }
106 }); 125 });
107 }); 126 });
108 - 127 + var manufacture_id = '<?=$info["manufacture_id"]?>';
  128 + var project_id = '<?=$info["project_id"]?>';
  129 + var model_id = '<?=$info["model_id"]?>';
109 $("#save").bind("click", function () { 130 $("#save").bind("click", function () {
110 var getUrl = '<?=Url::toRoute("/upgrade/upgrade/do-edit")?>'; 131 var getUrl = '<?=Url::toRoute("/upgrade/upgrade/do-edit")?>';
111 $('#myFrom').attr('action', getUrl); 132 $('#myFrom').attr('action', getUrl);
@@ -114,6 +135,23 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -114,6 +135,23 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
114 alert("APP版本号不能为空"); 135 alert("APP版本号不能为空");
115 return false; 136 return false;
116 } 137 }
  138 + var manufacture_id = $("#manufacture").val();
  139 + var project_id = $("#project").val();
  140 + var model_id = $("#model").val();
  141 +
  142 + if (manufacture_id == ""){
  143 + alert("请选择厂商");
  144 + return false;
  145 + }
  146 + if (project_id == ""){
  147 + alert("请选择项目");
  148 + return false;
  149 + }
  150 + if (model_id == ""){
  151 + alert("请选择型号");
  152 + return false;
  153 + }
  154 +
117 var cb = $("#myFrom").validate().form(); 155 var cb = $("#myFrom").validate().form();
118 if (!cb){ 156 if (!cb){
119 return; 157 return;
@@ -124,27 +162,6 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -124,27 +162,6 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
124 return false; 162 return false;
125 }); 163 });
126 164
127 - $("#select_manufacture").bind("click", function () {  
128 - var getUrl = '<?=Url::toRoute("/upgrade/upgrade/select-manufacture")?>';  
129 - var version = $("input[name='version']").val();  
130 - var package_name = $("input[name='package_name']").val();  
131 - var manufacture_id = $("input[name='manufacture_id']").val();  
132 - var path = $("input[name='path']").val();  
133 - var uid = $("input[name='uid']").val();  
134 - var size = $("input[name='size']").val();  
135 - var file_md5 = $("input[name='file_md5']").val();  
136 - var oldName = $("input[name='oldName']").val();  
137 - var type = $("input[name='type']").val();  
138 - getUrl = getUrl + "?version=" + version + "&package_name=" + package_name + "&manufacture_id=" + manufacture_id;  
139 - getUrl = getUrl + "&path=" + path;  
140 - getUrl = getUrl + "&size=" + size;  
141 - getUrl = getUrl + "&file_md5=" + file_md5;  
142 - getUrl = getUrl + "&oldName=" + oldName;  
143 - getUrl = getUrl + "&type=" + type;  
144 - getUrl = getUrl + "&uid=" + uid;  
145 - getUrl = getUrl + "&isCreate=" + 2;  
146 - window.location.href = getUrl;  
147 - });  
148 165
149 //上传文件函数 166 //上传文件函数
150 //ids唯一ID 167 //ids唯一ID
@@ -242,4 +259,28 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -242,4 +259,28 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
242 } 259 }
243 260
244 uploadfiles(2655,"files"); 261 uploadfiles(2655,"files");
  262 +
  263 + $(function(){
  264 + function selectAll(id, selectId) {
  265 + $.post(searchItemUrl, {type:id}, function(res) {
  266 + if(res.list.length > 0) {
  267 + var wrapper = '<option value="">请选择</option>';
  268 + $.each(res.list, function(i,n){
  269 + var selected = '';
  270 + if (selectId == n.id) {
  271 + selected = 'selected';
  272 + }
  273 + wrapper = wrapper + '<option value="'+ n.id+'" '+selected+'>'+ n.name+'</option>';
  274 + })
  275 + $('#'+id).html(wrapper);
  276 + $('#'+id).comboSelect();
  277 + }
  278 +
  279 + }, 'json')
  280 +
  281 + }
  282 + selectAll('manufacture', manufacture_id);
  283 + selectAll('project', project_id);
  284 + selectAll('model', model_id);
  285 + })
245 </script> 286 </script>
246 \ No newline at end of file 287 \ No newline at end of file
app-ht/modules/upgrade/views/upgrade/index.php
@@ -46,7 +46,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -46,7 +46,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
46 </tr> 46 </tr>
47 <tr class="search"> 47 <tr class="search">
48 <td colspan="6" class="text-center"> 48 <td colspan="6" class="text-center">
49 - <input type="hidden" name="type" value="<?= (isset($gets["type"]) ? $gets["type"] : UpgradeStatus::TYPE_APP) ?>"> 49 + <input type="hidden" id="versionType" name="type" value="<?= (isset($gets["type"]) ? $gets["type"] : UpgradeStatus::TYPE_APP) ?>">
50 <button type="submit" class="btn btn-primary btncls" id="search"><i class="glyphicon glyphicon-search"></i> 查 询 </button> 50 <button type="submit" class="btn btn-primary btncls" id="search"><i class="glyphicon glyphicon-search"></i> 查 询 </button>
51 <a class="btn btn-default btncls" href="<?=Url::toRoute(["/upgrade/upgrade/index", "type" => (isset($gets["type"]) ? $gets["type"] : UpgradeStatus::TYPE_APP)])?>">重&nbsp;&nbsp;&nbsp;&nbsp;置</a> 51 <a class="btn btn-default btncls" href="<?=Url::toRoute(["/upgrade/upgrade/index", "type" => (isset($gets["type"]) ? $gets["type"] : UpgradeStatus::TYPE_APP)])?>">重&nbsp;&nbsp;&nbsp;&nbsp;置</a>
52 </td> 52 </td>
@@ -93,7 +93,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -93,7 +93,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
93 <td style="padding:12px;"><?= date("Y-m-d H:i:s", $item['created_at'])?></td> 93 <td style="padding:12px;"><?= date("Y-m-d H:i:s", $item['created_at'])?></td>
94 <td style="padding:12px;"><?= UpgradeStatus::statusLabel($item['status'])?></td> 94 <td style="padding:12px;"><?= UpgradeStatus::statusLabel($item['status'])?></td>
95 <td style="padding:12px;"> 95 <td style="padding:12px;">
96 - <?= isset($item["pushed_at"]) && $item["pushed_at"] ? "发布时间:" . date("Y-m-d H:i:s", $item['pushed_at']) : ""?><br> 96 + <?= isset($item["pushed_at"]) && $item["pushed_at"] ? "发布时间:" . date("Y-m-d H:i:s", $item['pushed_at']) : "-"?><br>
97 <?php if (isset($item["type"]) && UpgradeStatus::TYPE_OTA == $item["type"]) { ?> 97 <?php if (isset($item["type"]) && UpgradeStatus::TYPE_OTA == $item["type"]) { ?>
98 <?= isset($item["package_type"]) ? UpgradeStatus::packageTypeLabel($item["package_type"]) : ""?> 98 <?= isset($item["package_type"]) ? UpgradeStatus::packageTypeLabel($item["package_type"]) : ""?>
99 <?= isset($item["start_version"]) ? $item["start_version"] : ""?> 99 <?= isset($item["start_version"]) ? $item["start_version"] : ""?>
@@ -120,7 +120,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -120,7 +120,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
120 <?php 120 <?php
121 if (UpgradeStatus::STATUS_ON == $item["status"]) { 121 if (UpgradeStatus::STATUS_ON == $item["status"]) {
122 ?> 122 ?>
123 - <a class="btn btn-info btn-sm btn_auth_cancel" href="<?=Url::toRoute(["/upgrade/upgrade/cancel-push", "uid" => $item['id']])?>" aid="<?=$item['id'] ?>">取消发布</a> 123 + <a class="btn btn-info btn-sm btn_auth_cancel" aid="<?=$item['id'] ?>">取消发布</a>
124 <?php }?> 124 <?php }?>
125 </td> 125 </td>
126 </tr> 126 </tr>
@@ -174,5 +174,33 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -174,5 +174,33 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
174 }); 174 });
175 } 175 }
176 }); 176 });
  177 +
  178 + $(".btn_auth_cancel").bind("click",function () {
  179 + if (confirm("确定要取消发布该版本吗?")){
  180 + var data_id = $.trim($(this).attr("aid"));
  181 + if (data_id == null || data_id == ""){
  182 + alert("丢失参数,暂时无法取消,请刷新后再试");
  183 + return false;
  184 + }
  185 + var thiz = $(this);
  186 + $.ajax({
  187 + type: "post",
  188 + url: "<?=Url::toRoute('upgrade/do-cancel')?>",
  189 + dataType:"json",
  190 + data: $.csrf({id:data_id}),
  191 + success:function(res){
  192 + if(!res.success) {
  193 + alert(res.message);
  194 + } else {
  195 + var versionType = $('#versionType').val();
  196 + window.location.href = 'index?type='+versionType;
  197 + }
  198 + },
  199 + error:function(msg){
  200 + //提示确认失败
  201 + }
  202 + });
  203 + }
  204 + });
177 }); 205 });
178 </script> 206 </script>
179 \ No newline at end of file 207 \ No newline at end of file
app-ht/modules/upgrade/views/upgrade/push-app.php
@@ -30,7 +30,19 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -30,7 +30,19 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
30 <div class="form-group col-sm-12"> 30 <div class="form-group col-sm-12">
31 <label for="skillName" class="col-sm-4 control-label text-right">选择厂商:</label> 31 <label for="skillName" class="col-sm-4 control-label text-right">选择厂商:</label>
32 <div class="col-sm-4 text-left"> 32 <div class="col-sm-4 text-left">
33 - <?= (isset($info["manufacture_name"]) ? $info["manufacture_name"] : "") ?> 33 + <?= (isset($info["manufacture_name"]) ? $info["manufacture_name"] : "-") ?>
  34 + </div>
  35 + </div>
  36 + <div class="form-group col-sm-12">
  37 + <label class="col-sm-4 control-label text-right">项目:</label>
  38 + <div class="col-sm-4 text-left">
  39 + <?= (isset($info["project_name"]) ? $info["project_name"] : "-") ?>
  40 + </div>
  41 + </div>
  42 + <div class="form-group col-sm-12">
  43 + <label class="col-sm-4 control-label text-right">型号:</label>
  44 + <div class="col-sm-4 text-left">
  45 + <?= (isset($info["model_name"]) ? $info["model_name"] : "-") ?>
34 </div> 46 </div>
35 </div> 47 </div>
36 <div class="form-group col-sm-12"> 48 <div class="form-group col-sm-12">
app-ht/modules/upgrade/views/upgrade/push-ota.php
@@ -8,7 +8,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = [&#39;label&#39; =&gt; &#39;版本管理&#39;, &#39;url&#39; =&gt; [&#39;/upgrade @@ -8,7 +8,9 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = [&#39;label&#39; =&gt; &#39;版本管理&#39;, &#39;url&#39; =&gt; [&#39;/upgrade
8 $this->params['breadcrumbs'][] = $this->title; 8 $this->params['breadcrumbs'][] = $this->title;
9 9
10 ?> 10 ?>
11 - 11 +<style>
  12 + .version_range{display:none}
  13 + </style>
12 <form action="<?php echo Url::toRoute(['/upgrade/upgrade/do-push-app']); ?>" name="myFrom" id="myFrom" method="post"> 14 <form action="<?php echo Url::toRoute(['/upgrade/upgrade/do-push-app']); ?>" name="myFrom" id="myFrom" method="post">
13 <div class="panel panel-default"> 15 <div class="panel panel-default">
14 <div class="panel-body"> 16 <div class="panel-body">
@@ -33,6 +35,18 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -33,6 +35,18 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
33 <?= (isset($info["manufacture_name"]) ? $info["manufacture_name"] : "") ?> 35 <?= (isset($info["manufacture_name"]) ? $info["manufacture_name"] : "") ?>
34 </div> 36 </div>
35 </div> 37 </div>
  38 + <div class="form-group col-sm-12">
  39 + <label class="col-sm-4 control-label text-right">项目:</label>
  40 + <div class="col-sm-4 text-left">
  41 + <?= (isset($info["project_name"]) ? $info["project_name"] : "-") ?>
  42 + </div>
  43 + </div>
  44 + <div class="form-group col-sm-12">
  45 + <label class="col-sm-4 control-label text-right">型号:</label>
  46 + <div class="col-sm-4 text-left">
  47 + <?= (isset($info["model_name"]) ? $info["model_name"] : "-") ?>
  48 + </div>
  49 + </div>
36 <hr class="form-group col-sm-12"/> 50 <hr class="form-group col-sm-12"/>
37 <div class="form-group col-sm-12"> 51 <div class="form-group col-sm-12">
38 <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>是否强制升级:</label> 52 <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>是否强制升级:</label>
@@ -48,22 +62,22 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -48,22 +62,22 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
48 <div class="form-group col-sm-12"> 62 <div class="form-group col-sm-12">
49 <label for="skillName" class="col-sm-4 control-label text-right">设备ID:</label> 63 <label for="skillName" class="col-sm-4 control-label text-right">设备ID:</label>
50 <div class="col-sm-4 text-left form-inline"> 64 <div class="col-sm-4 text-left form-inline">
51 - <input type="text" class="form form-control" id="device_ids" style="width: 80%" name="device_ids" placeholder="请填写设备ID,多个ID用逗号隔开"/><span>(选填)</span> 65 + <textarea class="form form-control" id="device_ids" style="width: 100%" name="device_ids" placeholder="请填写设备ID,多个ID用逗号隔开(选填)"></textarea>
52 </div> 66 </div>
53 </div> 67 </div>
54 <div class="form-group col-sm-12"> 68 <div class="form-group col-sm-12">
55 - <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>升级方式:</label> 69 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>升级方式:</label>
56 <div class="col-sm-4 text-left"> 70 <div class="col-sm-4 text-left">
57 - <input type="radio" name="package_type" style="vertical-align: bottom;" value="2">增量升级  
58 - <input type="radio" name="package_type" style="vertical-align: bottom;margin-left: 20px" value="1">全量升级 71 + <input type="radio" name="package_type" id="package_part" class="package_type" style="vertical-align: bottom;" value="2">增量升级
  72 + <input type="radio" name="package_type" id="package_full" class="package_type" checked style="vertical-align: bottom;margin-left: 20px" value="1">全量升级
59 </div> 73 </div>
60 </div> 74 </div>
61 - <div class="form-group col-sm-12">  
62 - <label for="skillName" class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>升级方式:</label> 75 + <div class="form-group col-sm-12 version_range">
  76 + <label class="col-sm-4 control-label text-right"><span style="color: #ff0000;">*</span>版本范围:</label>
63 <div class="col-sm-4 text-left form form-inline"> 77 <div class="col-sm-4 text-left form form-inline">
64 - <input name="start_version" value="" style="width: 150px;" class="form form-control" placeholder="v1.0"> 78 + <input name="start_version" value="" style="width: 150px;" class="form form-control" placeholder="V1.0">
65 <span style="padding: 0 10px">至</span> 79 <span style="padding: 0 10px">至</span>
66 - <input style="width: 150px;" class="form form-control" name="end_version" value="" placeholder="v2.0"> 80 + <input style="width: 150px;" class="form form-control" name="end_version" value="" placeholder="V2.0">
67 </div> 81 </div>
68 </div> 82 </div>
69 </div> 83 </div>
@@ -88,6 +102,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -88,6 +102,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
88 } 102 }
89 }); 103 });
90 }); 104 });
  105 + $('.package_type').click(function(e){
  106 + var thisVal = $(this).val();
  107 + if(2 == thisVal) {
  108 + $('.version_range').show();
  109 + } else {
  110 + $('.version_range').hide();
  111 + }
  112 + })
91 113
92 $("#save").bind("click", function () { 114 $("#save").bind("click", function () {
93 var getUrl = '<?=Url::toRoute("/upgrade/upgrade/do-push-app")?>'; 115 var getUrl = '<?=Url::toRoute("/upgrade/upgrade/do-push-app")?>';
@@ -109,14 +131,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -109,14 +131,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
109 alert("请选择升级方式"); 131 alert("请选择升级方式");
110 return false; 132 return false;
111 } 133 }
112 - if (start_version == ""){  
113 - alert("请填写开始版本号");  
114 - return false;  
115 - }  
116 - if (end_version == ""){  
117 - alert("请填写结束版本号");  
118 - return false; 134 + if (2 == package_type) {
  135 + if (start_version == ""){
  136 + alert("请填写开始版本号");
  137 + return false;
  138 + }
119 } 139 }
  140 +
120 var cb = $("#myFrom").validate().form(); 141 var cb = $("#myFrom").validate().form();
121 if (!cb){ 142 if (!cb){
122 return; 143 return;
console/controllers/TestController.php
@@ -119,8 +119,8 @@ class TestController extends Controller @@ -119,8 +119,8 @@ class TestController extends Controller
119 public function actionCheckOtaUpdate() 119 public function actionCheckOtaUpdate()
120 { 120 {
121 //actionCheckAppVersion 121 //actionCheckAppVersion
122 - $url = 'http://47.107.95.101/app-api/web/checkOtaVersion';  
123 - //$url = 'http://kingb:8012/app-api/web/checkOtaVersion'; 122 + //$url = 'http://47.107.95.101/app-api/web/checkOtaVersion';
  123 + $url = 'http://kingb:8012/app-api/web/checkOtaVersion';
124 $params = [ 124 $params = [
125 'barcode' => '0001000100010001', 125 'barcode' => '0001000100010001',
126 'device_id' => 'DGDEVBICEID00001', 126 'device_id' => 'DGDEVBICEID00001',
@@ -128,7 +128,7 @@ class TestController extends Controller @@ -128,7 +128,7 @@ class TestController extends Controller
128 'hardware_version' => 'V1.0.1', 128 'hardware_version' => 'V1.0.1',
129 ]; 129 ];
130 $params = json_encode($params); 130 $params = json_encode($params);
131 - $params = '{"barcode":"0001000100010001","device_id":"DEVICEID00001","software_version":"V1.00.1A.20191002","hardware_version":""}'; 131 + //$params = '{"barcode":"0001000100010001","device_id":"DEVICEID00001","software_version":"V1.00.1A.20191002","hardware_version":""}';
132 $postResult = Http::POST($url, $params); 132 $postResult = Http::POST($url, $params);
133 echo $postResult; 133 echo $postResult;
134 } 134 }
domain/device/CreateBatchRepository.php
@@ -33,37 +33,35 @@ class CreateBatchRepository @@ -33,37 +33,35 @@ class CreateBatchRepository
33 { 33 {
34 if ('manufacture' == $type) { 34 if ('manufacture' == $type) {
35 $q = new Query(); 35 $q = new Query();
36 - $q->select('id,manufacture_no, name'); 36 + $q->select(['concat(id, "_", manufacture_no) as uid', 'id','manufacture_no', 'name']);
37 $q->from('manufacture'); 37 $q->from('manufacture');
38 - $q->where('name like "%'.$keyword.'%" or manufacture_no like "%'.$keyword.'%"');  
39 - $q->limit(20); 38 + $q->where('id >1');
  39 +
40 $list = $q->all(); 40 $list = $q->all();
41 41
42 return $list; 42 return $list;
43 } elseif('project' == $type) { 43 } elseif('project' == $type) {
44 $q = new Query(); 44 $q = new Query();
45 - $q->select('id,project_no, name'); 45 + $q->select(['concat(id,"_", project_no) as uid', 'id','project_no', 'name']);
46 $q->from('project'); 46 $q->from('project');
47 - $q->where('name like "%'.$keyword.'%" or project_no like "%'.$keyword.'%"');  
48 - $q->limit(20); 47 + $q->where('id >1');
  48 +
49 $list = $q->all(); 49 $list = $q->all();
50 50
51 return $list; 51 return $list;
52 } elseif ('model' == $type) { 52 } elseif ('model' == $type) {
53 $q = new Query(); 53 $q = new Query();
54 - $q->select('id,model_no, name'); 54 + $q->select(['concat(id,"_", model_no) as uid','id','model_no', 'name']);
55 $q->from('model'); 55 $q->from('model');
56 - $q->where('name like "%'.$keyword.'%" or model_no like "%'.$keyword.'%"');  
57 - $q->limit(20); 56 + $q->where('id >1');
58 $list = $q->all(); 57 $list = $q->all();
59 58
60 return $list; 59 return $list;
61 } elseif ('production' == $type) { 60 } elseif ('production' == $type) {
62 $q = new Query(); 61 $q = new Query();
63 - $q->select('id,production_no, name'); 62 + $q->select(['concat(id,"_", production_no) as uid','id','production_no', 'name']);
64 $q->from('production'); 63 $q->from('production');
65 - $q->where('name like "%'.$keyword.'%" or production_no like "%'.$keyword.'%"');  
66 - $q->limit(20); 64 + $q->where('id >1');
67 $list = $q->all(); 65 $list = $q->all();
68 66
69 return $list; 67 return $list;
domain/upgrade/Upgrade.php
@@ -20,20 +20,30 @@ class Upgrade @@ -20,20 +20,30 @@ class Upgrade
20 static function create($item) 20 static function create($item)
21 { 21 {
22 try { 22 try {
23 - $findUpgradeModel = UpgradeModel::findOne(['version' => $item["version"], 'manufacture_id' => $item["manufacture_id"], 'type' => $item["type"]]); 23 + $where = [
  24 + 'version' => $item["version"],
  25 + 'manufacture_id' => $item["manufacture_id"],
  26 + 'project_id' => $item["project_id"],
  27 + 'model_id' => $item["model_id"],
  28 + 'type' => $item["type"]
  29 + ];
  30 + $findUpgradeModel = UpgradeModel::findOne($where);
24 if (!empty($findUpgradeModel)) { 31 if (!empty($findUpgradeModel)) {
25 return -1; 32 return -1;
26 } 33 }
27 $upgradeModel = Yii::createObject(UpgradeModel::className()); 34 $upgradeModel = Yii::createObject(UpgradeModel::className());
28 - $upgradeModel->type = $item["type"]; // 版本类型 1. app类升级,2. OTA整包升级  
29 - $upgradeModel->version = $item["version"]; // 版本  
30 - $upgradeModel->manufacture_id = $item["manufacture_id"]; // 厂商编号  
31 - $upgradeModel->path = $item["path"]; // 文件路径  
32 - $upgradeModel->package_name = $item["package_name"]; // 安装包名称 35 + $upgradeModel->type = $item["type"]; // 版本类型 1. app类升级,2. OTA整包升级
  36 + $upgradeModel->version = $item["version"]; // 版本
  37 + $upgradeModel->manufacture_id = $item["manufacture_id"]; // 厂商编号
  38 + $upgradeModel->project_id = $item["project_id"]; // 项目
  39 + $upgradeModel->model_id = $item["model_id"]; // 型号
  40 + $upgradeModel->desc = $item["desc"]; // 描述
  41 + $upgradeModel->path = $item["path"]; // 文件路径
  42 + $upgradeModel->package_name = $item["package_name"]; // 安装包名称
33 if (isset($item["device_ids"])) { 43 if (isset($item["device_ids"])) {
34 $upgradeModel->device_ids = $item["指定deviceID,可以多个,多个用逗号隔开"]; // 版本 44 $upgradeModel->device_ids = $item["指定deviceID,可以多个,多个用逗号隔开"]; // 版本
35 } 45 }
36 - $upgradeModel->size = $item["size"]; // 文件大小 46 + $upgradeModel->size = $item["size"]; // 文件大小
37 $upgradeModel->file_md5 = $item["file_md5"]; // 软件包校验用的md5 47 $upgradeModel->file_md5 = $item["file_md5"]; // 软件包校验用的md5
38 $saveResult = $upgradeModel->save(); 48 $saveResult = $upgradeModel->save();
39 return $saveResult; 49 return $saveResult;
@@ -66,6 +76,15 @@ class Upgrade @@ -66,6 +76,15 @@ class Upgrade
66 if (isset($item['manufacture_id']) && !empty($item['manufacture_id'])) { 76 if (isset($item['manufacture_id']) && !empty($item['manufacture_id'])) {
67 $upgradeModel->manufacture_id = $item['manufacture_id']; 77 $upgradeModel->manufacture_id = $item['manufacture_id'];
68 } 78 }
  79 + if (isset($item['project_id']) && !empty($item['project_id'])) {
  80 + $upgradeModel->project_id = $item['project_id'];
  81 + }
  82 + if (isset($item['model_id']) && !empty($item['model_id'])) {
  83 + $upgradeModel->model_id = $item['model_id'];
  84 + }
  85 + if (isset($item['desc']) && !empty($item['desc'])) {
  86 + $upgradeModel->desc = $item['desc'];
  87 + }
69 if (isset($item['path']) && !empty($item['path'])) { 88 if (isset($item['path']) && !empty($item['path'])) {
70 $upgradeModel->path = $item['path']; 89 $upgradeModel->path = $item['path'];
71 } 90 }
environments/dev/app-ht/config/params-local.php
@@ -3,6 +3,5 @@ return [ @@ -3,6 +3,5 @@ return [
3 /** 3 /**
4 * 基础 CSS JS 的路径 4 * 基础 CSS JS 的路径
5 */ 5 */
6 - 'assetsUrl' => 'http://localhost/jw/src/app-ht/web',//  
7 - 'supervisorUrl' =>'http://120.24.157.206:9001/', // 用于多任务分发模板消息和短信队列的Supervisor网页管理后台地址 6 + 'assetsUrl' => 'http://47.107.95.101/app-ht/web/',
8 ]; 7 ];
environments/dev/common/config/main-local.php
1 <?php 1 <?php
2 $config['components']['db'] = [ 2 $config['components']['db'] = [
3 'class' => 'yii\db\Connection', 3 'class' => 'yii\db\Connection',
4 - 'dsn' => 'mysql:host=localhost;dbname=ota', 4 + 'dsn' => 'mysql:host=127.0.0.1;dbname=authorization',
5 'username' => 'root', 5 'username' => 'root',
6 - 'password' => '123456', 6 + 'password' => 'kb@2019',
7 'charset' => 'utf8', 7 'charset' => 'utf8',
8 ]; 8 ];
9 9
environments/prod/app-api/config/main-local.php
@@ -3,7 +3,7 @@ $config = [ @@ -3,7 +3,7 @@ $config = [
3 'components' => [ 3 'components' => [
4 'request' => [ 4 'request' => [
5 // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 5 // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
6 - 'cookieValidationKey' => '', 6 + 'cookieValidationKey' => 'YdCyYvm8eOZZsaNRa_idrGimyTbsEQ8R',
7 ], 7 ],
8 ], 8 ],
9 ]; 9 ];
environments/prod/app-ht/config/params-local.php
@@ -3,5 +3,5 @@ return [ @@ -3,5 +3,5 @@ return [
3 /** 3 /**
4 * 基础 CSS JS 的路径 4 * 基础 CSS JS 的路径
5 */ 5 */
6 - 'assetsUrl' => 'http://47.107.95.101/app-ht/web', 6 + 'assetsUrl' => 'http://47.107.95.101/app-ht/web/',
7 ]; 7 ];
8 \ No newline at end of file 8 \ No newline at end of file
environments/prod/common/config/main-local.php
1 <?php 1 <?php
2 $config['components']['db'] = [ 2 $config['components']['db'] = [
3 'class' => 'yii\db\Connection', 3 'class' => 'yii\db\Connection',
4 - 'dsn' => 'mysql:host=localhost;dbname=authorization', 4 + 'dsn' => 'mysql:host=127.0.0.1;dbname=authorization',
5 'username' => 'root', 5 'username' => 'root',
6 'password' => 'kb@2019', 6 'password' => 'kb@2019',
7 'charset' => 'utf8', 7 'charset' => 'utf8',
environments/test/common/config/main-local.php
1 <?php 1 <?php
2 $config['components']['db'] = [ 2 $config['components']['db'] = [
3 'class' => 'yii\db\Connection', 3 'class' => 'yii\db\Connection',
4 - 'dsn' => 'mysql:host=localhost;dbname=ota', 4 + 'dsn' => 'mysql:host=127.0.0.1;dbname=authorization',
5 'username' => 'root', 5 'username' => 'root',
6 'password' => 'kb@2019', 6 'password' => 'kb@2019',
7 'charset' => 'utf8', 7 'charset' => 'utf8',