fix(aihr): hide unpublished cases from app users
This commit is contained in:
+4
-2
@@ -123,12 +123,13 @@ public class AihrCaseService {
|
||||
projectWhere = " AND project_ext_org_id IN (" + placeholders(projectScopes.size()) + ")";
|
||||
args.addAll(projectScopes);
|
||||
}
|
||||
String publishedWhere = projectScopes == null ? "" : " AND status = '已入库'";
|
||||
args.add(safeLimit);
|
||||
String sql = """
|
||||
SELECT case_id, title, type, status, update_time, owner, summary
|
||||
FROM aihr_case_record
|
||||
WHERE tenant_id = ?
|
||||
""" + projectWhere + """
|
||||
""" + projectWhere + publishedWhere + """
|
||||
ORDER BY update_time DESC, id DESC
|
||||
LIMIT ?
|
||||
""";
|
||||
@@ -157,11 +158,12 @@ public class AihrCaseService {
|
||||
projectWhere = " AND project_ext_org_id IN (" + placeholders(projectScopes.size()) + ")";
|
||||
args.addAll(projectScopes);
|
||||
}
|
||||
String publishedWhere = projectScopes == null ? "" : " AND status = '已入库'";
|
||||
String sql = """
|
||||
SELECT case_id, file_name, title, type, status, update_time, owner, transcript, summary, media_url, media_oss_id
|
||||
FROM aihr_case_record
|
||||
WHERE tenant_id = ? AND case_id = ?
|
||||
""" + projectWhere + " LIMIT 1";
|
||||
""" + projectWhere + publishedWhere + " LIMIT 1";
|
||||
args.add(0, tenantId());
|
||||
return jdbcTemplate.query(sql, (rs, rowNum) -> {
|
||||
Long mediaOssId = rs.getObject("media_oss_id", Long.class);
|
||||
|
||||
+24
@@ -108,6 +108,18 @@ class AihrCaseServiceTest {
|
||||
assertEquals("https://oss.local/cases/refreshed-case.webm", detail.mediaUrl());
|
||||
assertEquals(456L, detail.mediaOssId());
|
||||
assertEquals("P1", jdbcTemplate.lastArgs[2]);
|
||||
assertTrue(jdbcTemplate.lastSql.contains("status = '已入库'"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Tag("dev")
|
||||
void appCaseRecordsOnlyExposePublishedCases() {
|
||||
RecordsCaseJdbcTemplate jdbcTemplate = new RecordsCaseJdbcTemplate();
|
||||
AihrCaseService service = new AihrCaseService(null, null, new ObjectMapper(), jdbcTemplate, null);
|
||||
|
||||
service.records(10, List.of("P1"));
|
||||
|
||||
assertTrue(jdbcTemplate.lastSql.contains("status = '已入库'"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -189,9 +201,11 @@ class AihrCaseServiceTest {
|
||||
private static final class PersistentCaseJdbcTemplate extends CaseJdbcTemplate {
|
||||
private String lastCaseId;
|
||||
private Object[] lastArgs = new Object[0];
|
||||
private String lastSql = "";
|
||||
|
||||
@Override
|
||||
public <T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args) {
|
||||
this.lastSql = sql;
|
||||
this.lastCaseId = String.valueOf(args[1]);
|
||||
this.lastArgs = args;
|
||||
try {
|
||||
@@ -210,4 +224,14 @@ class AihrCaseServiceTest {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static final class RecordsCaseJdbcTemplate extends CaseJdbcTemplate {
|
||||
private String lastSql = "";
|
||||
|
||||
@Override
|
||||
public <T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args) {
|
||||
this.lastSql = sql;
|
||||
return List.of();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user