Skip to content

Commit d8e2c94

Browse files
authored
[app-builder] prioritize apps created by system in query results (#304)
* [app-builder] prioritize apps created by system in query results * [app-builder] update sql * [app-builder] add test
1 parent 7db5a3a commit d8e2c94

File tree

4 files changed

+54
-6
lines changed

4 files changed

+54
-6
lines changed

store/plugins/store-repository-postgresql/src/main/resources/mapper/AppMapper.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@
7171
</if>
7272
</sql>
7373
<sql id="sortAndLimit">
74-
order by i."updated_time" desc
74+
order by
75+
i.creator = 'system' desc,
76+
i."updated_time" desc
7577
<if test="offset != null and offset >= 0">
7678
offset #{offset}
7779
</if>

store/plugins/store-repository-postgresql/src/test/java/modelengine/jade/store/repository/pgsql/integration/AppIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ void shouldOkWhenGetApps() {
114114
when(this.toolService.getTool(any())).thenReturn(this.mockAppPublishData());
115115
ListResult<AppPublishData> apps = this.appService.getApps(appQuery);
116116
assertThat(apps.getCount()).isEqualTo(2);
117-
assertThat(apps.getData().get(0).getTags()).isEqualTo(new HashSet<>(Arrays.asList("HUGGINGFACE", "FIT")));
117+
assertThat(apps.getData().get(1).getTags()).isEqualTo(new HashSet<>(Arrays.asList("HUGGINGFACE", "FIT")));
118118
}
119119

120120
@Test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) 2025 Huawei Technologies Co., Ltd. All rights reserved.
3+
* This file is a part of the ModelEngine Project.
4+
* Licensed under the MIT License. See License.txt in the project root for license information.
5+
*--------------------------------------------------------------------------------------------*/
6+
7+
package modelengine.jade.store.repository.pgsql.mapper;
8+
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
import modelengine.fitframework.annotation.Fit;
12+
import modelengine.fitframework.test.annotation.MybatisTest;
13+
import modelengine.fitframework.test.annotation.Sql;
14+
import modelengine.jade.store.entity.query.AppQuery;
15+
import modelengine.jade.store.repository.pgsql.entity.AppDo;
16+
17+
import org.junit.jupiter.api.DisplayName;
18+
import org.junit.jupiter.api.Test;
19+
20+
import java.util.List;
21+
22+
/**
23+
* 表示 {@link AppMapper} 的单元测试。
24+
*
25+
* @author 孙怡菲
26+
* @since 2025-07-07
27+
*/
28+
@MybatisTest(classes = {AppMapper.class})
29+
@Sql(scripts = {"sql/create/app.sql", "sql/create/tag.sql"})
30+
@DisplayName("测试 AppMapper")
31+
public class AppMapperTest {
32+
@Fit
33+
private AppMapper appMapper;
34+
35+
@Test
36+
@Sql(scripts = {"sql/insert/app.sql", "sql/insert/tag.sql"})
37+
@DisplayName("测试查询 app 列表")
38+
void shouldReturnSystemCreatedAppFirst() {
39+
AppQuery appQuery = new AppQuery.Builder().appCategory("chatbot").build();
40+
List<AppDo> result = this.appMapper.getApps(appQuery);
41+
42+
assertThat(result).hasSize(2);
43+
assertThat(result.get(0).getCreator()).isEqualTo("system");
44+
assertThat(result.get(1).getCreator()).isEqualTo("Jade");
45+
}
46+
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
delete
22
from store_app;
33

4-
insert into store_app ("like_count", "download_count", "source", "icon", "tool_name", "tool_unique_name", "app_category")
5-
values ('10', '20', 'builtin', 'icon', 'name1', 'uniqueName1', 'chatbot'),
6-
('11', '21', 'builtin', 'icon', 'name2', 'uniqueName2', 'chatbot'),
7-
('12', '22', 'builtin', 'icon', 'name3', 'uniqueName3', 'agent');
4+
insert into store_app ("like_count", "download_count", "source", "icon", "tool_name", "tool_unique_name", "app_category", "creator")
5+
values ('10', '20', 'builtin', 'icon', 'name1', 'uniqueName1', 'chatbot', 'Jade'),
6+
('11', '21', 'builtin', 'icon', 'name2', 'uniqueName2', 'chatbot', 'system'),
7+
('12', '22', 'builtin', 'icon', 'name3', 'uniqueName3', 'agent', 'system');

0 commit comments

Comments
 (0)