2024-09-19 11:32:39 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
namespace common\core;
|
|
|
|
|
|
|
2025-01-15 13:16:48 +08:00
|
|
|
|
use common\services\DataEncryptor;
|
|
|
|
|
|
use Yii;
|
2024-09-19 11:32:39 +08:00
|
|
|
|
use yii\base\Exception;
|
|
|
|
|
|
use yii\db\ActiveRecord;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 对框架的AR的扩展,所有前台/后台数据模型都继承自该类
|
|
|
|
|
|
*/
|
|
|
|
|
|
class BaseActiveRecord extends ActiveRecord
|
|
|
|
|
|
{
|
|
|
|
|
|
public function saveOrFail($runValidation = true, $attributeNames = null){
|
|
|
|
|
|
if(!$this->save($runValidation, $attributeNames)){
|
|
|
|
|
|
throw new Exception(implode(',',$this->getFirstErrors()));
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
2025-01-15 13:16:48 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 新增和编辑数据的时候
|
|
|
|
|
|
* @param $insert
|
|
|
|
|
|
* @throws \Exception
|
|
|
|
|
|
*/
|
|
|
|
|
|
public function beforeSave($insert)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (parent::beforeSave($insert)) {
|
|
|
|
|
|
// 加密ID卡信息之前检查是否已经加密过
|
|
|
|
|
|
if (!empty($this->idcard) && !is_encrypted($this->idcard)) {
|
|
|
|
|
|
$this->idcard = (new DataEncryptor(\Yii::$app->params['ase_key']))->encrypt($this->idcard);
|
|
|
|
|
|
}
|
|
|
|
|
|
// 加密ID卡信息之前检查是否已经加密过
|
|
|
|
|
|
if (!empty($this->id_card) && !is_encrypted($this->id_card)) {
|
|
|
|
|
|
$this->id_card = (new DataEncryptor(\Yii::$app->params['ase_key']))->encrypt($this->id_card);
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function afterFind()
|
|
|
|
|
|
{
|
|
|
|
|
|
parent::afterFind();
|
|
|
|
|
|
// 解密ID卡信息之前检查是否已经是明文
|
|
|
|
|
|
if (!empty($this->id_card) && is_encrypted($this->id_card)) {
|
|
|
|
|
|
$this->id_card = (new DataEncryptor(Yii::$app->params['ase_key']))->decrypt($this->id_card);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!empty($this->idcard) && is_encrypted($this->idcard)) {
|
|
|
|
|
|
$this->idcard = (new DataEncryptor(Yii::$app->params['ase_key']))->decrypt($this->idcard);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-09-19 11:32:39 +08:00
|
|
|
|
}
|