SoftController.php 35 KB

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