QueueCbt.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. $where_arr = [
  30. //"shop"=>35,//当前店铺为tt-wk
  31. "express"=>83,//快递为tt-cbt
  32. "print"=>2,//未打印
  33. "printnumber"=>0,//打印次数
  34. 'library'=>1,//未出库
  35. //'libraryconfirm'=>2,//允许出库
  36. "review >"=>4,//审核通过或自动审核
  37. ];
  38. //$shop_info = $this->shop->read(35);
  39. $shop_list = $this->shop->find_all('id in (35,46)');
  40. $shop_list = array_column($shop_list,null,'id');
  41. // if(empty($shop_info)){
  42. // exit("当前店铺不存在");
  43. // }
  44. $list = $this->db->from("fullordertt")
  45. ->select("id,orderinfo,shop,express,print,printnumber,library,review,state")
  46. ->where($where_arr)
  47. ->where_not_in('state',[214,217])
  48. ->get()->result_array();
  49. if(empty($list)){
  50. exit("没有符合条件的订单");
  51. }
  52. foreach($list as $k=>$v){
  53. $info = $this->fullordertt->read($v['id']);
  54. $extra_text = json_encode($info['extra_text'],true);
  55. if(isset($extra_text['label_info'])){
  56. continue;
  57. }
  58. if(isset($shop_list[$info['shop']])){
  59. $r = $this->express_tt->doCreateCBTLabel($info,$shop_list[$info['shop']]);
  60. print_r($info['orderinfo']);
  61. print_r("|");
  62. usleep(100);
  63. }
  64. }
  65. echo "<br/>";
  66. exit("执行完成");
  67. }
  68. }