146 lines
4.5 KiB
PHP
146 lines
4.5 KiB
PHP
<?php
|
|
namespace common\models\oldDb;
|
|
|
|
use common\enums\OrderAcceptEnum;
|
|
use common\enums\OrderStatusEnum;
|
|
use yii\behaviors\TimestampBehavior;
|
|
use yii\db\ActiveRecord;
|
|
|
|
/**
|
|
* @property ServiceUser $serviceUser
|
|
* @property User $user
|
|
* @property ImMessageSessionOrder $session
|
|
*/
|
|
class Order extends \common\modelsgii\oldDb\Order
|
|
{
|
|
public $accrpt_status;
|
|
|
|
const EVENT_CREATED = 'orderCreated';
|
|
const EVENT_PAYED = 'orderPayed';
|
|
const EVENT_CANCELED = 'orderCanceled';
|
|
|
|
public function behaviors()
|
|
{
|
|
return [
|
|
[
|
|
'class' => TimestampBehavior::class,
|
|
'attributes' => [
|
|
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at','updated_at'],
|
|
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
|
|
],
|
|
],
|
|
];
|
|
}
|
|
|
|
//接诊状态
|
|
public static function accept_info($model)
|
|
{
|
|
$result = [
|
|
'status' => 0,
|
|
'text' => '未知',
|
|
];
|
|
if($model->accept_status == OrderAcceptEnum::WAIT_ACCEPT){
|
|
|
|
$result['status'] = 1;
|
|
$result['text'] = '待接诊';
|
|
$result['text_detail'] = '等待接诊中';
|
|
|
|
}elseif($model->accept_status == OrderAcceptEnum::ACCEPTING){
|
|
|
|
$result['status'] = 2;
|
|
$result['text'] = '咨询中';
|
|
$result['text_detail'] = '正在接诊中';
|
|
|
|
}elseif($model->accept_status == OrderAcceptEnum::REFUSED || $model->accept_status == OrderAcceptEnum::OVER || $model->accept_status == OrderAcceptEnum::TIMEOUT_ACCEPT || $model->accept_status == OrderAcceptEnum::CANCEL){
|
|
|
|
$result['status'] = 3;
|
|
$result['text'] = '已结束';
|
|
$result['text_detail'] = '问诊结束';
|
|
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
//订单状态
|
|
public static function status_info($model)
|
|
{
|
|
$result = [
|
|
'status' => 0,
|
|
'text' => '未知',
|
|
];
|
|
if($model->is_pay == 0 && $model->cancel_status == 0){
|
|
//待支付
|
|
|
|
$result['status'] = OrderStatusEnum::WAIT_PAY;
|
|
$result['text'] = OrderStatusEnum::ARR[OrderStatusEnum::WAIT_PAY];
|
|
|
|
}elseif($model->is_pay == 1 && $model->cancel_status == 0 && $model->accept_status == OrderAcceptEnum::WAIT_ACCEPT){
|
|
//待接诊
|
|
|
|
$result['status'] = OrderStatusEnum::WAIT_ACCEPT;
|
|
$result['text'] = OrderStatusEnum::ARR[OrderStatusEnum::WAIT_ACCEPT];
|
|
|
|
}elseif($model->is_pay == 1 && $model->cancel_status == 0 && $model->accept_status == OrderAcceptEnum::ACCEPTING){
|
|
//咨询中
|
|
|
|
$result['status'] = OrderStatusEnum::ACCEPTING;
|
|
$result['text'] = OrderStatusEnum::ARR[OrderStatusEnum::ACCEPTING];
|
|
|
|
}elseif($model->is_pay == 1 && $model->cancel_status == 0 && $model->accept_status == OrderAcceptEnum::OVER && $model->is_comment == 0){
|
|
//待评价
|
|
|
|
$result['status'] = OrderStatusEnum::WAIT_COMMENT;
|
|
$result['text'] = OrderStatusEnum::ARR[OrderStatusEnum::WAIT_COMMENT];
|
|
|
|
}elseif($model->is_pay == 1 && $model->cancel_status == 0 && $model->accept_status == OrderAcceptEnum::OVER && $model->is_comment == 1){
|
|
//已完成
|
|
|
|
$result['status'] = OrderStatusEnum::COMPLETE;
|
|
$result['text'] = OrderStatusEnum::ARR[OrderStatusEnum::COMPLETE];
|
|
|
|
}elseif( $model->cancel_status == 1){
|
|
//已取消
|
|
|
|
$result['status'] = OrderStatusEnum::CANCELED;
|
|
$result['text'] = OrderStatusEnum::ARR[OrderStatusEnum::CANCELED];
|
|
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
//关联服务人员
|
|
public function getServiceUser()
|
|
{
|
|
return $this->hasOne(ServiceUser::className(),['id'=>'su_id']);
|
|
}
|
|
|
|
//关联医生信息
|
|
public function getDocInfo()
|
|
{
|
|
return $this->hasOne(DoctorInfo::className(),['su_id'=>'su_id']);
|
|
}
|
|
|
|
//关联问诊
|
|
public function getInquiry()
|
|
{
|
|
return $this->hasOne(UserInquiry::className(),['id'=>'ui_id']);
|
|
}
|
|
|
|
//关联用户
|
|
public function getUser()
|
|
{
|
|
return $this->hasOne(User::className(),['id'=>'user_id']);
|
|
}
|
|
|
|
//关联会话
|
|
public function getSession()
|
|
{
|
|
return $this->hasOne(ImMessageSessionOrder::className(),['order_id'=>'id']);
|
|
}
|
|
|
|
public function getVideo()
|
|
{
|
|
return $this->hasOne(OrderVideoInfo::className(), ['order_id' => 'id']);
|
|
}
|
|
} |