mirror of
https://github.com/kuaifan/dootask.git
synced 2026-01-22 09:48:11 +00:00
perf: 优化删除数据
This commit is contained in:
parent
e9b07dacce
commit
ac123387fd
@ -71,6 +71,7 @@ class DialogController extends AbstractController
|
|||||||
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id')
|
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id')
|
||||||
->where('u.userid', $user->userid)
|
->where('u.userid', $user->userid)
|
||||||
->where('web_socket_dialogs.deleted_at', '>=', Carbon::parse(Request::input('deleted_at')))
|
->where('web_socket_dialogs.deleted_at', '>=', Carbon::parse(Request::input('deleted_at')))
|
||||||
|
->orderByDesc('web_socket_dialogs.deleted_at')
|
||||||
->take(100)
|
->take(100)
|
||||||
->pluck('id');
|
->pluck('id');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,6 +58,7 @@ class ProjectController extends AbstractController
|
|||||||
* - yes:取列表
|
* - yes:取列表
|
||||||
* @apiParam {Object} [keys] 搜索条件
|
* @apiParam {Object} [keys] 搜索条件
|
||||||
* - keys.name: 项目名称
|
* - keys.name: 项目名称
|
||||||
|
* @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
|
||||||
@ -148,6 +149,16 @@ class ProjectController extends AbstractController
|
|||||||
$data['total_all'] = $data['total'];
|
$data['total_all'] = $data['total'];
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
if (Request::exists('deleted_at')) {
|
||||||
|
$data['deleted_at'] = date("Y-m-d H:i:s");
|
||||||
|
$data['deleted_data'] = Project::authData()
|
||||||
|
->withTrashed()
|
||||||
|
->where('projects.deleted_at', '>=', Carbon::parse(Request::input('deleted_at')))
|
||||||
|
->orderByDesc('projects.deleted_at')
|
||||||
|
->take(100)
|
||||||
|
->pluck('id');
|
||||||
|
}
|
||||||
|
//
|
||||||
return Base::retSuccess('success', $data);
|
return Base::retSuccess('success', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "DooTask",
|
"name": "DooTask",
|
||||||
"version": "0.22.84",
|
"version": "0.22.88",
|
||||||
"description": "DooTask is task management system.",
|
"description": "DooTask is task management system.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "./cmd dev",
|
"start": "./cmd dev",
|
||||||
|
|||||||
2
public/js/app.js
vendored
2
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
d59578a57c98b530
|
04a971f05c6c7c8b
|
||||||
|
|||||||
25
resources/assets/js/store/actions.js
vendored
25
resources/assets/js/store/actions.js
vendored
@ -35,6 +35,8 @@ export default {
|
|||||||
state.dialogInputCache = await $A.IDBArray("dialogInputCache")
|
state.dialogInputCache = await $A.IDBArray("dialogInputCache")
|
||||||
state.fileLists = await $A.IDBArray("fileLists")
|
state.fileLists = await $A.IDBArray("fileLists")
|
||||||
state.userInfo = await $A.IDBJson("userInfo")
|
state.userInfo = await $A.IDBJson("userInfo")
|
||||||
|
state.dialogDeletedAt = await $A.IDBString("dialogDeletedAt")
|
||||||
|
state.projectDeletedAt = await $A.IDBString("projectDeletedAt")
|
||||||
|
|
||||||
// 会员信息
|
// 会员信息
|
||||||
if (state.userInfo.userid) {
|
if (state.userInfo.userid) {
|
||||||
@ -831,12 +833,15 @@ export default {
|
|||||||
reject({msg: 'Parameter error'});
|
reject({msg: 'Parameter error'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let request = data || {};
|
const request = $A.isJson(data) ? data : {
|
||||||
|
deleted_at: state.projectDeletedAt || $A.formatDate("Y-m-d H:i:s", $A.Time() - 86400 * 30)
|
||||||
|
};
|
||||||
let showLoad = true;
|
let showLoad = true;
|
||||||
if (typeof request.hideLoad !== "undefined") {
|
if (typeof request.hideLoad !== "undefined") {
|
||||||
showLoad = !request.hideLoad;
|
showLoad = !request.hideLoad;
|
||||||
delete request.hideLoad;
|
delete request.hideLoad;
|
||||||
}
|
}
|
||||||
|
//
|
||||||
showLoad && state.loadProjects++;
|
showLoad && state.loadProjects++;
|
||||||
dispatch("call", {
|
dispatch("call", {
|
||||||
url: 'project/lists',
|
url: 'project/lists',
|
||||||
@ -844,6 +849,12 @@ export default {
|
|||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
state.projectTotal = data.total_all;
|
state.projectTotal = data.total_all;
|
||||||
dispatch("saveProject", data.data);
|
dispatch("saveProject", data.data);
|
||||||
|
//
|
||||||
|
data.deleted_at && $A.IDBSet("projectDeletedAt", data.deleted_at).then(_ => {
|
||||||
|
state.projectDeletedAt = data.deleted_at
|
||||||
|
data.deleted_data.some(id => dispatch("forgetProject", id))
|
||||||
|
});
|
||||||
|
//
|
||||||
resolve(data)
|
resolve(data)
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
@ -2098,7 +2109,9 @@ export default {
|
|||||||
reject({msg: 'Parameter error'});
|
reject({msg: 'Parameter error'});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
data = $A.isJson(data) ? data : {}
|
data = $A.isJson(data) ? data : {
|
||||||
|
deleted_at: state.dialogDeletedAt || $A.formatDate("Y-m-d H:i:s", $A.Time() - 86400 * 30)
|
||||||
|
}
|
||||||
if (data.hideLoad !== true) {
|
if (data.hideLoad !== true) {
|
||||||
state.loadDialogs++;
|
state.loadDialogs++;
|
||||||
}
|
}
|
||||||
@ -2117,9 +2130,7 @@ 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,
|
||||||
@ -2127,10 +2138,10 @@ export default {
|
|||||||
const resData = result.data;
|
const resData = result.data;
|
||||||
dispatch("saveDialog", resData.data);
|
dispatch("saveDialog", resData.data);
|
||||||
//
|
//
|
||||||
if (resData.deleted_at) {
|
resData.deleted_at && $A.IDBSet("dialogDeletedAt", resData.deleted_at).then(_ => {
|
||||||
state.dialogDeletedAt = resData.deleted_at
|
state.dialogDeletedAt = resData.deleted_at
|
||||||
resData.deleted_data.some(id => dispatch("forgetDialog", id))
|
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++
|
||||||
|
|||||||
1
resources/assets/js/store/state.js
vendored
1
resources/assets/js/store/state.js
vendored
@ -91,6 +91,7 @@ export default {
|
|||||||
projectId: 0,
|
projectId: 0,
|
||||||
projectTotal: 0,
|
projectTotal: 0,
|
||||||
projectLoad: 0,
|
projectLoad: 0,
|
||||||
|
projectDeletedAt: null,
|
||||||
taskId: 0,
|
taskId: 0,
|
||||||
taskCompleteTemps: [],
|
taskCompleteTemps: [],
|
||||||
taskContents: [],
|
taskContents: [],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user