Files
xk-api-yii/common/models/Order.php
2024-09-19 11:32:39 +08:00

146 lines
4.4 KiB
PHP

<?php
namespace common\models;
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\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']);
}
}