오류 수정, 통계 보강
This commit is contained in:
@@ -13,6 +13,7 @@ const models = require('../models');
|
||||
const { Event, EventParticipant, Member, EventScore, Club, EventTeam, ClubMember, EventTeamMember } = models;
|
||||
const { Op, Sequelize } = require('sequelize');
|
||||
const { sequelize } = require('../models');
|
||||
const averageService = require('../services/averageService');
|
||||
|
||||
// 업로드 디렉토리 설정
|
||||
const uploadDir = path.join(__dirname, '../uploads');
|
||||
@@ -163,22 +164,34 @@ exports.parseEventFile = async (req, res) => {
|
||||
}
|
||||
|
||||
const clubMembers = await club.getMembers({
|
||||
attributes: ['id', 'name', 'gender', 'average', 'handicap'],
|
||||
attributes: ['id', 'name', 'gender', 'handicap'],
|
||||
through: { where: { status: 'active' } }
|
||||
});
|
||||
|
||||
// 각 회원의 동적 에버리지 계산
|
||||
const memberMap = new Map();
|
||||
clubMembers.forEach(member => {
|
||||
for (const member of clubMembers) {
|
||||
if (member && member.name) {
|
||||
let dynamicAverage = 0;
|
||||
try {
|
||||
const averageData = await averageService.calculateMemberAverageByClubSetting(
|
||||
member.id,
|
||||
clubId
|
||||
);
|
||||
dynamicAverage = averageData.average;
|
||||
} catch (error) {
|
||||
console.error(`회원 ${member.id}의 에버리지 계산 오류:`, error);
|
||||
}
|
||||
|
||||
memberMap.set(member.name, {
|
||||
id: member.id,
|
||||
name: member.name,
|
||||
gender: member.gender,
|
||||
average: member.average,
|
||||
average: dynamicAverage,
|
||||
handicap: member.handicap
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 파일 형식에 따른 처리
|
||||
if (fileExt === '.xlsx' || fileExt === '.xls') {
|
||||
@@ -194,6 +207,15 @@ exports.parseEventFile = async (req, res) => {
|
||||
return res.status(400).json({ message: '지원되지 않는 파일 형식입니다.' });
|
||||
}
|
||||
|
||||
// 참가자별 동적 에버리지 계산 호출 (memberId가 있을 때만)
|
||||
if (parsedData && parsedData.participants) {
|
||||
for (const p of parsedData.participants) {
|
||||
if (p.memberId) {
|
||||
await averageService.calculateMemberAverageByClubSetting(p.memberId, clubId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res.json({
|
||||
message: '파일 파싱 완료',
|
||||
data: parsedData
|
||||
|
||||
Reference in New Issue
Block a user