1. 挂号绑定挂号id

This commit is contained in:
李琦
2026-05-22 10:24:28 +08:00
parent a60a3f9255
commit e033bd787f
2 changed files with 22 additions and 10 deletions

View File

@@ -10,6 +10,7 @@ namespace common\modelsgii\oldDb;
* @property int $service_user_id 医生id
* @property int $user_patient_id 就诊人id
* @property int $store_id 诊所id
* @property int $origin_store_id 发起委托方诊所/药店ID(药价)
* @property string $order_no 订单号
* @property int $depart_id
* @property int $order_number 挂号序号
@@ -44,7 +45,7 @@ class Register extends \common\core\BaseActiveRecord
{
return [
[['user_id', 'service_user_id', 'user_patient_id', 'store_id', 'order_no', 'depart_id', 'order_number'], 'required'],
[['user_id', 'service_user_id', 'user_patient_id', 'store_id', 'depart_id', 'order_number', 'is_pay', 'status', 'pay_type', 'pay_time', 'is_cancel', 'cancel_time', 'refund_status', 'refund_time', 'created_at', 'updated_at', 'is_delete'], 'integer'],
[['user_id', 'service_user_id', 'user_patient_id', 'store_id', 'origin_store_id', 'depart_id', 'order_number', 'is_pay', 'status', 'pay_type', 'pay_time', 'is_cancel', 'cancel_time', 'refund_status', 'refund_time', 'created_at', 'updated_at', 'is_delete'], 'integer'],
[['price'], 'number'],
[['order_no', 'refuse_reason'], 'string', 'max' => 255],
];
@@ -61,6 +62,7 @@ class Register extends \common\core\BaseActiveRecord
'service_user_id' => 'Service User ID',
'user_patient_id' => 'User Patient ID',
'store_id' => 'Store ID',
'origin_store_id' => 'Origin Store ID',
'order_no' => 'Order No',
'depart_id' => 'Depart ID',
'order_number' => 'Order Number',

View File

@@ -26,11 +26,12 @@ class RegisterForm extends BaseModel
public $service_user_id;
public $register_id;
public $register_type;
public $origin_store_id;
public function rules()
{
return [
[['store_id', 'user_id','register_id'], 'integer'],
[['store_id', 'user_id', 'register_id', 'origin_store_id'], 'integer'],
[['user_patient_id', 'service_user_id', 'register_type'], 'required']
];
}
@@ -117,26 +118,35 @@ class RegisterForm extends BaseModel
$t = \Yii::$app->db->beginTransaction();
try {
// 确定实际使用的门店ID
// 如果是购药register_type=3且当前门店药店配置了委托诊所则使用委托诊所ID
// 如果是诊所在线复诊register_type=2需要确保是诊所store.type=0
$actualStoreId = \Yii::$app->store;
// 确定实际使用的门店ID(履约诊所)
// 在线场景优先使用前端传入的 store_id如委托诊所药店复诊再按配置覆盖为委托诊所
$actualStoreId = (int) ($this->store_id ?: \Yii::$app->store);
if ($this->register_type == 3) {
$currentStore = Store::findOne($actualStoreId);
$currentStore = Store::findOne(\Yii::$app->store);
if ($currentStore && !empty($currentStore->delegate_store_id)) {
$actualStoreId = $currentStore->delegate_store_id;
$actualStoreId = (int) $currentStore->delegate_store_id;
}
} elseif ($this->register_type == 2) {
// 诊所在线复诊:确保是诊所store.type=0
$currentStore = Store::findOne($actualStoreId);
// 诊所在线复诊:发起方诊所校验(会话门店须为诊所
$currentStore = Store::findOne(\Yii::$app->store);
if ($currentStore && $currentStore->type != 0) {
throw new Exception('诊所在线复诊只能在诊所进行');
}
}
$originStoreId = (int) ($this->origin_store_id ?: \Yii::$app->store);
$shouldPersistOrigin = in_array((int) $this->register_type, [2, 3], true)
|| ((int) $this->register_type === 1 && (int) $this->origin_store_id > 0);
if (!$shouldPersistOrigin) {
$originStoreId = 0;
}
$UserRegister = new Register();
$UserRegister->user_id = \Yii::$app->user->id;
$UserRegister->store_id = $actualStoreId;
if ($UserRegister->hasAttribute('origin_store_id')) {
$UserRegister->origin_store_id = $originStoreId;
}
$UserRegister->order_no = FuncHelper::generate_order_no('SN');
$UserRegister->user_patient_id = $this->user_patient_id;
$UserRegister->service_user_id = $this->service_user_id;