2024-12-06 05:12:28 +00:00
|
|
|
from fastapi import APIRouter, Depends, HTTPException, Header, Body, status, Request
|
|
|
|
from db import crud_user
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
from db.base import get_db
|
|
|
|
from db import models, schemas
|
|
|
|
from process.logger import logger
|
|
|
|
|
|
|
|
# 로그인 수행
|
|
|
|
async def do_login(user_id, user_pw, db):
|
|
|
|
# DB에서 유저 정보 확인
|
|
|
|
db_result_ori = crud_user.do_login(user_id=user_id, user_pw=user_pw, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
# 일치하는 유저가 있는지 확인
|
|
|
|
if len(db_result) == 0:
|
|
|
|
return {
|
|
|
|
"result": "FAIL"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
"user_seq": db_result[0]
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 마지막 로그인 시간 업데이트
|
|
|
|
async def update_last_login_dt(user_seq, db):
|
|
|
|
# 마지막 로그인 시간 업데이트
|
|
|
|
db_result = crud_user.update_last_login_dt(user_seq=user_seq, db=db)
|
|
|
|
|
|
|
|
if db_result:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 아이디 찾기(닉네임, 이메일)
|
|
|
|
async def find_id_by_name_email(nickname, user_email, db):
|
|
|
|
# DB에서 회원정보 찾기
|
|
|
|
db_result_ori = crud_user.find_id_by_name_email(nickname=nickname, user_email=user_email, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
# 일치하는 유저가 있는지 확인
|
|
|
|
if len(db_result) == 0:
|
|
|
|
return {
|
|
|
|
"result": "FAIL"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
db_result = db_result[0]
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
"user_seq": db_result[0],
|
|
|
|
"user_id": db_result[1]
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 아이디 찾기(user_seq)
|
|
|
|
async def find_id_by_user_seq(user_seq, db):
|
|
|
|
# DB에서 회원정보 찾기
|
|
|
|
db_result_ori = crud_user.find_id_by_user_seq(user_seq=user_seq, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
# 일치하는 유저가 있는지 확인
|
|
|
|
if len(db_result) == 0:
|
|
|
|
return {
|
|
|
|
"result": "FAIL"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
db_result = db_result[0]
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
"user_id": db_result[0],
|
|
|
|
"user_email": db_result[1]
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 이메일 발송 3회 이상 됐는지 확인
|
|
|
|
async def select_send_email_cnt(user_email, db):
|
|
|
|
db_result_ori = crud_user.select_send_email_cnt(user_email=user_email, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
db_result = db_result[0][0]
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
"send_email_cnt": db_result
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 이메일 발송내역 기록(하루 3회만 발송가능하게 하기 위함)
|
|
|
|
async def insert_send_email_info(user_seq, cert_type, user_info, cert_code, db):
|
|
|
|
db_result = crud_user.insert_send_email_info(user_seq=user_seq, cert_type=cert_type, user_info=user_info, cert_code=cert_code, db=db)
|
|
|
|
|
|
|
|
if db_result:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 비밀번호 찾기 수행
|
|
|
|
async def find_password_by_id_email(user_id, user_email, db):
|
|
|
|
# DB에서 회원정보 찾기
|
|
|
|
db_result_ori = crud_user.find_password_by_id_email(user_id=user_id, user_email=user_email, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
# 일치하는 유저가 있는지 확인
|
|
|
|
if len(db_result) == 0:
|
|
|
|
return {
|
|
|
|
"result": "FAIL"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
"user_seq": db_result[0]
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 비밀번호 업데이트 수행
|
|
|
|
async def update_new_password(user_seq, new_pw, new_solt, db):
|
|
|
|
# 회원정보 업데이트
|
|
|
|
db_result = crud_user.update_new_password(user_seq=user_seq, new_pw=new_pw, new_solt=new_solt, db=db)
|
|
|
|
|
|
|
|
if db_result:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 유저 회원가입 진행
|
|
|
|
async def insert_new_user(user_info, db):
|
|
|
|
# DB에서 신규 유저 등록
|
|
|
|
db_result_manage_user = crud_user.insert_new_user(user_info=user_info, db=db)
|
|
|
|
|
|
|
|
# 인증코드 입력 결과
|
|
|
|
if not db_result_manage_user:
|
|
|
|
return {
|
|
|
|
"result": "FAIL"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2025-01-07 06:59:18 +00:00
|
|
|
# 프로필 이미지 업데이트
|
|
|
|
async def update_profile_img(user_seq, profile_img, db):
|
|
|
|
db_result = crud_user.update_profile_img(user_seq=user_seq, profile_img=profile_img, db=db)
|
|
|
|
|
|
|
|
# 인증코드 입력 결과
|
|
|
|
if db_result:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-12-06 05:12:28 +00:00
|
|
|
# 마이페이지 - 유저 정보 가져오기
|
|
|
|
async def get_my_info_by_user_seq(user_seq, db):
|
|
|
|
# DB에서 유저 정보 가져오기
|
|
|
|
db_result_ori = crud_user.get_my_info_by_user_seq(user_seq=user_seq, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
# 데이터 1개만 존재하는지 확인
|
|
|
|
if len(db_result) == 1:
|
|
|
|
# 데이터 key value 구분해주기
|
|
|
|
db_result = db_result[0]
|
|
|
|
return {
|
|
|
|
"result": "OK",
|
|
|
|
"data": {
|
|
|
|
"nickname": db_result[0],
|
|
|
|
"user_email": db_result[1],
|
|
|
|
"department": db_result[2],
|
|
|
|
"profile_img": db_result[3],
|
|
|
|
"introduce_myself": db_result[4]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
"result": "FAIL"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 현재 비밀번호 일치 확인
|
|
|
|
async def check_current_user_pw(user_seq, user_pw, db):
|
|
|
|
db_result_ori = crud_user.check_current_user_pw(user_seq=user_seq, user_pw=user_pw, db=db)
|
|
|
|
db_result = []
|
|
|
|
for db_data in db_result_ori:
|
|
|
|
db_result.append(db_data)
|
|
|
|
|
|
|
|
if db_result[0][0] == 1:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 회원정보 업데이트
|
|
|
|
async def update_user_info(user_info, db):
|
|
|
|
# 회원정보 업데이트
|
|
|
|
db_result = crud_user.update_user_info(user_info=user_info, db=db)
|
|
|
|
|
|
|
|
if db_result:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# 회원 탈퇴 처리
|
|
|
|
async def user_withdraw(user_seq, db):
|
|
|
|
db_result = crud_user.user_withdraw(user_seq=user_seq, db=db)
|
|
|
|
|
|
|
|
if db_result:
|
|
|
|
return {
|
|
|
|
"result": "OK"
|
|
|
|
}
|
|
|
|
else:
|
|
|
|
return {
|
|
|
|
"result": "FAIL",
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|