修正競賽團隊編輯、個人賽顯示、團體賽顯示 bug
This commit is contained in:
@@ -882,6 +882,7 @@ export class JudgeService extends DatabaseServiceBase {
|
||||
const result = await db.queryOne<Judge>(sql, [id]);
|
||||
if (result) {
|
||||
result.expertise = this.parseExpertise(result.expertise as any);
|
||||
result.is_active = Boolean(result.is_active); // 確保 is_active 是布爾值
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -892,7 +893,8 @@ export class JudgeService extends DatabaseServiceBase {
|
||||
const results = await db.query<Judge>(sql);
|
||||
return results.map(judge => ({
|
||||
...judge,
|
||||
expertise: this.parseExpertise(judge.expertise as any)
|
||||
expertise: this.parseExpertise(judge.expertise as any),
|
||||
is_active: Boolean(judge.is_active) // 確保 is_active 是布爾值
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -1010,17 +1012,26 @@ export class TeamService extends DatabaseServiceBase {
|
||||
SELECT t.*,
|
||||
u.name as leader_name,
|
||||
u.phone as leader_phone,
|
||||
t.leader_id as leader,
|
||||
COUNT(DISTINCT tm.id) as member_count,
|
||||
COUNT(DISTINCT a.id) as app_count
|
||||
COUNT(DISTINCT a.id) as app_count,
|
||||
t.created_at as submissionDate
|
||||
FROM teams t
|
||||
LEFT JOIN users u ON t.leader_id = u.id
|
||||
LEFT JOIN team_members tm ON t.id = tm.team_id
|
||||
LEFT JOIN apps a ON t.id = a.team_id AND a.is_active = 1
|
||||
WHERE t.is_active = 1
|
||||
GROUP BY t.id
|
||||
GROUP BY t.id, t.name, t.leader_id, t.department, t.contact_email, t.total_likes, t.is_active, t.created_at, t.updated_at, u.name, u.phone
|
||||
ORDER BY t.created_at DESC
|
||||
`;
|
||||
const results = await DatabaseServiceBase.safeQuery(sql);
|
||||
console.log('🔍 getAllTeams 查詢結果:', results.slice(0, 2).map(r => ({
|
||||
id: r.id,
|
||||
name: r.name,
|
||||
leader_name: r.leader_name,
|
||||
member_count: r.member_count,
|
||||
submissionDate: r.submissionDate
|
||||
})));
|
||||
return results;
|
||||
}
|
||||
|
||||
@@ -1104,9 +1115,11 @@ export class TeamService extends DatabaseServiceBase {
|
||||
for (const member of updates.members) {
|
||||
if (member.user_id && member.role) {
|
||||
console.log(`添加成員: ${member.user_id} (${member.role})`);
|
||||
// 生成唯一的 ID
|
||||
const memberId = `tm_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
||||
await DatabaseServiceBase.safeInsert(
|
||||
'INSERT INTO team_members (team_id, user_id, role, joined_at) VALUES (?, ?, ?, NOW())',
|
||||
[id, member.user_id, member.role]
|
||||
'INSERT INTO team_members (id, team_id, user_id, role, joined_at) VALUES (?, ?, ?, ?, NOW())',
|
||||
[memberId, id, member.user_id, member.role]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user