278 lines
9.6 KiB
PHP
278 lines
9.6 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Order extends CI_Controller{
|
|
|
|
private $log_dir = "licheb";
|
|
private $log_file = "order_v2.log";
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->model('receiver/order/receiver_orders_model');
|
|
$this->load->model('receiver/order/receiver_orders_v2_model');
|
|
$this->load->model('receiver/order/receiver_order_status_model');
|
|
$this->load->model('receiver/order/receiver_order_datas_model');
|
|
|
|
$this->load->model('app/liche/app_liche_orders_model');
|
|
$this->load->library('receiver/order_datas_entity');
|
|
}
|
|
|
|
public function index(){
|
|
$size = $this->input->get('size');
|
|
!$size && $size = 5;
|
|
|
|
$t1 = 'lc_receiver_orders';
|
|
$t2 = 'lc_receiver_orders_v2';
|
|
|
|
$fields = "$t1.*";
|
|
$where = [
|
|
"$t1.status>=" => 0,
|
|
"$t2.id is null" => null
|
|
];
|
|
|
|
$this->db->from("$t1");
|
|
$this->db->join("$t2", "$t2.id=$t1.id",'left');
|
|
|
|
$this->db->select($fields);
|
|
$this->db->where($where);
|
|
$this->db->order_by("$t1.id asc");
|
|
$this->db->limit($size);
|
|
$rows = $this->db->get()->result_array();
|
|
if($rows){
|
|
foreach($rows as $key=>$val){
|
|
echo "执行old_id:{$val['id']}<br>";
|
|
if($val['status']==7){
|
|
$status = 2;
|
|
}elseif($val['status']==6){
|
|
$status = 1;
|
|
}else{
|
|
$status = 0;
|
|
}
|
|
$money_json = json_decode($val['money_json'],true);
|
|
!$money_json['price_book'] && $money_json['price_book'] = $val['deposit'];
|
|
$data = [
|
|
'id' => $val['id'],
|
|
'sid' => $val['sid'],
|
|
'clue_id' => $val['clue_id'],
|
|
'customer_id' => $val['rid'],
|
|
'name' => $val['name'],
|
|
'mobile' => $val['mobile'],
|
|
'main_type' => $val['main_type'],
|
|
'payway' => $val['payway'],
|
|
'finance_id' => $val['finance_id'],
|
|
'srv_ids' => $val['srv_ids'],
|
|
'fines' => $val['fine_ids'],
|
|
'brand_id' => $val['brand_id'],
|
|
's_id' => $val['s_id'],
|
|
'v_id' => $val['v_id'],
|
|
'cor_id' => $val['cor_id'],
|
|
'incor_id' => $val['incor_id'],
|
|
'item_id' => $val['item_id'],
|
|
'biz_id' => $val['biz_id'],
|
|
'sale_id' => $val['admin_id'],
|
|
'info_json' => $val['info_json'],
|
|
'car_json' => $val['car_json'],
|
|
'money_json' => $val['money_json'],
|
|
'jsondata' => $val['jsondata'],
|
|
'delry_time' => $val['delry_time'],
|
|
'order_time' => $val['order_time'],
|
|
'bill_time' => $val['bill_time'],
|
|
'c_time' => $val['c_time'],
|
|
'u_time' => $val['u_time'],
|
|
'status' => $status
|
|
];
|
|
$res = $this->receiver_orders_v2_model->add($data);
|
|
if($res){
|
|
echo "执行成功:{$val['id']}<br>";
|
|
}else{
|
|
echo "执行失败:{$val['id']}<br>";
|
|
}
|
|
}
|
|
|
|
$where = [
|
|
"$t1.status>=" => 0,
|
|
"$t2.id is null" => null
|
|
];
|
|
|
|
$this->db->from("$t1");
|
|
$this->db->join("$t2", "$t2.id=$t1.id",'left');
|
|
|
|
$this->db->select($fields);
|
|
$this->db->where($where);
|
|
$res = $this->db->count_all_results();
|
|
echo "剩余:{$res}<br>";
|
|
}
|
|
}
|
|
|
|
public function up_pay_status(){
|
|
$page = $this->input->get('page');
|
|
$size = $this->input->get('size');
|
|
!$page && $page = 1;
|
|
!$size && $size = 20;
|
|
|
|
$where = [
|
|
'id>=' => 10000,
|
|
'status>=' => 0
|
|
];
|
|
$rows = $this->receiver_orders_v2_model->select($where,'id asc',$page,$size);
|
|
if($rows){
|
|
foreach($rows as $key => $val){
|
|
$if_pay = $this->app_liche_orders_model->count(['o_id'=>$val['id'],'status'=>1]);
|
|
$s_row = $this->receiver_order_status_model->count(['o_id'=>$val['id'],'pid_status'=>0,'status'=>1]);
|
|
if($if_pay && !$s_row){
|
|
$data = [
|
|
'o_id' => $val['id'],
|
|
'pid_status' => 0,
|
|
'status' => 1,
|
|
'c_time' => time()
|
|
];
|
|
$res = $this->receiver_order_status_model->add($data);
|
|
echo "update o_id:{$val['id']}<br>";
|
|
}else{
|
|
echo "undo o_id:{$val['id']}<br>";
|
|
}
|
|
}
|
|
}else{
|
|
echo 'finish';
|
|
}
|
|
}
|
|
|
|
//更新旧订单数据状态
|
|
public function up_old_status(){
|
|
$size = $this->input->get('size');
|
|
!$size && $size = 20;
|
|
|
|
$t1 = 'lc_receiver_orders_v2';
|
|
$t2 = 'lc_receiver_orders';
|
|
|
|
$fields = "$t1.*";
|
|
$where = [
|
|
"$t1.id<" => 10000,
|
|
"$t1.status" => 0,
|
|
"$t2.status" => 6
|
|
];
|
|
|
|
$this->db->from("$t1");
|
|
$this->db->join("$t2", "$t2.id=$t1.id",'left');
|
|
|
|
$this->db->select($fields);
|
|
$this->db->where($where);
|
|
$this->db->order_by("$t1.id asc");
|
|
$this->db->limit($size);
|
|
$rows = $this->db->get()->result_array();
|
|
if($rows){
|
|
foreach($rows as $key=>$val){
|
|
$res = $this->receiver_orders_v2_model->update(['status'=>1],['id'=>$val['id']]);
|
|
$str = "更新订单状态:{$val['id']}";
|
|
debug_log($str,$this->log_file,$this->log_dir);
|
|
}
|
|
}else{
|
|
echo "no data";
|
|
}
|
|
}
|
|
|
|
public function up_order_time(){
|
|
$size = $this->input->get('size');
|
|
!$size && $size = 20;
|
|
|
|
$t1 = 'lc_receiver_order_status';
|
|
$t2 = 'lc_receiver_orders_v2';
|
|
|
|
$fields = "$t2.*";
|
|
$where = [
|
|
"$t1.pid_status" => 0,
|
|
"$t1.status" => 1,
|
|
"$t2.id>=" => 10000,
|
|
"$t2.order_time" => '0000-00-00 00:00:00',
|
|
];
|
|
|
|
$this->db->from("$t1");
|
|
$this->db->join("$t2", "$t2.id=$t1.o_id",'left');
|
|
|
|
$this->db->select($fields);
|
|
$this->db->where($where);
|
|
$this->db->order_by("$t1.id asc");
|
|
$this->db->limit($size);
|
|
$rows = $this->db->get()->result_array();
|
|
if($rows){
|
|
foreach($rows as $key=>$val){
|
|
$where = [
|
|
'o_id'=>$val['id'],
|
|
'status'=>1,
|
|
"pay_time <>" => '0000-00-00 00:00:00',
|
|
];
|
|
$pay_row = $this->app_liche_orders_model->select($where,'pay_time asc',1,1);
|
|
if($pay_row){
|
|
$order_time = $pay_row[0]['pay_time'];
|
|
$res = $this->receiver_orders_v2_model->update(['order_time'=>$order_time],['id'=>$val['id']]);
|
|
echo "订单id:{$val['id']},更新{$res}<br>";
|
|
}else{
|
|
echo "订单id:{$val['id']},未找到支付订单<br>";
|
|
}
|
|
}
|
|
}else{
|
|
echo "no data";
|
|
}
|
|
|
|
}
|
|
|
|
//过期未支付订单
|
|
public function out_time(){
|
|
if(time()<=strtotime('2022-04-20 00:00:00')){ //2022-4-20后开始执行
|
|
exit;
|
|
}
|
|
$s_time = date('Y-m-d 00:00:00',strtotime("-1 day"));//昨天开始时间
|
|
$e_time = date('Y-m-d 23:59:59',strtotime("-1 day"));//昨天结束时间
|
|
|
|
$last_id_key = "out_time_receiver_order_id";
|
|
$redis = &load_cache();
|
|
$last_id = $redis->get($last_id_key);
|
|
|
|
$where = [
|
|
'c_time<=' => strtotime($e_time),
|
|
'c_time>=' => strtotime($s_time),
|
|
'status' => 0
|
|
];
|
|
|
|
$last_id && $where['id>'] = $last_id;
|
|
$rows = $this->receiver_orders_v2_model->select($where,'id asc',1,30);
|
|
if($rows){
|
|
foreach($rows as $key=>$val){
|
|
$if_pay = $this->app_liche_orders_model->count(['o_id'=>$val['id'],'status'=>1]);
|
|
if(!$if_pay){ //不存在已支付订单
|
|
$this->receiver_orders_v2_model->update(['status'=>-1],['id'=>$val['id']]);
|
|
$this->app_liche_orders_model->update(['status'=>-1],['o_id'=>$val['id']]);
|
|
debug_log("订单过期:".$val['id'],$this->log_file,$this->log_dir);
|
|
}
|
|
$do_last_id = $val['id'];
|
|
}
|
|
$redis->save($last_id_key,$do_last_id,2*24*60*60);
|
|
}else{
|
|
debug_log("订单过期执行完毕",$this->log_file,$this->log_dir);
|
|
}
|
|
}
|
|
|
|
//更新行驶证
|
|
public function car_img(){
|
|
$oid = $this->input->get('oid');
|
|
$page = $this->input->get('page');
|
|
$size = $this->input->get('size');
|
|
!$page && $page = 1;
|
|
!$size && $size = 10;
|
|
$where = [
|
|
"car_img <> ''" => null
|
|
];
|
|
$oid && $where['o_id'] = $oid;
|
|
$rows = $this->receiver_order_datas_model->select($where,'id asc',$page,$size);
|
|
if($rows){
|
|
foreach ($rows as $item) {
|
|
$res = $this->order_datas_entity->orc_car_img($item['o_id']);
|
|
echo "{$item['o_id']}执行结果:{$res}";
|
|
}
|
|
}else{
|
|
echo "no data";
|
|
}
|
|
}
|
|
}
|