feat: 카카오 인증 여부 뱃지 추가

- API에 is_kakao_verified 필드 추가 (nickname != '고객')
- 사용자 상세 모달에 카카오 노란 뱃지 표시
- 검색 결과 목록에도 뱃지 표시
- 미인증 회원은 회색 '미인증' 뱃지
This commit is contained in:
thug0bin 2026-02-27 16:23:26 +09:00
parent bd30ece284
commit a3a0bc8868
2 changed files with 12 additions and 4 deletions

View File

@ -1388,7 +1388,8 @@ def admin_user_detail(user_id):
'name': user['nickname'], 'name': user['nickname'],
'phone': user['phone'], 'phone': user['phone'],
'balance': user['mileage_balance'], 'balance': user['mileage_balance'],
'created_at': utc_to_kst_str(user['created_at']) 'created_at': utc_to_kst_str(user['created_at']),
'is_kakao_verified': user['nickname'] != '고객' # 카카오 인증 여부
}, },
'mileage_history': [ 'mileage_history': [
{ {
@ -1474,7 +1475,8 @@ def admin_search_user():
'id': row['id'], 'id': row['id'],
'name': row['nickname'], 'name': row['nickname'],
'phone': row['phone'], 'phone': row['phone'],
'balance': row['mileage_balance'] 'balance': row['mileage_balance'],
'is_kakao_verified': row['nickname'] != '고객' # 카카오 인증 여부
} for row in results] } for row in results]
return jsonify({ return jsonify({

View File

@ -849,7 +849,10 @@
<div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 16px;"> <div style="display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 16px;">
<div> <div>
<div style="color: #868e96; font-size: 13px; margin-bottom: 6px;">이름</div> <div style="color: #868e96; font-size: 13px; margin-bottom: 6px;">이름</div>
<div style="color: #212529; font-size: 16px; font-weight: 600;">${user.name}</div> <div style="color: #212529; font-size: 16px; font-weight: 600;">
${user.name}
${user.is_kakao_verified ? '<span style="display: inline-flex; align-items: center; gap: 3px; background: #FEE500; color: #3C1E1E; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 10px; margin-left: 8px;"><span style="font-size: 13px;">💬</span>카카오</span>' : '<span style="display: inline-flex; align-items: center; gap: 3px; background: #e9ecef; color: #868e96; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 10px; margin-left: 8px;">미인증</span>'}
</div>
</div> </div>
<div> <div>
<div style="color: #868e96; font-size: 13px; margin-bottom: 6px;">전화번호</div> <div style="color: #868e96; font-size: 13px; margin-bottom: 6px;">전화번호</div>
@ -1303,9 +1306,12 @@
`; `;
users.forEach(user => { users.forEach(user => {
const kakaoBadge = user.is_kakao_verified
? '<span style="display: inline-flex; align-items: center; gap: 2px; background: #FEE500; color: #3C1E1E; font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 8px; margin-left: 6px;">💬</span>'
: '<span style="display: inline-flex; align-items: center; background: #e9ecef; color: #868e96; font-size: 10px; font-weight: 600; padding: 2px 6px; border-radius: 8px; margin-left: 6px;">미인증</span>';
html += ` html += `
<tr style="border-bottom: 1px solid #f1f3f5;"> <tr style="border-bottom: 1px solid #f1f3f5;">
<td style="padding: 14px; font-size: 14px; color: #212529; font-weight: 500;">${user.name}</td> <td style="padding: 14px; font-size: 14px; color: #212529; font-weight: 500;">${user.name}${kakaoBadge}</td>
<td style="padding: 14px; font-size: 14px; color: #495057; font-family: 'Courier New', monospace;">${user.phone}</td> <td style="padding: 14px; font-size: 14px; color: #495057; font-family: 'Courier New', monospace;">${user.phone}</td>
<td style="padding: 14px; text-align: right; font-size: 14px; color: #6366f1; font-weight: 600;">${user.balance.toLocaleString()}P</td> <td style="padding: 14px; text-align: right; font-size: 14px; color: #6366f1; font-weight: 600;">${user.balance.toLocaleString()}P</td>
<td style="padding: 14px; text-align: center;"> <td style="padding: 14px; text-align: center;">