SoftController.php 35 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064
  1. <?php
  2. /**
  3. * @author darkredz
  4. */
  5. class SoftController extends DooController {
  6. public $webPath="http://cld.smartcost.com.cn/upload/emailAnnex/";
  7. function __construct() {
  8. }
  9. function longleTest(){
  10. $this->render ( "/test", array() );
  11. }
  12. function categoryApi(){
  13. Doo::loadModel ( 'L_category' );
  14. $L_category = new L_category ();
  15. $category=$L_category->getCategoryBySoft();
  16. header ( 'Content-Type:text/html;charset=utf-8' );
  17. echo json_encode(array('status'=>1,'categoryList'=>$category),JSON_UNESCAPED_UNICODE);die;
  18. }
  19. function productApi(){
  20. Doo::loadModel ( 'product' );
  21. $product = new product ();
  22. $product=$product->getProudct();
  23. header ( 'Content-Type:text/html;charset=utf-8' );
  24. echo json_encode(array('status'=>1,'productList'=>$product),JSON_UNESCAPED_UNICODE);die;
  25. }
  26. function addLockApi(){
  27. $longleList=isset($_POST['longle'])?$_POST['longle']:"";
  28. //$longleList='[{"key_num":"ZH-04400","serialnumber":"273800F808338043","product":"全国专业+固化清单全功能+全国专业","make_day":"2020/1/2 17:44:37","alloted_time":"","version":"","cid":"6","title":"江西办","licences":"0"}]';
  29. //echo $longleList.'dddd';die;
  30. header ( 'Content-Type:text/html;charset=utf-8' );
  31. if($longleList!=""){
  32. Doo::loadModel ( 'longle' );
  33. Doo::loadModel ( 'longle_log' );
  34. //$exlArray=$this->_format_excel_to_array(DOO::conf()->SITE_PATH."upload/".iconv("UTF-8", "GB2312", $path));
  35. //file_put_contents ( "protected/config/longle2.bak", $longleList );
  36. $longleList=json_decode($longleList,TRUE);
  37. if (!is_array($longleList)){
  38. echo json_encode(array('status'=>2,'msg'=>'锁数据不正确'),JSON_UNESCAPED_UNICODE);die;
  39. }
  40. //数组格式化,新增字段需要在这新增
  41. $longleList=$this->array_unique_fb($longleList);
  42. // print_r($longleList);
  43. //$category=$L_category->getCategoryById($cid);
  44. try {
  45. Doo::db()->beginTransaction();
  46. foreach ($longleList as $key=>$value){
  47. // echo 'key_num like "%'.$value['key_num'].'%" or SerialNumber like "%'.$value['serialnumber'].'%"';
  48. $longle = new longle ();
  49. $repeatDetail=$longle->getOne(array (
  50. 'where' => 'key_num like "%'.$value['key_num'].'%" or SerialNumber like "%'.$value['serialnumber'].'%"',
  51. 'limit' => '1',
  52. 'asArray' => TRUE
  53. ));
  54. if(!empty($repeatDetail)){
  55. echo json_encode(array('status'=>3,'dataDetail'=>$repeatDetail,'msg'=>'已存在该锁的数据'),JSON_UNESCAPED_UNICODE);die;
  56. }
  57. //锁记录
  58. $longle = new longle ();
  59. $longle->key_num=$value['key_num'];
  60. $longle->product=$value['product'];
  61. $longle->make_day=$value['make_day'];
  62. $longle->alloted_time=$value['alloted_time'];
  63. $longle->status=1;
  64. $longle->statusT="生成";
  65. $longle->cid=$value['cid'];
  66. $longle->category=$value['title'];
  67. $longle->SerialNumber=$value['serialnumber'];
  68. $longle->version=$value['version'];
  69. $longle->licences=$value['licences'];
  70. $lid=$longle->insert();
  71. //锁日志记录
  72. $longle_log=new longle_log();
  73. $longle_log->lid=$lid;
  74. $longle_log->status=1;
  75. $longle_log->statusT="生成";
  76. $longle_log->operator='软件生成';
  77. $longle_log->product=$longle->product;
  78. $longle_log->category='总部';
  79. $longle_log->dateline=date("Y-m-d");
  80. $id=$longle_log->insert();
  81. break;
  82. }
  83. //记录日常行为
  84. Doo::loadModel("action_log");
  85. $action_log=new action_log();
  86. $action_log->action='总部<b href="javascript:void(0)" >软件</b>生成<a href="javascript:void(0)" onclick="showLook(\''.$longleList[0]['key_num'].'\')">'.$longleList[0]['key_num'].'</a>等<b>'.count($longleList).'</b>个锁';
  87. $action_log->sid=43;
  88. $action_log->cid=12;
  89. $action_log->class=$action_log->iconGenerate;
  90. $action_log->updatetime=date("Y-m-d");
  91. $action_log->time=date("H:i");
  92. $action_log->status=11;
  93. $action_log->insert();
  94. Doo::db()->commit();
  95. } catch (Exception $e) {
  96. echo json_encode(array('status'=>2,'msg'=>'数据录入发生异常'),JSON_UNESCAPED_UNICODE);
  97. //print $e->getMessage();
  98. die;
  99. }
  100. echo json_encode(array('status'=>1,'msg'=>'入库'.count($longleList).'个'),JSON_UNESCAPED_UNICODE);die;
  101. }else{
  102. echo json_encode(array('status'=>2,'msg'=>'请求参数不正确或者为空'),JSON_UNESCAPED_UNICODE);die;
  103. }
  104. }
  105. function updateLockApi(){
  106. /* $serialnumber = $this->get_args ( 'serialnumber' ) ? $this->get_args ( 'serialnumber' ) : "";
  107. $alloted_time = $this->get_args ( 'alloted_time' ) ? $this->get_args ( 'alloted_time' ) : '';
  108. $product = $this->get_args ( 'product' ) ? $this->get_args ( 'product' ) : "";
  109. //$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 0;//5升级 10延期
  110. $UpdateStr = $this->get_args ( 'UpdateStr' ) ? $this->get_args ( 'UpdateStr' ) : "";
  111. $UpdateFile = $this->get_args ( 'UpdateFile' ) ? $this->get_args ( 'UpdateFile' ) : "";
  112. $AuthorizeStr = $this->get_args ( 'AuthorizeStr' ) ? $this->get_args ( 'AuthorizeStr' ) : "";
  113. $AuthorizeFile = $this->get_args ( 'AuthorizeFile' ) ? $this->get_args ( 'AuthorizeFile' ) : "";
  114. $version = $this->get_args ( 'version' ) ? $this->get_args ( 'version' ) : "";
  115. $licences = $this->get_args ( 'licences' ) ? $this->get_args ( 'licences' ) : ""; */
  116. $longleList=isset($_POST['longle'])?$_POST['longle']:"";
  117. //$longleList='[{"serialnumber":"168600076BAA3300","product":"全国专业+固化清单全功能+广东专业+全国项目专业+内蒙养护+定额排版+贵州标后预算+广东项目专业+标后预算+广东算量+结算决算-全功能+全国算量+全国专业(新定额)+广东专业","alloted_time":"","version":"","licences":"","UpdateStr":"0E5343205570646174652046696C655C53634C6F630A000000000100002B305E9593E44844FE8FAC07873FF470D991DDEC5D6828EBF41F373588739F5C18D13441D73894F6BD6C430BBE6E167AC62554F6997CA615B5A13E5DFC7AF2D60A1AA47820FA2ED268100ED71072943393C8B75D3314D074DE9798FF75F80E7AE562AEC80E022189B518C84ABC7D68F01DF1BA532ED68FDC77BE9BAC4A15B4D144CAD0CE4880D94CEBA12C409006C0DAD2B65E2AACDFE9425EEB4E95CF08027308FAB81DFA8CFE9BD8AC95D3602B439CE41BBB38CA9E8378D1C7229320ACA1545F0705E8B34DB048E7C12E68145F1A961D12442801897FC7FCFBF311AACC242C17F318AADE449B5F8A61A1C657304D74B385D99B7A69CE957CF2D36F138A681E","length":"285","key_num":"SC-Z11051"}]';//
  118. //print_r($longleList);
  119. //file_put_contents ( "protected/config/longle.bak", $longleList );
  120. $longleList=json_decode($longleList,TRUE);
  121. // $file=isset($_POST['file'])?$_POST['file']:"";
  122. // file_put_contents("protected/config/sites.txt",$file);
  123. header ( 'Content-Type:text/html;charset=utf-8' );
  124. if (!is_array($longleList)){
  125. echo json_encode(array('status'=>2,'msg'=>'锁数据不正确'),JSON_UNESCAPED_UNICODE);die;
  126. }
  127. //数组格式化,新增字段需要在这新增
  128. //$longleList=$this->array_unique_update($longleList);
  129. $serialnumber=$longleList[0]['serialnumber'];
  130. $alloted_time=$longleList[0]['alloted_time'];
  131. $product=$longleList[0]['product'];
  132. $UpdateStr=$longleList[0]['UpdateStr'];
  133. $UpdateFile='';//$longleList[0]['UpdateFile'];
  134. $AuthorizeStr='';//$longleList[0]['AuthorizeStr'];
  135. $AuthorizeFile='';//$longleList[0]['AuthorizeFile'];
  136. $version=$longleList[0]['version'];
  137. $licences=$longleList[0]['licences'];
  138. $length=$longleList[0]['length'];
  139. $key_num='';
  140. if(isset($longleList[0]['key_num'])) {
  141. $key_num=$longleList[0]['key_num'];
  142. }
  143. Doo::loadModel ( 'longle' );
  144. $longle = new longle ();
  145. if (empty($serialnumber)){
  146. echo json_encode(array('status'=>2,'msg'=>'未找到该锁信息-serialnumber'),JSON_UNESCAPED_UNICODE);
  147. die;
  148. }
  149. if(!empty($key_num)){
  150. $linfo = $longle->getLongleByKeyNumDetail( $key_num,$serialnumber );
  151. }else{
  152. $linfo = $longle->getLongleBySerialNumber( $serialnumber );
  153. }
  154. //$linfo = $longle->getLongleBySerialNumber( $serialnumber );
  155. if (empty($linfo)){
  156. echo json_encode(array('status'=>2,'msg'=>'未找到该锁信息-serialnumber2'),JSON_UNESCAPED_UNICODE);
  157. die;
  158. }
  159. $save_path = DOO::conf ()->SITE_PATH . "upload/longle/";
  160. $webSite = '/upload/longle/';
  161. $file_name = $linfo['key_num'].' - '.$serialnumber.'.' . $this->_GetFileEXT ( $_FILES ["file"] ['name'] );
  162. if (! @move_uploaded_file ( $_FILES ["file"] ["tmp_name"], $save_path . $file_name )){
  163. echo json_encode(array('status'=>2,'msg'=>'未找到上传文件'),JSON_UNESCAPED_UNICODE);die;
  164. }else{
  165. $UpdateFile = $webSite . $file_name;
  166. }
  167. $strFile=file_get_contents($save_path . $file_name);
  168. $strFile=substr($strFile , 0 , $length);
  169. file_put_contents($save_path . $file_name,$strFile);
  170. Doo::loadModel ( 'longle_log' );
  171. $longle_log = new longle_log ();
  172. Doo::loadModel ( 'client' );
  173. $clientobj = new client ();
  174. Doo::loadModel ( "action_log" );
  175. if ($product != ""){
  176. $longle->product = $product;
  177. }
  178. $longle->statusT = "升级";
  179. $longle_log->product = $product;
  180. $longle_log->statusT = "升级";
  181. $longle_log->client = $linfo ['client'];
  182. $longle_log->clientid = $linfo ['clientid'];
  183. $clientname = $clientobj->getOne ( array (
  184. 'where' => "cid= '" . $linfo ['clientid'] . "'",
  185. 'asArray' => TRUE
  186. ) );
  187. // 日常行为
  188. $action_log = new action_log ();
  189. $action_log->action = '软件 为<a href="javascript:void(0)" onclick="showClick(\'' . $linfo ['clientid'] . '\')">' . $linfo ['client'] . '</a>(' . $clientname ['companyname'] . ')升级为<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a>';
  190. $action_log->sid = 32;
  191. $action_log->cid = 12;
  192. $action_log->updatetime = date ( "Y-m-d" );
  193. $action_log->time = date ( "H:i" );
  194. $action_log->class = $action_log->iconUpdate;
  195. $action_log->status = 7;
  196. $action_log->insert ();
  197. if(!empty($alloted_time)){
  198. $longle->alloted_time = $alloted_time;
  199. }
  200. if(!empty($version)){
  201. $longle->version=$version;
  202. }
  203. if(!empty($licences)){
  204. $longle->licences=$licences;
  205. }
  206. if(!empty($AuthorizeStr)){
  207. $longle->AuthorizeStr=$AuthorizeStr;
  208. }
  209. if(!empty($AuthorizeFile)){
  210. $longle->AuthorizeFile=$AuthorizeFile;
  211. }
  212. if(!empty($UpdateStr)){
  213. $longle->UpdateStr=$UpdateStr;
  214. }
  215. if(!empty($UpdateFile)){
  216. $longle->UpdateFile=$UpdateFile;
  217. }
  218. $longle->status = 5;
  219. $longle->lid = $linfo['lid'];
  220. $longle->update ();
  221. $longle_log->lid = $linfo['lid'];
  222. $longle_log->status = 5;
  223. $longle_log->operator = '软件';
  224. // 责任人
  225. $longle_log->category = '总部';
  226. $longle_log->dateline = date ( "Y-m-d" );
  227. $longle_log->insert ();
  228. echo json_encode(array('status'=>1,'msg'=>'变更成功'),JSON_UNESCAPED_UNICODE);
  229. die;
  230. }
  231. function longleBySerialnumber(){
  232. //$longleList=isset($_POST['longle'])?$_POST['longle']:'{"serialnumber":"1B6C000758730019"}';
  233. $longleList=isset($_POST['longle'])?$_POST['longle']:'';
  234. //file_put_contents ( "protected/config/longle2.bak", $longleList );
  235. $longleList=json_decode($longleList,TRUE);
  236. header ( 'Content-Type:text/html;charset=utf-8' );
  237. if (!is_array($longleList)){
  238. echo json_encode(array('status'=>2,'msg'=>'JSON结构不正确'),JSON_UNESCAPED_UNICODE);die;
  239. }
  240. $serialnumber=$longleList['serialnumber'];
  241. Doo::loadModel ( 'longle' );
  242. $longle = new longle ();
  243. $list = $longle->getLongleBySerialNumberList( $serialnumber );
  244. if (empty($list)){
  245. echo json_encode(array('status'=>2,'msg'=>'为找到该序列号'.$serialnumber.'相关的锁信息'),JSON_UNESCAPED_UNICODE);die;
  246. }
  247. header ( 'Content-Type:text/html;charset=utf-8' );
  248. echo json_encode(array('status'=>1,'longleList'=>$list),JSON_UNESCAPED_UNICODE);die;
  249. }
  250. function syncLongleData(){
  251. //$longleList='{"serialnumber":"1676000455CBB200","licences":"0","version":"","AuthorizeStr":"0C534320417574682046696C6564655C53634C6F631E00000080010000D09E2CB35293F221CD984B02D7AA32B4F193902E05D5B8A04532B2D6AB25F38EE3933ECA7199B142ABCEA8773DD467D24112C2AFFAB792EA715B72838C912DB9DE66EA4F00CEB927A21D1F83444101D70469B1DE23B0B407EB115347AA756D8C6B1D6A1E2C4C811FB538EA5C5E096C1F000D227F129F332475CCBF955811BB7BD86FCFD08F52E57508DCE48DEB808CDDA1A93D0D30825ED4844F5C0B991E4A62137FF548C508243AC59E454A6C63AEF3486A0F3F066F545F4CC71052FEE860270A59FD966877277CED6D939BEA91C104608C146BD1EDED0F6500CB3C7890E15CC1DB5976365BFE498002D4F010AF8D95CE791735B7FA0E0D62077BEAF4470A930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","UpdateStr":"","AuthorizeFileLength":"413","UpdateFileLength":"0"}';
  252. $longleList=isset($_POST['longle'])?$_POST['longle']:"";
  253. file_put_contents ( "protected/config/longle.bak", $longleList );
  254. $longleList=json_decode($longleList,TRUE);
  255. //print_r($longleList);
  256. header ( 'Content-Type:text/html;charset=utf-8' );
  257. if (!is_array($longleList)){
  258. echo json_encode(array('status'=>2,'msg'=>'JSON结构不正确'),JSON_UNESCAPED_UNICODE);die;
  259. }
  260. //数组格式化,新增字段需要在这新增
  261. //$longleList=$this->array_unique_sync($longleList);
  262. //print_r($longleList);
  263. $serialnumber=$longleList['serialnumber'];
  264. //$alloted_time=$longleList[0]['alloted_time'];
  265. $version=$longleList['version'];
  266. $licences=$longleList['licences'];
  267. $UpdateStr=$longleList['UpdateStr'];
  268. $UpdateFile='';
  269. $AuthorizeStr=$longleList['AuthorizeStr'];
  270. $AuthorizeFile='';
  271. $AuthorizeFileLength=$longleList['AuthorizeFileLength'];
  272. $UpdateFileLength=$longleList['UpdateFileLength'];
  273. $key_num='';
  274. if(isset($longleList['key_num'])) {
  275. $key_num=$longleList['key_num'];
  276. }
  277. //文件上传处理
  278. Doo::loadModel ( 'longle' );
  279. $longle = new longle ();
  280. if (empty($serialnumber)){
  281. echo json_encode(array('status'=>2,'msg'=>'未找到该锁信息-empty'),JSON_UNESCAPED_UNICODE);
  282. die;
  283. }
  284. if(!empty($key_num)){
  285. $linfo = $longle->getLongleByKeyNumDetail( $key_num,$serialnumber );
  286. }else{
  287. $linfo = $longle->getLongleBySerialNumber( $serialnumber );
  288. }
  289. if (empty($linfo)){
  290. echo json_encode(array('status'=>2,'msg'=>'未找到该锁信息-serialnumber'),JSON_UNESCAPED_UNICODE);
  291. die;
  292. }
  293. $save_path = DOO::conf ()->SITE_PATH . "upload/longle/";
  294. $webSite = '/upload/longle/';
  295. //处理注册文件
  296. // var_dump($_FILES);
  297. // $file_name = ' - 123.' . $this->_GetFileEXT ( $_FILES ["authorizefile"] ['name'] );
  298. // move_uploaded_file ( $_FILES ["authorizefile"] ["tmp_name"], $save_path . $file_name );
  299. // die;
  300. if(!empty($AuthorizeStr)){
  301. if(isset($_FILES ["AuthorizeFile"])){
  302. $file_name = $linfo['key_num'].' - '.$serialnumber.'.' . $this->_GetFileEXT ( $_FILES ["AuthorizeFile"] ['name'] );
  303. if (!@move_uploaded_file ( $_FILES ["AuthorizeFile"] ["tmp_name"], $save_path . $file_name )){
  304. echo json_encode(array('status'=>2,'msg'=>'上传文件失败-AuthorizeFile'),JSON_UNESCAPED_UNICODE);die;
  305. }else{
  306. $AuthorizeFile = $webSite . $file_name;
  307. $strFile=file_get_contents($save_path . $file_name);
  308. $strFile=substr($strFile , 0 , $AuthorizeFileLength);
  309. file_put_contents($save_path . $file_name,$strFile);
  310. }
  311. }else{
  312. echo json_encode(array('status'=>2,'msg'=>'检查不到AuthorizeFile变量'),JSON_UNESCAPED_UNICODE);die;
  313. }
  314. }
  315. //处理升级文件
  316. if(!empty($UpdateStr)){
  317. if(isset($_FILES ["UpdateFile"])){
  318. $file_name = $linfo['key_num'].' - '.$serialnumber.'.' . $this->_GetFileEXT ( $_FILES ["UpdateFile"] ['name'] );
  319. if (! @move_uploaded_file ( $_FILES ["UpdateFile"] ["tmp_name"], $save_path . $file_name )){
  320. echo json_encode(array('status'=>2,'msg'=>'上传文件失败-UpdateFile'),JSON_UNESCAPED_UNICODE);die;
  321. }else{
  322. $UpdateFile = $webSite . $file_name;
  323. $strFile=file_get_contents($save_path . $file_name);
  324. $strFile=substr($strFile , 0 , $UpdateFileLength);
  325. file_put_contents($save_path . $file_name,$strFile);
  326. }
  327. }else{
  328. echo json_encode(array('status'=>2,'msg'=>'检查不到UpdateFile变量'),JSON_UNESCAPED_UNICODE);die;
  329. }
  330. }
  331. // 日常行为
  332. Doo::loadModel ( "action_log" );
  333. $action_log = new action_log ();
  334. Doo::loadModel ( 'longle_log' );
  335. $longle_log = new longle_log ();
  336. $mark='软件 更新';$mark2='';
  337. if(!empty($AuthorizeStr)){
  338. $longle->AuthorizeStr=$AuthorizeStr;
  339. $mark.=' 注册码 ';
  340. $mark2.=' 注册码 ';
  341. }
  342. if(!empty($UpdateStr)){
  343. $longle->UpdateStr=$UpdateStr;
  344. $mark.=' 文件 ';
  345. $mark2.=' 文件 ';
  346. }
  347. $action_log->action = '软件 更新<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a> '.$mark2;
  348. $action_log->status = 13;
  349. $longle_log->status = 8;
  350. $longle_log->mark =$mark;
  351. //日常操作记录
  352. $action_log->sid = 32;
  353. $action_log->cid = 12;
  354. $action_log->updatetime = date ( "Y-m-d" );
  355. $action_log->time = date ( "H:i" );
  356. $action_log->class = $action_log->iconLock;
  357. $action_log->insert ();
  358. //锁信息更新
  359. if(!empty($version)){
  360. $longle->version=$version;
  361. }
  362. if(!empty($licences)){
  363. $longle->licences=$licences;
  364. }
  365. //更新序列号
  366. /* if(!empty($key_num)){
  367. if(!empty($serialnumber)){
  368. $longle->SerialNumber=$serialnumber;
  369. }
  370. } */
  371. if(!empty($AuthorizeFile)){
  372. $longle->AuthorizeFile=$AuthorizeFile;
  373. }
  374. if(!empty($UpdateFile)){
  375. $longle->UpdateFile=$UpdateFile;
  376. }
  377. $longle->lid = $linfo['lid'];
  378. $longle->update ();
  379. //锁操作日志
  380. $longle_log->lid = $linfo['lid'];
  381. $longle_log->operator = '软件';
  382. // 责任人
  383. $longle_log->category = '总部';
  384. $longle_log->dateline = date ( "Y-m-d" );
  385. $longle_log->insert ();
  386. echo json_encode(array('status'=>1,'msg'=>'同步成功'),JSON_UNESCAPED_UNICODE);
  387. die;
  388. }
  389. function alterationLongle(){
  390. $longleList=isset($_POST['longle'])?$_POST['longle']:"";
  391. //'[{"serialnumber":"167700074DCEA600","alloted_time":"2020/11/28","version":"年限","AuthorizeStr":"0C534320417574682046696C6564655C53634C6F631E00000080010000762C68DF17103DF2B46828FC9D0A42DE45519A93C56CECD56E6282DCD680997571E19ACFCE497650EFEC739F843033B533B1670F35975FD17A61E539821C0D5EA94C12B8AAD9E5CBDC4BE3F888F559E2210BD512284C2937140131CB7211EDEED2A59E0587A88A664D6BC5B3FD7C5834B5997DC878410103ED4B1B5C111F694EACB8EF5FB4929E8557F2BD074A25966954E3B706195763E8D553BDF64F96FE6E5B94B2AAE91C0EBC5CBD4EF298C75AB923C59C06A962B408C7473E0A9DDCA44592C88471ED273DEBDEDE4491A680D834B579CBB007838AA61FAB5F1DEC0B287C06641A7E4B95C64F69BC18B4F60C5151942473B26C51D5F08A9DA0760987E7F90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}]';//
  392. //file_put_contents ( "protected/config/longle.bak", $longleList );
  393. // $file=isset($_POST['file'])?$_POST['file']:"";
  394. // file_put_contents("protected/config/sites.txt",$file);
  395. $longleList=json_decode($longleList,TRUE);
  396. header ( 'Content-Type:text/html;charset=utf-8' );
  397. if (!is_array($longleList)){
  398. echo json_encode(array('status'=>2,'msg'=>'锁数据不正确'),JSON_UNESCAPED_UNICODE);die;
  399. }
  400. //数组格式化,新增字段需要在这新增
  401. //$longleList=$this->array_unique_alteration($longleList);
  402. $serialnumber=$longleList[0]['serialnumber'];
  403. $alloted_time=$longleList[0]['alloted_time'];
  404. $version=$longleList[0]['version'];
  405. $UpdateStr='';//$longleList[0]['UpdateStr'];
  406. $UpdateFile='';//$longleList[0]['UpdateFile'];
  407. $AuthorizeStr=$longleList[0]['AuthorizeStr'];
  408. $AuthorizeFile='';
  409. $length=$longleList[0]['length'];
  410. $key_num='';
  411. if(isset($longleList[0]['key_num'])) {
  412. $key_num=$longleList[0]['key_num'];
  413. }
  414. //文件上传处理
  415. Doo::loadModel ( 'longle' );
  416. $longle = new longle ();
  417. if (empty($serialnumber)){
  418. echo json_encode(array('status'=>2,'msg'=>'未找到该锁信息'),JSON_UNESCAPED_UNICODE);
  419. die;
  420. }
  421. if(!empty($key_num)){
  422. $linfo = $longle->getLongleByKeyNumDetail( $key_num,$serialnumber );
  423. }else{
  424. $linfo = $longle->getLongleBySerialNumber( $serialnumber );
  425. }
  426. //$linfo = $longle->getLongleBySerialNumber( $serialnumber );
  427. if (empty($linfo)){
  428. echo json_encode(array('status'=>2,'msg'=>'未找到该锁信息'),JSON_UNESCAPED_UNICODE);
  429. die;
  430. }
  431. $save_path = DOO::conf ()->SITE_PATH . "upload/longle/";
  432. $webSite = '/upload/longle/';
  433. $file_name = $linfo['key_num'].' - '.$serialnumber.'.' . $this->_GetFileEXT ( $_FILES ["file"] ['name'] );
  434. if (! @move_uploaded_file ( $_FILES ["file"] ["tmp_name"], $save_path . $file_name )){
  435. echo json_encode(array('status'=>2,'msg'=>'未找到上传文件'),JSON_UNESCAPED_UNICODE);die;
  436. }else{
  437. $AuthorizeFile = $webSite . $file_name;
  438. }
  439. $strFile=file_get_contents($save_path . $file_name);
  440. $strFile=substr($strFile , 0 , $length);
  441. file_put_contents($save_path . $file_name,$strFile);
  442. $licences='';//$longleList[0]['licences'];
  443. /* $serialnumber = $this->get_args ( 'serialnumber' ) ? $this->get_args ( 'serialnumber' ) : "";
  444. $alloted_time = isset($_POST['alloted_time'])?$_POST['alloted_time']:"";
  445. //$alloted_time = $this->get_args ( 'alloted_time' ) ? $this->get_args ( 'alloted_time' ) : '';
  446. //$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 0;//5升级 10延期
  447. $UpdateStr = $this->get_args ( 'UpdateStr' ) ? $this->get_args ( 'UpdateStr' ) : "";
  448. $UpdateFile = $this->get_args ( 'UpdateFile' ) ? $this->get_args ( 'UpdateFile' ) : "";
  449. $AuthorizeStr = $this->get_args ( 'AuthorizeStr' ) ? $this->get_args ( 'AuthorizeStr' ) : "";
  450. $AuthorizeFile = $this->get_args ( 'AuthorizeFile' ) ? $this->get_args ( 'AuthorizeFile' ) : "";
  451. $version = $this->get_args ( 'version' ) ? $this->get_args ( 'version' ) : "";
  452. $licences = $this->get_args ( 'licences' ) ? $this->get_args ( 'licences' ) : ""; */
  453. // 日常行为
  454. Doo::loadModel ( "action_log" );
  455. $action_log = new action_log ();
  456. Doo::loadModel ( 'longle_log' );
  457. $longle_log = new longle_log ();
  458. $mark='软件 更新';$mark2='';
  459. if(!empty($AuthorizeStr)){
  460. $longle->AuthorizeStr=$AuthorizeStr;
  461. $mark.=' 注册码 ';
  462. $mark2.=' 注册码 ';
  463. }
  464. if(!empty($UpdateStr)){
  465. $longle->UpdateStr=$UpdateStr;
  466. $mark.=' 文件 ';
  467. $mark2.=' 文件 ';
  468. }
  469. if(empty($version)){
  470. $action_log->action = '软件 为<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a> 延期至 ';
  471. $action_log->status = 12;
  472. $longle->alloted_time = '';//更新锁延期时间
  473. // $longle->status = 10;
  474. // $longle->statusT='延期';
  475. $longle_log->status = 10;
  476. $longle_log->mark ='由'.$linfo['alloted_time'].'延期至 ';
  477. /*$action_log->action = '软件 更新<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a> '.$mark2;
  478. $action_log->status = 13;
  479. $longle_log->status = 8;
  480. $longle_log->mark =$mark; */
  481. }else{
  482. if (empty($alloted_time)){
  483. $action_log->action = '软件 为<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a> 延期至 ';
  484. $action_log->status = 12;
  485. $longle->alloted_time = '';//更新锁延期时间
  486. // $longle->status = 10;
  487. // $longle->statusT='延期';
  488. $longle_log->status = 10;
  489. $longle_log->mark ='由'.$linfo['alloted_time'].'延期至 ';
  490. /*
  491. echo json_encode(array('status'=>2,'msg'=>'限制时间未接收'),JSON_UNESCAPED_UNICODE);die;
  492. $action_log->action = '软件 更新<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a> '.$mark2;
  493. $action_log->status = 13;
  494. $longle_log->status = 8;
  495. $longle_log->mark =$mark; */
  496. }else{
  497. $action_log->action = '软件 为<a href="javascript:void(0)" onclick="showLook(\'' . $linfo ['key_num'] . '\')">' . $linfo ['key_num'] . '</a> 延期至'.$alloted_time;
  498. $action_log->status = 12;
  499. $longle->alloted_time = $alloted_time;//更新锁延期时间
  500. //$longle->status = 10;
  501. $longle_log->status = 10;
  502. $longle_log->mark ='由'.$linfo['alloted_time'].'延期至'.$alloted_time;
  503. }
  504. }
  505. //日常操作记录
  506. $action_log->sid = 32;
  507. $action_log->cid = 12;
  508. $action_log->updatetime = date ( "Y-m-d" );
  509. $action_log->time = date ( "H:i" );
  510. $action_log->class = $action_log->iconLock;
  511. $action_log->insert ();
  512. //锁信息更新
  513. if(!empty($version)){
  514. $longle->version=$version;
  515. }
  516. if(!empty($licences)){
  517. $longle->licences=$licences;
  518. }
  519. if(!empty($AuthorizeFile)){
  520. $longle->AuthorizeFile=$AuthorizeFile;
  521. }
  522. if(!empty($UpdateFile)){
  523. $longle->UpdateFile=$UpdateFile;
  524. }
  525. $longle->lid = $linfo['lid'];
  526. $longle->update ();
  527. //锁操作日志
  528. $longle_log->lid = $linfo['lid'];
  529. $longle_log->operator = '软件';
  530. // 责任人
  531. $longle_log->category = '总部';
  532. $longle_log->dateline = date ( "Y-m-d" );
  533. $longle_log->insert ();
  534. echo json_encode(array('status'=>1,'msg'=>'变更成功'),JSON_UNESCAPED_UNICODE);
  535. die;
  536. }
  537. /**
  538. * 获取get或者POST值
  539. * @param string $name 属性名称
  540. * @return fixed 值
  541. */
  542. function get_args($name) {
  543. if (isset ( $_GET [$name] )) {
  544. if (is_array ( $_GET [$name] ))
  545. return $_GET [$name];
  546. else {
  547. return addslashes ( $_GET [$name] );
  548. }
  549. } elseif (isset ( $_POST [$name] )) {
  550. if (is_array ( $_POST [$name] ))
  551. return $_POST [$name];
  552. else {
  553. return addslashes ( $_POST [$name] );
  554. }
  555. } else {
  556. return false;
  557. }
  558. }
  559. function postEmail($elid){
  560. if (!empty($elid)){
  561. $url = 'http://sendcloud.sohu.com/webapi/mail.send.json';
  562. $param = array('api_user' => 'cldmail',
  563. 'api_key' => 'cDO1GjtY1seH',
  564. 'to'=>'cpthought@vip.qq.com',
  565. 'from' =>'cpthought@vip.qq.com',
  566. 'fromname' => '软件导入CLD锁接口',
  567. 'subject' => '软件导入CLD锁接口通知',
  568. 'html' => $elid);
  569. $post_data = http_build_query($param);
  570. $ch = curl_init();
  571. curl_setopt($ch, CURLOPT_POST, 1);
  572. curl_setopt($ch, CURLOPT_URL,$url);
  573. curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容
  574. curl_setopt($ch, CURLOPT_NOBODY, false);
  575. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  576. $result =curl_exec($ch);
  577. curl_close($ch);
  578. }
  579. }
  580. function array_unique_fb($array2D){
  581. foreach ($array2D as $k=>$v){
  582. $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
  583. $temp[$k]=$v;
  584. }
  585. $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
  586. foreach ($temp as $k => $v){
  587. $array=explode(',',$v); //再将拆开的数组重新组装
  588. //下面的索引根据自己的情况进行修改即可
  589. $temp2[$k]['key_num'] =$array[0];
  590. $temp2[$k]['serialnumber'] =$array[1];
  591. $temp2[$k]['product'] =$array[2];
  592. $temp2[$k]['make_day'] =$array[3];
  593. $temp2[$k]['alloted_time'] =$array[4];
  594. $temp2[$k]['version'] =$array[5];
  595. $temp2[$k]['cid'] =$array[6];
  596. $temp2[$k]['title'] =$array[7];
  597. $temp2[$k]['licences'] =$array[8];
  598. $temp2[$k]['AuthorizeStr'] =$array[9];
  599. $temp2[$k]['UpdateStr'] =$array[10];
  600. }
  601. return $temp2;
  602. }
  603. function array_unique_sync($array2D){
  604. foreach ($array2D as $k=>$v){
  605. $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
  606. $temp[$k]=$v;
  607. }
  608. $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
  609. foreach ($temp as $k => $v){
  610. $array=explode(',',$v); //再将拆开的数组重新组装
  611. //下面的索引根据自己的情况进行修改即可
  612. $temp2[$k]['serialnumber'] =$array[0];
  613. $temp2[$k]['licences'] =$array[1];
  614. $temp2[$k]['version'] =$array[2];
  615. $temp2[$k]['AuthorizeStr'] =$array[3];
  616. $temp2[$k]['UpdateStr'] =$array[4];
  617. $temp2[$k]['AuthorizeFileLength'] =$array[5];
  618. $temp2[$k]['UpdateFileLength'] =$array[6];
  619. }
  620. return $temp2;
  621. }
  622. function array_unique_alteration($array2D){
  623. foreach ($array2D as $k=>$v){
  624. $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
  625. $temp[$k]=$v;
  626. }
  627. $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
  628. foreach ($temp as $k => $v){
  629. $array=explode(',',$v); //再将拆开的数组重新组装
  630. //下面的索引根据自己的情况进行修改即可
  631. $temp2[$k]['serialnumber'] =$array[0];
  632. $temp2[$k]['alloted_time'] =$array[1];
  633. $temp2[$k]['version'] =$array[2];
  634. $temp2[$k]['AuthorizeStr'] =$array[3];
  635. $temp2[$k]['length'] =$array[4];
  636. //$temp2[$k]['AuthorizeFile'] =$array[4];
  637. }
  638. return $temp2;
  639. }
  640. function array_unique_update($array2D){
  641. foreach ($array2D as $k=>$v){
  642. $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
  643. $temp[$k]=$v;
  644. }
  645. $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
  646. foreach ($temp as $k => $v){
  647. $array=explode(',',$v); //再将拆开的数组重新组装
  648. //下面的索引根据自己的情况进行修改即可
  649. $temp2[$k]['serialnumber'] =$array[0];
  650. $temp2[$k]['product'] =$array[1];
  651. $temp2[$k]['alloted_time'] =$array[2];
  652. $temp2[$k]['version'] =$array[3];
  653. $temp2[$k]['licences'] =$array[4];
  654. $temp2[$k]['UpdateStr'] =$array[5];
  655. $temp2[$k]['length'] =$array[6];
  656. $temp2[$k]['key_num'] =$array[7];
  657. }
  658. return $temp2;
  659. }
  660. /**
  661. * 格式化excel文件为数组
  662. * @param unknown_type $file_url
  663. * @param unknown_type $mcid
  664. */
  665. function _format_excel_to_array($file_url = "") {
  666. if (! file_exists ( $file_url ))
  667. return array ();
  668. Doo::loadClass ( 'PHPExcel' );
  669. $PHPExcel = new PHPExcel ();
  670. $PHPReader = new PHPExcel_Reader_Excel2007 ();
  671. if (! $PHPReader->canRead ( $file_url )) {
  672. $PHPReader = new PHPExcel_Reader_Excel5 ();
  673. if (! $PHPReader->canRead ( $file_url )) {
  674. echo 'no Excel';
  675. return;
  676. }
  677. }
  678. $PHPExcel = $PHPReader->load ( $file_url );
  679. /**读取excel文件中的第一个工作表*/
  680. $currentSheet = $PHPExcel->getSheet ( 0 );
  681. /**取得最大的列号*/
  682. $allColumn = $currentSheet->getHighestColumn ();
  683. /**取得一共有多少行*/
  684. $allRow = $currentSheet->getHighestRow ();
  685. $excel_array = array ();
  686. for($currentRow = 2; $currentRow <= $allRow; $currentRow ++) {
  687. $excel_column = array ();
  688. //后期改进
  689. if($allColumn=='AM')
  690. $allColumn='Z';
  691. /**从第A列开始输出*/
  692. for($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn ++) {
  693. $val = $currentSheet->getCellByColumnAndRow ( ord ( $currentColumn ) - 65, $currentRow )->getValue ();
  694. /**ord()将字符转为十进制数 iconv ( 'utf-8', 'gb2312',*/
  695. $val = "'" . addslashes ( $val ) . "'";
  696. if ($currentColumn == 'A')
  697. $excel_column ['key_num'] = $val;
  698. elseif ($currentColumn == 'C')
  699. $excel_column ['product'] = $val;
  700. elseif ($currentColumn == 'D'){
  701. $val=str_replace("'","",$val);
  702. $excel_column ['make_day'] = $this->excelTime($val);
  703. }elseif($currentColumn == 'E'){
  704. $val=str_replace("'","",$val);
  705. $excel_column ['alloted_time'] = $this->excelTime($val);
  706. }elseif($currentColumn == 'F'){
  707. $val=str_replace("'","",$val);
  708. $excel_column ['version'] = $val;
  709. }elseif ($currentColumn == 'B'){
  710. $val=str_replace("'","",$val);
  711. $excel_column ['SerialNumber'] = $val;
  712. }
  713. }
  714. array_push ( $excel_array, $excel_column );
  715. }
  716. return $excel_array;
  717. }
  718. /**
  719. * 旧输入导入
  720. */
  721. function _GetFileEXT($filename) {
  722. $pics = explode ( '.', $filename );
  723. $num = count ( $pics );
  724. return $pics [$num - 1];
  725. }
  726. /* function updateLockApi(){
  727. $longleList=isset($_POST['longle'])?$_POST['longle']:"";
  728. header ( 'Content-Type:text/html;charset=utf-8' );
  729. if($longleList!=""){
  730. Doo::loadModel ( 'longle' );
  731. Doo::loadModel ( 'longle_log' );
  732. //$exlArray=$this->_format_excel_to_array(DOO::conf()->SITE_PATH."upload/".iconv("UTF-8", "GB2312", $path));
  733. //file_put_contents ( "protected/config/longle.bak", $longleList );
  734. $longleList=json_decode($longleList,TRUE);
  735. if (!is_array($longleList)){
  736. echo json_encode(array('status'=>2,'msg'=>'锁数据不正确'),JSON_UNESCAPED_UNICODE);die;
  737. }
  738. //数组格式化,新增字段需要在这新增
  739. $longleList=$this->array_unique_Update($longleList);
  740. //$category=$L_category->getCategoryById($cid);
  741. try {
  742. Doo::db()->beginTransaction();
  743. foreach ($longleList as $key=>$value){
  744. $longle = new longle ();
  745. $detail=$longle->getLongleBySerialNumber($value['serialnumber']);
  746. if(empty($detail)){
  747. echo json_encode(array('status'=>2,'msg'=>'找不到相关锁信息'),JSON_UNESCAPED_UNICODE);die;
  748. }
  749. //锁记录
  750. $longle = new longle ();
  751. if(!empty($value['product'])){
  752. $longle->product=$detail['product'].'+'.$value['product'];
  753. }
  754. if(!empty($value['alloted_time'])){
  755. $longle->alloted_time=$value['alloted_time'];
  756. }
  757. if(!empty($value['version'])){
  758. $longle->version=$value['version'];
  759. }
  760. if(!empty($value['licences'])){
  761. $longle->licences=$value['licences'];
  762. }
  763. if(!empty($value['AuthorizeStr'])){
  764. $longle->AuthorizeStr=$value['AuthorizeStr'];
  765. }
  766. if(!empty($value['AuthorizeFile'])){
  767. $longle->AuthorizeFile=$value['AuthorizeFile'];
  768. }
  769. if(!empty($value['UpdateStr'])){
  770. $longle->UpdateStr=$value['UpdateStr'];
  771. }
  772. if(!empty($value['UpdateFile'])){
  773. $longle->UpdateFile=$value['UpdateFile'];
  774. }
  775. //更新方法
  776. $longle->update ( array (
  777. 'where' => 'lid=' . $detail['lid']
  778. ) );
  779. //锁日志记录
  780. $longle_log=new longle_log();
  781. $longle_log->lid=$detail['lid'];
  782. $longle_log->status=11;
  783. $longle_log->statusT="更新";
  784. $longle_log->operator='软件更新锁信息';
  785. $longle_log->product=$longle->product;
  786. $longle_log->category='总部';
  787. $longle_log->dateline=date("Y-m-d");
  788. $id=$longle_log->insert();
  789. }
  790. //记录日常行为
  791. Doo::loadModel("action_log");
  792. $action_log=new action_log();
  793. $action_log->action='总部<b href="javascript:void(0)" >软件</b>更新<a href="javascript:void(0)" onclick="showLook(\''.$detail['key_num'].'\')">'.$detail['key_num'].'</a>锁';
  794. $action_log->sid=32;
  795. $action_log->cid=12;
  796. $action_log->class=$action_log->iconGenerate;
  797. $action_log->updatetime=date("Y-m-d");
  798. $action_log->time=date("H:i");
  799. $action_log->status=12;
  800. $action_log->insert();
  801. Doo::db()->commit();
  802. } catch (Exception $e) {
  803. echo json_encode(array('status'=>2,'msg'=>'数据更新发生异常'),JSON_UNESCAPED_UNICODE);
  804. //print $e->getMessage();
  805. die;
  806. }
  807. echo json_encode(array('status'=>1,'msg'=>'更新成功'),JSON_UNESCAPED_UNICODE);die;
  808. }else{
  809. echo json_encode(array('status'=>2,'msg'=>'请求参数不正确或者为空'),JSON_UNESCAPED_UNICODE);die;
  810. }
  811. } */
  812. }
  813. ?>