From a51b0fd7036b88a578e98abfe320f3f5a8eccdc6 Mon Sep 17 00:00:00 2001 From: pa Date: Wed, 25 Mar 2026 22:56:33 +0900 Subject: [PATCH] fix: Update getLastGroupVisit to use groupId and adjust query accordingly --- src/coordinators/groupCoordinator.js | 22 ++++++++++++---------- src/services/database/gameLog.js | 23 ++++++++++++++--------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/coordinators/groupCoordinator.js b/src/coordinators/groupCoordinator.js index 51b093c1..f8eb24d9 100644 --- a/src/coordinators/groupCoordinator.js +++ b/src/coordinators/groupCoordinator.js @@ -18,14 +18,17 @@ import { useNotificationStore } from '../stores/notification'; import { useUiStore } from '../stores/ui'; import { useUserStore } from '../stores/user'; import { useGroupStore } from '../stores/group'; -import { syncGroupSearchIndex, removeGroupSearchIndex, clearGroupSearchIndex } from './searchIndexCoordinator'; +import { + syncGroupSearchIndex, + removeGroupSearchIndex, + clearGroupSearchIndex +} from './searchIndexCoordinator'; import { watchState } from '../services/watchState'; import configRepository from '../services/config'; import * as workerTimers from 'worker-timers'; - /** * @param ref */ @@ -48,7 +51,6 @@ function applyGroupLanguage(ref) { } } - /** * * @param {object} json @@ -180,7 +182,6 @@ export function applyGroupMember(json) { return json; } - /** * * @param ref @@ -275,7 +276,6 @@ function groupRoleChange(ref, oldRoles, newRoles, oldRoleIds, newRoleIds) { } } - /** * * @param groupId @@ -348,7 +348,7 @@ export function showGroupDialog(groupId, options = {}) { .then((args1) => { D.ownerDisplayName = args1.ref.displayName; }); - database.getLastGroupVisit(D.ref.name).then((r) => { + database.getLastGroupVisit(D.id).then((r) => { if (D.id === ref.id) { D.lastVisit = r.created_at; } @@ -461,7 +461,6 @@ export function getGroupDialogGroup(groupId, existingRef) { }); } - /** * * @param {object} ref @@ -507,7 +506,12 @@ export function onGroupJoined(groupId) { name: '', iconUrl: '' }); - syncGroupSearchIndex({ id: groupId, name: '', ownerId: '', iconUrl: '' }); + syncGroupSearchIndex({ + id: groupId, + name: '', + ownerId: '', + iconUrl: '' + }); groupRequest.getGroup({ groupId, includeRoles: true }).then((args) => { applyGroup(args.json); saveCurrentUserGroups(); @@ -547,7 +551,6 @@ export async function onGroupLeft(groupId) { } } - /** * */ @@ -709,7 +712,6 @@ export async function updateInGameGroupOrder() { } } - /** * * @param groupId diff --git a/src/services/database/gameLog.js b/src/services/database/gameLog.js index b5420333..332a1007 100644 --- a/src/services/database/gameLog.js +++ b/src/services/database/gameLog.js @@ -307,21 +307,19 @@ const gameLog = { return ref; }, - async getLastGroupVisit(groupName) { + async getLastGroupVisit(groupId) { var ref = { - created_at: '', - groupName: '' + created_at: '' }; await sqliteService.execute( (row) => { ref = { - created_at: row[0], - groupName: row[1] + created_at: row[0] }; }, - `SELECT created_at, group_name FROM gamelog_location WHERE group_name = @groupName ORDER BY id DESC LIMIT 1`, + `SELECT created_at FROM gamelog_location WHERE location LIKE @groupId ORDER BY id DESC LIMIT 1`, { - '@groupName': groupName + '@groupId': `%${groupId}%` } ); return ref; @@ -1461,11 +1459,18 @@ const gameLog = { * @param {string} [excludeWorldId=''] - Optional world ID to exclude from results. * @returns {Promise>} */ - async getMyTopWorlds(days = 0, limit = 5, sortBy = 'time', excludeWorldId = '') { + async getMyTopWorlds( + days = 0, + limit = 5, + sortBy = 'time', + excludeWorldId = '' + ) { const results = []; const whereClause = days > 0 ? `AND created_at >= datetime('now', @daysOffset)` : ''; - const excludeClause = excludeWorldId ? 'AND world_id != @excludeWorldId' : ''; + const excludeClause = excludeWorldId + ? 'AND world_id != @excludeWorldId' + : ''; const orderBy = sortBy === 'count' ? 'visit_count DESC' : 'total_time DESC'; const params = { '@limit': limit };