Merge pull request 'feature/survey' (#118) from feature/survey into dev

Reviewed-on: #118
This commit is contained in:
seul 2025-08-04 14:36:15 +09:00
commit 4118af35cd
2 changed files with 12 additions and 37 deletions

View File

@ -70,7 +70,7 @@ export async function POST(request: Request) {
* - Builder: 2차 (groupId: 70000 (Musubi) builderNo가 null이 * - Builder: 2차 (groupId: 70000 (Musubi) builderNo가 null이
* groupId: 70000 (Musubi) builderNo: null이고 userAuthCd: B인 ) * groupId: 70000 (Musubi) builderNo: null이고 userAuthCd: B인 )
*/ */
if (result.data.data.userId === 'T01') { if (result.data.data.userId === 'T01' || result.data.data.storeId === 'T01') {
session.role = 'T01' session.role = 'T01'
} else if (result.data.data.groupId === '60000') { } else if (result.data.data.groupId === '60000') {
session.role = 'Admin' session.role = 'Admin'
@ -124,7 +124,7 @@ export async function POST(request: Request) {
ROLE: '', ROLE: '',
} }
if (result.data.data.userId === 'T01') { if (result.data.data.userId === 'T01' || result.data.data.storeId === 'T01') {
resultForSession.ROLE = 'T01' resultForSession.ROLE = 'T01'
} else if (result.data.data.groupId === '60000') { } else if (result.data.data.groupId === '60000') {
resultForSession.ROLE = 'Admin' resultForSession.ROLE = 'Admin'

View File

@ -104,9 +104,9 @@ export class SurveySalesService {
* @returns {WhereCondition} * @returns {WhereCondition}
* @exampleResult { AND: [{ STORE_ID: { equals: '1234567890' } }] } * @exampleResult { AND: [{ STORE_ID: { equals: '1234567890' } }] }
* *
* @description T01 : 임시저장되지 * @description T01 : 임시저장되지 | T01
* @description Admin : 같은 , 2 * @description Admin : 같은 , 2 |
* @description Admin_Sub : 같은 , user에게 * @description Admin_Sub : 같은 , user에게 |
* @description Builder : 같은 | * @description Builder : 같은 |
* @description Partner : 같은 | * @description Partner : 같은 |
*/ */
@ -115,16 +115,6 @@ export class SurveySalesService {
switch (this.session?.role) { switch (this.session?.role) {
case 'Admin': 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 } })
}
break
case 'Admin_Sub': case 'Admin_Sub':
if (this.session?.storeId) { if (this.session?.storeId) {
where.OR = [ where.OR = [
@ -391,9 +381,9 @@ export class SurveySalesService {
if (!survey || !session) return false if (!survey || !session) return false
const roleChecks = { const roleChecks = {
T01: () => this.checkT01Role(survey, session.userId), T01: () => this.checkT01Role(survey, session.userId, session.storeId),
Admin: () => this.checkAdminRole(survey, session.storeId, session.storeNm), Admin: () => this.checkAdminRole(survey, session.storeId, session.storeNm),
Admin_Sub: () => this.checkAdminSubRole(survey, session.storeId, session.storeNm), Admin_Sub: () => this.checkAdminRole(survey, session.storeId, session.storeNm),
Partner: () => this.checkPartnerOrBuilderRole(survey, session.builderId, session.userId), Partner: () => this.checkPartnerOrBuilderRole(survey, session.builderId, session.userId),
Builder: () => this.checkPartnerOrBuilderRole(survey, session.builderId, session.userId), Builder: () => this.checkPartnerOrBuilderRole(survey, session.builderId, session.userId),
default: () => false, default: () => false,
@ -404,20 +394,20 @@ export class SurveySalesService {
/** /**
* @description T01 * @description T01
* - , * - T01 ,
* *
* @param {any} survey * @param {any} survey
* @returns {boolean} (true: , false: ) * @returns {boolean} (true: , false: )
*/ */
private checkT01Role(survey: any, userId: string | null): boolean { private checkT01Role(survey: any, userId: string | null, storeId: string | null): boolean {
if (survey.REPRESENTATIVE_ID === userId) { if (survey.REPRESENTATIVE_ID === userId || survey.STORE_ID === storeId) {
return true return true
} }
return survey.SRL_NO !== '一時保存' return survey.SRL_NO !== '一時保存'
} }
/** /**
* @description Admin (1 - Order) * @description Admin, Admin_Sub (1 - Order, 2 - Musubi)
* - , * - ,
* *
* @param {any} survey * @param {any} survey
@ -432,22 +422,7 @@ export class SurveySalesService {
} }
/** /**
* @description Admin_Sub (2 - Musubi) * @description Partner, Builder
* - , user에게
*
* @param {any} survey
* @param {string | null} storeId ID
* @returns {boolean} (true: , false: )
*/
private checkAdminSubRole(survey: any, storeId: string | null, storeNm: string | null): boolean {
if (!storeId) return survey.REPRESENTATIVE_ID === this.session?.userId
return survey.SUBMISSION_STATUS
? survey.SUBMISSION_TARGET_ID === storeId || survey.SUBMISSION_TARGET_NM === storeNm || survey.STORE_ID === storeId
: survey.STORE_ID === storeId
}
/**
* @description Partner Builder
* - * -
* - ID가 * - ID가
* *