Merge branch 'adiDev' into develop

# Conflicts:
#	src/controllers/OrganizationController.ts
This commit is contained in:
AdisakKanthawilang 2024-01-29 16:26:08 +07:00
commit 8aed1633b2

View file

@ -288,52 +288,177 @@ export class OrganizationController extends Controller {
*/ */
@Get("{id}") @Get("{id}")
async detail(@Path() id: string) { async detail(@Path() id: string) {
try { const orgRootData = await AppDataSource.getRepository(OrgRoot)
const orgRevisionData = await AppDataSource.getRepository(OrgRevision) .createQueryBuilder("orgRoot")
.createQueryBuilder("orgRevision") .where("orgRoot.orgRevisionId = :id", { id })
// .leftJoin("orgRevision.orgRoots", "orgRoot") .select([
// .leftJoin("orgRoot.orgChild1s", "orgChild1") "orgRoot.id",
// .leftJoin("orgChild1.orgChild2s", "orgChild2") "orgRoot.orgRootName",
// .leftJoin("orgChild2.orgChild3s", "orgChild3") "orgRoot.orgRootShortName",
// .leftJoin("orgChild3.orgChild4s", "orgChild4") "orgRoot.orgRootCode",
.where("orgRevision.id = :id", { id }) "orgRoot.orgRootOrder",
// .select([ "orgRoot.orgRootPhoneEx",
// "orgRoot.id", "orgRoot.orgRootPhoneIn",
// "orgRoot.orgRootName", "orgRoot.orgRootFax",
// "orgRoot.orgRootShortName", "orgRoot.orgRevisionId",
// "orgRoot.orgRootCode", ])
// "orgRoot.orgRootOrder", .getMany();
// "orgChild1.id", const orgRootIds = orgRootData.map((orgRoot) => orgRoot.id);
// "orgChild1.orgChild1Name", const orgChild1Data = await AppDataSource.getRepository(OrgChild1)
// "orgChild1.orgChild1ShortName", .createQueryBuilder("orgChild1")
// "orgChild1.orgChild1Code", .where("orgChild1.orgRootId IN (:...ids)", { ids: orgRootIds })
// "orgChild1.orgChild1Order", .select([
"orgChild1.id",
"orgChild1.orgChild1Name",
"orgChild1.orgChild1ShortName",
"orgChild1.orgChild1Code",
"orgChild1.orgChild1Order",
"orgChild1.orgChild1PhoneEx",
"orgChild1.orgChild1PhoneIn",
"orgChild1.orgChild1Fax",
"orgChild1.orgRootId",
])
.getMany();
// "orgChild2.id", const orgChild1Ids = orgChild1Data.map((orgChild1) => orgChild1.id);
// "orgChild2.orgChild2Name", const orgChild2Data = await AppDataSource.getRepository(OrgChild2)
// "orgChild2.orgChild2ShortName", .createQueryBuilder("orgChild2")
// "orgChild2.orgChild2Code", .where("orgChild2.orgChild1Id IN (:...ids)", { ids: orgChild1Ids })
// "orgChild2.orgChild2Order", .select([
"orgChild2.id",
"orgChild2.orgChild2Name",
"orgChild2.orgChild2ShortName",
"orgChild2.orgChild2Code",
"orgChild2.orgChild2Order",
"orgChild2.orgChild2PhoneEx",
"orgChild2.orgChild2PhoneIn",
"orgChild2.orgChild2Fax",
"orgChild2.orgRootId",
// "orgChild3.id", "orgChild2.orgChild1Id",
// "orgChild3.orgChild3Name", ])
// "orgChild3.orgChild3ShortName", .getMany();
// "orgChild3.orgChild3Code",
// "orgChild3.orgChild3Order",
// "orgChild4.id", const orgChild2Ids = orgChild2Data.map((orgChild2) => orgChild2.id);
// "orgChild4.orgChild4Name", const orgChild3Data = await AppDataSource.getRepository(OrgChild3)
// "orgChild4.orgChild4ShortName", .createQueryBuilder("orgChild3")
// "orgChild4.orgChild4Code", .where("orgChild3.orgChild2Id IN (:...ids)", { ids: orgChild2Ids })
// "orgChild4.orgChild4Order", .select([
// ]) "orgChild3.id",
.getOne(); "orgChild3.orgChild3Name",
"orgChild3.orgChild3ShortName",
"orgChild3.orgChild3Code",
"orgChild3.orgChild3Order",
"orgChild3.orgChild3PhoneEx",
"orgChild3.orgChild3PhoneIn",
"orgChild3.orgChild3Fax",
"orgChild3.orgRootId",
return new HttpSuccess(orgRevisionData); "orgChild3.orgChild2Id",
} catch (error) { ])
return error; .getMany();
}
const orgChild3Ids = orgChild3Data.map((orgChild3) => orgChild3.id);
const orgChild4Data = await AppDataSource.getRepository(OrgChild4)
.createQueryBuilder("orgChild4")
.where("orgChild4.orgChild3Id IN (:...ids)", { ids: orgChild3Ids })
.select([
"orgChild4.id",
"orgChild4.orgChild4Name",
"orgChild4.orgChild4ShortName",
"orgChild4.orgChild4Code",
"orgChild4.orgChild4Order",
"orgChild4.orgChild4PhoneEx",
"orgChild4.orgChild4PhoneIn",
"orgChild4.orgChild4Fax",
"orgChild4.orgRootId",
"orgChild4.orgChild3Id",
])
.getMany();
const formattedData = orgRootData.map((orgRoot) => {
return {
orgRootId: orgRoot.id,
orgLevel: 0,
orgRootName: orgRoot.orgRootName,
orgRootShortName: orgRoot.orgRootShortName,
orgRootCode: orgRoot.orgRootCode,
orgCode: orgRoot.orgRootCode + "00",
orgRootOrder: orgRoot.orgRootOrder,
orgRootPhoneEx: orgRoot.orgRootPhoneEx,
orgRootPhoneIn: orgRoot.orgRootPhoneIn,
orgRootFax: orgRoot.orgRootFax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild1: orgChild1Data
.filter((orgChild1) => orgChild1.orgRootId === orgRoot.id)
.map((orgChild1) => ({
orgChild1Id: orgChild1.id,
orgLevel: 1,
orgChild1Name: orgChild1.orgChild1Name,
orgChild1ShortName: orgChild1.orgChild1ShortName,
orgChild1Code: orgChild1.orgChild1Code,
orgCode: orgRoot.orgRootCode + orgChild1.orgChild1Code,
orgChild1Order: orgChild1.orgChild1Order,
orgRootCode: orgRoot.orgRootCode,
orgChild1PhoneEx: orgChild1.orgChild1PhoneEx,
orgChild1PhoneIn: orgChild1.orgChild1PhoneIn,
orgChild1Fax: orgChild1.orgChild1Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild2: orgChild2Data
.filter((orgChild2) => orgChild2.orgChild1Id === orgChild1.id)
.map((orgChild2) => ({
orgChild2Id: orgChild2.id,
orgLevel: 2,
orgChild2Name: orgChild2.orgChild2Name,
orgChild2ShortName: orgChild2.orgChild2ShortName,
orgChild2Code: orgChild2.orgChild2Code,
orgCode: orgRoot.orgRootCode + orgChild2.orgChild2Code,
orgChild2Order: orgChild2.orgChild2Order,
orgRootCode: orgRoot.orgRootCode,
orgChild2PhoneEx: orgChild2.orgChild2PhoneEx,
orgChild2PhoneIn: orgChild2.orgChild2PhoneIn,
orgChild2Fax: orgChild2.orgChild2Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild3: orgChild3Data
.filter((orgChild3) => orgChild3.orgChild2Id === orgChild2.id)
.map((orgChild3) => ({
orgChild3Id: orgChild3.id,
orgLevel: 3,
orgChild3Name: orgChild3.orgChild3Name,
orgChild3ShortName: orgChild3.orgChild3ShortName,
orgChild3Code: orgChild3.orgChild3Code,
orgCode: orgRoot.orgRootCode + orgChild3.orgChild3Code,
orgChild3Order: orgChild3.orgChild3Order,
orgRootCode: orgRoot.orgRootCode,
orgChild3PhoneEx: orgChild3.orgChild3PhoneEx,
orgChild3PhoneIn: orgChild3.orgChild3PhoneIn,
orgChild3Fax: orgChild3.orgChild3Fax,
orgRevisionId: orgRoot.orgRevisionId,
orgChild4: orgChild4Data
.filter((orgChild4) => orgChild4.orgChild3Id === orgChild3.id)
.map((orgChild4) => ({
orgChild4Id: orgChild4.id,
orgLevel: 4,
orgChild4Name: orgChild4.orgChild4Name,
orgChild4ShortName: orgChild4.orgChild4ShortName,
orgChild4Code: orgChild4.orgChild4Code,
orgCode: orgRoot.orgRootCode + orgChild4.orgChild4Code,
orgChild4Order: orgChild4.orgChild4Order,
orgRootCode: orgRoot.orgRootCode,
orgChild4PhoneEx: orgChild4.orgChild4PhoneEx,
orgChild4PhoneIn: orgChild4.orgChild4PhoneIn,
orgChild4Fax: orgChild4.orgChild4Fax,
orgRevisionId: orgRoot.orgRevisionId,
})),
})),
})),
})),
};
});
return new HttpSuccess(formattedData);
} }
/** /**
@ -346,7 +471,7 @@ export class OrganizationController extends Controller {
@Put("/set/publish/{id}") @Put("/set/publish/{id}")
async Edit( async Edit(
@Path() id: string, @Path() id: string,
@Body() requestBody: {"orgPublishDate": Date}, @Body() requestBody: { orgPublishDate: Date },
@Request() request: { user: Record<string, any> }, @Request() request: { user: Record<string, any> },
) { ) {
try { try {
@ -358,8 +483,12 @@ export class OrganizationController extends Controller {
} }
const orgRevision = await this.orgRevisionRepository.findOne({ const orgRevision = await this.orgRevisionRepository.findOne({
where: { id: rootIdExits.orgRevisionId, orgRevisionIsDraft: true, orgRevisionIsCurrent: false } where: {
}); id: rootIdExits.orgRevisionId,
orgRevisionIsDraft: true,
orgRevisionIsCurrent: false,
},
});
if (!orgRevision) { if (!orgRevision) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId");
} }
@ -367,7 +496,7 @@ export class OrganizationController extends Controller {
orgRevision.lastUpdateUserId = request.user.sub; orgRevision.lastUpdateUserId = request.user.sub;
orgRevision.lastUpdateFullName = request.user.name; orgRevision.lastUpdateFullName = request.user.name;
orgRevision.lastUpdatedAt = new Date(); orgRevision.lastUpdatedAt = new Date();
orgRevision.orgPublishDate = requestBody.orgPublishDate orgRevision.orgPublishDate = requestBody.orgPublishDate;
this.orgRevisionRepository.merge(orgRevision, requestBody); this.orgRevisionRepository.merge(orgRevision, requestBody);
await this.orgRevisionRepository.save(orgRevision); await this.orgRevisionRepository.save(orgRevision);