mirror of
https://github.com/kuaifan/dootask.git
synced 2026-03-17 11:13:26 +00:00
perf: 优化会话删除
This commit is contained in:
parent
0c2ff1a000
commit
d54e222ff2
@ -37,6 +37,7 @@ class DialogController extends AbstractController
|
|||||||
* @apiName lists
|
* @apiName lists
|
||||||
*
|
*
|
||||||
* @apiParam {String} [at_after] 只读取在这个时间之后更新的对话
|
* @apiParam {String} [at_after] 只读取在这个时间之后更新的对话
|
||||||
|
* @apiParam {String} [deleted_at] 读取在这个时间之后删除的对话ID,返回数据: deleted_data
|
||||||
* @apiParam {Number} [page] 当前页,默认:1
|
* @apiParam {Number} [page] 当前页,默认:1
|
||||||
* @apiParam {Number} [pagesize] 每页显示数量,默认:50,最大:100
|
* @apiParam {Number} [pagesize] 每页显示数量,默认:50,最大:100
|
||||||
*
|
*
|
||||||
@ -62,7 +63,19 @@ class DialogController extends AbstractController
|
|||||||
return $item->formatData($user->userid);
|
return $item->formatData($user->userid);
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
return Base::retSuccess('success', $list);
|
$data = $list->toArray();
|
||||||
|
if (Request::exists('deleted_at')) {
|
||||||
|
$data['deleted_at'] = date("Y-m-d H:i:s");
|
||||||
|
$data['deleted_data'] = WebSocketDialog::select(['web_socket_dialogs.id'])
|
||||||
|
->withTrashed()
|
||||||
|
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id')
|
||||||
|
->where('u.userid', $user->userid)
|
||||||
|
->where('web_socket_dialogs.deleted_at', '>=', Carbon::parse(Request::input('deleted_at')))
|
||||||
|
->take(100)
|
||||||
|
->pluck('id');
|
||||||
|
}
|
||||||
|
//
|
||||||
|
return Base::retSuccess('success', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -281,6 +281,7 @@ class Project extends AbstractModel
|
|||||||
AbstractModel::transaction(function () {
|
AbstractModel::transaction(function () {
|
||||||
$dialog = WebSocketDialog::find($this->dialog_id);
|
$dialog = WebSocketDialog::find($this->dialog_id);
|
||||||
$dialog?->deleteDialog();
|
$dialog?->deleteDialog();
|
||||||
|
$dialog?->pushMsg("groupDelete");
|
||||||
$columns = ProjectColumn::whereProjectId($this->id)->get();
|
$columns = ProjectColumn::whereProjectId($this->id)->get();
|
||||||
foreach ($columns as $column) {
|
foreach ($columns as $column) {
|
||||||
$column->deleteColumn(false);
|
$column->deleteColumn(false);
|
||||||
|
|||||||
@ -1281,6 +1281,7 @@ class ProjectTask extends AbstractModel
|
|||||||
if ($this->dialog_id) {
|
if ($this->dialog_id) {
|
||||||
$dialog = WebSocketDialog::find($this->dialog_id);
|
$dialog = WebSocketDialog::find($this->dialog_id);
|
||||||
$dialog?->deleteDialog();
|
$dialog?->deleteDialog();
|
||||||
|
$dialog?->pushMsg("groupDelete");
|
||||||
}
|
}
|
||||||
self::whereParentId($this->id)->delete();
|
self::whereParentId($this->id)->delete();
|
||||||
$this->deleted_userid = User::userid();
|
$this->deleted_userid = User::userid();
|
||||||
|
|||||||
8
resources/assets/js/store/actions.js
vendored
8
resources/assets/js/store/actions.js
vendored
@ -2117,6 +2117,9 @@ export default {
|
|||||||
data.at_after = tmpList[0].last_at;
|
data.at_after = tmpList[0].last_at;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (state.dialogDeletedAt || data.at_after) {
|
||||||
|
data.deleted_at = state.dialogDeletedAt = state.dialogDeletedAt || data.at_after
|
||||||
|
}
|
||||||
dispatch("call", {
|
dispatch("call", {
|
||||||
url: 'dialog/lists',
|
url: 'dialog/lists',
|
||||||
data,
|
data,
|
||||||
@ -2124,6 +2127,11 @@ export default {
|
|||||||
const resData = result.data;
|
const resData = result.data;
|
||||||
dispatch("saveDialog", resData.data);
|
dispatch("saveDialog", resData.data);
|
||||||
//
|
//
|
||||||
|
if (resData.deleted_at) {
|
||||||
|
state.dialogDeletedAt = resData.deleted_at
|
||||||
|
resData.deleted_data.some(id => dispatch("forgetDialog", id))
|
||||||
|
}
|
||||||
|
//
|
||||||
if (resData.next_page_url && resData.current_page < 5) {
|
if (resData.next_page_url && resData.current_page < 5) {
|
||||||
data.page++
|
data.page++
|
||||||
dispatch("getDialogs", data).then(resolve).catch(reject)
|
dispatch("getDialogs", data).then(resolve).catch(reject)
|
||||||
|
|||||||
1
resources/assets/js/store/state.js
vendored
1
resources/assets/js/store/state.js
vendored
@ -82,6 +82,7 @@ export default {
|
|||||||
dialogHistory: [],
|
dialogHistory: [],
|
||||||
dialogInputCache: [],
|
dialogInputCache: [],
|
||||||
dialogMsgTransfer: {time: 0},
|
dialogMsgTransfer: {time: 0},
|
||||||
|
dialogDeletedAt: null,
|
||||||
|
|
||||||
// 文件
|
// 文件
|
||||||
fileLists: [],
|
fileLists: [],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user