QueueCbt.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php defined('BASEPATH') OR exit('No direct script access allowed');
  2. /**
  3. * 此列一般在执行 24个小时中的一个 时候执行一次
  4. */
  5. class QueueCbt extends Start_Controller {
  6. public function __construct(){
  7. parent::__construct();
  8. $this->load->_model("Model_express_tt","express_tt");
  9. $this->load->_model("Model_shop","shop");
  10. $this->load->_model("Model_fullordertt","fullordertt");
  11. }
  12. private $ip = ['127.0.0.1','47.105.156.18'];
  13. //定义方法的调用规则 获取URI第二段值
  14. public function _remap($arg,$arg_array)
  15. {
  16. $ip = $_SERVER['REMOTE_ADDR'];
  17. if(!in_array($ip,$this->ip)){
  18. exit("No direct script access allowed");
  19. }
  20. $this->_cbtCreateLabel();
  21. }
  22. //tiktok的cbt发货模式 按照定时任务先创建标签
  23. //订单状态要求 已审核 未打印 未出库 允许出库 允许打印 快递必须要是cbt
  24. // 当前店铺为tt-wk
  25. private function _cbtCreateLabel(){
  26. if(date("H") != 20){
  27. exit("当前不是20点执行".date("H"));
  28. }
  29. //允许长时间运行
  30. set_time_limit(0);
  31. $where_arr = [
  32. //"shop"=>35,//当前店铺为tt-wk
  33. "express"=>83,//快递为tt-cbt
  34. "print"=>2,//未打印
  35. "printnumber"=>0,//打印次数
  36. 'library'=>1,//未出库
  37. //'libraryconfirm'=>2,//允许出库
  38. "review >"=>4,//审核通过或自动审核
  39. ];
  40. //$shop_info = $this->shop->read(35);
  41. $shop_list = $this->shop->find_all('1 = 1');
  42. $shop_list = array_column($shop_list,null,'id');
  43. // if(empty($shop_info)){
  44. // exit("当前店铺不存在");
  45. // }
  46. $list = $this->db->from("fullordertt")
  47. ->select("id,orderinfo,shop,express,print,printnumber,library,review,state")
  48. ->where($where_arr)
  49. ->where_not_in('state',[214,217])
  50. ->get()->result_array();
  51. if(empty($list)){
  52. exit("没有符合条件的订单");
  53. }
  54. foreach($list as $k=>$v){
  55. $info = $this->fullordertt->read($v['id']);
  56. $extra_text = json_encode($info['extra_text'],true);
  57. if(isset($extra_text['label_info'])){
  58. continue;
  59. }
  60. if(isset($shop_list[$info['shop']])){
  61. $r = $this->express_tt->doCreateCBTLabel($info,$shop_list[$info['shop']]);
  62. print_r($info['orderinfo']);
  63. print_r("|");
  64. usleep(100);
  65. }
  66. }
  67. echo "<br/>";
  68. exit("执行完成");
  69. }
  70. }