Order.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Order extends Lyapi_Controller{
  4. // 注意:登录接口不能受基础控制器的登录校验,可以覆盖构造方法或单独处理
  5. public function __construct() {
  6. // 这里不执行登录校验,只加载缓存驱动
  7. parent::__construct(); // 暂时注释,或者使用一个新的不校验的基类
  8. // 简便做法:复制 Lyapi_Controller 的部分代码但不调用 _check_api_auth
  9. // $this->load->driver('cache'); // 加载缓存驱动
  10. $this->load->_model("Model_logic_order","logic_order");
  11. $this->load->_model("Model_aliyunossnew","aliyunossnew");
  12. }
  13. public function getinfo(){
  14. if($this->input->method(TRUE) != 'POST'){
  15. $this->_json_error('请求方式错误','500');
  16. }
  17. $json_str = $this->input->raw_input_stream;
  18. $data = json_decode($json_str,true);
  19. if(empty($data['scancode'])){
  20. $this->_json_error('参数错误','500');
  21. }
  22. $number = $data['scancode'];
  23. if(stripos($number,'-') === false){
  24. if(substr($number,0,3) == '788' && substr($number,-4,4) == '0430')//Fedex联邦
  25. {
  26. $number = substr($number,0,12);
  27. }
  28. if(strlen($number) == '34')//联邦杭州超长运单截取
  29. {
  30. $str = substr($number, 0,3);
  31. if($str == "420"){
  32. $number = substr($number,12);
  33. }else{
  34. $number = substr($number,22,12);
  35. }
  36. }
  37. $info = $this->logic_order->getInfo("waybill = '".$number."'");
  38. }else{
  39. $info = $this->logic_order->getInfo("number = '".$data['scancode']."'");
  40. }
  41. if(empty($info)){
  42. $this->_json_error('未查询到订单信息','500');
  43. }
  44. $this->_json_error('成功',200,[
  45. 'orderinfo'=>$info['orderinfo'],
  46. 'number'=>$info['number'],
  47. 'waybill'=>$info['waybill'],
  48. 'printtime'=>date("Y-m-d H:i",$info['printtime']),
  49. ]);
  50. }
  51. public function getinfoscan(){
  52. if($this->input->method(TRUE) != 'POST'){
  53. $this->_json_error('请求方式错误','500');
  54. }
  55. $json_str = $this->input->raw_input_stream;
  56. $data = json_decode($json_str,true);
  57. if(empty($data['scancode'])){
  58. $this->_json_error('参数错误','500');
  59. }
  60. $number = $data['scancode'];
  61. if(stripos($number,'-') === false){
  62. if(substr($number,0,3) == '788' && substr($number,-4,4) == '0430')//Fedex联邦
  63. {
  64. $number = substr($number,0,12);
  65. }
  66. if(strlen($number) == '34')//联邦杭州超长运单截取
  67. {
  68. $str = substr($number, 0,3);
  69. if($str == "420"){
  70. $number = substr($number,12);
  71. }else{
  72. $number = substr($number,22,12);
  73. }
  74. }
  75. $info = $this->logic_order->getInfo("waybill = '".$number."'");
  76. }else{
  77. $info = $this->logic_order->getInfo("number = '".$data['scancode']."'");
  78. }
  79. if(empty($info)){
  80. $this->_json_error('未查询到订单信息','500');
  81. }
  82. if($data['qr'] != 'aliyuncheck'){
  83. $this->_json_error('参数错误','500');
  84. }
  85. $res = $this->aliyunossnew->getOssSignType("scanlibrary");
  86. if($res['code'] == -1){
  87. $this->_json_error($res["msg"],'500');
  88. }else{
  89. $this->_json_error('成功',200,[
  90. 'orderinfo'=>$info['orderinfo'],
  91. 'number'=>$info['number'],
  92. 'waybill'=>$info['waybill'],
  93. 'printtime'=>date("Y-m-d H:i",$info['printtime']),
  94. 'oss_config'=>$res['data']
  95. ]);
  96. }
  97. }
  98. }