Kaynağa Gözat

Изменение отображения pe для участника или ребенка

Vadim 2 ay önce
ebeveyn
işleme
4504cb80da

+ 8 - 0
src/api/v_0.1.0/client/client-pe-api.ts

@@ -138,7 +138,15 @@ class ClientPartEntitiesApi {
           peTypeName: z.string(),
           eventInstId: z.string().uuid(),
           ownerId: z.string().uuid(),
+          ownerIdentity: z.string(),
           name: z.string(),
+          members: z.array(
+            z.object({
+              peMemberId: z.string(),
+              userId: z.string().uuid(),
+              identity: z.string(),
+            }),
+          ),
         }),
       ]),
     }),

+ 29 - 3
src/modules/client/activities/participant-entities/c-pe-controller.ts

@@ -421,7 +421,10 @@ class ClientPeController {
       return;
     }
 
-    // участник
+    // участник или ребенок
+
+    let isMemberOrChild = false;
+
     const isMember = await selPool.exists(
       sql.unsafe`
         select
@@ -434,16 +437,39 @@ class ClientPeController {
           and pm.is_active = true   
       `,
     );
+    if (isMember) {
+      isMemberOrChild = true;
+    } else {
+      const isChild = await selPool.exists(
+        sql.unsafe`
+        select
+          pm.pe_id
+        from
+          act.pe_members pm
+        join usr.users u on
+          u.user_id = pm.user_id and
+          u.is_child = true
+          and u.parent_id = ${user.userId}
+        where
+          pm.pe_id = ${peId}
+          and pm.is_active = true   
+      `,
+      );
+      if (isChild) {
+        isMemberOrChild = true;
+      }
+    }
 
-    if (!isMember) throw ApiError.ForbiddenError();
+    if (!isMemberOrChild) throw ApiError.ForbiddenError();
 
     const pe = await cPeService.getPeForMember(peId);
+    const members = await cPeService.getActivePeMembersWithIdentity(peId);
     if (!pe)
       throw ApiError.BadRequest("peNotFound", "Сущность участия не найдена");
 
     RouterUtils.validAndSendResponse(api.client.pe.GET_PartEntity.res, res, {
       code: "success",
-      pe: { ...pe, userRole: "member" },
+      pe: { ...pe, userRole: "member", members: [...members] },
     });
   }
 

+ 6 - 2
src/modules/client/activities/participant-entities/c-pe-service.ts

@@ -135,6 +135,7 @@ class CPeService {
         name: DbSchema.act.partEntities.name,
         eventInstId: DbSchema.act.partEntities.eventInstId,
         ownerId: DbSchema.act.partEntities.ownerId,
+        ownerIdentity: z.string(),
       }),
     )`
       select
@@ -144,9 +145,12 @@ class CPeService {
         pt.name "peTypeName",
         pe.event_inst_id "eventInstId",
         pe.owner_id "ownerId",
-        pe.name
+        pe.name,
+        ui.identity "ownerIdentity"
       from
-		act.part_entities pe
+		    act.part_entities pe
+      left join ev.users_identity ui on
+        ui.user_id = pe.owner_id
       left join act.pe_types pt on
         pt.pe_type_id = pe.pe_type_id
       where