Просмотр исходного кода

perf(mobile): use appointment indexes for coach student lists

彭峰 3 дней назад
Родитель
Сommit
08619f7251
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      scripts/deploy-admin-functions.mjs

+ 2 - 2
scripts/deploy-admin-functions.mjs

@@ -2563,9 +2563,9 @@ async function coachStudentPage(input,current) {
   if (!coachId) fail(400,'陪练账号缺少旧系统用户 ID');
   const paging = pageInput(input), scheduledOnly = input.scope === 'current-scheduled';
   const values = [DEFAULT_COMPANY_ID,String(coachId)];
-  let base = "FROM \"CommonModel\" c JOIN \"CourseAppointment\" a ON a.\"company\"=$1 AND CAST(a.\"id\" AS text)=CAST(c.\"itemId\" AS text)";
+  let base = "FROM \"CommonModel\" c JOIN \"CourseAppointment\" a ON a.\"company\"=$1 AND a.\"id\"=c.\"itemId\"";
   if (scheduledOnly) base += " JOIN \"_User\" eligible ON eligible.\"company\"=$1 AND CAST(eligible.\"legacyUserId\" AS text)=CAST(a.\"szyh\" AS text)";
-  base += " WHERE c.\"company\"=$1 AND CAST(c.\"modelId\" AS text)='54' AND CAST(c.\"status\" AS text)='99' AND CAST(a.\"pl\" AS text)=$2 AND COALESCE(CAST(a.\"szyh\" AS text),'')<>''";
+  base += " WHERE c.\"company\"=$1 AND c.\"modelId\"=54 AND c.\"status\"=99 AND a.\"pl\"=$2 AND COALESCE(a.\"szyh\",'')<>''";
   if (scheduledOnly) {
     values.push(appOverviewToday().replace(/-/g,''));
     base += " AND eligible.\"isDisabled\" IS NOT TRUE AND eligible.\"isDeleted\" IS NOT TRUE\n      AND COALESCE(eligible.\"legacyGroupId\"::text,eligible.\"legacyUserData\"->>'GroupID','0')='1'\n      AND COALESCE(to_jsonb(a)->>'isDeleted','false') NOT IN ('true','1')\n      AND COALESCE(to_jsonb(c)->>'isDeleted','false') NOT IN ('true','1')\n      AND COALESCE(NULLIF(a.\"dszt\"::text,''),'0') IN ('0','10','20')\n      AND LEFT(REGEXP_REPLACE(COALESCE(NULLIF(a.\"bxrq\",''),a.\"yysj\",''),'[^0-9]','','g'),8) >= $3";