Compare commits

..

No commits in common. "cdaf57349c79365b60ed3b0d6c73d73f9f43fe68" and "3a1cb52b9f6c985014cfbe3eda801b78e2804248" have entirely different histories.

3 changed files with 29 additions and 52 deletions

View File

@ -65,21 +65,13 @@ export async function POST(request: Request) {
session.builderNm = result.data.data.builderNm
session.isLoggedIn = true
/**
* - Admin_Sub: 2차 / (groupId: 70000 (Musubi), builderNo: null, userAuthCd: B가 )
* - Builder: 2차 (groupId: 70000 (Musubi) builderNo가 null이
* groupId: 70000 (Musubi) builderNo: null이고 userAuthCd: B인 )
*/
if (result.data.data.userId === 'T01') {
session.role = 'T01'
} else if (result.data.data.groupId === '60000') {
session.role = 'Admin'
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo === null && result.data.data.userAuthCd !== 'B') {
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo === null) {
session.role = 'Admin_Sub'
} else if (
(result.data.data.groupId === '70000' && result.data.data.builderNo !== null) ||
(result.data.data.groupId === '70000' && result.data.data.builderNo === null && result.data.data.userAuthCd === 'B')
) {
} else if (result.data.data.groupId === '70000' && result.data.data.builderNo !== null) {
session.role = 'Builder'
} else {
session.role = 'User'

View File

@ -100,56 +100,45 @@ export class SurveySalesService {
}
/**
* @description
* @description
* @returns {WhereCondition}
* @exampleResult { AND: [{ STORE_ID: { equals: '1234567890' } }] }
*
* @description T01 : 임시저장되지
* @description Admin : 같은 , 2
* @description Admin_Sub : 같은 , user에게
* @description Builder : 같은 |
* @description Partner : 같은 |
* @description Builder : 같은
* @description Partner : 같은
*/
private createRoleCondition(): WhereCondition {
const where: WhereCondition = { AND: [] }
switch (this.session?.role) {
case 'Admin':
if (this.session?.storeId) {
where.OR = [
{ AND: [{ STORE_ID: { equals: this.session.storeId } }] },
{ AND: [{ SUBMISSION_TARGET_ID: { equals: this.session.storeId } }, { SUBMISSION_STATUS: { equals: true } }] },
{ AND: [{ SUBMISSION_TARGET_NM: { equals: this.session.storeNm } }, { SUBMISSION_STATUS: { equals: true } }] },
]
} else {
where.AND.push({ REPRESENTATIVE_ID: { equals: this.session.userId } })
}
where.OR = [
{ AND: [{ STORE_ID: { equals: this.session?.storeId } }] },
{ AND: [{ SUBMISSION_TARGET_ID: { equals: this.session?.storeId } }, { SUBMISSION_STATUS: { equals: true } }] },
{ AND: [{ SUBMISSION_TARGET_NM: { equals: this.session?.storeNm } }, { SUBMISSION_STATUS: { equals: true } }] },
]
break
case 'Admin_Sub':
if (this.session?.storeId) {
where.OR = [
{ AND: [{ STORE_ID: { equals: this.session.storeId } }] },
{ AND: [{ SUBMISSION_TARGET_ID: { equals: this.session.storeId } }, { SUBMISSION_STATUS: { equals: true } }] },
{ AND: [{ SUBMISSION_TARGET_NM: { equals: this.session.storeNm } }, { SUBMISSION_STATUS: { equals: true } }] },
]
} else {
where.AND.push({ REPRESENTATIVE_ID: { equals: this.session.userId } })
}
where.OR = [
{ AND: [{ STORE_ID: { equals: this.session?.storeId } }] },
{ AND: [{ SUBMISSION_TARGET_ID: { equals: this.session?.storeId } }, { SUBMISSION_STATUS: { equals: true } }] },
{ AND: [{ SUBMISSION_TARGET_NM: { equals: this.session?.storeNm } }, { SUBMISSION_STATUS: { equals: true } }] },
]
break
case 'Builder':
case 'Partner':
if (this.session?.builderId) {
where.AND.push({ CONSTRUCTION_POINT_ID: { equals: this.session?.builderId } })
} else {
where.AND.push({ REPRESENTATIVE_ID: { equals: this.session?.userId } })
where.AND.push({ ID: { equals: -1 } })
}
break
case 'T01':
where.OR = [{ NOT: { SRL_NO: { startsWith: '一時保存' } } }, { STORE_ID: { equals: this.session?.storeId } }]
break
default:
where.AND.push({ ID: { equals: -1 } })
break
}
return where
}
@ -394,9 +383,8 @@ export class SurveySalesService {
T01: () => this.checkT01Role(survey, session.userId),
Admin: () => this.checkAdminRole(survey, session.storeId, session.storeNm),
Admin_Sub: () => this.checkAdminSubRole(survey, session.storeId, session.storeNm),
Partner: () => this.checkPartnerOrBuilderRole(survey, session.builderId, session.userId),
Builder: () => this.checkPartnerOrBuilderRole(survey, session.builderId, session.userId),
default: () => false,
Partner: () => this.checkPartnerOrBuilderRole(survey, session.builderId),
Builder: () => this.checkPartnerOrBuilderRole(survey, session.builderId),
}
return roleChecks[session.role as keyof typeof roleChecks]?.() ?? false
@ -425,7 +413,7 @@ export class SurveySalesService {
* @returns {boolean} (true: , false: )
*/
private checkAdminRole(survey: any, storeId: string | null, storeNm: string | null): boolean {
if (!storeId) return survey.REPRESENTATIVE_ID === this.session?.userId
if (!storeId) return false
return survey.SUBMISSION_STATUS
? survey.SUBMISSION_TARGET_ID === storeId || survey.SUBMISSION_TARGET_NM === storeNm || survey.STORE_ID === storeId
: survey.STORE_ID === storeId
@ -440,7 +428,7 @@ export class SurveySalesService {
* @returns {boolean} (true: , false: )
*/
private checkAdminSubRole(survey: any, storeId: string | null, storeNm: string | null): boolean {
if (!storeId) return survey.REPRESENTATIVE_ID === this.session?.userId
if (!storeId) return false
return survey.SUBMISSION_STATUS
? survey.SUBMISSION_TARGET_ID === storeId || survey.SUBMISSION_TARGET_NM === storeNm || survey.STORE_ID === storeId
: survey.STORE_ID === storeId
@ -449,16 +437,14 @@ export class SurveySalesService {
/**
* @description Partner Builder
* -
* - ID가
*
* @param {any} survey
* @param {string | null} builderId ID
* @param {string | null} userId ID
* @returns {boolean} (true: , false: )
*/
private checkPartnerOrBuilderRole(survey: any, builderId: string | null, userId: string | null): boolean {
if (builderId) return survey.CONSTRUCTION_POINT_ID === builderId
return survey.REPRESENTATIVE_ID === userId
private checkPartnerOrBuilderRole(survey: any, builderId: string | null): boolean {
if (!builderId) return false
return survey.CONSTRUCTION_POINT_ID === builderId
}
/**

View File

@ -57,17 +57,17 @@ export default function BasicForm({ basicInfo, setBasicInfo, mode, session }: Ba
(session?.role === 'Builder' ? (
<>
{storeInput(basicInfo, setBasicInfo, mode)}
{builderInput(basicInfo, setBasicInfo, mode, session)}
{builderInput(basicInfo, setBasicInfo, mode)}
</>
) : session?.role === 'Partner' ? (
<>{builderInput(basicInfo, setBasicInfo, mode, session)}</>
<>{builderInput(basicInfo, setBasicInfo, mode)}</>
) : (
<>{storeInput(basicInfo, setBasicInfo, mode)}</>
))}
{mode === 'READ' && (
<>
{basicInfo?.store && storeInput(basicInfo, setBasicInfo, mode)}
{basicInfo?.constructionPoint && builderInput(basicInfo, setBasicInfo, mode, session)}
{basicInfo?.constructionPoint && builderInput(basicInfo, setBasicInfo, mode)}
</>
)}
</div>
@ -166,16 +166,15 @@ const storeInput = (basicInfo: SurveyBasicRequest, setBasicInfo: (basicInfo: Sur
)
}
/** 시공점 입력 창 - 2차점 시공권한 유저이지만(Builder) 시공점ID가 없는 경우에만 작성 가능 */
const builderInput = (basicInfo: SurveyBasicRequest, setBasicInfo: (basicInfo: SurveyBasicRequest) => void, mode: Mode, session: SessionData) => {
const isWriteable = mode !== 'READ' && session?.role === 'Builder' && session?.builderId === null
/** 시공점 입력 창 */
const builderInput = (basicInfo: SurveyBasicRequest, setBasicInfo: (basicInfo: SurveyBasicRequest) => void, mode: Mode) => {
return (
<div className="data-input-form-bx">
<div className="data-input-form-tit"></div>
<input
type="text"
className="input-frame"
readOnly={!isWriteable}
readOnly
value={basicInfo?.constructionPoint ?? ''}
onChange={(e) => setBasicInfo({ ...basicInfo, constructionPoint: e.target.value })}
/>