优化 AbstractModel::transaction

This commit is contained in:
kuaifan
2021-06-18 19:32:50 +08:00
parent f74b660d4a
commit 6a0bc37645
7 changed files with 86 additions and 97 deletions
+7 -10
View File
@@ -2,6 +2,7 @@
namespace App\Models;
use App\Exceptions\ApiException;
use App\Module\Base;
use App\Tasks\PushTask;
use App\Tasks\WebSocketDialogMsgTask;
@@ -91,7 +92,7 @@ class WebSocketDialogMsg extends AbstractModel
if (empty($userid)) {
return false;
}
$result = self::transaction(function() use ($userid) {
self::transaction(function() use ($userid) {
$msgRead = WebSocketDialogMsgRead::whereMsgId($this->id)->whereUserid($userid)->lockForUpdate()->first();
if (empty($msgRead)) {
$msgRead = WebSocketDialogMsgRead::createInstance([
@@ -121,7 +122,7 @@ class WebSocketDialogMsg extends AbstractModel
]);
}
});
return Base::isSuccess($result);
return true;
}
/**
@@ -140,22 +141,18 @@ class WebSocketDialogMsg extends AbstractModel
'msg' => $msg,
'read' => 0,
]);
$result = AbstractModel::transaction(function () use ($dialog_id, $msg, $dialogMsg) {
AbstractModel::transaction(function () use ($dialog_id, $msg, $dialogMsg) {
$dialog = WebSocketDialog::find($dialog_id);
if (empty($dialog)) {
return Base::retError('获取会话失败');
throw new ApiException('获取会话失败');
}
$dialog->last_at = Carbon::now();
$dialog->save();
$dialogMsg->send = 1;
$dialogMsg->dialog_id = $dialog->id;
$dialogMsg->save();
//
return Base::retSuccess('发送成功', $dialogMsg->toArray());
});
if (Base::isSuccess($result)) {
Task::deliver(new WebSocketDialogMsgTask($dialogMsg->id));
}
return $result;
Task::deliver(new WebSocketDialogMsgTask($dialogMsg->id));
return Base::retSuccess('发送成功', $dialogMsg);
}
}