记录日志测试
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
|
||||
namespace admin\foundation;
|
||||
|
||||
use common\jobs\LogJob;
|
||||
use Yii;
|
||||
use yii\base\UserException;
|
||||
use yii\helpers\Json;
|
||||
@@ -31,18 +32,25 @@ class JsonResponseFormatter extends \yii\web\JsonResponseFormatter
|
||||
'patient',
|
||||
'patient_mobile'
|
||||
];
|
||||
private static $param = [
|
||||
'param' => [],
|
||||
'result' => [],
|
||||
'url' => '',
|
||||
];
|
||||
private $defaultErrorCode = -1;
|
||||
|
||||
public static function formatData($data, $errno = 0, $msg = '')
|
||||
{
|
||||
|
||||
// if(empty($data)) $data = new \stdClass();
|
||||
if (empty($data)) {
|
||||
$data = [];
|
||||
} else {
|
||||
if (array_key_exists('list', $data)) {
|
||||
$data['list'] = self::aseEncode($data['list']);
|
||||
}
|
||||
}
|
||||
// TODO 加密后续再完善
|
||||
// if (empty($data)) {
|
||||
// $data = [];
|
||||
// } else {
|
||||
// if (array_key_exists('list', $data)) {
|
||||
// $data['list'] = self::aseEncode($data['list']);
|
||||
// }
|
||||
// }
|
||||
$result['data'] = $data;
|
||||
$result['msg'] = $msg;
|
||||
$result['errcode'] = $errno;
|
||||
@@ -100,6 +108,30 @@ class JsonResponseFormatter extends \yii\web\JsonResponseFormatter
|
||||
$data = $response->data;
|
||||
}
|
||||
|
||||
if (Yii::$app->request->getMethod() == 'GET') {
|
||||
self::$param['param'] = Yii::$app->request->get();
|
||||
} else {
|
||||
self::$param['param'] = Yii::$app->request->post();
|
||||
}
|
||||
|
||||
self::$param['result'] = $data;
|
||||
self::$param['url'] = Yii::$app->request->getUrl();
|
||||
self::$param['type'] = $response->statusCode == 200? 0: 1;
|
||||
self::$param['platform_type'] = Yii::$app->store == 0? 0: 1;
|
||||
self::$param['platform_id'] = Yii::$app->store;
|
||||
$op = get_device_type();
|
||||
self::$param['ip'] = $op['ip'];
|
||||
self::$param['equipment'] = $op['equipment'];
|
||||
self::$param['browser'] = $op['browser'];
|
||||
if (Yii::$app->user->isGuest) {
|
||||
self::$param['user_id'] = 0;
|
||||
} else {
|
||||
self::$param['user_id'] = Yii::$app->user->id;
|
||||
}
|
||||
\Yii::$app->queue->push(new LogJob([
|
||||
'params' => self::$param
|
||||
]));
|
||||
|
||||
$response->data = self::formatData($data, $errcode, $msg);
|
||||
$response->content = Json::encode($response->data, $options);
|
||||
|
||||
|
||||
53
common/jobs/LogJob.php
Normal file
53
common/jobs/LogJob.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
namespace common\jobs;
|
||||
|
||||
use common\core\BaseModel;
|
||||
use common\models\OpLog;
|
||||
use common\models\PrescriptionLog;
|
||||
use common\models\ProductOrder;
|
||||
use common\models\ProductOrderLog;
|
||||
use common\forms\LedgerForm;
|
||||
|
||||
use yii\queue\JobInterface;
|
||||
use yii\queue\Queue;
|
||||
|
||||
/**
|
||||
* 日志记录队列
|
||||
*/
|
||||
class LogJob extends BaseJob implements JobInterface
|
||||
{
|
||||
public $params;
|
||||
|
||||
/**
|
||||
* @param Queue $queue which pushed and is handling the job
|
||||
*/
|
||||
public function execute($queue)
|
||||
{
|
||||
echo '日志队列开始:'. "\r\n";
|
||||
try {
|
||||
$this->setRequest();
|
||||
$param = $this->params;
|
||||
$opLogModel = new OpLog();
|
||||
$opLogModel->user_id = $param['user_id'];
|
||||
$opLogModel->url = $param['url'];
|
||||
$opLogModel->type = $param['type'];
|
||||
$opLogModel->ip = $param['ip'];
|
||||
$opLogModel->param = json_encode($param['param']);
|
||||
$opLogModel->result = json_encode($param['result']);
|
||||
$opLogModel->platform_type = $param['platform_type'];
|
||||
$opLogModel->platform_id = $param['platform_id'];
|
||||
$opLogModel->equipment = $param['equipment'];
|
||||
$opLogModel->browser = $param['browser'];
|
||||
$opLogModel->created_at = date('Y-m-d H:i:s');
|
||||
if (!$opLogModel->save()) {
|
||||
echo '日志队列异常:'. "\r\n";
|
||||
return;
|
||||
}
|
||||
|
||||
PrescriptionLog::saveLog(1,'处方自动失效队列end'. json_encode($this->params));
|
||||
} catch (\Exception $exception) {
|
||||
echo '日志队列异常:'. $exception->getMessage(). "\r\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
21
common/models/OpLog.php
Normal file
21
common/models/OpLog.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace common\models;
|
||||
|
||||
use yii\behaviors\TimestampBehavior;
|
||||
use yii\db\ActiveRecord;
|
||||
|
||||
class OpLog extends \common\modelsgii\Address
|
||||
{
|
||||
public function behaviors()
|
||||
{
|
||||
return [
|
||||
[
|
||||
'class' => TimestampBehavior::class,
|
||||
'attributes' => [
|
||||
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at'],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
74
common/modelsgii/OpLog.php
Normal file
74
common/modelsgii/OpLog.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace common\modelsgii;
|
||||
|
||||
use Yii;
|
||||
|
||||
/**
|
||||
* This is the model class for table "yii_address".
|
||||
*
|
||||
* @property int $id
|
||||
* @property string|int user_id //操作用户ID
|
||||
* @property string|int url // 操作路由
|
||||
* @property string|int type // 操作状态 0:成功 1:失败
|
||||
* @property string|int ip // 操作者IP地址
|
||||
* @property string|int param // 操作者IP地址
|
||||
* @property string|int result // 操作者IP地址
|
||||
* @property string|int platform_type // 平台类型 0:总后台 1:门店后台 2:小程序
|
||||
* @property string|int platform_id // 所属平台ID 0:总后台 1:门店诊所ID
|
||||
* @property string|int equipment // 设备
|
||||
* @property string|int browser // 浏览器
|
||||
* @property string|int created_at // 浏览器
|
||||
*/
|
||||
class OpLog extends \common\core\BaseActiveRecord
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function tableName()
|
||||
{
|
||||
return 'yii_op_log';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['user_id'], 'required'],
|
||||
[['url'], 'required'],
|
||||
[['type'], 'required'],
|
||||
[['ip'], 'required'],
|
||||
[['param'], 'required'],
|
||||
[['result'], 'required'],
|
||||
[['platform_type'], 'required'],
|
||||
[['platform_id'], 'required'],
|
||||
[['equipment'], 'required'],
|
||||
[['browser'], 'required'],
|
||||
[['created_at'], 'required'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function attributeLabels()
|
||||
{
|
||||
return [
|
||||
'id' => 'ID',
|
||||
'user_id' => 'User ID',
|
||||
'name' => 'Name',
|
||||
'mobile' => 'Mobile',
|
||||
'province' => 'Province',
|
||||
'city' => 'city',
|
||||
'area' => 'area',
|
||||
'region' => 'Region',
|
||||
'detail_address' => 'Detail Address',
|
||||
'is_default' => 'Is Default',
|
||||
'created_at' => 'Created At',
|
||||
'updated_at' => 'Updated At',
|
||||
'is_delete' => 'Is Delete',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user