This commit is contained in:
2026-08-11 18:41:30 +08:00 Unverified
parent 5157bb7ebe
commit ea97843f5b
2 changed files with 10 additions and 7 deletions
+2
View File
@@ -2,6 +2,7 @@
FROM --platform=$BUILDPLATFORM node:24-alpine AS frontend FROM --platform=$BUILDPLATFORM node:24-alpine AS frontend
WORKDIR /source WORKDIR /source
COPY versions.props ./
COPY web/package.json web/package-lock.json ./web/ COPY web/package.json web/package-lock.json ./web/
RUN npm --prefix web ci RUN npm --prefix web ci
COPY web/ ./web/ COPY web/ ./web/
@@ -11,6 +12,7 @@ FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build
ARG TARGETARCH ARG TARGETARCH
WORKDIR /source WORKDIR /source
COPY global.json ./ COPY global.json ./
COPY versions.props ./
COPY .env.example ./ COPY .env.example ./
COPY src/Jiaowu.Api/Jiaowu.Api.csproj ./src/Jiaowu.Api/ COPY src/Jiaowu.Api/Jiaowu.Api.csproj ./src/Jiaowu.Api/
RUN dotnet restore ./src/Jiaowu.Api/Jiaowu.Api.csproj --arch "$TARGETARCH" RUN dotnet restore ./src/Jiaowu.Api/Jiaowu.Api.csproj --arch "$TARGETARCH"
@@ -61,19 +61,20 @@ public sealed class ClickHouseAnalyticsController(
GROUP BY attendanceDate ORDER BY attendanceDate GROUP BY attendanceDate ORDER BY attendanceDate
""", cancellationToken); """, cancellationToken);
var grades = await client.QueryAsync($""" var grades = await client.QueryAsync($"""
SELECT academicTermId, academicTermName, studentCount, SELECT academicTermId, academicTermName,
round(weightedScore / nullIf(studentCount, 0), 2) AS averageScore, totalStudentCount AS studentCount,
round(passedCount / nullIf(studentCount, 0), 4) AS passRate round(totalWeightedScore / nullIf(totalStudentCount, 0), 2) AS averageScore,
round(totalPassedCount / nullIf(totalStudentCount, 0), 4) AS passRate
FROM FROM
( (
SELECT academicTermId, any(academicTermName) AS academicTermName, SELECT academicTermId, any(academicTermName) AS academicTermName,
sum(studentCount) AS studentCount, sum(studentCount) AS totalStudentCount,
sum(averageScore * studentCount) AS weightedScore, sum(averageScore * studentCount) AS totalWeightedScore,
sum(passedCount) AS passedCount sum(passedCount) AS totalPassedCount
FROM {options.Database}.gradeStatistics FINAL FROM {options.Database}.gradeStatistics FINAL
WHERE 1 = 1{collegeFilter} WHERE 1 = 1{collegeFilter}
GROUP BY academicTermId GROUP BY academicTermId
) ) AS gradeTotals
ORDER BY academicTermName ORDER BY academicTermName
""", cancellationToken); """, cancellationToken);