SoftController.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  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->getCategory();
  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. header ( 'Content-Type:text/html;charset=utf-8' );
  29. if($longleList!=""){
  30. Doo::loadModel ( 'longle' );
  31. Doo::loadModel ( 'longle_log' );
  32. //$exlArray=$this->_format_excel_to_array(DOO::conf()->SITE_PATH."upload/".iconv("UTF-8", "GB2312", $path));
  33. $longleList=json_decode($longleList,TRUE);
  34. //print_r($longleList);die;
  35. if (!is_array($longleList)){
  36. echo json_encode(array('status'=>2,'msg'=>'锁数据不正确'),JSON_UNESCAPED_UNICODE);die;
  37. }
  38. $findStr='';$longle = new longle ();
  39. foreach ($longleList as $key=>$value){
  40. $li=$longle->getOne(array('where'=>'key_num like "'.$value['key_num'].'"','asArray' => TRUE));
  41. if (!empty($li))
  42. $findStr.=$li['key_num']." ; ";
  43. }
  44. if (!empty($findStr))
  45. $this->postEmail($findStr);
  46. //$category=$L_category->getCategoryById($cid);
  47. try {
  48. Doo::db()->beginTransaction();
  49. foreach ($longleList as $key=>$value){
  50. //锁记录
  51. $longle = new longle ();
  52. $longle->key_num=$value['key_num'];
  53. $longle->product=$value['product'];
  54. $longle->make_day=$value['make_day'];
  55. $longle->alloted_time=$value['alloted_time'];
  56. $longle->status=1;
  57. $longle->statusT="生成";
  58. $longle->cid=$value['cid'];
  59. $longle->category=$value['title'];
  60. $longle->SerialNumber=$value['serialnumber'];
  61. $longle->version=$value['version'];
  62. $lid=$longle->insert();
  63. //锁日志记录
  64. $longle_log=new longle_log();
  65. $longle_log->lid=$lid;
  66. $longle_log->status=1;
  67. $longle_log->statusT="生成";
  68. $longle_log->operator='软件生成';
  69. $longle_log->product=$longle->product;
  70. $longle_log->category='总部';
  71. $longle_log->dateline=date("Y-m-d");
  72. $id=$longle_log->insert();
  73. }
  74. //记录日常行为
  75. Doo::loadModel("action_log");
  76. $action_log=new action_log();
  77. $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>个锁';
  78. $action_log->sid=43;
  79. $action_log->cid=12;
  80. $action_log->class=$action_log->iconGenerate;
  81. $action_log->updatetime=date("Y-m-d");
  82. $action_log->time=date("H:i");
  83. $action_log->status=11;
  84. $action_log->insert();
  85. Doo::db()->commit();
  86. } catch (Exception $e) {
  87. echo json_encode(array('status'=>2,'msg'=>'数据录入发生异常'),JSON_UNESCAPED_UNICODE);
  88. //print $e->getMessage();
  89. die;
  90. }
  91. echo json_encode(array('status'=>1,'msg'=>'入库'.count($longleList).'个'),JSON_UNESCAPED_UNICODE);die;
  92. }else{
  93. echo json_encode(array('status'=>2,'msg'=>'请求参数不正确或者为空'),JSON_UNESCAPED_UNICODE);die;
  94. }
  95. }
  96. function postEmail($elid){
  97. if (!empty($elid)){
  98. $url = 'http://sendcloud.sohu.com/webapi/mail.send.json';
  99. $param = array('api_user' => 'cldmail',
  100. 'api_key' => 'cDO1GjtY1seH',
  101. 'to'=>'1971614655@qq.com',
  102. 'from' =>'1971614655@qq.com',
  103. 'fromname' => '软件导入CLD锁接口',
  104. 'subject' => '软件导入CLD锁接口通知',
  105. 'html' => $elid);
  106. $post_data = http_build_query($param);
  107. $ch = curl_init();
  108. curl_setopt($ch, CURLOPT_POST, 1);
  109. curl_setopt($ch, CURLOPT_URL,$url);
  110. curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容
  111. curl_setopt($ch, CURLOPT_NOBODY, false);
  112. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  113. $result =curl_exec($ch);
  114. curl_close($ch);
  115. }
  116. }
  117. /**
  118. * 格式化excel文件为数组
  119. * @param unknown_type $file_url
  120. * @param unknown_type $mcid
  121. */
  122. function _format_excel_to_array($file_url = "") {
  123. if (! file_exists ( $file_url ))
  124. return array ();
  125. Doo::loadClass ( 'PHPExcel' );
  126. $PHPExcel = new PHPExcel ();
  127. $PHPReader = new PHPExcel_Reader_Excel2007 ();
  128. if (! $PHPReader->canRead ( $file_url )) {
  129. $PHPReader = new PHPExcel_Reader_Excel5 ();
  130. if (! $PHPReader->canRead ( $file_url )) {
  131. echo 'no Excel';
  132. return;
  133. }
  134. }
  135. $PHPExcel = $PHPReader->load ( $file_url );
  136. /**读取excel文件中的第一个工作表*/
  137. $currentSheet = $PHPExcel->getSheet ( 0 );
  138. /**取得最大的列号*/
  139. $allColumn = $currentSheet->getHighestColumn ();
  140. /**取得一共有多少行*/
  141. $allRow = $currentSheet->getHighestRow ();
  142. $excel_array = array ();
  143. for($currentRow = 2; $currentRow <= $allRow; $currentRow ++) {
  144. $excel_column = array ();
  145. //后期改进
  146. if($allColumn=='AM')
  147. $allColumn='Z';
  148. /**从第A列开始输出*/
  149. for($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn ++) {
  150. $val = $currentSheet->getCellByColumnAndRow ( ord ( $currentColumn ) - 65, $currentRow )->getValue ();
  151. /**ord()将字符转为十进制数 iconv ( 'utf-8', 'gb2312',*/
  152. $val = "'" . addslashes ( $val ) . "'";
  153. if ($currentColumn == 'A')
  154. $excel_column ['key_num'] = $val;
  155. elseif ($currentColumn == 'C')
  156. $excel_column ['product'] = $val;
  157. elseif ($currentColumn == 'D'){
  158. $val=str_replace("'","",$val);
  159. $excel_column ['make_day'] = $this->excelTime($val);
  160. }elseif($currentColumn == 'E'){
  161. $val=str_replace("'","",$val);
  162. $excel_column ['alloted_time'] = $this->excelTime($val);
  163. }elseif($currentColumn == 'F'){
  164. $val=str_replace("'","",$val);
  165. $excel_column ['version'] = $val;
  166. }elseif ($currentColumn == 'B'){
  167. $val=str_replace("'","",$val);
  168. $excel_column ['SerialNumber'] = $val;
  169. }
  170. }
  171. array_push ( $excel_array, $excel_column );
  172. }
  173. return $excel_array;
  174. }
  175. }
  176. ?>