DeviceConfigController.class.php.bak.2021-12-16 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. use Think\Db;
  5. include '../Common/function.php';
  6. class DeviceConfigController extends ComController
  7. {
  8. private $host = "https://device.api.ct10649.com:8743/";
  9. private $appId = "wvdOfp7JVe0ULwnFKwBF0edfbcAa";
  10. private $secret = "Bihoe_rY9vebXMw6sFfpQy0jiRca";
  11. private $appId1 = "bIS92ndpAf_fhmPdLaNuTidbFfka";
  12. private $secret1 = "NZMe1G42OdSmzlEuDpR_3ywKPhIa";
  13. // public function getDeviceList()
  14. // {
  15. // $Data = I();
  16. // $company_code = $Data['company_code'];
  17. // $device_data1 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 AND a.company='" . $company_code . "' GROUP BY a.owner_code ORDER BY a.install_time DESC");
  18. // $device_data2 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.company='" . $company_code . "' AND a.dwtype=1 GROUP BY a.owner_code ORDER BY a.install_time DESC");
  19. // $device_data = array_merge($device_data1, $device_data2);
  20. // array_multisort(array_column($device_data, 'install_time'), SORT_DESC, $device_data);
  21. // $res['msg'] = '操作成功';
  22. // $res['flag'] = true;
  23. // $res['data'] = $device_data;
  24. // echo json_encode($res);
  25. // }
  26. public function getDeviceList()
  27. {
  28. $Data = I();
  29. $company_code = $Data['company_code'];
  30. $dwtype = $Data['dwtype'];
  31. $transmission_mode = $Data['transmission_mode'];
  32. $where = "";
  33. if (!empty($dwtype)) {
  34. $where .= " and a.dwtype = '" . $dwtype . "' ";
  35. }
  36. if (!empty($transmission_mode)) {
  37. $where .= " and a.transfer_type = '" . $transmission_mode . "' ";
  38. }
  39. // if (empty($dwtype)) {
  40. // $device_data1 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  41. //// print_r($device_data1);
  42. //// exit();
  43. // $device_data2 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.dwtype=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  44. // $device_data = array_merge($device_data1, $device_data2);
  45. // array_multisort(array_column($device_data, 'install_time'), SORT_DESC, $device_data);
  46. // } else {
  47. // if ($dwtype == 1) {
  48. // $device_data = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.dwtype=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  49. // } else {
  50. // $device_data = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  51. // }
  52. // }
  53. if (empty($dwtype)) {
  54. $device_data1 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a left JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  55. $device_data2 = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.dwtype=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  56. $device_data = array_merge($device_data1, $device_data2);
  57. array_multisort(array_column($device_data, 'install_time'), SORT_DESC, $device_data);
  58. } else {
  59. if ($dwtype == 1) {
  60. $device_data = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(true_status=0,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a JOIN sp_devices_status AS b ON a.owner_code=b.deviceid WHERE a.dwtype=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  61. } else {
  62. $device_data = M()->query("SELECT a.id,a.owner_code,a.louyu,a.company,a.owner_name,a.dwtype,IF(timestampdiff(HOUR,max(`b`.`data_time`),now())<12,'在线','离线') AS device_state,a.install_time,a.unitinfo,a.transfer_type FROM sp_owner AS a left JOIN sp_owner_status AS b ON a.owner_code=b.device_id WHERE a.dwtype!=1 and a.company='" . $company_code . "' " . $where . " GROUP BY a.owner_code ORDER BY a.install_time DESC");
  63. }
  64. }
  65. $res['msg'] = '操作成功';
  66. $res['flag'] = true;
  67. $res['data'] = $device_data;
  68. echo json_encode($res);
  69. }
  70. public function setDevice()
  71. {
  72. $Data = I('');
  73. $data['owner_code'] = $Data['device_code'];
  74. $data['owner_name'] = $Data['device_name'];
  75. $data['unitinfo'] = $Data['unitinfo'];
  76. $data['louyu'] = $Data['louyu'];
  77. $data['sim'] = $Data['sim'];
  78. $data['maintainTime'] = "";
  79. $data['dest_address'] = 0;
  80. $data['addr1'] = "";
  81. $data['addr2'] = "";
  82. $data['addr3'] = "";
  83. $data['address'] = "";
  84. $data['posistion'] = "";
  85. $data['install_time'] = date("Y-m-d H:i:s");
  86. $data['install_man'] = $_SESSION['phone'];
  87. $data['dwtype'] = $Data['type'];
  88. $data['owner_xh'] = '0,' . $data['owner_xh_a'] . $data['owner_xh_b'] . $data['owner_xh_c'];
  89. $data['s_interval'] = 8;
  90. $data['community'] = "";
  91. $data['company'] = $Data['company_code'];
  92. $data['rtmp'] = "";
  93. $data['hls'] = "";
  94. $data['html5'] = "";
  95. $data['danwei'] = $Data['danwei'];
  96. $data['owner_bl'] = $Data['owner_bl'];
  97. $data['push_param1'] = "4294967295";
  98. $data['push_param2'] = 0;
  99. $data['push_param3'] = 0;
  100. $data['push_param4'] = 0;
  101. $data['login_param'] = "";
  102. $data['transfer_type'] = $Data['transfer_type'];
  103. $data1['deviceid'] = $Data['device_code'];
  104. $data1['deviceno'] = 0;
  105. $data1['devicestatus'] = '75';
  106. $data1['statustime'] = 0;
  107. $data1['f_evt'] = 40;
  108. $data1['c_evt'] = "00";
  109. $data1['w_evt'] = "";
  110. $data1['true_status'] = '75';
  111. $data1['lastcommtime'] = '0';
  112. $data2['owner_code'] = $Data['device_code'];
  113. $data2['owner_dwtype'] = $Data['type'];
  114. $data2['device_name'] = $Data['device_name'];
  115. $data2['object_name'] = $Data['unitinfo'];
  116. $data2['min_level'] = $Data['louyu'];
  117. $data2['max_level'] = $Data['louyu'];
  118. $data2['is_top'] = $Data['is_top'];
  119. $data2['start_port'] = '0';
  120. $data2['rec_cur'] = '0';
  121. $data3['deviceType'] = $Data['deviceType'];//设备类型 水表 Smoke:烟感、MultiSensor:水表、WaterMeter:宇洁戎情水表、topsailSensor:拓扑索尔 烟感 TBSNode:拓扑索尔烟感
  122. $data3['manufacturerName'] = $Data['manufacturerName'];//厂商名称:ST、ZHYQ、shanghaijunyanTest、Topsail、Turboes
  123. $data3['model'] = $Data['model'];//设备型号 烟感型号:517N01、水表型号:PT124B-2892-010、宇洁戎情水表型号:WPTA、拓扑索尔水表液位:TH12、拓扑索尔烟感:Public
  124. $data3['location'] = $Data['location'];//地址 区域
  125. $data3['protocolType'] = $Data['protocolType'];//协议
  126. switch ($Data['type']) {
  127. case '1'://报警主机
  128. $data2['dwtype'] = 'YTUI';
  129. $Res1 = M('owner')->add($data);
  130. $Res2 = M('devices_status')->add($data1);
  131. $Res3 = M('object_share')->add($data2);
  132. break;
  133. case '2'://消防水
  134. $data2['dwtype'] = 'YTWP';
  135. $data2['start_port'] = '0';
  136. $data2['rec_cur'] = '0';
  137. $Res = M()->query("SELECT max(object_code) AS object_code FROM sp_object_share WHERE object_code LIKE '" . $data2['dwtype'] . "-" . $Data['company_code'] . "%'");
  138. if (empty($Res)) {
  139. $data2['object_code'] = $data2['dwtype'] . '-' . $Data['company_code'] . '001';
  140. } else {
  141. $sort = (int)substr($Res[0]['object_code'], 10, 3) + 1;
  142. $num = str_pad($sort, 3, "0", STR_PAD_LEFT);
  143. $data2['object_code'] = $data2['dwtype'] . '-' . $Data['company_code'] . $num;
  144. }
  145. switch ($data['transfer_type']) {
  146. case 'NB':
  147. if (empty($data3['deviceType']) || empty($data3['manufacturerName']) || empty($data3['model']) || empty($data3['location']) || empty($data3['protocolType'])) {
  148. $res['msg'] = "请填写好必要内容";
  149. $res['flag'] = false;
  150. echo json_encode($res);
  151. exit();
  152. }
  153. $R = ytapi187_query("select * from device where device_id='" . $Data['device_code'] . "'");
  154. if (empty($R)) {
  155. if (empty($Data['device_code']) || empty($Data['device_name'])) {
  156. $res['msg'] = '请填写好必要内容';
  157. $res['flag'] = false;
  158. echo json_encode($res);
  159. exit();
  160. }
  161. $token = json_decode(gettoken(), true);
  162. $sendata = [
  163. "verifyCode" => $Data['device_code'],//"868744030067098"
  164. "nodeId" => $Data['device_code'],
  165. "timeout" => 0
  166. ];
  167. $header = [
  168. "Content-Type:application/json",
  169. "app_key:" . $this->appId,
  170. "Authorization:Bearer " . $token["accessToken"]
  171. ];
  172. $rescurl = curl($this->host . "iocm/app/reg/v1.1.0/deviceCredentials?appId=" . $this->appId, json_encode($sendata), $header);
  173. if ($rescurl[0] == 200) {
  174. $res1 = json_decode($rescurl[1], true);
  175. } else {
  176. $res['msg'] = $rescurl;
  177. $res['flag'] = false;
  178. echo json_encode($res);
  179. exit();
  180. }
  181. $list = array();
  182. $list['device_id'] = trim($Data['device_code']);
  183. $list['name'] = $Data['device_name'];
  184. $list['iot_id'] = $res1['deviceId'];
  185. $list['psk'] = $res1['psk'];
  186. $list['addtime'] = date('Y-m-d H:i:s');
  187. $list['updatetime'] = date('Y-m-d H:i:s');
  188. $device_table = "dev_" . $Data['device_code'];
  189. $create_sql = "
  190. CREATE TABLE `" . $device_table . "` (
  191. `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  192. `device_id` varchar(200) DEFAULT NULL,
  193. `iot_id` varchar(255) DEFAULT NULL,
  194. `service` text,
  195. `addtime` varchar(50) DEFAULT NULL,
  196. `notifyType` varchar(50) DEFAULT NULL,
  197. PRIMARY KEY (`id`)
  198. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
  199. ytapi187_inset($create_sql);
  200. $rs = ytapi187_inset("INSERT INTO device (device_id,name,addtime,updatetime,iot_id,psk,manufacturerId,manufacturerName,deviceType
  201. ,model,location,isSecure,status,protocolType,owner_id) values ('" . $list['device_id'] . "','" . $list['name'] . "','" . $list['addtime'] . "',
  202. '" . $list['updatetime'] . "','" . $list['iot_id'] . "','" . $list['psk'] . "','','','','','','','','','')");
  203. if ($rs) {
  204. $owner1 = M()->query("SELECT company,louyu,unitinfo FROM sp_owner WHERE owner_code = '" . $Data['device_code'] . "'");
  205. if ($owner1) {
  206. $data4['owner_name'] = $Data['device_name'];
  207. $data4['unitinfo'] = $Data['unitinfo'];
  208. $data4['louyu'] = $Data['louyu'];
  209. $data4['company'] = $Data['company_code'];
  210. $where4['owner_code'] = $Data['device_code'];
  211. $res4 = M('owner')->where($where4)->save($data4);
  212. } else {
  213. $token = json_decode(gettoken(), true);
  214. $sendata = [
  215. "name" => $Data['device_code'],
  216. "deviceType" => $Data['deviceType'],
  217. "manufacturerName" => $Data['manufacturerName'],
  218. "manufacturerId" => $Data['manufacturerId'],//厂商ID ST、ZHYQ、JunyanTest、Topsail
  219. "model" => $Data['model'],
  220. "protocolType" => $Data['protocolType'],
  221. "location" => trim($Data['location'])
  222. ];
  223. $header = [
  224. "Content-Type:application/json",
  225. "app_key:" . $this->appId,
  226. "Authorization:Bearer " . $token["accessToken"]
  227. ];
  228. $rescurl = curl($this->host . "iocm/app/dm/v1.4.0/devices/" . $list['iot_id'] . "?appId=" . $this->appId, json_encode($sendata, 320), $header, "PUT");
  229. }
  230. if ($rescurl[0] == 204) {//成功
  231. $res1 = json_decode($rescurl[1], true);
  232. } else {//失败
  233. $res['msg'] = $rescurl[1];
  234. $res['flag'] = false;
  235. echo json_encode($res);
  236. exit();
  237. }
  238. $device_update = ytapi187_inset("UPDATE device set deviceType='" . $Data['deviceType'] . "',name='" . $Data['device_name'] . "',manufacturerName=
  239. '" . $Data['manufacturerName'] . "',model='" . $Data['model'] . "',isSecure='" . $Data['isSecure'] . "',manufacturerId='" . $Data['manufacturerId'] . "',
  240. protocolType='" . $Data['protocolType'] . "',location='" . $Data['location'] . "',updatetime='" . date('Y-m-d H:i:s') . "' where device_id=
  241. '" . $Data['device_code'] . "'");
  242. $device_query = ytapi187_query("select * from device where device_id='" . $Data['device_code'] . "'");
  243. $device_id = $device_query[0]['device_id'];
  244. $deviceType = $Data['deviceType'];
  245. $create_sql = addtable($device_id, $deviceType);
  246. $table = Db::execute($create_sql);
  247. $deviceStatus = M()->query("SELECT statustime FROM sp_devices_status WHERE deviceid = '" . $device_query[0]['device_id'] . "'");
  248. if (!$deviceStatus) {
  249. $data6['deviceid'] = $device_query[0]['device_id'];
  250. $data6['deviceno'] = 0;
  251. $data6['devicestatus'] = '75';
  252. $data6['statustime'] = date('Y-m-d H:i:s');
  253. $data6['f_evt'] = 40;
  254. $data6['c_evt'] = 00;
  255. $data6['w_evt'] = "";
  256. $data6['true_status'] = '75';
  257. $data6['lastcommtime'] = '0';
  258. $Res2 = M('devices_status')->add($data6);
  259. }
  260. if ($Data['company_code']) {
  261. $Res1 = M('owner')->add($data);
  262. // $Res2 = M('devices_status')->add($data1);
  263. $Res3 = M('object_share')->add($data2);
  264. }
  265. if ($device_update) {
  266. $res['msg'] = "操作成功";
  267. $res['flag'] = true;
  268. echo json_encode($res);
  269. exit();
  270. } else {
  271. $res['msg'] = "添加失败,请稍后再试";
  272. $res['flag'] = false;
  273. echo json_encode($res);
  274. exit();
  275. }
  276. } else {
  277. $res['msg'] = "添加失败,请稍后再试";
  278. $res['flag'] = false;
  279. echo json_encode($res);
  280. exit();
  281. }
  282. } else {
  283. $res['msg'] = '该设备编号已经添加';
  284. $res['flag'] = false;
  285. echo json_encode($res);
  286. exit();
  287. }
  288. break;
  289. case 'Lora':
  290. case '4G':
  291. $Res1 = M('owner')->add($data);
  292. $Res2 = M('devices_status')->add($data1);
  293. $Res3 = M('object_share')->add($data2);
  294. break;
  295. default:
  296. $res['msg'] = '操作失败,该传输方式不存在,请联系管理员';
  297. $res['flag'] = false;
  298. echo json_encode($res);
  299. exit();
  300. }
  301. break;
  302. case '3'://烟感
  303. $data2['dwtype'] = 'YTSM';
  304. $data2['start_port'] = '0';
  305. $data2['rec_cur'] = '0';
  306. $Res = M()->query("SELECT max(object_code) AS object_code FROM sp_object_share WHERE object_code LIKE '" . $data2['dwtype'] . "-" . $Data['company_code'] . "%'");
  307. if (empty($Res)) {
  308. $data2['object_code'] = $data2['dwtype'] . '-' . $Data['company_code'] . '001';
  309. } else {
  310. $sort = (int)substr($Res[0]['object_code'], 10, 3) + 1;
  311. $num = str_pad($sort, 3, "0", STR_PAD_LEFT);
  312. $data2['object_code'] = $data2['dwtype'] . '-' . $Data['company_code'] . $num;
  313. }
  314. switch ($data['transfer_type']) {
  315. case 'NB':
  316. if (empty($data3['deviceType']) || empty($data3['manufacturerName']) || empty($data3['model']) || empty($data3['location']) || empty($data3['protocolType'])) {
  317. $res['msg'] = "请填写好必要内容";
  318. $res['flag'] = false;
  319. echo json_encode($res);
  320. exit();
  321. }
  322. $R = ytapi187_query("select * from device where device_id='" . $Data['device_code'] . "'");
  323. if (empty($R)) {
  324. if (empty($Data['device_code']) || empty($Data['device_name'])) {
  325. $res['msg'] = '请填写好必要内容';
  326. $res['flag'] = false;
  327. echo json_encode($res);
  328. exit();
  329. }
  330. $token = json_decode(gettoken1(), true);
  331. $sendata = [
  332. "verifyCode" => $Data['device_code'],//"868744030067098"
  333. "nodeId" => $Data['device_code'],
  334. "timeout" => 0
  335. ];
  336. $header = [
  337. "Content-Type:application/json",
  338. "app_key:" . $this->appId1,
  339. "Authorization:Bearer " . $token["accessToken"]
  340. ];
  341. $rescurl = curl($this->host . "iocm/app/reg/v1.1.0/deviceCredentials?appId=" . $this->appId1, json_encode($sendata), $header);
  342. if ($rescurl[0] == 200) {
  343. $res1 = json_decode($rescurl[1], true);
  344. } else {
  345. $res['msg'] = $rescurl;
  346. $res['flag'] = false;
  347. echo json_encode($res);
  348. exit();
  349. }
  350. $list = array();
  351. $list['device_id'] = trim($Data['device_code']);
  352. $list['name'] = $Data['device_name'];
  353. $list['iot_id'] = $res1['deviceId'];
  354. $list['psk'] = $res1['psk'];
  355. $list['addtime'] = date('Y-m-d H:i:s');
  356. $list['updatetime'] = date('Y-m-d H:i:s');
  357. $device_table = "dev_" . $Data['device_code'];
  358. $create_sql = "
  359. CREATE TABLE `" . $device_table . "` (
  360. `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  361. `device_id` varchar(200) DEFAULT NULL,
  362. `iot_id` varchar(255) DEFAULT NULL,
  363. `service` text,
  364. `addtime` varchar(50) DEFAULT NULL,
  365. `notifyType` varchar(50) DEFAULT NULL,
  366. PRIMARY KEY (`id`)
  367. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
  368. ytapi187_inset($create_sql);
  369. $rs = ytapi187_inset("INSERT INTO device (device_id,name,addtime,updatetime,iot_id,psk,manufacturerId,manufacturerName,deviceType
  370. ,model,location,isSecure,status,protocolType,owner_id) values ('" . $list['device_id'] . "','" . $list['name'] . "','" . $list['addtime'] . "',
  371. '" . $list['updatetime'] . "','" . $list['iot_id'] . "','" . $list['psk'] . "','','','','','','','','','')");
  372. if ($rs) {
  373. $owner1 = M()->query("SELECT company,louyu,unitinfo FROM sp_owner WHERE owner_code = '" . $Data['device_code'] . "'");
  374. if ($owner1) {
  375. $data4['owner_name'] = $Data['device_name'];
  376. $data4['unitinfo'] = $Data['unitinfo'];
  377. $data4['louyu'] = $Data['louyu'];
  378. $data4['company'] = $Data['company_code'];
  379. $where4['owner_code'] = $Data['device_code'];
  380. $res4 = M('owner')->where($where4)->save($data4);
  381. } else {
  382. $token = json_decode(gettoken1(), true);
  383. $sendata = [
  384. "name" => $Data['device_code'],
  385. "deviceType" => $Data['deviceType'],
  386. "manufacturerName" => $Data['manufacturerName'],
  387. "manufacturerId" => $Data['manufacturerId'],//厂商ID ST、ZHYQ、JunyanTest、Topsail
  388. "model" => $Data['model'],
  389. "protocolType" => $Data['protocolType'],
  390. "location" => trim($Data['location'])
  391. ];
  392. $header = [
  393. "Content-Type:application/json",
  394. "app_key:" . $this->appId1,
  395. "Authorization:Bearer " . $token["accessToken"]
  396. ];
  397. $rescurl = curl($this->host . "iocm/app/dm/v1.4.0/devices/" . $list['iot_id'] . "?appId=" . $this->appId1, json_encode($sendata, 320), $header, "PUT");
  398. }
  399. if ($rescurl[0] == 204) {//成功
  400. $res1 = json_decode($rescurl[1], true);
  401. } else {//失败
  402. $res['msg'] = $rescurl[1];
  403. $res['flag'] = false;
  404. echo json_encode($res);
  405. exit();
  406. }
  407. $device_update = ytapi187_inset("UPDATE device set deviceType='" . $Data['deviceType'] . "',name='" . $Data['device_name'] . "',manufacturerName=
  408. '" . $Data['manufacturerName'] . "',model='" . $Data['model'] . "',isSecure='" . $Data['isSecure'] . "',manufacturerId='" . $Data['manufacturerId'] . "',
  409. protocolType='" . $Data['protocolType'] . "',location='" . $Data['location'] . "',updatetime='" . date('Y-m-d H:i:s') . "' where device_id=
  410. '" . $Data['device_code'] . "'");
  411. $device_query = ytapi187_query("select * from device where device_id='" . $Data['device_code'] . "'");
  412. $device_id = $device_query[0]['device_id'];
  413. $deviceType = $Data['deviceType'];
  414. $create_sql = addtable($device_id, $deviceType);
  415. $table = Db::execute($create_sql);
  416. $deviceStatus = M()->query("SELECT statustime FROM sp_devices_status WHERE deviceid = '" . $device_query[0]['device_id'] . "'");
  417. if (!$deviceStatus) {
  418. $data6['deviceid'] = $device_query[0]['device_id'];
  419. $data6['deviceno'] = 0;
  420. $data6['devicestatus'] = '75';
  421. $data6['statustime'] = date('Y-m-d H:i:s');
  422. $data6['f_evt'] = 40;
  423. $data6['c_evt'] = 00;
  424. $data6['w_evt'] = "";
  425. $data6['true_status'] = '75';
  426. $data6['lastcommtime'] = '0';
  427. $Res2 = M('devices_status')->add($data6);
  428. }
  429. if ($Data['company_code']) {
  430. $Res1 = M('owner')->add($data);
  431. // $Res2 = M('devices_status')->add($data1);
  432. $Res3 = M('object_share')->add($data2);
  433. }
  434. if ($device_update) {
  435. $res['msg'] = "操作成功";
  436. $res['flag'] = true;
  437. echo json_encode($res);
  438. exit();
  439. } else {
  440. $res['msg'] = "添加失败,请稍后再试";
  441. $res['flag'] = false;
  442. echo json_encode($res);
  443. exit();
  444. }
  445. } else {
  446. $res['msg'] = "添加失败,请稍后再试";
  447. $res['flag'] = false;
  448. echo json_encode($res);
  449. exit();
  450. }
  451. } else {
  452. $res['msg'] = '该设备编号已经添加';
  453. $res['flag'] = false;
  454. echo json_encode($res);
  455. exit();
  456. }
  457. break;
  458. case 'Lora':
  459. $url = "https://ttl.turboes.com/api/api/login";
  460. $parameter = [
  461. "appKey" => "wLHvcVHS",
  462. "appSecret" => "a9daf060059d205280646a1880cd1fc24f3c5c69"
  463. ];
  464. $accessToken = json_post($url, $parameter);
  465. $accessToken_array = json_decode($accessToken, true);
  466. if ($accessToken_array['code'] == 200) {
  467. $url1 = "https://ttl.turboes.com/api/ttl/api/v1/device?access_token=" . $accessToken_array['data']['token'];
  468. if ($Data['platfromProtocolType'] == 1) {
  469. $parameter1 = [
  470. "nodeId" => $Data['device_code'],
  471. "nodeName" => $Data['device_name'],
  472. "appKey" => "nIeDYZ3ufbV3bBoC ",
  473. "platfromProtocolType" => $Data['platfromProtocolType'],
  474. "platfromId" => $Data['platfromId'],
  475. "productKey" => $Data['productKey'],
  476. "protocol_NB" => [
  477. "nodeName" => $Data['device_code']
  478. ]
  479. ];
  480. } else {
  481. $parameter1 = [
  482. "nodeId" => $Data['device_code'],
  483. "nodeName" => $Data['device_name'],
  484. "appKey" => "nIeDYZ3ufbV3bBoC ",
  485. "platfromProtocolType" => $Data['platfromProtocolType'],
  486. "platfromId" => $Data['platfromId'],
  487. "productKey" => $Data['productKey'],
  488. "protocol_LORA" => [
  489. "devEui" => $Data['devEui'],
  490. "region" => $Data['region'],
  491. "activationType" => $Data['activationType'],
  492. "AppKey" => $Data['AppKey'],
  493. "NwkSKey" => $Data['NwkSKey'],
  494. "AppSKey" => $Data['AppSKey'],
  495. "DevAddr" => $Data['DevAddr']
  496. ]
  497. ];
  498. }
  499. // print_r(json_encode($parameter1));
  500. // exit();
  501. $R = json_post($url1, $parameter1);
  502. $R1 = json_decode($R, true);
  503. if ($R1['code'] == 200) {
  504. $Res1 = M('owner')->add($data);
  505. $Res2 = M('devices_status')->add($data1);
  506. $Res3 = M('object_share')->add($data2);
  507. } else {
  508. $res['msg'] = $accessToken_array['message'];
  509. $res['flag'] = false;
  510. echo json_encode($res);
  511. exit();
  512. }
  513. } else {
  514. $res['msg'] = $accessToken_array['message'];
  515. $res['flag'] = false;
  516. echo json_encode($res);
  517. exit();
  518. }
  519. break;
  520. case '4G':
  521. $Res1 = M('owner')->add($data);
  522. $Res2 = M('devices_status')->add($data1);
  523. $Res3 = M('object_share')->add($data2);
  524. break;
  525. default:
  526. $res['msg'] = '操作失败,该传输方式不存在,请联系管理员';
  527. $res['flag'] = false;
  528. echo json_encode($res);
  529. exit();
  530. }
  531. break;
  532. case '4'://消防栓
  533. $data2['dwtype'] = 'YTFH';
  534. $Res1 = M('owner')->add($data);
  535. $Res2 = M('devices_status')->add($data1);
  536. $Res3 = M('object_share')->add($data2);
  537. break;
  538. case '5'://液位
  539. $data2['dwtype'] = 'YTLL';
  540. $data2['start_port'] = '0';
  541. $data2['rec_cur'] = '0';
  542. $Res = M()->query("SELECT max(object_code) AS object_code FROM sp_object_share WHERE object_code LIKE '" . $data2['dwtype'] . "-" . $Data['company_code'] . "%'");
  543. if (empty($Res)) {
  544. $data2['object_code'] = $data2['dwtype'] . '-' . $Data['company_code'] . '001';
  545. } else {
  546. $sort = (int)substr($Res[0]['object_code'], 10, 3) + 1;
  547. $num = str_pad($sort, 3, "0", STR_PAD_LEFT);
  548. $data2['object_code'] = $data2['dwtype'] . '-' . $Data['company_code'] . $num;
  549. }
  550. switch ($data['transfer_type']) {
  551. case 'NB':
  552. if (empty($data3['deviceType']) || empty($data3['manufacturerName']) || empty($data3['model']) || empty($data3['location']) || empty($data3['protocolType'])) {
  553. $res['msg'] = "请填写好必要内容";
  554. $res['flag'] = false;
  555. echo json_encode($res);
  556. exit();
  557. }
  558. $R = ytapi187_query("select * from device where device_id='" . $Data['device_code'] . "'");
  559. if (empty($R)) {
  560. if (empty($Data['device_code']) || empty($Data['device_name'])) {
  561. $res['msg'] = '请填写好必要内容';
  562. $res['flag'] = false;
  563. echo json_encode($res);
  564. exit();
  565. }
  566. $token = json_decode(gettoken(), true);
  567. $sendata = [
  568. "verifyCode" => $Data['device_code'],//"868744030067098"
  569. "nodeId" => $Data['device_code'],
  570. "timeout" => 0
  571. ];
  572. $header = [
  573. "Content-Type:application/json",
  574. "app_key:" . $this->appId,
  575. "Authorization:Bearer " . $token["accessToken"]
  576. ];
  577. $rescurl = curl($this->host . "iocm/app/reg/v1.1.0/deviceCredentials?appId=" . $this->appId, json_encode($sendata), $header);
  578. if ($rescurl[0] == 200) {
  579. $res1 = json_decode($rescurl[1], true);
  580. } else {
  581. $res['msg'] = $rescurl;
  582. $res['flag'] = false;
  583. echo json_encode($res);
  584. exit();
  585. }
  586. $list = array();
  587. $list['device_id'] = trim($Data['device_code']);
  588. $list['name'] = $Data['device_name'];
  589. $list['iot_id'] = $res1['deviceId'];
  590. $list['psk'] = $res1['psk'];
  591. $list['addtime'] = date('Y-m-d H:i:s');
  592. $list['updatetime'] = date('Y-m-d H:i:s');
  593. $device_table = "dev_" . $Data['device_code'];
  594. $create_sql = "
  595. CREATE TABLE `" . $device_table . "` (
  596. `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  597. `device_id` varchar(200) DEFAULT NULL,
  598. `iot_id` varchar(255) DEFAULT NULL,
  599. `service` text,
  600. `addtime` varchar(50) DEFAULT NULL,
  601. `notifyType` varchar(50) DEFAULT NULL,
  602. PRIMARY KEY (`id`)
  603. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
  604. ytapi187_inset($create_sql);
  605. $rs = ytapi187_inset("INSERT INTO device (device_id,name,addtime,updatetime,iot_id,psk,manufacturerId,manufacturerName,deviceType
  606. ,model,location,isSecure,status,protocolType,owner_id) values ('" . $list['device_id'] . "','" . $list['name'] . "','" . $list['addtime'] . "',
  607. '" . $list['updatetime'] . "','" . $list['iot_id'] . "','" . $list['psk'] . "','','','','','','','','','')");
  608. if ($rs) {
  609. $owner1 = M()->query("SELECT company,louyu,unitinfo FROM sp_owner WHERE owner_code = '" . $Data['device_code'] . "'");
  610. if ($owner1) {
  611. $data4['owner_name'] = $Data['device_name'];
  612. $data4['unitinfo'] = $Data['unitinfo'];
  613. $data4['louyu'] = $Data['louyu'];
  614. $data4['company'] = $Data['company_code'];
  615. $where4['owner_code'] = $Data['device_code'];
  616. $res4 = M('owner')->where($where4)->save($data4);
  617. } else {
  618. $token = json_decode(gettoken(), true);
  619. $sendata = [
  620. "name" => $Data['device_code'],
  621. "deviceType" => $Data['deviceType'],
  622. "manufacturerName" => $Data['manufacturerName'],
  623. "manufacturerId" => $Data['manufacturerId'],//厂商ID ST、ZHYQ、JunyanTest、Topsail
  624. "model" => $Data['model'],
  625. "protocolType" => $Data['protocolType'],
  626. "location" => trim($Data['location'])
  627. ];
  628. $header = [
  629. "Content-Type:application/json",
  630. "app_key:" . $this->appId,
  631. "Authorization:Bearer " . $token["accessToken"]
  632. ];
  633. $rescurl = curl($this->host . "iocm/app/dm/v1.4.0/devices/" . $list['iot_id'] . "?appId=" . $this->appId, json_encode($sendata, 320), $header, "PUT");
  634. }
  635. if ($rescurl[0] == 204) {//成功
  636. $res1 = json_decode($rescurl[1], true);
  637. } else {//失败
  638. $res['msg'] = $rescurl[1];
  639. $res['flag'] = false;
  640. echo json_encode($res);
  641. exit();
  642. }
  643. $device_update = ytapi187_inset("UPDATE device set deviceType='" . $Data['deviceType'] . "',name='" . $Data['device_name'] . "',manufacturerName=
  644. '" . $Data['manufacturerName'] . "',model='" . $Data['model'] . "',isSecure='" . $Data['isSecure'] . "',manufacturerId='" . $Data['manufacturerId'] . "',
  645. protocolType='" . $Data['protocolType'] . "',location='" . $Data['location'] . "',updatetime='" . date('Y-m-d H:i:s') . "' where device_id=
  646. '" . $Data['device_code'] . "'");
  647. $device_query = ytapi187_query("select * from device where device_id='" . $Data['device_code'] . "'");
  648. $device_id = $device_query[0]['device_id'];
  649. $deviceType = $Data['deviceType'];
  650. $create_sql = addtable($device_id, $deviceType);
  651. $table = Db::execute($create_sql);
  652. $deviceStatus = M()->query("SELECT statustime FROM sp_devices_status WHERE deviceid = '" . $device_query[0]['device_id'] . "'");
  653. if (!$deviceStatus) {
  654. $data6['deviceid'] = $device_query[0]['device_id'];
  655. $data6['deviceno'] = 0;
  656. $data6['devicestatus'] = '75';
  657. $data6['statustime'] = date('Y-m-d H:i:s');
  658. $data6['f_evt'] = 40;
  659. $data6['c_evt'] = 00;
  660. $data6['w_evt'] = "";
  661. $data6['true_status'] = '75';
  662. $data6['lastcommtime'] = '0';
  663. $Res2 = M('devices_status')->add($data6);
  664. }
  665. if ($Data['company_code']) {
  666. $Res1 = M('owner')->add($data);
  667. // $Res2 = M('devices_status')->add($data1);
  668. $Res3 = M('object_share')->add($data2);
  669. }
  670. if ($device_update) {
  671. $res['msg'] = "操作成功";
  672. $res['flag'] = true;
  673. echo json_encode($res);
  674. exit();
  675. } else {
  676. $res['msg'] = "添加失败,请稍后再试";
  677. $res['flag'] = false;
  678. echo json_encode($res);
  679. exit();
  680. }
  681. } else {
  682. $res['msg'] = "添加失败,请稍后再试";
  683. $res['flag'] = false;
  684. echo json_encode($res);
  685. exit();
  686. }
  687. } else {
  688. $res['msg'] = '该设备编号已经添加';
  689. $res['flag'] = false;
  690. echo json_encode($res);
  691. exit();
  692. }
  693. break;
  694. case 'Lora':
  695. $a = '';
  696. break;
  697. case '4G':
  698. $Res1 = M('owner')->add($data);
  699. $Res2 = M('devices_status')->add($data1);
  700. $Res3 = M('object_share')->add($data2);
  701. break;
  702. default:
  703. $res['msg'] = '操作失败,该传输方式不存在,请联系管理员';
  704. $res['flag'] = false;
  705. echo json_encode($res);
  706. exit();
  707. }
  708. break;
  709. case '6'://RTU
  710. $Res1 = M('owner')->add($data);
  711. $Res2 = M('devices_status')->add($data1);
  712. break;
  713. case '7'://电气火灾
  714. $data2['dwtype'] = 'YTEF';
  715. $data2['min_level'] = $Data['min_level'];
  716. $data2['max_level'] = $Data['max_level'];
  717. $Res1 = M('owner')->add($data);
  718. $Res2 = M('devices_status')->add($data1);
  719. $Res3 = M('object_share')->add($data2);
  720. break;
  721. case '16'://视频监测
  722. $data2['dwtype'] = 'YTVA';
  723. $Res1 = M('owner')->add($data);
  724. $Res2 = M('devices_status')->add($data1);
  725. $Res3 = M('object_share')->add($data2);
  726. break;
  727. case '17'://电梯监测
  728. $data2['dwtype'] = 'YTLF';
  729. $Res1 = M('owner')->add($data);
  730. $Res2 = M('devices_status')->add($data1);
  731. $Res3 = M('object_share')->add($data2);
  732. break;
  733. case '128'://井盖
  734. $data2['dwtype'] = 'YTMC';
  735. $Res1 = M('owner')->add($data);
  736. $Res2 = M('devices_status')->add($data1);
  737. $Res3 = M('object_share')->add($data2);
  738. break;
  739. case '129'://地磁
  740. $Res1 = M('owner')->add($data);
  741. $Res2 = M('devices_status')->add($data1);
  742. break;
  743. case '130'://门禁
  744. $Res1 = M('owner')->add($data);
  745. $Res2 = M('devices_status')->add($data1);
  746. break;
  747. case '131'://可燃气体
  748. $Res1 = M('owner')->add($data);
  749. $Res2 = M('devices_status')->add($data1);
  750. break;
  751. default:
  752. $res['msg'] = '操作失败,设备类型尚未定义,请联系管理员';
  753. $res['flag'] = false;
  754. echo json_encode($res);
  755. exit();
  756. break;
  757. }
  758. if ($Res1) {
  759. $res['msg'] = '操作成功';
  760. $res['flag'] = true;
  761. echo json_encode($res);
  762. } else {
  763. $res['msg'] = '操作失败';
  764. $res['flag'] = true;
  765. echo json_encode($res);
  766. }
  767. }
  768. public function getNbApplicationList()
  769. {
  770. $url = "https://ttl.turboes.com/api/api/login";
  771. $parameter = [
  772. "appKey" => "wLHvcVHS",
  773. "appSecret" => "a9daf060059d205280646a1880cd1fc24f3c5c69"
  774. ];
  775. $accessToken = json_post($url, $parameter);
  776. $accessToken_array = json_decode($accessToken, true);
  777. // print_r($accessToken_array);
  778. if ($accessToken_array['code'] == 200) {
  779. $url = "https://ttl.turboes.com/api/ttl/api/v1/app?access_token=" . $accessToken_array['data']['token'];
  780. // $parameter=[
  781. // "access_token" => $accessToken_array['data']['token']
  782. // ];
  783. // print_r(json_encode($parameter));
  784. $R = curl_get($url);
  785. $R1 = json_decode($R, true);
  786. if ($R1['code'] == 200) {
  787. $res['msg'] = "操作成功";
  788. $res['data'] = $R1['data'];
  789. $res['flag'] = true;
  790. echo json_encode($res);
  791. } else {
  792. $res['msg'] = $R1['message'];
  793. $res['flag'] = false;
  794. echo json_encode($res);
  795. exit();
  796. }
  797. } else {
  798. $res['msg'] = $accessToken_array['message'];
  799. $res['flag'] = false;
  800. echo json_encode($res);
  801. exit();
  802. }
  803. }
  804. public function setPortConfig()
  805. {
  806. $Data = I("");
  807. $Res = M()->query("SELECT max(object_code) AS object_code FROM sp_object_share WHERE object_code LIKE '" . $Data['dwtype'] . "-" . $Data['company_code'] . "%'");
  808. if (empty($Res)) {
  809. $data['object_code'] = $Data['dwtype'] . '-' . $Data['company_code'] . '001';
  810. } else {
  811. $sort = (int)substr($Res[0]['object_code'], 10, 3) + 1;
  812. $num = str_pad($sort, 3, "0", STR_PAD_LEFT);
  813. $data['object_code'] = $Data['dwtype'] . '-' . $Data['company_code'] . $num;
  814. }
  815. $data['owner_code'] = $Data['owner_code'];
  816. $data['owner_dwtype'] = 6;
  817. $data['dwtype'] = $Data['dwtype'];
  818. $data['device_name'] = $Data['device_name'];
  819. $data['object_name'] = $Data['object_name'];
  820. $data['start_port'] = $Data['ports'];
  821. $data['rec_cur'] = 0;
  822. $data['min_level'] = $Data['floor'];
  823. $data['max_level'] = $Data['floor'];
  824. $data['is_top'] = $Data['is_top'];
  825. $R1 = M()->query("select * from sp_owner_port where owner_code='" . $Data['owner_code'] . "' and iotype=" . $Data['iotype'] . " and ports='" . $Data['ports'] . "'");
  826. if (!empty($R1[0]['id'])) {
  827. $R = M('owner_port')->where(array('id' => $R1[0]['id']))->save($Data);
  828. } else {
  829. $R = M('owner_port')->add($Data);
  830. // print_r($data);
  831. $Res3 = M('object_share')->add($data);
  832. // print_r($Res3);
  833. }
  834. if ($R) {
  835. $res['msg'] = "操作成功";
  836. $res['flag'] = true;
  837. echo json_encode($res);
  838. } else {
  839. $res['msg'] = "操作失败";
  840. $res['flag'] = false;
  841. echo json_encode($res);
  842. }
  843. }
  844. public function delPort()
  845. {
  846. $Data = I();
  847. if (!empty($Data['id'])) {
  848. $Res = M()->query("SELECT * FROM sp_object_share WHERE owner_code = '" . $Data['owner_code'] . "'");
  849. $S = M('object_share')->delete($Res[0]['id']);
  850. $R = M('owner_port')->delete($Data['id']);
  851. if ($R) {
  852. $res['msg'] = "操作成功";
  853. $res['flag'] = true;
  854. echo json_encode($res);
  855. } else {
  856. $res['msg'] = "操作失败";
  857. $res['flag'] = false;
  858. echo json_encode($res);
  859. }
  860. }
  861. }
  862. public function getDeviceListEcho()
  863. {
  864. $Data = I();
  865. $device_code=$Data['device_code'];
  866. $RES=M()->query("select * from sp_owner where owner_code='".$device_code."'");
  867. $RES1=M()->query("select * from sp_object_share where owner_code='".$device_code."'");
  868. $data[0]['id']=$RES[0]['id'];
  869. $data[0]['owner_code']=$RES[0]['owner_code'];
  870. $data[0]['owner_name']=$RES[0]['owner_name'];
  871. $data[0]['unitinfo']=$RES[0]['unitinfo'];
  872. $data[0]['louyu']=$RES[0]['louyu'];
  873. $data[0]['company']=$RES[0]['company'];
  874. $data[0]['transfer_type']=$RES[0]['transfer_type'];
  875. $data[0]['owner_bl']=$RES[0]['owner_bl'];
  876. $data[0]['sim']=$RES[0]['sim'];
  877. $data[0]['dwtype']=$RES[0]['dwtype'];
  878. if ($RES[0]['dwtype']==1){
  879. if (!empty($RES[0]['dwtype'])){
  880. $owner_xh = explode(",", $RES[0]['owner_xh']);
  881. $owner_xh1=str_split($owner_xh[1]);
  882. $data[0]['owner_xh_a']=$owner_xh1[0];
  883. $data[0]['owner_xh_b']=$owner_xh1[1];
  884. $data[0]['owner_xh_c']=$owner_xh1[2];
  885. }else{
  886. $data[0]['owner_xh_a']="";
  887. $data[0]['owner_xh_b']="";
  888. $data[0]['owner_xh_c']="";
  889. }
  890. }else{
  891. $data[0]['owner_xh_a']="";
  892. $data[0]['owner_xh_b']="";
  893. $data[0]['owner_xh_c']="";
  894. }
  895. $data[0]['min_level']=$RES1[0]['min_level'];
  896. $data[0]['max_level']=$RES1[0]['max_level'];
  897. $data[0]['is_top']=$RES1[0]['is_top'];
  898. $res['msg'] = "操作成功";
  899. $res['flag'] = true;
  900. $res['data'] = $data;
  901. echo json_encode($res);
  902. }
  903. public function upDevice(){
  904. $Data = I();
  905. if (isset($Data['device_code'])&&!empty($Data['device_code'])){
  906. $device_code=$Data['device_code'];
  907. }else{
  908. $res['msg'] = "操作失败,缺少重要参数device_code";
  909. $res['flag'] = false;
  910. echo json_encode($res);
  911. exit();
  912. }
  913. if (isset($Data['owner_name'])&&!empty($Data['owner_name'])){
  914. $data['owner_name']=$Data['owner_name'];
  915. $data1['device_name']=$Data['owner_name'];
  916. }
  917. if (isset($Data['unitinfo'])&&!empty($Data['unitinfo'])){
  918. $data['unitinfo']=$Data['unitinfo'];
  919. $data1['object_name']=$Data['unitinfo'];
  920. }
  921. if (isset($Data['louyu'])&&!empty($Data['louyu'])){
  922. $data['louyu']=$Data['louyu'];
  923. }
  924. if (isset($Data['transfer_type'])&&!empty($Data['transfer_type'])){
  925. $data['transfer_type']=$Data['transfer_type'];
  926. }
  927. if (isset($Data['owner_bl'])&&!empty($Data['owner_bl'])){
  928. $data['owner_bl']=$Data['owner_bl'];
  929. }
  930. if (isset($Data['sim'])&&!empty($Data['sim'])){
  931. $data['sim']=$Data['sim'];
  932. }
  933. // print_r($Data);
  934. if (isset($Data['owner_xh_a'])&&isset($Data['owner_xh_b'])&&isset($Data['owner_xh_c'])){
  935. $data['owner_xh'] = '0,' . $Data['owner_xh_a'] . $Data['owner_xh_b'] . $Data['owner_xh_c'];
  936. // print_r($data['owner_xh']);
  937. }
  938. // exit();
  939. if (isset($Data['min_level'])&&!empty($Data['min_level'])){
  940. $data1['min_level']=$Data['min_level'];
  941. }
  942. if (isset($Data['max_level'])&&!empty($Data['max_level'])){
  943. $data1['max_level']=$Data['max_level'];
  944. }
  945. if (isset($Data['is_top'])){
  946. $data1['is_top']=$Data['is_top'];
  947. }
  948. // $data[0]['company']=$Data['company'];
  949. // $data[0]['dwtype']=$Data['dwtype'];
  950. $where['owner_code']=$device_code;
  951. if (!empty($where)&&!empty($data)){
  952. $status = M('owner')->where($where)->save($data);
  953. }
  954. if (!empty($where)&&!empty($data1)){
  955. $status1 = M('object_share')->where($where)->save($data1);
  956. }
  957. if ($status||$status1){
  958. $res['msg'] = "操作成功";
  959. $res['flag'] = true;
  960. echo json_encode($res);
  961. }else{
  962. $res['msg'] = "操作失败";
  963. $res['flag'] = false;
  964. echo json_encode($res);
  965. }
  966. }
  967. }