diff --git a/src/app/api/submission/admin-sub/route.ts b/src/app/api/submission/admin-sub/route.ts index 28e3627..345a3ff 100644 --- a/src/app/api/submission/admin-sub/route.ts +++ b/src/app/api/submission/admin-sub/route.ts @@ -1,13 +1,8 @@ import { prisma } from '@/libs/prisma' import { NextRequest, NextResponse } from 'next/server' import { loggerWrapper } from '@/libs/api-wrapper' +import { SubmitTargetResponse } from '@/types/Survey' -type AdminSubPerson = { - storeId: string - userId: string - eMail: string - authority: string -} // 2차점이 자신에게 매핑 된 1차 판매점과 관리자 정보 조회 async function getSubMissionAdminSub(request: NextRequest): Promise { try { @@ -33,12 +28,11 @@ async function getSubMissionAdminSub(request: NextRequest): Promise { ; CLOSE SYMMETRIC KEY SYMMETRICKEY; ` - const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query) - - return NextResponse.json({ message: 'Hello, world!' }) + const data: SuperPerson[] = await prisma.$queryRawUnsafe(query) + return NextResponse.json(data) } catch (error) { console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error) - return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 }) + return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 }) } } diff --git a/src/app/api/submission/builder/route.ts b/src/app/api/submission/builder/route.ts index f1f0f93..cf43b08 100644 --- a/src/app/api/submission/builder/route.ts +++ b/src/app/api/submission/builder/route.ts @@ -3,13 +3,6 @@ import { SubmitTargetResponse } from '@/types/Survey' import { NextRequest, NextResponse } from 'next/server' import { loggerWrapper } from '@/libs/api-wrapper' -type BuilderPerson = { - agencyStoreId: string - userId: string - eMail: string - userAuthCd: string -} - // 2차점의 시공권한 user가 해당 판매점의 관리자 정보 조회 // N == 일반유저, S == 수퍼유저, B == 시공권한유저 async function getSubmissionBuilder(request: NextRequest): Promise { @@ -37,14 +30,11 @@ async function getSubmissionBuilder(request: NextRequest): Promise AND MCAS.DEL_YN = 'N'; CLOSE SYMMETRIC KEY SYMMETRICKEY; ` - // const suitable: BuilderPerson[] = await prisma.$queryRawUnsafe(query) - - // return NextResponse.json({ message: 'Hello, world!' }) const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query) return NextResponse.json(data) } catch (error) { console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error) - return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 }) + return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 }) } } diff --git a/src/app/api/submission/super/route.ts b/src/app/api/submission/super/route.ts index faa66cf..c950dfe 100644 --- a/src/app/api/submission/super/route.ts +++ b/src/app/api/submission/super/route.ts @@ -30,12 +30,11 @@ async function getSubmissionSuper(request: NextRequest): Promise { AND MCSA.DEL_YN = 'N'; CLOSE SYMMETRIC KEY SYMMETRICKEY; ` - const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query) - - return NextResponse.json({ message: 'Hello, world!' }) + const data: SuperPerson[] = await prisma.$queryRawUnsafe(query) + return NextResponse.json(data) } catch (error) { - console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error) - return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 }) + console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error); + return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 }); } } diff --git a/src/components/popup/SurveySaleSubmitPopup.tsx b/src/components/popup/SurveySaleSubmitPopup.tsx index 45bc7b1..ca8ced0 100644 --- a/src/components/popup/SurveySaleSubmitPopup.tsx +++ b/src/components/popup/SurveySaleSubmitPopup.tsx @@ -48,34 +48,43 @@ export default function SurveySaleSubmitPopup() { }) const [commCodeList, setCommCodeList] = useState([]) + /** 제출 타겟 데이터 조회 및 제출 폼 데이터 삽입 */ useEffect(() => { if (!session?.isLoggedIn || !surveyDetail?.id) return + const baseUpdate = { + sender: session?.email ?? '', + title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')', + } + if (session?.role === 'Admin') { getCommCode('SALES_OFFICE_CD').then((codes) => { setCommCodeList(codes) }) + setSubmitData((prev) => ({ + ...prev, + ...baseUpdate, + })) } else if (session?.role === 'Builder' || session?.role === 'Admin_Sub') { getSubmitTarget({ storeId: surveyDetail?.storeId ?? '', role: session?.role ?? '' }).then((data) => { - if (data) { - setSubmitData({ - ...submitData, - targetId: data[0].targetStoreId, - targetNm: data[0].targetStoreNm, - }) - data.length > 1 && - setSubmitData({ - ...submitData, - receiver: data.filter((item) => item.auth === 'S').map((item) => item.repUserEmail), - reference: data.filter((item) => item.auth === 'N').map((item) => item.repUserEmail), - }) + if (!data) return + if (data && data.length > 0) { + const updateData: Partial = { + sender: session?.email ?? '', + title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')', + targetId: data[0]?.targetStoreId ?? '', + targetNm: data[0]?.targetStoreNm ?? '', + receiver: data.filter((item) => item.auth === 'S').map((item) => item.repUserEmail), + reference: data.filter((item) => item.auth === 'N').map((item) => item.repUserEmail), + saleBase: null, + contents: '', + } + setSubmitData((prev) => ({ + ...prev, + ...updateData, + })) } }) } - setSubmitData({ - ...submitData, - sender: session?.email ?? '', - title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')', - }) }, [session, surveyDetail]) const FORM_FIELDS: FormField[] = [ @@ -118,6 +127,7 @@ export default function SurveySaleSubmitPopup() { setIsShow(true) sendEmail({ to: submitData.receiver, + cc: submitData.reference ?? '', subject: submitData.title, content: contentsRef.current?.innerHTML ?? '', })