fix: Update getLastGroupVisit to use groupId and adjust query accordingly

This commit is contained in:
pa
2026-03-25 22:56:33 +09:00
parent 50b7005cf8
commit a51b0fd703
2 changed files with 26 additions and 19 deletions

View File

@@ -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

View File

@@ -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<Array<{worldId: string, worldName: string, visitCount: number, totalTime: number}>>}
*/
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 };