SoftController.php 33 KB

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