109 lines
3.4 KiB
PHP
109 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: lcc
|
|
* Date: 2022/1/10
|
|
* Time: 16:11
|
|
*/
|
|
class Orders_status_entity{
|
|
|
|
private $ci;
|
|
|
|
public function __construct(){
|
|
$this->ci = & get_instance();
|
|
$this->ci->load->model('receiver/order/receiver_order_status_model');
|
|
}
|
|
|
|
/**
|
|
* 完成状态
|
|
* @param $oid
|
|
* @param $pid_status
|
|
* @param $status
|
|
* @return bool
|
|
*/
|
|
public function set_status($oid,$pid_status,$status){
|
|
$row = $this->ci->receiver_order_status_model->get(['o_id' => $oid,'pid_status'=>$pid_status,'status'=>$status]);
|
|
if($row){
|
|
return False;
|
|
}
|
|
$data = [
|
|
'o_id' => $oid,
|
|
'pid_status' => $pid_status,
|
|
'status' => $status,
|
|
'c_time' => time()
|
|
];
|
|
$res = $this->ci->receiver_order_status_model->add($data);
|
|
return $res;
|
|
}
|
|
|
|
/**
|
|
* 获取主状未完成
|
|
* @param $o_id
|
|
* @param $pid_status
|
|
* @return string
|
|
*/
|
|
public function status_cn($o_id,$pid_status){
|
|
$status_cn = '';
|
|
$status_arr = $this->ci->receiver_order_status_model->get_status();
|
|
$sub_status = $status_arr[$pid_status];
|
|
if($sub_status){
|
|
$key = count($sub_status);
|
|
for ($key;$key>=0;$key--){
|
|
if(!$key && !$this->ci->receiver_order_status_model->count(['o_id'=>$o_id,'pid_status'=>$pid_status,'status'=>$key])){ //0时
|
|
$status_cn = $sub_status[$key];
|
|
break;
|
|
}else{
|
|
if($this->ci->receiver_order_status_model->count(['o_id'=>$o_id,'pid_status'=>$pid_status,'status'=>$key])){
|
|
$status_cn = $sub_status[$key];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return $status_cn;
|
|
}
|
|
|
|
/**
|
|
* 判断否个状态是否全部完成
|
|
* @param $o_id
|
|
* @param $pid_status
|
|
* @param $status
|
|
* @return bool
|
|
*/
|
|
public function get_finish($o_id,$pid_status,$status){
|
|
$count = $this->ci->receiver_order_status_model->count(['o_id'=>$o_id,'pid_status'=>$pid_status,'status'=>$status]);
|
|
if($count){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取订单最新子状态
|
|
* @param $oid 订单id
|
|
* @param $pid_status 主状态id
|
|
* @return string
|
|
*/
|
|
public function last_status_cn($oid,$pid_status=''){
|
|
$where=[
|
|
'o_id' => $oid,
|
|
];
|
|
if(!strlen($pid_status)){
|
|
$row = $this->ci->receiver_order_status_model->get($where,"id,max(pid_status) as pid_status");
|
|
$pid_status = $row['pid_status'];
|
|
}
|
|
$where['pid_status'] = $pid_status;
|
|
$row = $this->ci->receiver_order_status_model->get($where,"id,max(status) as last_status");
|
|
$status_arr = $this->ci->receiver_order_status_model->get_status();
|
|
if($row['id']){
|
|
if($status_arr[$pid_status][$row['last_status']]){
|
|
return $status_arr[$pid_status][$row['last_status']];
|
|
}else{
|
|
return array_pop($status_arr[$pid_status]);
|
|
}
|
|
}else{
|
|
return $status_arr[$pid_status][0];
|
|
}
|
|
}
|
|
} |