Browse Source

fix: expose skill source metadata in cloud items

backup/master-local-20261012
pwklppg 1 month ago
parent
commit
1666162252
  1. 2
      mydreamjob-server/src/main/java/com/mydreamjob/skill/SkillCloudQueryService.java
  2. 2
      mydreamjob-server/src/main/java/com/mydreamjob/skill/dto/SkillCloudItem.java
  3. 19
      mydreamjob-server/src/test/java/com/mydreamjob/skill/SkillCloudQueryServiceTest.java

2
mydreamjob-server/src/main/java/com/mydreamjob/skill/SkillCloudQueryService.java

@ -106,6 +106,8 @@ public class SkillCloudQueryService {
projection.skillCode(), projection.skillCode(),
projection.nameZh(), projection.nameZh(),
projection.nameEn(), projection.nameEn(),
projection.sourceType(),
projection.sourceCode(),
projection.categoryId(), projection.categoryId(),
projection.categoryName(), projection.categoryName(),
projection.importance(), projection.importance(),

2
mydreamjob-server/src/main/java/com/mydreamjob/skill/dto/SkillCloudItem.java

@ -8,6 +8,8 @@ public record SkillCloudItem(
String skillCode, String skillCode,
String nameZh, String nameZh,
String nameEn, String nameEn,
String sourceType,
String sourceCode,
Long categoryId, Long categoryId,
String categoryName, String categoryName,
BigDecimal heat, BigDecimal heat,

19
mydreamjob-server/src/test/java/com/mydreamjob/skill/SkillCloudQueryServiceTest.java

@ -196,9 +196,9 @@ class SkillCloudQueryServiceTest {
} }
@Test @Test
void mapsProvenanceFieldsFromTheDatabase() { void mapsSkillAndHeatProvenanceFieldsFromTheDatabase() {
SkillCloudResponse response = service.query(1L, 1L, 103L); SkillCloudResponse frameworks = service.query(1L, 1L, 103L);
SkillCloudItem react = response.items().stream() SkillCloudItem react = frameworks.items().stream()
.filter(item -> item.skillId().equals(26L)) .filter(item -> item.skillId().equals(26L))
.findFirst() .findFirst()
.orElseThrow(); .orElseThrow();
@ -216,10 +216,23 @@ class SkillCloudQueryServiceTest {
assertThat(react.nameEn()).isEqualTo("React"); assertThat(react.nameEn()).isEqualTo("React");
assertThat(react.categoryId()).isEqualTo(103L); assertThat(react.categoryId()).isEqualTo(103L);
assertThat(react.categoryName()).isEqualTo("前端框架"); assertThat(react.categoryName()).isEqualTo("前端框架");
assertThat(react.sourceType()).isEqualTo("O*NET");
assertThat(react.sourceCode()).isEqualTo("15-1254.00|React|2.E.7.h");
assertThat(react.heat()).isEqualByComparingTo((BigDecimal) row.get("importance")); assertThat(react.heat()).isEqualByComparingTo((BigDecimal) row.get("importance"));
assertThat(react.heatSourceCode()).isEqualTo(row.get("importance_source_code")); assertThat(react.heatSourceCode()).isEqualTo(row.get("importance_source_code"));
assertThat(react.heatElementId()).isEqualTo(row.get("importance_element_id")); assertThat(react.heatElementId()).isEqualTo(row.get("importance_element_id"));
assertThat(react.heatProxy()).isEqualTo(((Number) row.get("importance_is_proxy")).intValue() == 1); assertThat(react.heatProxy()).isEqualTo(((Number) row.get("importance_is_proxy")).intValue() == 1);
SkillCloudResponse languages = service.query(1L, 1L, 101L);
SkillCloudItem javascript = languages.items().stream()
.filter(item -> item.skillId().equals(3L))
.findFirst()
.orElseThrow();
assertThat(javascript.sourceType()).isEqualTo("ESCO");
assertThat(javascript.sourceCode())
.isEqualTo("http://data.europa.eu/esco/skill/3cd569a2-4f88-4c1e-9995-8dce8c5e51a7");
assertThat(javascript.heatSourceCode()).isEqualTo("15-1254.00");
} }
@Test @Test

Loading…
Cancel
Save