SoftController.php 32 KB

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