fix: change submit data set logic
- 제출 폼 데이터 삽입 안되는 오류 해결 - api error 메세지 설정 - api 응답 객체 변경
This commit is contained in:
parent
e806358d0e
commit
17d306bb11
@ -1,13 +1,8 @@
|
|||||||
import { prisma } from '@/libs/prisma'
|
import { prisma } from '@/libs/prisma'
|
||||||
import { NextRequest, NextResponse } from 'next/server'
|
import { NextRequest, NextResponse } from 'next/server'
|
||||||
import { loggerWrapper } from '@/libs/api-wrapper'
|
import { loggerWrapper } from '@/libs/api-wrapper'
|
||||||
|
import { SubmitTargetResponse } from '@/types/Survey'
|
||||||
|
|
||||||
type AdminSubPerson = {
|
|
||||||
storeId: string
|
|
||||||
userId: string
|
|
||||||
eMail: string
|
|
||||||
authority: string
|
|
||||||
}
|
|
||||||
// 2차점이 자신에게 매핑 된 1차 판매점과 관리자 정보 조회
|
// 2차점이 자신에게 매핑 된 1차 판매점과 관리자 정보 조회
|
||||||
async function getSubMissionAdminSub(request: NextRequest): Promise<NextResponse> {
|
async function getSubMissionAdminSub(request: NextRequest): Promise<NextResponse> {
|
||||||
try {
|
try {
|
||||||
@ -33,12 +28,11 @@ async function getSubMissionAdminSub(request: NextRequest): Promise<NextResponse
|
|||||||
AND MCS.DEL_YN = 'N';
|
AND MCS.DEL_YN = 'N';
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
const suitable: AdminSubPerson[] = await prisma.$queryRawUnsafe(query)
|
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
||||||
|
return NextResponse.json(data)
|
||||||
return NextResponse.json({ message: 'Hello, world!' })
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -37,12 +37,11 @@ async function getSubmissionAdmin(request: NextRequest): Promise<NextResponse> {
|
|||||||
;
|
;
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
const data: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
||||||
|
return NextResponse.json(data)
|
||||||
return NextResponse.json({ message: 'Hello, world!' })
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,13 +3,6 @@ import { SubmitTargetResponse } from '@/types/Survey'
|
|||||||
import { NextRequest, NextResponse } from 'next/server'
|
import { NextRequest, NextResponse } from 'next/server'
|
||||||
import { loggerWrapper } from '@/libs/api-wrapper'
|
import { loggerWrapper } from '@/libs/api-wrapper'
|
||||||
|
|
||||||
type BuilderPerson = {
|
|
||||||
agencyStoreId: string
|
|
||||||
userId: string
|
|
||||||
eMail: string
|
|
||||||
userAuthCd: string
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2차점의 시공권한 user가 해당 판매점의 관리자 정보 조회
|
// 2차점의 시공권한 user가 해당 판매점의 관리자 정보 조회
|
||||||
// N == 일반유저, S == 수퍼유저, B == 시공권한유저
|
// N == 일반유저, S == 수퍼유저, B == 시공권한유저
|
||||||
async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse> {
|
async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse> {
|
||||||
@ -37,14 +30,11 @@ async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse>
|
|||||||
AND MCAS.DEL_YN = 'N';
|
AND MCAS.DEL_YN = 'N';
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
// const suitable: BuilderPerson[] = await prisma.$queryRawUnsafe(query)
|
|
||||||
|
|
||||||
// return NextResponse.json({ message: 'Hello, world!' })
|
|
||||||
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
||||||
return NextResponse.json(data)
|
return NextResponse.json(data)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,12 +30,11 @@ async function getSubmissionSuper(request: NextRequest): Promise<NextResponse> {
|
|||||||
AND MCSA.DEL_YN = 'N';
|
AND MCSA.DEL_YN = 'N';
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
const data: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
||||||
|
return NextResponse.json(data)
|
||||||
return NextResponse.json({ message: 'Hello, world!' })
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error);
|
||||||
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -48,34 +48,43 @@ export default function SurveySaleSubmitPopup() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const [commCodeList, setCommCodeList] = useState<CommCode[]>([])
|
const [commCodeList, setCommCodeList] = useState<CommCode[]>([])
|
||||||
|
/** 제출 타겟 데이터 조회 및 제출 폼 데이터 삽입 */
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!session?.isLoggedIn || !surveyDetail?.id) return
|
if (!session?.isLoggedIn || !surveyDetail?.id) return
|
||||||
|
const baseUpdate = {
|
||||||
|
sender: session?.email ?? '',
|
||||||
|
title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')',
|
||||||
|
}
|
||||||
|
|
||||||
if (session?.role === 'Admin') {
|
if (session?.role === 'Admin') {
|
||||||
getCommCode('SALES_OFFICE_CD').then((codes) => {
|
getCommCode('SALES_OFFICE_CD').then((codes) => {
|
||||||
setCommCodeList(codes)
|
setCommCodeList(codes)
|
||||||
})
|
})
|
||||||
|
setSubmitData((prev) => ({
|
||||||
|
...prev,
|
||||||
|
...baseUpdate,
|
||||||
|
}))
|
||||||
} else if (session?.role === 'Builder' || session?.role === 'Admin_Sub') {
|
} else if (session?.role === 'Builder' || session?.role === 'Admin_Sub') {
|
||||||
getSubmitTarget({ storeId: surveyDetail?.storeId ?? '', role: session?.role ?? '' }).then((data) => {
|
getSubmitTarget({ storeId: surveyDetail?.storeId ?? '', role: session?.role ?? '' }).then((data) => {
|
||||||
if (data) {
|
if (!data) return
|
||||||
setSubmitData({
|
if (data && data.length > 0) {
|
||||||
...submitData,
|
const updateData: Partial<SubmitFormData> = {
|
||||||
targetId: data[0].targetStoreId,
|
sender: session?.email ?? '',
|
||||||
targetNm: data[0].targetStoreNm,
|
title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')',
|
||||||
})
|
targetId: data[0]?.targetStoreId ?? '',
|
||||||
data.length > 1 &&
|
targetNm: data[0]?.targetStoreNm ?? '',
|
||||||
setSubmitData({
|
receiver: data.filter((item) => item.auth === 'S').map((item) => item.repUserEmail),
|
||||||
...submitData,
|
reference: data.filter((item) => item.auth === 'N').map((item) => item.repUserEmail),
|
||||||
receiver: data.filter((item) => item.auth === 'S').map((item) => item.repUserEmail),
|
saleBase: null,
|
||||||
reference: data.filter((item) => item.auth === 'N').map((item) => item.repUserEmail),
|
contents: '',
|
||||||
})
|
}
|
||||||
|
setSubmitData((prev) => ({
|
||||||
|
...prev,
|
||||||
|
...updateData,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
setSubmitData({
|
|
||||||
...submitData,
|
|
||||||
sender: session?.email ?? '',
|
|
||||||
title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')',
|
|
||||||
})
|
|
||||||
}, [session, surveyDetail])
|
}, [session, surveyDetail])
|
||||||
|
|
||||||
const FORM_FIELDS: FormField[] = [
|
const FORM_FIELDS: FormField[] = [
|
||||||
@ -118,6 +127,7 @@ export default function SurveySaleSubmitPopup() {
|
|||||||
setIsShow(true)
|
setIsShow(true)
|
||||||
sendEmail({
|
sendEmail({
|
||||||
to: submitData.receiver,
|
to: submitData.receiver,
|
||||||
|
cc: submitData.reference ?? '',
|
||||||
subject: submitData.title,
|
subject: submitData.title,
|
||||||
content: contentsRef.current?.innerHTML ?? '',
|
content: contentsRef.current?.innerHTML ?? '',
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user