Skip to content
Snippets Groups Projects
Commit e40ca678 authored by YUNHEE LEE's avatar YUNHEE LEE
Browse files

mypage, manager 쿼리 수정

parent 1eb2b715
No related branches found
No related tags found
No related merge requests found
Pipeline #8781 failed
...@@ -15,56 +15,31 @@ router.get('/mypage', (req, res) => { ...@@ -15,56 +15,31 @@ router.get('/mypage', (req, res) => {
// 사용자 정보 불러오는 쿼리 // 사용자 정보 불러오는 쿼리
const getUserQuery = ` const getUserQuery = `
SELECT SELECT
Code,Name,Phone User_Code,Name,Phone
FROM users FROM users
WHERE Code = ${usercode}`; WHERE User_Code = ${usercode}`;
// 이전 게임 목록을 불러오는 쿼리 + valid 값 불러오기 // 경기 목록 불러오는 쿼리
const previousGamesQuery = `
SELECT
play_in.User_Code,
games.Code,
games.Date,
games.valid,
arena.Stadium,
(users.Name) AS ManagerName, -- 추가: 경기장 관리자의 이름
(sports.Name) AS SportName, -- 추가: 해당 경기의 스포츠 이름
times.StartTime,
times.EndTime,
(SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Code) AS SameGamesCount
FROM
play_in
JOIN games ON play_in.Game_Code = games.Code
JOIN arena ON games.Ground_Name = arena.Field_Name
JOIN times ON games.Time_Code = times.Code
JOIN sports ON arena.Sports_Type = sports.Name -- 추가: 스포츠 테이블과 조인
JOIN users ON arena.Mgr_Code = users.Code -- 추가: 관리자의 사용자 코드를 사용하여 users 테이블과 조인
WHERE
play_in.User_Code = ${usercode} AND games.Date < CURDATE()`;
// 사용자 게임 예약 내역 불러오는 쿼리 + valid 불러오는 쿼리
const getGamesQuery = ` const getGamesQuery = `
SELECT SELECT
games.*, games.*,
arena.Stadium, stadium.Name AS StadiumName,
users.Name AS ManagerName, users.Name AS ManagerName,
sports.Name AS SportName, sports.Name AS SportName,
times.StartTime, times.StartTime,
times.EndTime, times.EndTime,
(SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Code) AS SameGamesCount (SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Game_Code) AS SameGamesCount
FROM FROM
play_in play_in
INNER JOIN games ON play_in.Game_Code = games.Code INNER JOIN games ON play_in.Game_Code = games.Game_Code
INNER JOIN arena ON games.Ground_Name = arena.Field_Name INNER JOIN arena ON games.Arena_Name = arena.Arena_Name
INNER JOIN times ON games.Time_Code = times.Code INNER JOIN stadium ON arena.Arena_Name = stadium.arena_name
INNER JOIN times ON games.Time_Code = times.Time_Code
INNER JOIN sports ON arena.Sports_Type = sports.Name INNER JOIN sports ON arena.Sports_Type = sports.Name
INNER JOIN users ON arena.Mgr_Code = users.Code INNER JOIN users ON arena.Mgr_Code = users.User_Code
WHERE WHERE
play_in.User_Code = ${usercode} play_in.User_Code = ${usercode}
GROUP BY `;
games.Code, arena.Stadium, users.Name, sports.Name, times.StartTime, times.EndTime`;
db.query(getUserQuery, (getUserErr, userResult) => { db.query(getUserQuery, (getUserErr, userResult) => {
...@@ -76,13 +51,6 @@ router.get('/mypage', (req, res) => { ...@@ -76,13 +51,6 @@ router.get('/mypage', (req, res) => {
const userInfo = userResult[0]; const userInfo = userResult[0];
db.query(previousGamesQuery, (err, previousGamesResult) => {
if (err) {
console.error('이전 게임 목록 쿼리 오류:', err.stack);
res.status(500).send('Internal Server Error');
return;
}
db.query(getGamesQuery, (getGamesErr, gamesResult) => { db.query(getGamesQuery, (getGamesErr, gamesResult) => {
if (getGamesErr) { if (getGamesErr) {
console.error('게임 정보 조회 중 오류 발생:', getGamesErr.stack); console.error('게임 정보 조회 중 오류 발생:', getGamesErr.stack);
...@@ -91,8 +59,7 @@ router.get('/mypage', (req, res) => { ...@@ -91,8 +59,7 @@ router.get('/mypage', (req, res) => {
} }
if (userResult.length > 0) { if (userResult.length > 0) {
const previousGames = previousGamesResult; res.render('BBFP_Mypage.html', { userInfo, gamesResult});
res.render('BBFP_Mypage.html', { userInfo, gamesResult, previousGames });
} }
else { else {
res.status(404).send('사용자 정보를 찾을 수 없습니다.'); res.status(404).send('사용자 정보를 찾을 수 없습니다.');
...@@ -100,8 +67,6 @@ router.get('/mypage', (req, res) => { ...@@ -100,8 +67,6 @@ router.get('/mypage', (req, res) => {
}); });
}); });
});
} }
}); });
...@@ -141,10 +106,10 @@ router.get('/mypage/participants', (req, res) => { ...@@ -141,10 +106,10 @@ router.get('/mypage/participants', (req, res) => {
const getParticipantsQuery = ` const getParticipantsQuery = `
SELECT SELECT
users.Name, users.Name,
users.Code AS User_Code users.User_Code
FROM FROM
play_in play_in
INNER JOIN users ON play_in.User_Code = users.Code INNER JOIN users ON play_in.User_Code = users.User_Code
WHERE WHERE
play_in.Game_Code = ${gameCode} play_in.Game_Code = ${gameCode}
`; `;
...@@ -155,6 +120,7 @@ router.get('/mypage/participants', (req, res) => { ...@@ -155,6 +120,7 @@ router.get('/mypage/participants', (req, res) => {
res.status(500).json({ error: 'Internal Server Error' }); res.status(500).json({ error: 'Internal Server Error' });
return; return;
} }
console.log('participants : ',participants);
res.json(participants); res.json(participants);
}); });
......
...@@ -14,13 +14,13 @@ router.get('/manager', (req, res) => { ...@@ -14,13 +14,13 @@ router.get('/manager', (req, res) => {
// 사용자가 로그인하지 않은 경우 로그인 페이지로 리다이렉트 // 사용자가 로그인하지 않은 경우 로그인 페이지로 리다이렉트
res.redirect('/login'); res.redirect('/login');
} else { } else {
// 사용자 정보와 관리자 세부 정보를 검색하는 쿼리 //관리자 세부 정보를 검색하는 쿼리
const getUserquery = ` const getUserquery = `
SELECT users.Code AS usercode, users.Name AS username, users.Phone AS userphone, SELECT users.User_Code AS usercode, users.Name AS username, users.Phone AS userphone,
arena.Field_Name AS fieldname, arena.Sports_Type AS sprots arena.arena_name AS fieldname, arena.Sports_Type AS sprots
FROM users FROM users
INNER JOIN arena ON users.Code = arena.Mgr_Code INNER JOIN arena ON users.User_Code = arena.Mgr_Code
WHERE users.Code = ${usercode};`; WHERE users.User_Code = ${usercode};`;
// 쿼리 실행 // 쿼리 실행
db.query(getUserquery, (getUserErr, userResult) => { db.query(getUserquery, (getUserErr, userResult) => {
...@@ -37,27 +37,27 @@ router.get('/manager', (req, res) => { ...@@ -37,27 +37,27 @@ router.get('/manager', (req, res) => {
// 사용자 정보 추출 // 사용자 정보 추출
const userInfo = userResult[0]; const userInfo = userResult[0];
// 경기 목록 불러오는 쿼리 + 게임 valid 추가 // 경기 목록 불러오는 쿼리
const gamesQuery = const gamesQuery = `
`SELECT SELECT
games.Code, games.Game_Code,
games.Date, games.Date,
games.valid, games.valid,
times.StartTime, times.StartTime,
times.EndTime, times.EndTime,
COUNT(play_in.User_Code) AS totalParticipants, (SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Game_Code) AS totalParticipants,
GROUP_CONCAT(users.Name) AS participantNames, GROUP_CONCAT(users.Name) AS participantNames,
GROUP_CONCAT(users.Phone) AS participantPhones GROUP_CONCAT(users.Phone) AS participantPhones
FROM FROM
games games
INNER JOIN arena ON games.Ground_Name = arena.Field_Name INNER JOIN arena ON games.arena_name = arena.arena_name
INNER JOIN times ON games.Time_Code = times.Code INNER JOIN times ON games.Time_Code = times.Time_Code
LEFT JOIN play_in ON games.Code = play_in.Game_Code LEFT JOIN play_in ON games.Game_Code = play_in.Game_Code
LEFT JOIN users ON play_in.User_Code = users.Code LEFT JOIN users ON play_in.User_Code = users.User_Code
WHERE WHERE
arena.Mgr_Code = ${usercode} arena.Mgr_Code = ${usercode}
GROUP BY GROUP BY
games.Code, games.Date, times.StartTime, times.EndTime;`; games.Game_Code, games.Date, times.StartTime, times.EndTime;`;
// Execute the games query // Execute the games query
db.query(gamesQuery, (gamesErr, gamesResult) => { db.query(gamesQuery, (gamesErr, gamesResult) => {
...@@ -69,41 +69,7 @@ router.get('/manager', (req, res) => { ...@@ -69,41 +69,7 @@ router.get('/manager', (req, res) => {
console.log('게임 결과:', gamesResult); // 이 줄을 추가하여 콘솔에 로그 출력 console.log('게임 결과:', gamesResult); // 이 줄을 추가하여 콘솔에 로그 출력
// 이전 경기 목록 불러오는 쿼리 + 게임 valid 추가 res.render('BBFP_Manager.html', { userInfo, gamesResult });
const previousGamesQuery = `
SELECT
games.Code,
games.Date,
games.valid,
times.StartTime,
times.EndTime,
(SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Code) AS totalParticipants,
GROUP_CONCAT(users.Name) AS participantNames,
GROUP_CONCAT(users.Phone) AS participantPhones
FROM
games
INNER JOIN arena ON games.Ground_Name = arena.Field_Name
INNER JOIN times ON games.Time_Code = times.Code
LEFT JOIN play_in ON games.Code = play_in.Game_Code
LEFT JOIN users ON play_in.User_Code = users.Code
WHERE
arena.Mgr_Code = ${usercode} AND games.Date < CURDATE()
GROUP BY
games.Code, games.Date, times.StartTime, times.EndTime;`;
db.query(previousGamesQuery, (previousGamesErr, previousGamesResult) => {
if (previousGamesErr) {
console.error('이전 게임 쿼리 오류:', previousGamesErr.stack);
res.status(500).send('내부 서버 오류');
return;
}
console.log('이전 게임 결과:', userInfo); // 이 줄을 추가하여 콘솔에 로그 출력
res.render('BBFP_Manager.html', { userInfo, gamesResult, previousGamesResult });
});
}); });
} }
}); });
...@@ -117,11 +83,11 @@ router.get('/manager/participants', (req, res) => { ...@@ -117,11 +83,11 @@ router.get('/manager/participants', (req, res) => {
const getParticipantsQuery = ` const getParticipantsQuery = `
SELECT SELECT
users.Name, users.Name,
users.Code AS User_Code, users.User_Code AS User_Code,
users.Phone users.Phone
FROM FROM
play_in play_in
INNER JOIN users ON play_in.User_Code = users.Code INNER JOIN users ON play_in.User_Code = users.User_Code
WHERE WHERE
play_in.Game_Code = ${gameCode} play_in.Game_Code = ${gameCode}
`; `;
...@@ -144,7 +110,7 @@ router.get('/manager/participants', (req, res) => { ...@@ -144,7 +110,7 @@ router.get('/manager/participants', (req, res) => {
console.log('삭제 쿼리:', gameCode); console.log('삭제 쿼리:', gameCode);
const deleteReservationQuery = ` const deleteReservationQuery = `
UPDATE games SET valid = false WHERE games.Code=${gameCode};`; UPDATE games SET valid = false WHERE games.Game_Code=${gameCode};`;
db.query(deleteReservationQuery, (deleteErr, deleteResult) => { db.query(deleteReservationQuery, (deleteErr, deleteResult) => {
......
...@@ -59,19 +59,19 @@ ...@@ -59,19 +59,19 @@
<%= games.StartTime %> - <%= games.EndTime %> <%= games.StartTime %> - <%= games.EndTime %>
</td> </td>
<td> <td>
<%= games.Code %> <%= games.Game_Code %>
</td> </td>
<td> <td>
<%= games.totalParticipants %> <%= games.totalParticipants %>
</td> </td>
<td> <td>
<button class="participants-toggle" <button class="participants-toggle"
onclick="toggleParticipants('<%= games.Code %>')">상세</button> onclick="toggleParticipants('<%= games.Game_Code %>')">상세</button>
</td> </td>
<td> <!--게임 취소 버튼 추가--> <td> <!--게임 취소 버튼 추가-->
<form action="/manager/cancelReservation" method="POST"> <form action="/manager/cancelReservation" method="POST">
<input type="hidden" name="gameCode" value="<%= games.Code %>"> <input type="hidden" name="gameCode" value="<%= games.Game_Code %>">
<% console.log('-----------현재 게임 결과------------------:', games); %> <% console.log('-----------현재 게임 결과------------------:', games); %>
<button type="submit" class="cancel">취소</button> <button type="submit" class="cancel">취소</button>
</form> </form>
...@@ -113,14 +113,14 @@ ...@@ -113,14 +113,14 @@
<%= games.StartTime %> - <%= games.EndTime %> <%= games.StartTime %> - <%= games.EndTime %>
</td> </td>
<td> <td>
<%= games.Code %> <%= games.Game_Code %>
</td> </td>
<td> <td>
<%= games.totalParticipants %> <%= games.totalParticipants %>
</td> </td>
<td> <td>
<button class="participants-toggle" <button class="participants-toggle"
onclick="toggleParticipants('<%= games.Code %>')">상세</button> onclick="toggleParticipants('<%= games.Game_Code %>')">상세</button>
</td> </td>
</tr> </tr>
...@@ -145,8 +145,8 @@ ...@@ -145,8 +145,8 @@
<th scope="col">참가자 정보</th> <th scope="col">참가자 정보</th>
<th scope="col">기타</th> <th scope="col">기타</th>
</tr> </tr>
<% if (previousGamesResult.length> 0) { %> <% if (gamesResult.length> 0) { %>
<% previousGamesResult .filter(previous=> new Date() >= new Date(previous.Date)) // 현재 이전인 것만 필터링 <% gamesResult .filter(previous=> new Date() >= new Date(previous.Date)) // 현재 이전인 것만 필터링
.sort((a, b) => new Date(b.Date) - new Date(a.Date)) // 날짜를 내림차순으로 정렬 .sort((a, b) => new Date(b.Date) - new Date(a.Date)) // 날짜를 내림차순으로 정렬
.forEach(function (previous, index) { %> .forEach(function (previous, index) { %>
<% const gameDate=new Date(previous.Date); %> <% const gameDate=new Date(previous.Date); %>
...@@ -159,14 +159,14 @@ ...@@ -159,14 +159,14 @@
<%= previous.StartTime %> - <%= previous.EndTime %> <%= previous.StartTime %> - <%= previous.EndTime %>
</td> </td>
<td> <td>
<%= previous.Code %> <%= previous.Game_Code %>
</td> </td>
<td> <td>
<%= previous.totalParticipants %> <%= previous.totalParticipants %>
</td> </td>
<td> <td>
<button class="participants-toggle" <button class="participants-toggle"
onclick="toggleParticipants('<%= previous.Code %>')">상세</button> onclick="toggleParticipants('<%= previous.Game_Code %>')">상세</button>
</td> </td>
<td> <!-- 경기 취소 여부 보여줌 --> <td> <!-- 경기 취소 여부 보여줌 -->
<% if(previous.valid){ %> <% if(previous.valid){ %>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<h2>내 정보</h2> <h2>내 정보</h2>
<% console.log('-----------게임 결과------------------:',userInfo); %> <% console.log('-----------게임 결과------------------:',userInfo); %>
<div class="divider"></div> <div class="divider"></div>
<p><b>회원번호</b>: <%= userInfo.Code %> <p><b>회원번호</b>: <%= userInfo.User_Code %>
</p> </p>
<p><b>이름</b>: <%= userInfo.Name %> <p><b>이름</b>: <%= userInfo.Name %>
</p> </p>
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
1).padStart(2, '0' ) + '-' + String(gameDate.getDate()).padStart(2, '0' ) %> 1).padStart(2, '0' ) + '-' + String(gameDate.getDate()).padStart(2, '0' ) %>
</td> </td>
<td> <td>
<%= game.Stadium %> <%= game.StadiumName %>
</td> </td>
<td> <td>
<%= game.StartTime %> - <%= game.EndTime %> <%= game.StartTime %> - <%= game.EndTime %>
...@@ -67,12 +67,12 @@ ...@@ -67,12 +67,12 @@
<td> <td>
<%= game.SameGamesCount %> <%= game.SameGamesCount %>
<button class="participants-toggle" <button class="participants-toggle"
onclick="toggleParticipants('<%= game.Code %>')">상세</button> onclick="toggleParticipants('<%= game.Game_Code %>')">상세</button>
</td> </td>
<td> <td>
<form action="/mypage/cancelReservation" method="POST"> <form action="/mypage/cancelReservation" method="POST">
<input type="hidden" name="gameCode" value="<%= game.Code %>"> <input type="hidden" name="gameCode" value="<%= game.Game_Code %>">
<input type="hidden" name="userCode" value="<%= userInfo.Code %>"> <input type="hidden" name="userCode" value="<%= userInfo.User_Code %>">
<% console.log('-----------게임 결과------------------:', game); %> <% console.log('-----------게임 결과------------------:', game); %>
<button type="submit" class="cancel">취소</button> <button type="submit" class="cancel">취소</button>
</form> </form>
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
1).padStart(2, '0' ) + '-' + String(gameDate.getDate()).padStart(2, '0' ) %> 1).padStart(2, '0' ) + '-' + String(gameDate.getDate()).padStart(2, '0' ) %>
</td> </td>
<td> <td>
<%= game.Stadium %> <%= game.StadiumName %>
</td> </td>
<td> <td>
<%= game.StartTime %> - <%= game.EndTime %> <%= game.StartTime %> - <%= game.EndTime %>
...@@ -123,7 +123,7 @@ ...@@ -123,7 +123,7 @@
<td> <td>
<%= game.SameGamesCount %> <%= game.SameGamesCount %>
<button class="participants-toggle" <button class="participants-toggle"
onclick="toggleParticipants('<%= game.Code %>')">상세</button> onclick="toggleParticipants('<%= game.Game_Code %>')">상세</button>
</td> </td>
</tr> </tr>
<% }); %> <% }); %>
...@@ -148,9 +148,9 @@ ...@@ -148,9 +148,9 @@
<th scope="col">참가인원</th> <!-- New column for participant count --> <th scope="col">참가인원</th> <!-- New column for participant count -->
<th scope="col">취소여부</th> <th scope="col">취소여부</th>
</tr> </tr>
<% if (previousGames.length> 0) { %> <% if (gamesResult.length> 0) { %>
<% console.log('-----------게임 결과------------------:', previousGames); %> <% console.log('-----------게임 결과------------------:', gamesResult); %>
<% previousGames .filter(previous=> new Date() >= new Date(previous.Date)) // 날짜가 현재 날짜보다 이전인 것만 필터링 <% gamesResult .filter(previous=> new Date() >= new Date(previous.Date)) // 날짜가 현재 날짜보다 이전인 것만 필터링
.sort((a, b) => new Date(b.Date) - new Date(a.Date)) // 날짜를 내림차순으로 정렬 .sort((a, b) => new Date(b.Date) - new Date(a.Date)) // 날짜를 내림차순으로 정렬
.forEach(function (previous, index) { %> .forEach(function (previous, index) { %>
<% const gameDate=new Date(previous.Date); %> <% const gameDate=new Date(previous.Date); %>
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
) %> ) %>
</td> </td>
<td> <td>
<%= previous.Stadium %> <%= previous.StadiumName %>
</td> </td>
<td> <td>
<%= previous.StartTime %> - <%= previous.EndTime %> <%= previous.StartTime %> - <%= previous.EndTime %>
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
<td> <td>
<%= previous.SameGamesCount %> <%= previous.SameGamesCount %>
<button class="participants-toggle" <button class="participants-toggle"
onclick="toggleParticipants('<%= previous.Code %>')">상세</button> onclick="toggleParticipants('<%= previous.Game_Code %>')">상세</button>
</td> </td>
<td> <!-- 경기 취소 여부 보여줌 --> <td> <!-- 경기 취소 여부 보여줌 -->
<% if(previous.valid){ %> <% if(previous.valid){ %>
......
const getGamesQuery = `
SELECT
games.*,
stadium.Name,
users.Name AS ManagerName,
sports.Name AS SportName,
times.StartTime,
times.EndTime,
(SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Game_Code) AS SameGamesCount
FROM
play_in
INNER JOIN games ON play_in.Game_Code = games.Game_Code
INNER JOIN arena ON games.Ground_Name = arena.Arena_Name
INNER JOIN times ON games.Time_Code = times.Time_Code
INNER JOIN sports ON arena.Sports_Type = sports.Name
INNER JOIN users ON arena.Mgr_Code = users.User_Code
WHERE
play_in.User_Code = ${usercode}
GROUP BY
games.Game_Code, Stadium.Name, users.Name, sports.Name, times.StartTime, times.EndTime`;
const previousGamesQuery = `
SELECT
games.Game_Code,
games.Date,
games.valid,
times.StartTime,
times.EndTime,
(SELECT COUNT(*) FROM play_in WHERE Game_Code = games.Game_Code) AS totalParticipants,
GROUP_CONCAT(users.Name) AS participantNames,
GROUP_CONCAT(users.Phone) AS participantPhones
FROM
games
INNER JOIN arena ON games.arena_name = arena.arena_name
INNER JOIN times ON games.Time_Code = times.Time_Code
LEFT JOIN play_in ON games.Game_Code = play_in.Game_Code
LEFT JOIN users ON play_in.User_Code = users.User_Code
WHERE
arena.Mgr_Code = ${usercode} AND games.Date < CURDATE()
GROUP BY
games.Game_Code, games.Date, times.StartTime, times.EndTime;`;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment