OwnerController.class.php.bak.2020-11-16 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class OwnerController extends ComController {
  5. public function index(){
  6. $Data=I();
  7. if(isset($Data['list'])){
  8. $ModelList=M("owner");
  9. $GetPage=$Data['pageCurrent'];//第几页
  10. $GetSize=$Data['pageSize'];//每页条数
  11. $Gage=($GetPage-1)*$GetSize;
  12. $Map=array();
  13. if(!empty($Data['owner_name'])){
  14. $Map['sp_owner.owner_name']=array('like','%'.$Data['owner_name'].'%');
  15. }
  16. if(!empty($Data['owner_name1'])){
  17. $Map['sp_owner_company.owner_name']=array('like','%'.$Data['owner_name1'].'%');
  18. }
  19. //权限
  20. if($_SESSION['zt_username']!='admin' && $_SESSION['zt_username']!='zj')
  21. {
  22. $por=$this->getdevice();
  23. if(count($por)>0){
  24. //$por=array('10000001','10000000')
  25. if(!empty($Data['owner_code'])){
  26. $p="";
  27. foreach ($por as $val) {
  28. $p.="'".$val."',";
  29. }
  30. $p.="'www'";
  31. $Map['_string']=" (owner_code in(".$p.")) AND (owner_code LIKE '%".$Data['owner_code']."%') ";
  32. }else{
  33. $Map['owner_code']=array('in',$por);
  34. }
  35. }else{
  36. $Map['owner_code']='xxx';
  37. }
  38. }else{
  39. if(!empty($Data['owner_code'])){
  40. $Map['owner_code']=array('like','%'.$Data['owner_code'].'%');
  41. }
  42. }
  43. //$DataAuth=$this->permdata();
  44. // if(!empty($DataAuth)){
  45. // $Map['owner_code']=$DataAuth;
  46. // }
  47. //$por=$this->getdevice();
  48. //file_put_contents("/var/www/html/log/log.txt",print_r($por,true), FILE_APPEND);
  49. $Count= $ModelList->join("left join __OWNER_COMPANY__ ON owner_id=company")->where($Map)->count();// 查询满足要求的总记录数
  50. $ListData = $ModelList->field('sp_owner.id,owner_code,sp_owner.owner_name,sim,addr1,unitinfo,addr2,addr3,address,posistion,install_time,install_man,sp_owner_company.owner_name as owner_name1')
  51. ->where($Map)->order('id desc')->join("left join __OWNER_COMPANY__ ON owner_id=company")->limit($Gage,$GetSize)->select();
  52. // s_print($ListData);die;
  53. $InfoList = array(
  54. 'totalRow' => $Count,
  55. //'pageSize' => $count,//分页时不传
  56. 'list' => $ListData,
  57. );
  58. echo json_encode($InfoList);
  59. }
  60. else
  61. {
  62. $this->display();
  63. }
  64. }
  65. public function getowner(){
  66. //echo '1111';
  67. //
  68. $por=M('owner_weibao')->field('owner_code')->where(array('agentid'=>$_SESSION['zt_username']))->select();
  69. $arr=array();
  70. foreach ($por as $value) {
  71. $arr[]=$value['owner_code'];
  72. }
  73. return $arr;
  74. }
  75. public function getdevice(){
  76. //sp_user表 username=agentid
  77. //$por=M('owner_weibao')->query("SELECT owner_code FROM sp_owner WHERE company IN(SELECT owner_code FROM sp_owner_weibao WHERE agentid='".$_SESSION['zt_username']."')");
  78. $por=M()->query("SELECT owner_code FROM sp_owner WHERE install_man='".$_SESSION['zt_username']."' or company IN(SELECT owner_code FROM sp_owner_weibao WHERE agentid='".$_SESSION['zt_username']."');");
  79. $arr=array();
  80. foreach ($por as $value) {
  81. $arr[]=$value['owner_code'];
  82. }
  83. return $arr;
  84. }
  85. public function edit(){
  86. if (session('power')==2){
  87. $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1);
  88. }else{
  89. $data=I();
  90. switch ($data['type']) {
  91. case 'owner':
  92. $Owner=M('owner');
  93. //$list=$Owner->where(array('id'=> $data['id']))->select();//二维数组
  94. $list=$Owner->where(array('owner_code'=> $data['owner_code']))->select();//二维数组
  95. if (!empty($list[0]['posistion'])) {
  96. $str=explode(",", $list[0]['posistion']);
  97. $list[0]['posistion']=$str[1].','.$str[0];
  98. }
  99. $this->assign('Ownerlist',$list[0]);
  100. $company=M('owner_company')->select();
  101. $this->assign('companylist',$company);
  102. $model=M('host_model')->field("id,host_name,parts_mapping,description,CONCAT(id,',',parts_mapping) as types")->select();
  103. $this->assign('owner_xinghao',$model);
  104. $arr = explode(',',$list[0]['owner_xh']);
  105. $arr1 = str_split($arr[1]);
  106. if ($arr1[0]=='' || $arr1[0]=='z'){
  107. $arr1[0]=-2;
  108. }
  109. if ($arr1[1]=='' || $arr1[1]=='z'){
  110. $arr1[1]=-2;
  111. }
  112. if ($arr1[2]=='' || $arr1[2]=='z'){
  113. $arr1[2]=-2;
  114. }
  115. // print_r($arr);
  116. $this->assign('owner_xh_z',$arr1);
  117. $PorTyp=M('port_type')->select();
  118. $this->assign('portyp',$PorTyp);
  119. $PorSyT=M('port_systype')->select();
  120. $this->assign('porsyt',$PorSyT);
  121. $SystemType=M('systemtype')->select();
  122. $this->assign('SystemType',$SystemType);
  123. $Port=M('owner_port');//
  124. $port_list=$Port->where(array('owner_code'=> $data['owner_code']))->order('id asc')->select();//二维数组
  125. $this->assign('Portlist',$port_list);
  126. $this->assign('action','/home/Owner/edit');
  127. $this->assign('delaction','/home/Owner/del');
  128. $this->assign('delport','/home/Owner/DelPort');
  129. $this->assign('delweibao','/home/Owner/Delwei');
  130. $this->assign('delfujin','/home/Owner/Delfujin');
  131. $this->assign('owner_code_uid',$data['owner_code']);
  132. $this->display();
  133. break;
  134. case 'savaowner':
  135. $owner=M('owner');
  136. $data['install_man']=$_SESSION['zt_username'];
  137. $data['install_time']=date('Y-m-d H:i:s');
  138. if (!empty($data['posistion'])) {
  139. $str=explode(",", $data['posistion']);
  140. $data['posistion']=$str[1].','.$str[0];
  141. }
  142. // print_r($data);
  143. if ($data['dwtype']==1){
  144. $data['owner_xh']='0,'.$data['owner_xh_a'].$data['owner_xh_b'].$data['owner_xh_c'];
  145. unset($data['owner_xh_a']);
  146. unset($data['owner_xh_b']);
  147. unset($data['owner_xh_c']);
  148. }else{
  149. unset($data['owner_xh']);
  150. unset($data['owner_xh_a']);
  151. unset($data['owner_xh_b']);
  152. unset($data['owner_xh_c']);
  153. }
  154. $data1=array();
  155. $data1['iccids']=$data['sim'];
  156. $data1['device_code']=$data['owner_code'];
  157. if(!empty($data['ownerid'])){
  158. $wx=M()->query("SELECT * FROM sp_owner where id='".$data['ownerid']."'");
  159. $res = $owner->where(array('id'=> $data['ownerid']))->save($data);
  160. if($res){
  161. //日志代码开始
  162. $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---修改sp_owner表---ID:'.$data['ownerid']."数据\r\n";
  163. $data_log1 ='修改前数据:'.json_encode($wx)."\r\n";
  164. $data_log2 ='修改的数据:'.json_encode($data)."\r\n";
  165. $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log";
  166. file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX);
  167. file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX);
  168. file_put_contents($filename_log, $data_log2, FILE_APPEND|LOCK_EX);
  169. //日志代码结束
  170. $urlsim='http://39.98.37.17:8080/UskyIOT/sim/querySimStatus';
  171. $postData = http_build_query($data1);
  172. $curl = curl_init();
  173. curl_setopt($curl, CURLOPT_URL, $urlsim);
  174. curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15');
  175. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate
  176. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  177. curl_setopt($curl, CURLOPT_POST, true);
  178. curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
  179. curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
  180. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  181. $result = curl_exec($curl);
  182. curl_close($curl);
  183. $this->mtReturn(200,'配置成功');
  184. }else{
  185. echo json_encode(array('statusCode'=> 300,'message'=>'配置未改变'));
  186. }
  187. }else{
  188. $rest= $owner->where(array('owner_code'=> $data['owner_code']))->select();
  189. if(count($rest) < 1){
  190. $data['install_man']=$_SESSION['zt_username'];
  191. $res = $owner->add($data);
  192. if($res){
  193. $tab='x';
  194. //if($data['dwtype'] != '6'){//dwtype
  195. if($data['dwtype'] == '7'){
  196. $tab=$owner->execute("CALL device_table1('".$data['owner_code']."','".$data['dwtype']."')");
  197. }else{
  198. $tab=$owner->execute("CALL device_table('".$data['owner_code']."','".$data['dwtype']."')");
  199. }
  200. //}
  201. $status=$owner->execute("INSERT INTO sp_devices_status(deviceid,deviceno,devicestatus,statustime) VALUES('".$data['owner_code']."','','',NOW())");
  202. // print_r($data['owner_code']);
  203. //$trg=$owner->execute("CREATE TRIGGER `dev_status".$data['owner_code']."` AFTER INSERT ON `sp_D".$data['owner_code']."` FOR EACH ROW BEGIN CALL SetDevStatus ( new.device_code, new.device_id, new.`port`, new.istest, new.`status`, new.reserve, new.address, new.data1, new.data2, new.data3, new.data4, new.data5, new.data6, new.data7, new.data8 ); END;");
  204. $urlsim='http://39.98.37.17:8080/UskyIOT/sim/insertSim';
  205. $postData = http_build_query($data1);
  206. $curl = curl_init();
  207. curl_setopt($curl, CURLOPT_URL, $urlsim);
  208. curl_setopt($curl, CURLOPT_USERAGENT,'Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15');
  209. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // stop verifying certificate
  210. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  211. curl_setopt($curl, CURLOPT_POST, true);
  212. curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
  213. curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
  214. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  215. $result = curl_exec($curl);
  216. curl_close($curl);
  217. //日志开始
  218. $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log";
  219. $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---添加设备\r\n';
  220. $data_log1 ='添加数据:'.json_encode($data)."\r\n";
  221. file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX);
  222. file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX);
  223. //日志结束
  224. $this->mtReturn(200,'添加成功'.$res.'数据表生成'.$tab.'状态生成'.$status);
  225. }else{
  226. echo json_encode(array('statusCode'=> 300,'message'=>'添加失败'));
  227. }
  228. }else{
  229. echo json_encode(array('statusCode'=> 300,'message'=>'未添加成功,请确认是否已经添加'));
  230. }
  231. }
  232. break;
  233. case 'sevaport':
  234. $device=M('owner_port');
  235. //$data['install_man']=$_SESSION['zt_username'];
  236. //$data['install_time']=date('Y-m-d H:i:s');
  237. if(!empty($data['port_id'])){
  238. $rest= $device->where(array('id'=> $data['port_id']))->select();
  239. $res = $device->where(array('id'=> $data['port_id']))->save($data);
  240. if($res){
  241. //日志开始
  242. $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log";
  243. $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---修改sp_owner_port表---ID:'.$data['port_id']."\r\n";
  244. $data_log1 ='修改前数据:'.json_encode($rest)."\r\n";
  245. $data_log2 ='修改的数据:'.json_encode($data)."\r\n";
  246. file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX);
  247. file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX);
  248. file_put_contents($filename_log, $data_log2, FILE_APPEND|LOCK_EX);
  249. //日志结束
  250. echo json_encode($this->mtReturn(200,'配置成功'));
  251. }else{
  252. echo json_encode(array('statusCode'=> 300,'message'=>'配置未改变'));
  253. }
  254. }else{
  255. $res = $device->add($data);
  256. //日志开始
  257. $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log";
  258. $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---添加sp_owner_port表---设备编号:'.$data['owner_code']."-----端口号:".$data['ports']."\r\n";
  259. $data_log1 ='添加数据:'.json_encode($data)."\r\n";
  260. file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX);
  261. file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX);
  262. //日志结束
  263. echo $res;
  264. }
  265. break;
  266. case 'addlian':
  267. $wx=M()->query("SELECT phone,idphone,openid, username FROM ztcrm.sp_customuser where idphone='".$data['idphone']."'");
  268. $lian=M('owner_phone');
  269. if(count($wx)>0){
  270. $res=$lian->add(array('owner_code'=>$data['owner_code'],'username'=>$wx[0]['username'],'phone'=>$data['idphone'],'time'=>date('Y-m-d H:i:s'),'data1'=>$wx[0]['openid']));
  271. }else{
  272. $res=$lian->add(array('owner_code'=>$data['owner_code'],'username'=>'','phone'=>'','time'=>date('Y-m-d H:i:s'),'data1'=>''));
  273. }
  274. //
  275. $ress=$lian->where(array('id'=>$res))->select();
  276. // if ($res) {
  277. // $this->mtReturn(200,'添加成功');
  278. // }else{
  279. // $this->mtReturn(200,'添加失败');
  280. // }
  281. echo json_encode($ress[0]);
  282. break;
  283. case 'sevalian':
  284. $res=M('owner_phone')->where(array('id'=>$data['lianid']))->save($data);
  285. echo $res;
  286. break;
  287. case 'addweibao':
  288. $weibao=M('owner_weibao');
  289. $res=$weibao->add(array('agentid'=>$data['username'],'owner_code'=>$data['owner_code']));
  290. $list=$weibao->query("SELECT w.id as id, w.owner_code as owner_code ,truename,w.datetime FROM sp_owner_weibao w left JOIN sp_user u on w.agentid=u.agentid where w.id='".$res."'");
  291. // if ($res) {
  292. // $this->mtReturn(200,'添加成功');
  293. // }else{
  294. // $this->mtReturn(200,'添加失败');
  295. // }
  296. echo json_encode($list[0]);
  297. break;
  298. case 'addfujin':
  299. $fujin=M('owner_fujin');
  300. $res=$fujin->add(array('other_code'=>$data['myownercode'],'owner_code'=>$data['owner_code']));
  301. $fujinlist=$fujin->query("SELECT f.id, f.owner_code,f.other_code,owner_name,unitinfo,address FROM sp_owner_fujin f LEFT JOIN sp_owner o ON f.other_code=o.owner_code where f.id='".$res."'");
  302. // if ($res) {
  303. // $this->mtReturn(200,'添加成功');
  304. // }else{
  305. // $this->mtReturn(200,'添加失败');
  306. // }
  307. echo json_encode($fujinlist[0]);
  308. break;
  309. default:
  310. # code...
  311. break;
  312. }
  313. }
  314. }
  315. public function del(){
  316. $data=I();
  317. if(!empty($data['id'])){
  318. $device=M('owner_device');
  319. $res = $device->delete($data['id']);
  320. if($res){
  321. echo json_encode($this->mtReturn(200,'删除成功'));
  322. }else{
  323. echo json_encode(array('statusCode'=> 300,'message'=>'删除失败'));
  324. }
  325. }
  326. }
  327. public function DelPort(){
  328. $data=I();
  329. if(!empty($data['id'])){
  330. $device=M('owner_port');
  331. $used_data = M()->query("select * from sp_owner_port where id=".$data['id']);
  332. $res = $device->delete($data['id']);
  333. if($res){
  334. //日志开始
  335. $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log";
  336. $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---删除sp_owner_port表---ID:'.$data['id']."\r\n";
  337. $data_log1 ='删除前数据:'.json_encode($used_data)."\r\n";
  338. file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX);
  339. file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX);
  340. //日志开始结束
  341. echo json_encode($this->mtReturn(200,'删除成功'));
  342. }else{
  343. echo json_encode(array('statusCode'=> 300,'message'=>'删除失败'));
  344. }
  345. }
  346. }
  347. public function Delwei(){
  348. $data=I();
  349. if(!empty($data['id'])){
  350. $device=M('owner_weibao');
  351. $res = $device->delete($data['id']);
  352. if($res){
  353. echo json_encode($this->mtReturn(200,'删除成功'));
  354. }else{
  355. echo json_encode(array('statusCode'=> 300,'message'=>'删除失败'));
  356. }
  357. }
  358. }
  359. public function Dellian(){
  360. $data=I();
  361. if(!empty($data['id'])){
  362. $device=M('owner_phone');
  363. $res = $device->delete($data['id']);
  364. if($res){
  365. echo json_encode($this->mtReturn(200,'删除成功'));
  366. }else{
  367. echo json_encode(array('statusCode'=> 300,'message'=>'删除失败'));
  368. }
  369. }
  370. }
  371. public function Delfujin(){
  372. $data=I();
  373. if(!empty($data['id'])){
  374. $device=M('owner_fujin');
  375. $res = $device->delete($data['id']);
  376. if($res){
  377. echo json_encode($this->mtReturn(200,'删除成功'));
  378. }else{
  379. echo json_encode(array('statusCode'=> 300,'message'=>'删除失败'));
  380. }
  381. }
  382. }
  383. public function DelOwner(){//删除设备 未用
  384. //$Data['deviceid']
  385. $Data=I();
  386. if (!empty($Data['id'])) {
  387. $owner=M('owner');
  388. $res = $owner->delete($Data['id']);
  389. }
  390. if ($res>0) {
  391. $stu = M('devices_status')->where(array('deviceid'=>$Data['deviceid']))->delete();
  392. }
  393. if ($stu>0) {
  394. $del=$owner->execute("DROP TABLE IF EXISTS sp_d".$Data['deviceid']);
  395. }
  396. }
  397. }