{ "courses": "WITH RECURSIVE courses AS (SELECT DISTINCT n.\"company\",n.\"nodeId\",n.\"parentId\",n.\"nodeName\" FROM \"Node\" n WHERE ($1::text IS NULL OR n.\"company\"=$1) AND (CAST(n.\"nodeId\" AS text)='398' OR EXISTS(SELECT 1 FROM \"CourseBinding\" b WHERE b.\"company\"=n.\"company\" AND CAST(b.\"kcid\" AS text)=CAST(n.\"nodeId\" AS text)) OR EXISTS(SELECT 1 FROM \"CourseAppointment\" a WHERE a.\"company\"=n.\"company\" AND CAST(a.\"kcid\" AS text)=CAST(n.\"nodeId\" AS text)))), ancestors AS (SELECT c.\"company\",c.\"nodeId\" AS course_id,c.\"nodeId\",c.\"parentId\",c.\"nodeName\",0 AS depth FROM courses c UNION ALL SELECT a.\"company\",a.course_id,p.\"nodeId\",p.\"parentId\",p.\"nodeName\",a.depth+1 FROM ancestors a JOIN \"Node\" p ON p.\"company\"=a.\"company\" AND CAST(p.\"nodeId\" AS text)=CAST(a.\"parentId\" AS text) WHERE a.depth<12) SELECT CAST(c.\"nodeId\" AS text) AS id,c.\"nodeName\" AS name,COALESCE(ARRAY_AGG(a.\"nodeName\" ORDER BY a.depth) FILTER(WHERE COALESCE(a.\"nodeName\",'')<>''),ARRAY[]::text[]) AS ancestor_names FROM courses c LEFT JOIN ancestors a ON a.\"company\"=c.\"company\" AND a.course_id=c.\"nodeId\" GROUP BY c.\"nodeId\",c.\"nodeName\" ORDER BY c.\"nodeName\" LIMIT 2000", "appointments": "SELECT a.\"szyh\"::text AS uid,COUNT(*)::int AS appointment_count,COUNT(*) FILTER(WHERE active AND COALESCE(a.\"dszt\",'0')::text IN ('0','10','11','20'))::int AS unfinished,COUNT(*) FILTER(WHERE active AND a.\"dslx\"::text='3')::int AS trial_count,MIN(CASE WHEN active AND COALESCE(a.\"dszt\",'0')::text='0' AND COALESCE(a.\"yysj\",a.\"bxrq\")>=to_char(CURRENT_DATE,'YYYY-MM-DD') THEN COALESCE(a.\"yysj\",a.\"bxrq\") END) AS next_at,COUNT(*) FILTER(WHERE active AND COALESCE(a.\"dszt\",'0')::text NOT IN ('0','10','11','20','30','40'))::int AS abnormal FROM (SELECT source.*,NOT EXISTS(SELECT 1 FROM \"CommonModel\" c WHERE c.\"company\"=source.\"company\" AND c.\"modelId\"::text='54' AND c.\"itemId\"::text=source.\"id\"::text AND c.\"status\"::text='-2') AS active FROM \"CourseAppointment\" source WHERE ($1::text IS NULL OR source.\"company\"=$1)) a GROUP BY a.\"szyh\"::text", "scheduleOptions": "WITH binding_courses AS (SELECT b.\"company\",CAST(b.\"kcid\" AS text) AS course_id,ARRAY_AGG(DISTINCT CAST(b.\"yhid\" AS text)) FILTER (WHERE COALESCE(CAST(b.\"yhid\" AS text),'')<>'') AS member_ids FROM \"CourseBinding\" b JOIN \"CommonModel\" c ON c.\"company\"=b.\"company\" AND CAST(c.\"modelId\" AS text)='58' AND CAST(c.\"itemId\" AS text)=CAST(b.\"id\" AS text) WHERE ($1::text IS NULL OR b.\"company\"=$1) AND COALESCE(CAST(c.\"status\" AS text),'99')<>'-2' GROUP BY b.\"company\",CAST(b.\"kcid\" AS text)), appointment_courses AS (SELECT DISTINCT \"company\",CAST(\"kcid\" AS text) AS course_id FROM \"CourseAppointment\" WHERE ($1::text IS NULL OR \"company\"=$1)), course_ids AS (SELECT \"company\",course_id FROM binding_courses UNION SELECT \"company\",course_id FROM appointment_courses) SELECT CAST(n.\"nodeId\" AS text) AS id,n.\"nodeName\" AS name,COALESCE(b.member_ids,ARRAY[]::text[]) AS member_ids FROM \"Node\" n LEFT JOIN binding_courses b ON b.\"company\"=n.\"company\" AND b.course_id=CAST(n.\"nodeId\" AS text) WHERE ($1::text IS NULL OR n.\"company\"=$1) AND (CAST(n.\"nodeId\" AS text)='398' OR EXISTS(SELECT 1 FROM course_ids i WHERE i.\"company\"=n.\"company\" AND i.course_id=CAST(n.\"nodeId\" AS text))) ORDER BY n.\"nodeName\" LIMIT 1000", "memberLessons": "SELECT CAST(l.\"xymz\" AS text) AS uid,MAX(COALESCE(CAST(l.\"lessonAt\" AS text),NULLIF(l.\"plpjsj\",''),CAST(c.\"createdAt\" AS text),NULLIF(a.\"jssj\",''))) AS last_at,COUNT(*) FILTER (WHERE CAST(l.\"kclx\" AS text) IN ('1','2','4'))::int AS paid_count,COUNT(*) FILTER (WHERE CAST(l.\"kclx\" AS text)='3')::int AS trial_count FROM \"LessonRecord\" l LEFT JOIN \"CommonModel\" c ON c.\"company\"=l.\"company\" AND CAST(c.\"modelId\" AS text)='59' AND CAST(c.\"itemId\" AS text)=CAST(l.\"id\" AS text) LEFT JOIN \"CommonModel\" ac ON ac.\"company\"=l.\"company\" AND CAST(ac.\"modelId\" AS text)='54' AND CAST(ac.\"generalId\" AS text)=CAST(l.\"yyds\" AS text) LEFT JOIN \"CourseAppointment\" a ON a.\"company\"=l.\"company\" AND CAST(a.\"id\" AS text)=CAST(ac.\"itemId\" AS text) WHERE ($1::text IS NULL OR l.\"company\"=$1) GROUP BY CAST(l.\"xymz\" AS text)" }