mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-13 04:57:28 +00:00
[improvement][project] supersonic 0.6.0 version update (#16)
Co-authored-by: lexluo <lexluo@tencent.com>
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
export APP_NAME=chat-service
|
||||
export MAIN_CLASS=com.tencent.supersonic.Launcher
|
||||
export MAIN_CLASS=com.tencent.supersonic.StandaloneLauncher
|
||||
|
||||
@@ -5,7 +5,7 @@ baseDir=$(readlink -f $binDir/../)
|
||||
confDir=$baseDir/conf
|
||||
source ${baseDir}/bin/env.sh
|
||||
|
||||
commond=$1
|
||||
command=$1
|
||||
|
||||
function start()
|
||||
{
|
||||
@@ -33,7 +33,7 @@ function stop()
|
||||
fi
|
||||
}
|
||||
|
||||
case "$commond" in
|
||||
case "$command" in
|
||||
start)
|
||||
echo -e "Starting $APP_NAME"
|
||||
start
|
||||
|
||||
@@ -6,8 +6,8 @@ com.tencent.supersonic.chat.api.component.SchemaMapper=\
|
||||
com.tencent.supersonic.chat.api.component.SemanticParser=\
|
||||
com.tencent.supersonic.chat.application.parser.DomainSemanticParser, \
|
||||
com.tencent.supersonic.chat.application.parser.TimeSemanticParser, \
|
||||
com.tencent.supersonic.chat.application.parser.AggregateSemanticParser
|
||||
# com.tencent.supersonic.chat.application.parser.LLMSemanticParser
|
||||
com.tencent.supersonic.chat.application.parser.AggregateSemanticParser, \
|
||||
com.tencent.supersonic.chat.application.parser.LLMSemanticParser
|
||||
|
||||
|
||||
com.tencent.supersonic.chat.api.component.SemanticLayer=\
|
||||
|
||||
@@ -16,7 +16,7 @@ server:
|
||||
port: 9080
|
||||
|
||||
authentication:
|
||||
enable: false
|
||||
enable: true
|
||||
exclude:
|
||||
path: /api/auth/user/register,/api/auth/user/login
|
||||
|
||||
|
||||
@@ -4,4 +4,16 @@ lucy _1_2 31
|
||||
dean _1_2 36
|
||||
john _1_2 50
|
||||
jack _1_2 38
|
||||
admin _1_2 70
|
||||
admin _1_2 70
|
||||
周杰伦 _2_7 100
|
||||
陈奕迅 _2_7 100
|
||||
林俊杰 _2_7 100
|
||||
张碧晨 _2_7 100
|
||||
程响 _2_7 100
|
||||
Taylor#Swift _2_7 100
|
||||
中国 _2_4 100
|
||||
欧美 _2_4 100
|
||||
流行 _2_6 100
|
||||
爱情 _2_6 100
|
||||
激情 _2_6 100
|
||||
国风 _2_6 100
|
||||
|
||||
@@ -4,7 +4,15 @@ insert into s2_user (id, `name`, password, display_name, email) values (2, 'jack
|
||||
insert into s2_user (id, `name`, password, display_name, email) values (3, 'tom','123456','tom','tom@xx.com');
|
||||
insert into s2_user (id, `name`, password, display_name, email) values (4, 'lucy','123456','lucy','lucy@xx.com');
|
||||
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`default_metrics`,`visibility`,`entity_info` ,`dictionary_info`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` ) values (1,1,'[{"metricId":1,"unit":7,"period":"DAY"}]','{"blackDimIdList":[],"blackMetricIdList":[]}','{"entityIds":[2],"names":["用户","用户姓名"],"detailData":{"dimensionIds":[1,2],"metricIds":[2]}}','[{"itemId":1,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":2,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":3,"type":"DIMENSION","blackList":[],"isDictInfo":true}]','2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
--insert into s2_chat_config (`id` ,`domain_id` ,`default_metrics`,`visibility`,`entity_info` ,`dictionary_info`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` ) values (1,1,'[{"metricId":1,"unit":7,"period":"DAY"}]','{"blackDimIdList":[],"blackMetricIdList":[]}','{"entityIds":[2],"names":["用户","用户姓名"],"detailData":{"dimensionIds":[1,2],"metricIds":[2]}}','[{"itemId":1,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":2,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":3,"type":"DIMENSION","blackList":[],"isDictInfo":true}]','2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`chat_detail_config`,`chat_agg_config`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` )
|
||||
values (1,1,'{"visibility":{"blackDimIdList":[1],"blackMetricIdList":[2]},"knowledgeInfos":[{"itemId":2,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[1,2],"metricIds":[1],"unit":1,"period":"DAY"},"entity":null}',
|
||||
'{"visibility":{"blackDimIdList":[3],"blackMetricIdList":[3]},"knowledgeInfos":[{"itemId":2,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[1,2],"metricIds":[1],"unit":1,"period":"DAY"}}',
|
||||
'2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`chat_detail_config`,`chat_agg_config`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` )
|
||||
values (2,2,'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":7,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[4,5,6,7],"metricIds":[4],"unit":7,"period":"DAY"},"entity":{"entityId":1,"names":["歌手","艺人"]}}',
|
||||
'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":7,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[4,5,6,7],"metricIds":[4],"unit":7,"period":"DAY"}}',
|
||||
'2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
|
||||
insert into s2_chat (chat_id, `chat_name`, create_time, last_time, creator,last_question,is_delete,is_top) values (1, '超音数访问统计','2023-06-10 10:00:52.495','2023-06-10 10:00:52','admin','您好,欢迎使用内容智能小Q','0','0');
|
||||
insert into s2_chat (chat_id, `chat_name`, create_time, last_time, creator,last_question,is_delete,is_top) values (2, '用户访问统计','2023-06-10 10:01:04.528','2023-06-10 10:01:04','admin','您好,欢迎使用内容智能小Q','0','0');
|
||||
@@ -22,19 +30,29 @@ insert into s2_chat_query (`question_id`,`create_time`,`query_text`,`user_name`,
|
||||
|
||||
-- semantic data
|
||||
insert into s2_database (id, domain_id , `name`, description, `type` ,config ,created_at ,created_by ,updated_at ,updated_by) VALUES(1, 1, 'H2数据实例', '', 'h2', '{"password":"semantic","url":"jdbc:h2:mem:semantic;DATABASE_TO_UPPER=false","userName":"root"}', '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin');
|
||||
insert into s2_database (id, domain_id , `name`, description, `type` ,config ,created_at ,created_by ,updated_at ,updated_by) VALUES(2, 2, 'H2数据实例', '', 'h2', '{"password":"semantic","url":"jdbc:h2:mem:semantic;DATABASE_TO_UPPER=false","userName":"root"}', '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(1, 1, '停留时长统计', 's2_stay_time_statis', '停留时长统计', 1, '{"dimensions":[{"bizName":"imp_date","dateFormat":"yyyy-MM-dd","expr":"imp_date","isCreateDimension":0,"type":"time","typeParams":{"isPrimary":"true","timeGranularity":"day"}},{"bizName":"page","dateFormat":"yyyy-MM-dd","expr":"page","isCreateDimension":0,"type":"categorical"}],"identifiers":[{"bizName":"user_name","name":"用户名","type":"primary"}],"measures":[{"agg":"sum","bizName":"s2_stay_time_statis_stay_hours","expr":"stay_hours","isCreateMetric":1,"name":"停留时长"}],"queryType":"sql_query","sqlQuery":"SELECT imp_date, page,user_name,stay_hours FROM s2_stay_time_statis"}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(2, 1, 'PVUV统计', 's2_pv_uv_statis', 'PVUV统计', 1, '{"dimensions":[{"bizName":"imp_date","dateFormat":"yyyy-MM-dd","expr":"imp_date","isCreateDimension":0,"type":"time","typeParams":{"isPrimary":"true","timeGranularity":"day"}},{"bizName":"page","dateFormat":"yyyy-MM-dd","expr":"page","isCreateDimension":0,"type":"categorical"}],"identifiers":[{"bizName":"user_name","name":"用户名","type":"primary"}],"measures":[{"agg":"sum","bizName":"s2_pv_uv_statis_pv","expr":"pv","isCreateMetric":1,"name":"访问次数"},{"agg":"count_distinct","bizName":"s2_pv_uv_statis_uv","expr":"uv","isCreateMetric":1,"name":"访问人数"}],"queryType":"sql_query","sqlQuery":"SELECT imp_date, user_name,page,1 as pv, user_name as uv FROM s2_pv_uv_statis"}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(3, 1, '用户部门', 'user_department', '用户部门', 1, '{"dimensions":[{"bizName":"department","dateFormat":"yyyy-MM-dd","expr":"department","isCreateDimension":1,"name":"部门","type":"categorical"}],"identifiers":[{"bizName":"user_name","name":"用户名","type":"primary"}],"measures":[],"queryType":"sql_query","sqlQuery":"SELECT user_name,department FROM s2_user_department"}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(4, 2, '艺人库', 'singer', '艺人库', 1, '{"dimensions":[{"bizName":"imp_date","dateFormat":"yyyy-MM-dd","expr":"imp_date","isCreateDimension":0,"type":"time","typeParams":{"isPrimary":"true","timeGranularity":"day"}},{"bizName":"act_area","dateFormat":"yyyy-MM-dd","expr":"act_area","isCreateDimension":1,"name":"活跃区域","type":"categorical"},{"bizName":"song_name","dateFormat":"yyyy-MM-dd","expr":"song_name","isCreateDimension":1,"name":"代表作","type":"categorical"},{"bizName":"genre","dateFormat":"yyyy-MM-dd","expr":"genre","isCreateDimension":1,"name":"风格","type":"categorical"}],"identifiers":[{"bizName":"singer_name","name":"歌手名","type":"primary"}],"measures":[{"agg":"sum","bizName":"music_down_cnt","expr":"down_cnt","isCreateMetric":1,"name":"下载量"},{"agg":"sum","bizName":"music_js_play_cnt","expr":"js_play_cnt","isCreateMetric":1,"name":"播放量"},{"agg":"sum","bizName":"music_favor_cnt","expr":"favor_cnt","isCreateMetric":1,"name":"收藏量"}],"queryType":"sql_query","sqlQuery":"SELECT imp_date,singer_name,act_area,song_name,genre,js_play_cnt,down_cnt,favor_cnt FROM singer "}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource_rela (id , domain_id, `datasource_from`, datasource_to, join_key, created_at, created_by, updated_at, updated_by ) VALUES(1, 1, 1, 2, 'user_name', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource_rela (id , domain_id, `datasource_from`, datasource_to, join_key, created_at, created_by, updated_at, updated_by ) VALUES(2, 1, 1, 3, 'user_name', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource_rela (id , domain_id, `datasource_from`, datasource_to, join_key, created_at, created_by, updated_at, updated_by ) VALUES(3, 1, 2, 3, 'user_name', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(1, 1, 3, '部门', 'department', '部门', 1, 0, 'categorical', NULL, 'department', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(2, 1, 1, '用户名', 'user_name', '用户名', 1, 0, 'primary', NULL, 'user_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(3, 1, 2, '页面', 'page', '页面', 1, 2, 'categorical', NULL, 'page', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(4, 2, 4, '活跃区域', 'act_area', '活跃区域', 1, 2, 'categorical', NULL, 'act_area', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(5, 2, 4, '代表作', 'song_name', '代表作', 1, 2, 'categorical', NULL, 'song_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(6, 2, 4, '风格', 'genre', '风格', 1, 2, 'categorical', NULL, 'genre', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(7, 2, 4, '歌手名', 'singer_name', '歌手名', 1, 2, 'categorical', NULL, 'singer_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org) VALUES(1, '超音数', 'supersonic', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin' );
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org) VALUES(2, '艺人库', 'singer', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin' );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(1, 1, '停留时长', 'stay_hours', '停留时长', 1, 2, 'expr', '{"expr":"s2_stay_time_statis_stay_hours","measures":[{"agg":"sum","expr":"stay_hours","isCreateMetric":1,"datasourceId":1,"bizName":"s2_stay_time_statis_stay_hours","name":"s2_stay_time_statis_stay_hours"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(2, 1, '访问次数', 'pv', '访问次数', 1, 0, 'expr', ' {"expr":"s2_pv_uv_statis_pv","measures":[{"agg":"sum","bizName":"s2_pv_uv_statis_pv","datasourceId":2,"expr":"pv","isCreateMetric":1,"name":"s2_pv_uv_statis_pv"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(3, 1, '访问人数', 'uv', '访问人数', 1, 0, 'expr', ' {"expr":"s2_pv_uv_statis_uv","measures":[{"agg":"count_distinct","bizName":"s2_pv_uv_statis_uv","datasourceId":2,"expr":"uv","isCreateMetric":1,"name":"s2_pv_uv_statis_uv"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(4, 2, '播放量', 'js_play_cnt', '播放量', 1, 2, 'expr', '{"expr":"music_js_play_cnt","measures":[{"agg":"sum","expr":"js_play_cnt","isCreateMetric":1,"datasourceId":4,"bizName":"music_js_play_cnt","name":"music_js_play_cnt"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(5, 2, '下载量', 'down_cnt', '下载量', 1, 0, 'expr', ' {"expr":"music_down_cnt","measures":[{"agg":"sum","bizName":"music_down_cnt","datasourceId":4,"expr":"down_cnt","isCreateMetric":1,"name":"music_down_cnt"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(6, 2, '收藏量', 'favor_cnt', '收藏量', 1, 0, 'expr', ' {"expr":"music_favor_cnt","measures":[{"agg":"sum","bizName":"music_favor_cnt","datasourceId":4,"expr":"favor_cnt","isCreateMetric":1,"name":"music_favor_cnt"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
|
||||
insert into s2_available_date_info(`item_id` ,`type` ,`date_format` ,`start_date` ,`end_date` ,`unavailable_date` ,`created_at` ,`created_by` ,`updated_at` ,`updated_by` )
|
||||
values (1, 'dimension', 'yyyy-MM-dd', DATEADD('DAY', -28, CURRENT_DATE()), DATEADD('DAY', -1, CURRENT_DATE()), '[]', '2023-06-01', 'admin', '2023-06-01', 'admin');
|
||||
@@ -48,13 +66,64 @@ values (1, '{"domainId":"1","name":"admin-permission","groupId":1,"authRules":[{
|
||||
insert into s2_auth_groups (group_id, config)
|
||||
values (2, '{"domainId":"1","name":"tom_sales_permission","groupId":2,"authRules":[{"metrics":["stay_hours"],"dimensions":["page"]}],"dimensionFilters":["department in (''sales'')"],"dimensionFilterDescription":"开通 tom sales部门权限", "authorizedUsers":["tom"],"authorizedDepartmentIds":[]}');
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (1, 'admin','admin','admin','admin@xx.com');
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (2, 'jack','123456','jack','jack@xx.com');
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (3, 'tom','123456','tom','tom@xx.com');
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (4, 'lucy','123456','lucy','lucy@xx.com');
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
|
||||
---demo data for semantic and chat
|
||||
insert into s2_user_department (user_name, department) values ('jack','HR');
|
||||
|
||||
insert into s2_user_department (user_name, department) values ('jack','HR');
|
||||
insert into s2_user_department (user_name, department) values ('tom','sales');
|
||||
insert into s2_user_department (user_name, department) values ('lucy','marketing');
|
||||
|
||||
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `s2_chat_context`
|
||||
`semantic_parse` LONGVARCHAR DEFAULT NULL , -- parse data
|
||||
`ext_data` LONGVARCHAR DEFAULT NULL , -- extend data
|
||||
PRIMARY KEY (`chat_id`)
|
||||
);
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_chat`
|
||||
(
|
||||
@@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS `s2_chat`
|
||||
`is_delete` INT DEFAULT '0' COMMENT 'is deleted',
|
||||
`is_top` INT DEFAULT '0' COMMENT 'is top',
|
||||
PRIMARY KEY (`chat_id`)
|
||||
) ;
|
||||
) ;
|
||||
|
||||
|
||||
CREATE TABLE `s2_chat_query`
|
||||
@@ -39,33 +39,30 @@ CREATE TABLE `s2_chat_query`
|
||||
);
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_chat_config` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` INT DEFAULT NULL ,
|
||||
`default_metrics` varchar(655) DEFAULT NULL,
|
||||
`visibility` varchar(655) , -- invisible dimension metric information
|
||||
`entity_info` varchar(655) ,
|
||||
`dictionary_info` varchar(655) , -- dictionary-related dimension setting information
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` INT DEFAULT NULL ,
|
||||
`chat_detail_config` varchar(655) ,
|
||||
`chat_agg_config` varchar(655) ,
|
||||
`created_at` TIMESTAMP NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`updated_by` varchar(100) NOT NULL ,
|
||||
`status` INT NOT NULL DEFAULT '0' , -- domain extension information status : 0 is normal, 1 is off the shelf, 2 is deleted
|
||||
PRIMARY KEY (`id`)
|
||||
) ;
|
||||
) ;
|
||||
COMMENT ON TABLE s2_chat_config IS 'chat config information table ';
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_dictionary` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` INT NOT NULL ,
|
||||
`dim_value_infos` LONGVARCHAR , -- dimension value setting information
|
||||
`created_at` TIMESTAMP NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` INT NOT NULL ,
|
||||
`dim_value_infos` LONGVARCHAR , -- dimension value setting information
|
||||
`created_at` TIMESTAMP NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`updated_by` varchar(100) DEFAULT NULL ,
|
||||
`status` INT NOT NULL DEFAULT '0' , -- domain extension information status : 0 is normal, 1 is off the shelf, 2 is deleted
|
||||
PRIMARY KEY (`id`),
|
||||
@@ -75,19 +72,19 @@ COMMENT ON TABLE s2_dictionary IS 'dictionary configuration information table';
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_dictionary_task` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL , -- task name
|
||||
`description` varchar(255) ,
|
||||
`command`LONGVARCHAR NOT NULL , -- task Request Parameters
|
||||
`command_md5` varchar(255) NOT NULL , -- task Request Parameters md5
|
||||
`status` INT NOT NULL , -- the final status of the task
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`progress` DOUBLE default 0.00 , -- task real-time progress
|
||||
`elapsed_ms` bigINT DEFAULT NULL , -- the task takes time in milliseconds
|
||||
`message` LONGVARCHAR , -- remark related information
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL , -- task name
|
||||
`description` varchar(255) ,
|
||||
`command`LONGVARCHAR NOT NULL , -- task Request Parameters
|
||||
`command_md5` varchar(255) NOT NULL , -- task Request Parameters md5
|
||||
`status` INT NOT NULL , -- the final status of the task
|
||||
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`progress` DOUBLE default 0.00 , -- task real-time progress
|
||||
`elapsed_ms` bigINT DEFAULT NULL , -- the task takes time in milliseconds
|
||||
`message` LONGVARCHAR , -- remark related information
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
COMMENT ON TABLE s2_dictionary_task IS 'dictionary task information table';
|
||||
|
||||
|
||||
@@ -306,6 +303,7 @@ CREATE TABLE IF NOT EXISTS `s2_available_date_info` (
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`updated_by` varchar(100) NOT NULL ,
|
||||
`date_period` varchar(100) DEFAULT NULL ,
|
||||
`status` INT DEFAULT '0', -- 1-in use 0 is normal, 1 is off the shelf, 2 is deleted
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
@@ -334,6 +332,18 @@ CREATE TABLE IF NOT EXISTS `s2_stay_time_statis` (
|
||||
);
|
||||
COMMENT ON TABLE s2_stay_time_statis IS 's2_stay_time_statis_info';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `singer` (
|
||||
`imp_date` varchar(200) NOT NULL,
|
||||
`singer_name` varchar(200) NOT NULL,
|
||||
`act_area` varchar(200) NOT NULL,
|
||||
`song_name` varchar(200) NOT NULL,
|
||||
`genre` varchar(200) NOT NULL,
|
||||
`js_play_cnt` bigINT DEFAULT NULL,
|
||||
`down_cnt` bigINT DEFAULT NULL,
|
||||
`favor_cnt` bigINT DEFAULT NULL
|
||||
);
|
||||
COMMENT ON TABLE singer IS 'singer_info';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.tencent.supersonic.db;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
|
||||
@Configuration
|
||||
@MapperScan(value = "com.tencent.supersonic", annotationClass = Mapper.class)
|
||||
public class MybatisConfig {
|
||||
|
||||
private static final String MAPPER_LOCATION = "classpath*:mapper/**/*.xml";
|
||||
|
||||
@Bean
|
||||
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
|
||||
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
||||
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
|
||||
configuration.setMapUnderscoreToCamelCase(true);
|
||||
bean.setConfiguration(configuration);
|
||||
bean.setDataSource(dataSource);
|
||||
|
||||
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(MAPPER_LOCATION));
|
||||
return bean.getObject();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,444 @@
|
||||
package com.tencent.supersonic.integration;
|
||||
|
||||
import com.tencent.supersonic.StandaloneLauncher;
|
||||
import com.tencent.supersonic.chat.api.pojo.Filter;
|
||||
import com.tencent.supersonic.chat.api.request.QueryContextReq;
|
||||
import com.tencent.supersonic.chat.api.response.QueryResultResp;
|
||||
import com.tencent.supersonic.chat.application.query.MetricCompare;
|
||||
import com.tencent.supersonic.chat.application.query.MetricDomain;
|
||||
import com.tencent.supersonic.chat.application.query.MetricFilter;
|
||||
import com.tencent.supersonic.chat.application.query.MetricGroupBy;
|
||||
import com.tencent.supersonic.chat.domain.service.QueryService;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.common.util.json.JsonUtil;
|
||||
import com.tencent.supersonic.semantic.api.query.enums.FilterOperatorEnum;
|
||||
import com.tencent.supersonic.util.DataUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(classes = StandaloneLauncher.class)
|
||||
@ActiveProfiles("local")
|
||||
public class MultiTurnQueryTest {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MultiTurnQueryTest.class);
|
||||
|
||||
@Autowired
|
||||
@Qualifier("chatQueryService")
|
||||
private QueryService queryService;
|
||||
|
||||
//case:alice的访问次数->停留时长呢?->想知道lucy的,queryMode:METRIC_FILTER
|
||||
@Test
|
||||
public void queryTest1() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1,"alice的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户名", 2L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
queryContextReq = DataUtils.getQueryContextReq(1,"停留时长呢?");
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics1 = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric1 = DataUtils.getSchemaItem(1L, "停留时长", "stay_hours");
|
||||
Boolean metricExist1 = DataUtils.compareSchemaItem(metrics1, schemaItemMetric1);
|
||||
assertThat(metricExist1).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions1 = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist1 = DataUtils.compareDateDimension(dimensions1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters1 = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter1 = DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户名", 2L);
|
||||
Boolean dimensionFilterExist1 = DataUtils.compareDimensionFilter(dimensionFilters1, dimensionFilter1);
|
||||
assertThat(dimensionFilterExist1).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo1 = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist1 = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo1);
|
||||
assertThat(timeFilterExist1).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
queryContextReq = DataUtils.getQueryContextReq(1,"想知道lucy的");
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics2 = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric2 = DataUtils.getSchemaItem(1L, "停留时长", "stay_hours");
|
||||
Boolean metricExist2 = DataUtils.compareSchemaItem(metrics2, schemaItemMetric2);
|
||||
assertThat(metricExist2).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions2 = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist2 = DataUtils.compareDateDimension(dimensions2);
|
||||
assertThat(dimensionExist2).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters2 = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter2 = DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "lucy", "用户名", 2L);
|
||||
Boolean dimensionFilterExist2 = DataUtils.compareDimensionFilter(dimensionFilters2, dimensionFilter2);
|
||||
;
|
||||
assertThat(dimensionFilterExist2).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo2 = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist2 = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo2);
|
||||
assertThat(timeFilterExist2).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//case:超音数的访问次数->按部门的呢->p2的呢
|
||||
@Test
|
||||
public void queryTest2() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(2,"超音数的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricDomain.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
queryContextReq = DataUtils.getQueryContextReq(2,"按部门的呢");
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricGroupBy.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics1 = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric1 = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist1 = DataUtils.compareSchemaItem(metrics1, schemaItemMetric1);
|
||||
assertThat(metricExist1).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions1 = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist1 = DataUtils.compareDateDimension(dimensions1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension2 = DataUtils.getSchemaItem(1L, "部门", "department");
|
||||
Boolean dimensionExist2 = DataUtils.compareSchemaItem(dimensions1, schemaItemDimension2);
|
||||
assertThat(dimensionExist2).isEqualTo(true);
|
||||
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo1 = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist1 = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo1);
|
||||
assertThat(timeFilterExist1).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
queryContextReq = DataUtils.getQueryContextReq(2,"p2的呢");
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics2 = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric2 = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist2 = DataUtils.compareSchemaItem(metrics2, schemaItemMetric2);
|
||||
assertThat(metricExist2).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions2 = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist3 = DataUtils.compareDateDimension(dimensions2);
|
||||
assertThat(dimensionExist3).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters2 = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter2 = DataUtils.getFilter("page", FilterOperatorEnum.EQUALS, "p2", "页面", 3L);
|
||||
Boolean dimensionFilterExist2 = DataUtils.compareDimensionFilter(dimensionFilters2, dimensionFilter2);
|
||||
assertThat(dimensionFilterExist2).isEqualTo(true);
|
||||
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo2 = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist2 = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo2);
|
||||
assertThat(timeFilterExist2).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
//alice的访问次数->对比alice和lucy呢->他是哪个部门的呢
|
||||
@Test
|
||||
public void queryTest3() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1,"alice的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户名", 2L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
queryContextReq = DataUtils.getQueryContextReq(1,"对比alice和lucy呢");
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricCompare.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics1 = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric1 = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist1 = DataUtils.compareSchemaItem(metrics1, schemaItemMetric1);
|
||||
assertThat(metricExist1).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions1 = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist1 = DataUtils.compareDateDimension(dimensions1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters1 = queryResultResp.getChatContext().getDimensionFilters();
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("alice");
|
||||
list.add("lucy");
|
||||
Filter dimensionFilter1 = DataUtils.getFilter("user_name", FilterOperatorEnum.IN, list, "用户名", 2L);
|
||||
Boolean dimensionFilterExist1 = DataUtils.compareDimensionFilter(dimensionFilters1, dimensionFilter1);
|
||||
assertThat(dimensionFilterExist1).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo1 = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist1 = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo1);
|
||||
assertThat(timeFilterExist1).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
queryContextReq = DataUtils.getQueryContextReq(1,"他是哪个部门的呢");
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics2 = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric2 = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist2 = DataUtils.compareSchemaItem(metrics2, schemaItemMetric2);
|
||||
assertThat(metricExist2).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions2 = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist2 = DataUtils.compareDateDimension(dimensions2);
|
||||
assertThat(dimensionExist2).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters2 = queryResultResp.getChatContext().getDimensionFilters();
|
||||
List<String> list1 = new ArrayList<>();
|
||||
list1.add("alice");
|
||||
list1.add("lucy");
|
||||
Filter dimensionFilter2 = DataUtils.getFilter("user_name", FilterOperatorEnum.IN, list1, "用户名", 2L);
|
||||
Boolean dimensionFilterExist2 = DataUtils.compareDimensionFilter(dimensionFilters2, dimensionFilter2);
|
||||
assertThat(dimensionFilterExist2).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo2 = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist2 = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo2);
|
||||
assertThat(timeFilterExist2).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,567 @@
|
||||
package com.tencent.supersonic.integration;
|
||||
|
||||
import com.tencent.supersonic.StandaloneLauncher;
|
||||
import com.tencent.supersonic.chat.api.pojo.Filter;
|
||||
import com.tencent.supersonic.chat.api.request.QueryContextReq;
|
||||
import com.tencent.supersonic.chat.api.response.QueryResultResp;
|
||||
import com.tencent.supersonic.chat.application.query.*;
|
||||
import com.tencent.supersonic.common.enums.AggregateTypeEnum;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.common.util.json.JsonUtil;
|
||||
import com.tencent.supersonic.semantic.api.query.enums.FilterOperatorEnum;
|
||||
import com.tencent.supersonic.util.DataUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import com.tencent.supersonic.chat.domain.service.QueryService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(classes = StandaloneLauncher.class)
|
||||
@ActiveProfiles("local")
|
||||
public class QueryTest {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(QueryTest.class);
|
||||
|
||||
@Autowired
|
||||
@Qualifier("chatQueryService")
|
||||
private QueryService queryService;
|
||||
|
||||
//case:alice的访问次数,queryMode:METRIC_FILTER,
|
||||
@Test
|
||||
public void queryTest_01() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1, "alice的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户名", 2L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
//case:超音数的访问次数,queryMode:METRIC_DOMAIN
|
||||
@Test
|
||||
public void queryTest_02() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(2, "超音数的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricDomain.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//case:超音数各部门的访问次数,queryMode:METRIC_GROUPBY
|
||||
@Test
|
||||
public void queryTest_03() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1, "超音数各部门的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricGroupBy.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension1 = DataUtils.getSchemaItem(1L, "部门", "department");
|
||||
Boolean dimensionExist1 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//case:对比alice和lucy的访问次数,queryMode:METRIC_COMPARE
|
||||
@Test
|
||||
public void queryTest_04() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1, "对比alice和lucy的访问次数");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricCompare.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("alice");
|
||||
list.add("lucy");
|
||||
Filter dimensionFilter = DataUtils.getFilter("user_name", FilterOperatorEnum.IN, list, "用户名", 2L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
//case:近3天访问次数最多的用户,queryMode:ENTITY_detail
|
||||
@Test
|
||||
public void queryTest_05() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(2, "艺人周杰伦的代表作");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), EntityDetail.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(2L);
|
||||
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = DataUtils.getSchemaItem(5L, "代表作", "song_name");
|
||||
Boolean dimensionExist = DataUtils.compareSchemaItem(dimensions, schemaItemDimension);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = DataUtils.getFilter("singer_name", FilterOperatorEnum.EQUALS, "周杰伦", "歌手名", 7L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(1, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(true);
|
||||
|
||||
}
|
||||
|
||||
//case:近3天访问次数最多的用户名,queryMode:METRIC_ORDERBY
|
||||
@Test
|
||||
public void queryTest_06() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(2, "近3天访问次数最多的用户名");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricOrderBy.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), AggregateTypeEnum.MAX);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = DataUtils.getSchemaItem(2L, "用户名", "user_name");
|
||||
Boolean dimensionExist = DataUtils.compareSchemaItem(dimensions, schemaItemDimension);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(3, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//case:播放量最多的艺人,queryMode:ENTITY_LIST_TOPN
|
||||
@Test
|
||||
public void queryTest_07() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(2, "播放量最多的艺人");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), EntityListTopN.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), AggregateTypeEnum.MAX);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(2L);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = DataUtils.getSchemaItem(7L, "歌手名", "singer_name");
|
||||
Boolean dimensionExist = DataUtils.compareSchemaItem(dimensions, schemaItemDimension);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(4L, "播放量", "js_play_cnt");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(1, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(true);
|
||||
|
||||
}
|
||||
|
||||
//case:超音数各部门的访问次数总和,queryMode:METRIC_GROUPBY,aggType:sum
|
||||
@Test
|
||||
public void queryTest_09() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1, "超音数各部门的访问次数总和");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricGroupBy.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), AggregateTypeEnum.SUM);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension1 = DataUtils.getSchemaItem(1L, "部门", "department");
|
||||
Boolean dimensionExist1 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
;
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryTest_10() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(2, "爱情、流行类型的艺人");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), EntityListFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(2L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = DataUtils.getSchemaItem(4L, "播放量", "js_play_cnt");
|
||||
Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = DataUtils.getSchemaItem(7L, "歌手名", "singer_name");
|
||||
Boolean dimensionExist = DataUtils.compareSchemaItem(dimensions, schemaItemDimension);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension1 = DataUtils.getSchemaItem(6L, "风格", "genre");
|
||||
Boolean dimensionExist1 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("爱情");
|
||||
list.add("流行");
|
||||
Filter dimensionFilter = DataUtils.getFilter("genre", FilterOperatorEnum.IN, list, "风格", 6L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(1, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(true);
|
||||
|
||||
}
|
||||
|
||||
//case:近3天访问次数最多的用户,queryMode:ENTITY_detail
|
||||
@Test
|
||||
public void queryTest_11() {
|
||||
QueryContextReq queryContextReq = DataUtils.getQueryContextReq(1, "艺人周杰伦的代表作、风格、活跃区域");
|
||||
QueryResultResp queryResultResp = new QueryResultResp();
|
||||
try {
|
||||
queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), EntityDetail.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(2L);
|
||||
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = DataUtils.getSchemaItem(5L, "代表作", "song_name");
|
||||
Boolean dimensionExist = DataUtils.compareSchemaItem(dimensions, schemaItemDimension);
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension1 = DataUtils.getSchemaItem(4L, "活跃区域", "act_area");
|
||||
Boolean dimensionExist1 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension1);
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension2 = DataUtils.getSchemaItem(6L, "风格", "genre");
|
||||
Boolean dimensionExist2 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension2);
|
||||
assertThat(dimensionExist2).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = DataUtils.getFilter("singer_name", FilterOperatorEnum.EQUALS, "周杰伦", "歌手名", 7L);
|
||||
Boolean dimensionFilterExist = DataUtils.compareDimensionFilter(dimensionFilters, dimensionFilter);
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = DataUtils.getDateConf(1, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(true);
|
||||
|
||||
}
|
||||
|
||||
// @Test
|
||||
// public void queryTest_11() {
|
||||
// QueryContextReq queryContextReq = DataUtils.getQueryContextReq("最近4天HR部门的访问人数");
|
||||
// try {
|
||||
// QueryResultResp queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//case:各部门对各页面的访问次数,queryMode:METRIC_GROUPBY
|
||||
// @Test
|
||||
// public void queryTest_08() {
|
||||
// QueryContextReq queryContextReq = DataUtils.getQueryContextReq(3, "各部门对各页面的访问次数");
|
||||
// QueryResultResp queryResultResp = new QueryResultResp();
|
||||
// try {
|
||||
// queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
// } catch (Exception e) {
|
||||
//
|
||||
// }
|
||||
// LOGGER.info("QueryResultResp queryResultResp:{}", JsonUtil.toString(queryResultResp));
|
||||
// //assert queryState
|
||||
// Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
// //assert queryMode
|
||||
// Assert.assertEquals(queryResultResp.getQueryMode(), MetricGroupBy.QUERY_MODE);
|
||||
// //assert aggType
|
||||
// Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
// //assert 主题域Id
|
||||
// assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
//
|
||||
// //assert 指标
|
||||
// Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
// SchemaItem schemaItemMetric = DataUtils.getSchemaItem(2L, "访问次数", "pv");
|
||||
// Boolean metricExist = DataUtils.compareSchemaItem(metrics, schemaItemMetric);
|
||||
// assertThat(metricExist).isEqualTo(true);
|
||||
//
|
||||
// //assert 维度
|
||||
// Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
// Boolean dimensionExist = DataUtils.compareDateDimension(dimensions);
|
||||
// assertThat(dimensionExist).isEqualTo(true);
|
||||
//
|
||||
// SchemaItem schemaItemDimension1 = DataUtils.getSchemaItem(1L, "部门", "department");
|
||||
// Boolean dimensionExist1 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension1);
|
||||
// assertThat(dimensionExist1).isEqualTo(true);
|
||||
//
|
||||
// SchemaItem schemaItemDimension2 = DataUtils.getSchemaItem(3L, "页面", "page");
|
||||
// Boolean dimensionExist2 = DataUtils.compareSchemaItem(dimensions, schemaItemDimension2);
|
||||
// assertThat(dimensionExist2).isEqualTo(true);
|
||||
//
|
||||
//
|
||||
// //assert 时间filter
|
||||
// DateConf dateInfo = DataUtils.getDateConf(7, DateConf.DateMode.RECENT_UNITS, "DAY");
|
||||
// Boolean timeFilterExist = DataUtils.compareDate(queryResultResp.getChatContext().getDateInfo(), dateInfo);
|
||||
// assertThat(timeFilterExist).isEqualTo(true);
|
||||
//
|
||||
// //assert nativeQuery
|
||||
// assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -1,371 +0,0 @@
|
||||
package com.tencent.supersonic.test;
|
||||
|
||||
import com.tencent.supersonic.StandaloneLauncher;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.chat.api.pojo.Filter;
|
||||
import com.tencent.supersonic.chat.api.request.QueryContextReq;
|
||||
import com.tencent.supersonic.chat.api.response.QueryResultResp;
|
||||
import com.tencent.supersonic.chat.application.query.MetricCompare;
|
||||
import com.tencent.supersonic.chat.application.query.MetricDomain;
|
||||
import com.tencent.supersonic.chat.application.query.MetricFilter;
|
||||
import com.tencent.supersonic.chat.application.query.MetricGroupBy;
|
||||
import com.tencent.supersonic.chat.domain.service.ChatService;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.semantic.api.query.enums.FilterOperatorEnum;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import com.tencent.supersonic.chat.domain.service.QueryService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(classes = StandaloneLauncher.class)
|
||||
@ActiveProfiles("local")
|
||||
public class QueryIntegrationTest {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(QueryIntegrationTest.class);
|
||||
|
||||
@Autowired
|
||||
private ChatService chatService;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("chatQueryService")
|
||||
private QueryService queryService;
|
||||
|
||||
//case:alice的访问次数,queryMode:METRIC_FILTER,
|
||||
@Test
|
||||
public void queryTest1() {
|
||||
QueryContextReq queryContextReq = getQueryContextReq("alice的访问次数");
|
||||
try {
|
||||
QueryResultResp queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricFilter.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = new SchemaItem();
|
||||
schemaItemMetric.setId(2L);
|
||||
schemaItemMetric.setName("访问次数");
|
||||
schemaItemMetric.setBizName("pv");
|
||||
Boolean metricExist = false;
|
||||
for (SchemaItem schemaItem : metrics) {
|
||||
if (schemaItem.getId().equals(schemaItemMetric.getId()) &&
|
||||
schemaItem.getName().equals(schemaItemMetric.getName()) &&
|
||||
schemaItem.getBizName().equals(schemaItemMetric.getBizName())) {
|
||||
metricExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = new SchemaItem();
|
||||
schemaItemDimension.setBizName("sys_imp_date");
|
||||
Boolean dimensionExist = false;
|
||||
for (SchemaItem schemaItem : dimensions) {
|
||||
if (schemaItem.getBizName().equals(schemaItemDimension.getBizName())) {
|
||||
dimensionExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = new Filter();
|
||||
dimensionFilter.setBizName("user_name");
|
||||
dimensionFilter.setOperator(FilterOperatorEnum.EQUALS);
|
||||
dimensionFilter.setValue("alice");
|
||||
dimensionFilter.setName("用户名");
|
||||
dimensionFilter.setElementID(2L);
|
||||
Boolean dimensionFilterExist = false;
|
||||
for (Filter filter : dimensionFilters) {
|
||||
if (filter.getBizName().equals(dimensionFilter.getBizName()) &&
|
||||
filter.getOperator().equals(dimensionFilter.getOperator()) &&
|
||||
filter.getValue().equals(dimensionFilter.getValue()) &&
|
||||
filter.getElementID().equals(dimensionFilter.getElementID()) &&
|
||||
filter.getName().equals(dimensionFilter.getName())) {
|
||||
dimensionFilterExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(7);
|
||||
dateInfo.setDateMode(DateConf.DateMode.RECENT_UNITS);
|
||||
dateInfo.setPeriod("DAY");
|
||||
Boolean timeFilterExist =
|
||||
queryResultResp.getChatContext().getDateInfo().getUnit().equals(dateInfo.getUnit()) &&
|
||||
queryResultResp.getChatContext().getDateInfo().getDateMode().equals(dateInfo.getDateMode())
|
||||
&&
|
||||
queryResultResp.getChatContext().getDateInfo().getPeriod().equals(dateInfo.getPeriod());
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//case:超音数的访问次数,queryMode:METRIC_DOMAIN
|
||||
@Test
|
||||
public void queryTest2() {
|
||||
QueryContextReq queryContextReq = getQueryContextReq("超音数的访问次数");
|
||||
try {
|
||||
QueryResultResp queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricDomain.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = new SchemaItem();
|
||||
schemaItemMetric.setId(2L);
|
||||
schemaItemMetric.setName("访问次数");
|
||||
schemaItemMetric.setBizName("pv");
|
||||
Boolean metricExist = false;
|
||||
for (SchemaItem schemaItem : metrics) {
|
||||
if (schemaItem.getId().equals(schemaItemMetric.getId()) &&
|
||||
schemaItem.getName().equals(schemaItemMetric.getName()) &&
|
||||
schemaItem.getBizName().equals(schemaItemMetric.getBizName())) {
|
||||
metricExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = new SchemaItem();
|
||||
schemaItemDimension.setBizName("sys_imp_date");
|
||||
Boolean dimensionExist = false;
|
||||
for (SchemaItem schemaItem : dimensions) {
|
||||
if (schemaItem.getBizName().equals(schemaItemDimension.getBizName())) {
|
||||
dimensionExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(7);
|
||||
dateInfo.setDateMode(DateConf.DateMode.RECENT_UNITS);
|
||||
dateInfo.setPeriod("DAY");
|
||||
Boolean timeFilterExist =
|
||||
queryResultResp.getChatContext().getDateInfo().getUnit().equals(dateInfo.getUnit()) &&
|
||||
queryResultResp.getChatContext().getDateInfo().getDateMode().equals(dateInfo.getDateMode())
|
||||
&&
|
||||
queryResultResp.getChatContext().getDateInfo().getPeriod().equals(dateInfo.getPeriod());
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//case:超音数各部门的访问次数,queryMode:METRIC_GROUPBY
|
||||
@Test
|
||||
public void queryTest3() {
|
||||
QueryContextReq queryContextReq = getQueryContextReq("超音数各部门的访问次数");
|
||||
try {
|
||||
QueryResultResp queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricGroupBy.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = new SchemaItem();
|
||||
schemaItemMetric.setId(2L);
|
||||
schemaItemMetric.setName("访问次数");
|
||||
schemaItemMetric.setBizName("pv");
|
||||
Boolean metricExist = false;
|
||||
for (SchemaItem schemaItem : metrics) {
|
||||
if (schemaItem.getId().equals(schemaItemMetric.getId()) &&
|
||||
schemaItem.getName().equals(schemaItemMetric.getName()) &&
|
||||
schemaItem.getBizName().equals(schemaItemMetric.getBizName())) {
|
||||
metricExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = new SchemaItem();
|
||||
schemaItemDimension.setBizName("sys_imp_date");
|
||||
Boolean dimensionExist = false;
|
||||
for (SchemaItem schemaItem : dimensions) {
|
||||
if (schemaItem.getBizName().equals(schemaItemDimension.getBizName())) {
|
||||
dimensionExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
SchemaItem schemaItemDimension1 = new SchemaItem();
|
||||
schemaItemDimension1.setBizName("department");
|
||||
schemaItemDimension1.setName("部门");
|
||||
schemaItemDimension1.setId(1L);
|
||||
Boolean dimensionExist1 = false;
|
||||
for (SchemaItem schemaItem : dimensions) {
|
||||
if (schemaItem.getBizName().equals(schemaItemDimension1.getBizName()) &&
|
||||
schemaItem.getId().equals(schemaItemDimension1.getId()) &&
|
||||
schemaItem.getName().equals(schemaItemDimension1.getName())) {
|
||||
dimensionExist1 = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionExist1).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(7);
|
||||
dateInfo.setDateMode(DateConf.DateMode.RECENT_UNITS);
|
||||
dateInfo.setPeriod("DAY");
|
||||
Boolean timeFilterExist =
|
||||
queryResultResp.getChatContext().getDateInfo().getUnit().equals(dateInfo.getUnit()) &&
|
||||
queryResultResp.getChatContext().getDateInfo().getDateMode().equals(dateInfo.getDateMode())
|
||||
&&
|
||||
queryResultResp.getChatContext().getDateInfo().getPeriod().equals(dateInfo.getPeriod());
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//case:对比alice和lucy的访问次数,queryMode:METRIC_COMPARE
|
||||
@Test
|
||||
public void queryTest4() {
|
||||
QueryContextReq queryContextReq = getQueryContextReq("对比alice和lucy的访问次数");
|
||||
try {
|
||||
QueryResultResp queryResultResp = queryService.executeQuery(queryContextReq);
|
||||
LOGGER.info("QueryResultResp queryResultResp:{}", queryResultResp);
|
||||
//assert queryState
|
||||
Assert.assertEquals(queryResultResp.getQueryState(), 0);
|
||||
//assert queryMode
|
||||
Assert.assertEquals(queryResultResp.getQueryMode(), MetricCompare.QUERY_MODE);
|
||||
//assert aggType
|
||||
Assert.assertEquals(queryResultResp.getChatContext().getAggType(), null);
|
||||
//assert 主题域Id
|
||||
assertThat(queryResultResp.getChatContext().getDomainId()).isEqualTo(1L);
|
||||
|
||||
//assert 指标
|
||||
Set<SchemaItem> metrics = queryResultResp.getChatContext().getMetrics();
|
||||
SchemaItem schemaItemMetric = new SchemaItem();
|
||||
schemaItemMetric.setId(2L);
|
||||
schemaItemMetric.setName("访问次数");
|
||||
schemaItemMetric.setBizName("pv");
|
||||
Boolean metricExist = false;
|
||||
for (SchemaItem schemaItem : metrics) {
|
||||
if (schemaItem.getId().equals(schemaItemMetric.getId()) &&
|
||||
schemaItem.getName().equals(schemaItemMetric.getName()) &&
|
||||
schemaItem.getBizName().equals(schemaItemMetric.getBizName())) {
|
||||
metricExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(metricExist).isEqualTo(true);
|
||||
|
||||
//assert 维度
|
||||
Set<SchemaItem> dimensions = queryResultResp.getChatContext().getDimensions();
|
||||
SchemaItem schemaItemDimension = new SchemaItem();
|
||||
schemaItemDimension.setBizName("sys_imp_date");
|
||||
Boolean dimensionExist = false;
|
||||
for (SchemaItem schemaItem : dimensions) {
|
||||
if (schemaItem.getBizName().equals(schemaItemDimension.getBizName())) {
|
||||
dimensionExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionExist).isEqualTo(true);
|
||||
|
||||
//assert 维度filter
|
||||
Set<Filter> dimensionFilters = queryResultResp.getChatContext().getDimensionFilters();
|
||||
Filter dimensionFilter = new Filter();
|
||||
dimensionFilter.setBizName("user_name");
|
||||
dimensionFilter.setOperator(FilterOperatorEnum.IN);
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("alice");
|
||||
list.add("lucy");
|
||||
dimensionFilter.setValue(list);
|
||||
dimensionFilter.setName("用户名");
|
||||
dimensionFilter.setElementID(2L);
|
||||
Boolean dimensionFilterExist = false;
|
||||
for (Filter filter : dimensionFilters) {
|
||||
if (filter.getBizName().equals(dimensionFilter.getBizName()) &&
|
||||
filter.getOperator().equals(dimensionFilter.getOperator()) &&
|
||||
filter.getValue().toString().equals(dimensionFilter.getValue().toString()) &&
|
||||
filter.getElementID().equals(dimensionFilter.getElementID()) &&
|
||||
filter.getName().equals(dimensionFilter.getName())) {
|
||||
dimensionFilterExist = true;
|
||||
}
|
||||
}
|
||||
assertThat(dimensionFilterExist).isEqualTo(true);
|
||||
|
||||
//assert 时间filter
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(7);
|
||||
dateInfo.setDateMode(DateConf.DateMode.RECENT_UNITS);
|
||||
dateInfo.setPeriod("DAY");
|
||||
Boolean timeFilterExist =
|
||||
queryResultResp.getChatContext().getDateInfo().getUnit().equals(dateInfo.getUnit()) &&
|
||||
queryResultResp.getChatContext().getDateInfo().getDateMode().equals(dateInfo.getDateMode())
|
||||
&&
|
||||
queryResultResp.getChatContext().getDateInfo().getPeriod().equals(dateInfo.getPeriod());
|
||||
assertThat(timeFilterExist).isEqualTo(true);
|
||||
|
||||
//assert nativeQuery
|
||||
assertThat(queryResultResp.getChatContext().getNativeQuery()).isEqualTo(false);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public QueryContextReq getQueryContextReq(String query) {
|
||||
QueryContextReq queryContextReq = new QueryContextReq();
|
||||
queryContextReq.setQueryText(query);//"alice的访问次数"
|
||||
queryContextReq.setChatId(1);
|
||||
queryContextReq.setUser(new User(1L, "admin", "admin", "admin@email"));
|
||||
return queryContextReq;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.tencent.supersonic.util;
|
||||
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.chat.api.pojo.Filter;
|
||||
import com.tencent.supersonic.chat.api.request.QueryContextReq;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.semantic.api.query.enums.FilterOperatorEnum;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class DataUtils {
|
||||
|
||||
public static QueryContextReq getQueryContextReq(Integer id,String query) {
|
||||
QueryContextReq queryContextReq = new QueryContextReq();
|
||||
queryContextReq.setQueryText(query);//"alice的访问次数"
|
||||
queryContextReq.setChatId(id);
|
||||
queryContextReq.setUser(new User(1L, "admin", "admin", "admin@email"));
|
||||
return queryContextReq;
|
||||
}
|
||||
|
||||
public static SchemaItem getSchemaItem(Long id, String name, String bizName) {
|
||||
SchemaItem schemaItem = new SchemaItem();
|
||||
schemaItem.setId(id);
|
||||
schemaItem.setName(name);
|
||||
schemaItem.setBizName(bizName);
|
||||
return schemaItem;
|
||||
}
|
||||
|
||||
public static Filter getFilter(String bizName, FilterOperatorEnum filterOperatorEnum, Object value, String name,
|
||||
Long elementId) {
|
||||
Filter filter = new Filter();
|
||||
filter.setBizName(bizName);
|
||||
filter.setOperator(filterOperatorEnum);
|
||||
filter.setValue(value);
|
||||
filter.setName(name);
|
||||
filter.setElementID(elementId);
|
||||
return filter;
|
||||
}
|
||||
|
||||
public static DateConf getDateConf(Integer unit, DateConf.DateMode dateMode, String period) {
|
||||
DateConf dateInfo = new DateConf();
|
||||
dateInfo.setUnit(unit);
|
||||
dateInfo.setDateMode(dateMode);
|
||||
dateInfo.setPeriod(period);
|
||||
return dateInfo;
|
||||
}
|
||||
|
||||
|
||||
public static Boolean compareDate(DateConf dateInfo1, DateConf dateInfo2) {
|
||||
Boolean timeFilterExist = dateInfo1.getUnit().equals(dateInfo2.getUnit()) &&
|
||||
dateInfo1.getDateMode().equals(dateInfo2.getDateMode()) &&
|
||||
dateInfo1.getPeriod().equals(dateInfo2.getPeriod());
|
||||
return timeFilterExist;
|
||||
}
|
||||
|
||||
public static Boolean compareSchemaItem(Set<SchemaItem> metrics, SchemaItem schemaItemMetric) {
|
||||
Boolean metricExist = false;
|
||||
for (SchemaItem schemaItem : metrics) {
|
||||
if(schemaItem.getBizName().equals(schemaItemMetric.getBizName()))
|
||||
if (schemaItem.getId()!=null&&schemaItem.getId().equals(schemaItemMetric.getId()) &&
|
||||
schemaItem.getName()!=null&&schemaItem.getName().equals(schemaItemMetric.getName()) ) {
|
||||
metricExist = true;
|
||||
}
|
||||
}
|
||||
return metricExist;
|
||||
}
|
||||
|
||||
public static Boolean compareDateDimension(Set<SchemaItem> dimensions) {
|
||||
SchemaItem schemaItemDimension = new SchemaItem();
|
||||
schemaItemDimension.setBizName("sys_imp_date");
|
||||
Boolean dimensionExist = false;
|
||||
for (SchemaItem schemaItem : dimensions) {
|
||||
if (schemaItem.getBizName().equals(schemaItemDimension.getBizName())) {
|
||||
dimensionExist = true;
|
||||
}
|
||||
}
|
||||
return dimensionExist;
|
||||
}
|
||||
|
||||
public static Boolean compareDimensionFilter(Set<Filter> dimensionFilters, Filter dimensionFilter) {
|
||||
Boolean dimensionFilterExist = false;
|
||||
for (Filter filter : dimensionFilters) {
|
||||
if (filter.getBizName().equals(dimensionFilter.getBizName()) &&
|
||||
filter.getOperator().equals(dimensionFilter.getOperator()) &&
|
||||
filter.getValue().toString().equals(dimensionFilter.getValue().toString()) &&
|
||||
filter.getElementID().equals(dimensionFilter.getElementID()) &&
|
||||
filter.getName().equals(dimensionFilter.getName())) {
|
||||
dimensionFilterExist = true;
|
||||
}
|
||||
}
|
||||
return dimensionFilterExist;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,4 +4,16 @@ lucy _1_2 31
|
||||
dean _1_2 36
|
||||
john _1_2 50
|
||||
jack _1_2 38
|
||||
admin _1_2 70
|
||||
admin _1_2 70
|
||||
周杰伦 _2_7 100
|
||||
陈奕迅 _2_7 100
|
||||
林俊杰 _2_7 100
|
||||
张碧晨 _2_7 100
|
||||
程响 _2_7 100
|
||||
Taylor#Swift _2_7 100
|
||||
中国 _2_4 100
|
||||
欧美 _2_4 100
|
||||
流行 _2_6 100
|
||||
爱情 _2_6 100
|
||||
激情 _2_6 100
|
||||
国风 _2_6 100
|
||||
|
||||
@@ -4,7 +4,15 @@ insert into s2_user (id, `name`, password, display_name, email) values (2, 'jack
|
||||
insert into s2_user (id, `name`, password, display_name, email) values (3, 'tom','123456','tom','tom@xx.com');
|
||||
insert into s2_user (id, `name`, password, display_name, email) values (4, 'lucy','123456','lucy','lucy@xx.com');
|
||||
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`default_metrics`,`visibility`,`entity_info` ,`dictionary_info`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` ) values (1,1,'[{"metricId":1,"unit":7,"period":"DAY"}]','{"blackDimIdList":[],"blackMetricIdList":[]}','{"entityIds":[2],"names":["用户","用户姓名"],"detailData":{"dimensionIds":[1,2],"metricIds":[2]}}','[{"itemId":1,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":2,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":3,"type":"DIMENSION","blackList":[],"isDictInfo":true}]','2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
--insert into s2_chat_config (`id` ,`domain_id` ,`default_metrics`,`visibility`,`entity_info` ,`dictionary_info`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` ) values (1,1,'[{"metricId":1,"unit":7,"period":"DAY"}]','{"blackDimIdList":[],"blackMetricIdList":[]}','{"entityIds":[2],"names":["用户","用户姓名"],"detailData":{"dimensionIds":[1,2],"metricIds":[2]}}','[{"itemId":1,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":2,"type":"DIMENSION","blackList":[],"isDictInfo":true},{"itemId":3,"type":"DIMENSION","blackList":[],"isDictInfo":true}]','2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`chat_detail_config`,`chat_agg_config`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` )
|
||||
values (1,1,'{"visibility":{"blackDimIdList":[1],"blackMetricIdList":[2]},"knowledgeInfos":[{"itemId":2,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[1,2],"metricIds":[1],"unit":1,"period":"DAY"},"entity":null}',
|
||||
'{"visibility":{"blackDimIdList":[3],"blackMetricIdList":[3]},"knowledgeInfos":[{"itemId":2,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[1,2],"metricIds":[1],"unit":1,"period":"DAY"}}',
|
||||
'2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
insert into s2_chat_config (`id` ,`domain_id` ,`chat_detail_config`,`chat_agg_config`,`created_at`,`updated_at`,`created_by`,`updated_by`,`status` )
|
||||
values (2,2,'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":7,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[4,5,6,7],"metricIds":[4],"unit":7,"period":"DAY"},"entity":{"entityId":1,"names":["歌手","艺人"]}}',
|
||||
'{"visibility":{"blackDimIdList":[],"blackMetricIdList":[]},"knowledgeInfos":[{"itemId":7,"type":"DIMENSION","searchEnable":true}],"chatDefaultConfig":{"dimensionIds":[4,5,6,7],"metricIds":[4],"unit":7,"period":"DAY"}}',
|
||||
'2023-05-24 18:00:00','2023-05-25 11:00:00','admin','admin',1);
|
||||
|
||||
insert into s2_chat (chat_id, `chat_name`, create_time, last_time, creator,last_question,is_delete,is_top) values (1, '超音数访问统计','2023-06-10 10:00:52.495','2023-06-10 10:00:52','admin','您好,欢迎使用内容智能小Q','0','0');
|
||||
insert into s2_chat (chat_id, `chat_name`, create_time, last_time, creator,last_question,is_delete,is_top) values (2, '用户访问统计','2023-06-10 10:01:04.528','2023-06-10 10:01:04','admin','您好,欢迎使用内容智能小Q','0','0');
|
||||
@@ -22,19 +30,29 @@ insert into s2_chat_query (`question_id`,`create_time`,`query_text`,`user_name`,
|
||||
|
||||
-- semantic data
|
||||
insert into s2_database (id, domain_id , `name`, description, `type` ,config ,created_at ,created_by ,updated_at ,updated_by) VALUES(1, 1, 'H2数据实例', '', 'h2', '{"password":"semantic","url":"jdbc:h2:mem:semantic;DATABASE_TO_UPPER=false","userName":"root"}', '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin');
|
||||
insert into s2_database (id, domain_id , `name`, description, `type` ,config ,created_at ,created_by ,updated_at ,updated_by) VALUES(2, 2, 'H2数据实例', '', 'h2', '{"password":"semantic","url":"jdbc:h2:mem:semantic;DATABASE_TO_UPPER=false","userName":"root"}', '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(1, 1, '停留时长统计', 's2_stay_time_statis', '停留时长统计', 1, '{"dimensions":[{"bizName":"imp_date","dateFormat":"yyyy-MM-dd","expr":"imp_date","isCreateDimension":0,"type":"time","typeParams":{"isPrimary":"true","timeGranularity":"day"}},{"bizName":"page","dateFormat":"yyyy-MM-dd","expr":"page","isCreateDimension":0,"type":"categorical"}],"identifiers":[{"bizName":"user_name","name":"用户名","type":"primary"}],"measures":[{"agg":"sum","bizName":"s2_stay_time_statis_stay_hours","expr":"stay_hours","isCreateMetric":1,"name":"停留时长"}],"queryType":"sql_query","sqlQuery":"SELECT imp_date, page,user_name,stay_hours FROM s2_stay_time_statis"}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(2, 1, 'PVUV统计', 's2_pv_uv_statis', 'PVUV统计', 1, '{"dimensions":[{"bizName":"imp_date","dateFormat":"yyyy-MM-dd","expr":"imp_date","isCreateDimension":0,"type":"time","typeParams":{"isPrimary":"true","timeGranularity":"day"}},{"bizName":"page","dateFormat":"yyyy-MM-dd","expr":"page","isCreateDimension":0,"type":"categorical"}],"identifiers":[{"bizName":"user_name","name":"用户名","type":"primary"}],"measures":[{"agg":"sum","bizName":"s2_pv_uv_statis_pv","expr":"pv","isCreateMetric":1,"name":"访问次数"},{"agg":"count_distinct","bizName":"s2_pv_uv_statis_uv","expr":"uv","isCreateMetric":1,"name":"访问人数"}],"queryType":"sql_query","sqlQuery":"SELECT imp_date, user_name,page,1 as pv, user_name as uv FROM s2_pv_uv_statis"}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(3, 1, '用户部门', 'user_department', '用户部门', 1, '{"dimensions":[{"bizName":"department","dateFormat":"yyyy-MM-dd","expr":"department","isCreateDimension":1,"name":"部门","type":"categorical"}],"identifiers":[{"bizName":"user_name","name":"用户名","type":"primary"}],"measures":[],"queryType":"sql_query","sqlQuery":"SELECT user_name,department FROM s2_user_department"}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource (id , domain_id, `name`, biz_name, description, database_id ,datasource_detail, created_at, created_by, updated_at, updated_by ) VALUES(4, 2, '艺人库', 'singer', '艺人库', 1, '{"dimensions":[{"bizName":"imp_date","dateFormat":"yyyy-MM-dd","expr":"imp_date","isCreateDimension":0,"type":"time","typeParams":{"isPrimary":"true","timeGranularity":"day"}},{"bizName":"act_area","dateFormat":"yyyy-MM-dd","expr":"act_area","isCreateDimension":1,"name":"活跃区域","type":"categorical"},{"bizName":"song_name","dateFormat":"yyyy-MM-dd","expr":"song_name","isCreateDimension":1,"name":"代表作","type":"categorical"},{"bizName":"genre","dateFormat":"yyyy-MM-dd","expr":"genre","isCreateDimension":1,"name":"风格","type":"categorical"}],"identifiers":[{"bizName":"singer_name","name":"歌手名","type":"primary"}],"measures":[{"agg":"sum","bizName":"music_down_cnt","expr":"down_cnt","isCreateMetric":1,"name":"下载量"},{"agg":"sum","bizName":"music_js_play_cnt","expr":"js_play_cnt","isCreateMetric":1,"name":"播放量"},{"agg":"sum","bizName":"music_favor_cnt","expr":"favor_cnt","isCreateMetric":1,"name":"收藏量"}],"queryType":"sql_query","sqlQuery":"SELECT imp_date,singer_name,act_area,song_name,genre,js_play_cnt,down_cnt,favor_cnt FROM singer "}', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource_rela (id , domain_id, `datasource_from`, datasource_to, join_key, created_at, created_by, updated_at, updated_by ) VALUES(1, 1, 1, 2, 'user_name', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource_rela (id , domain_id, `datasource_from`, datasource_to, join_key, created_at, created_by, updated_at, updated_by ) VALUES(2, 1, 1, 3, 'user_name', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_datasource_rela (id , domain_id, `datasource_from`, datasource_to, join_key, created_at, created_by, updated_at, updated_by ) VALUES(3, 1, 2, 3, 'user_name', '2023-05-25 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(1, 1, 3, '部门', 'department', '部门', 1, 0, 'categorical', NULL, 'department', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(2, 1, 1, '用户名', 'user_name', '用户名', 1, 0, 'primary', NULL, 'user_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(3, 1, 2, '页面', 'page', '页面', 1, 2, 'categorical', NULL, 'page', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(4, 2, 4, '活跃区域', 'act_area', '活跃区域', 1, 2, 'categorical', NULL, 'act_area', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(5, 2, 4, '代表作', 'song_name', '代表作', 1, 2, 'categorical', NULL, 'song_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(6, 2, 4, '风格', 'genre', '风格', 1, 2, 'categorical', NULL, 'genre', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_dimension (id , domain_id, datasource_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, expr, created_at, created_by, updated_at, updated_by, semantic_type) VALUES(7, 2, 4, '歌手名', 'singer_name', '歌手名', 1, 2, 'categorical', NULL, 'singer_name', '2023-05-24 00:00:00', 'admin', '2023-05-25 00:00:00', 'admin', 'CATEGORY');
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org) VALUES(1, '超音数', 'supersonic', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin' );
|
||||
insert into s2_domain (id, `name`, biz_name, parent_id, status, created_at, created_by, updated_at, updated_by, `admin`, admin_org, is_open, viewer, view_org) VALUES(2, '艺人库', 'singer', 0, 1, '2023-05-24 00:00:00', 'admin', '2023-05-24 00:00:00', 'admin', 'admin', '', 0, 'admin,tom,jack', 'admin' );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(1, 1, '停留时长', 'stay_hours', '停留时长', 1, 2, 'expr', '{"expr":"s2_stay_time_statis_stay_hours","measures":[{"agg":"sum","expr":"stay_hours","isCreateMetric":1,"datasourceId":1,"bizName":"s2_stay_time_statis_stay_hours","name":"s2_stay_time_statis_stay_hours"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(2, 1, '访问次数', 'pv', '访问次数', 1, 0, 'expr', ' {"expr":"s2_pv_uv_statis_pv","measures":[{"agg":"sum","bizName":"s2_pv_uv_statis_pv","datasourceId":2,"expr":"pv","isCreateMetric":1,"name":"s2_pv_uv_statis_pv"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(3, 1, '访问人数', 'uv', '访问人数', 1, 0, 'expr', ' {"expr":"s2_pv_uv_statis_uv","measures":[{"agg":"count_distinct","bizName":"s2_pv_uv_statis_uv","datasourceId":2,"expr":"uv","isCreateMetric":1,"name":"s2_pv_uv_statis_uv"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(4, 2, '播放量', 'js_play_cnt', '播放量', 1, 2, 'expr', '{"expr":"music_js_play_cnt","measures":[{"agg":"sum","expr":"js_play_cnt","isCreateMetric":1,"datasourceId":4,"bizName":"music_js_play_cnt","name":"music_js_play_cnt"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(5, 2, '下载量', 'down_cnt', '下载量', 1, 0, 'expr', ' {"expr":"music_down_cnt","measures":[{"agg":"sum","bizName":"music_down_cnt","datasourceId":4,"expr":"down_cnt","isCreateMetric":1,"name":"music_down_cnt"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
insert into s2_metric (id, domain_id, `name`, biz_name, description, status, sensitive_level, `type`, type_params, created_at, created_by, updated_at, updated_by, data_format_type, data_format) VALUES(6, 2, '收藏量', 'favor_cnt', '收藏量', 1, 0, 'expr', ' {"expr":"music_favor_cnt","measures":[{"agg":"sum","bizName":"music_favor_cnt","datasourceId":4,"expr":"favor_cnt","isCreateMetric":1,"name":"music_favor_cnt"}]}' , '2023-05-24 17:00:00', 'admin', '2023-05-25 00:00:00', 'admin', NULL, NULL );
|
||||
|
||||
insert into s2_available_date_info(`item_id` ,`type` ,`date_format` ,`start_date` ,`end_date` ,`unavailable_date` ,`created_at` ,`created_by` ,`updated_at` ,`updated_by` )
|
||||
values (1, 'dimension', 'yyyy-MM-dd', DATEADD('DAY', -28, CURRENT_DATE()), DATEADD('DAY', -1, CURRENT_DATE()), '[]', '2023-06-01', 'admin', '2023-06-01', 'admin');
|
||||
@@ -48,13 +66,64 @@ values (1, '{"domainId":"1","name":"admin-permission","groupId":1,"authRules":[{
|
||||
insert into s2_auth_groups (group_id, config)
|
||||
values (2, '{"domainId":"1","name":"tom_sales_permission","groupId":2,"authRules":[{"metrics":["stay_hours"],"dimensions":["page"]}],"dimensionFilters":["department in (''sales'')"],"dimensionFilterDescription":"开通 tom sales部门权限", "authorizedUsers":["tom"],"authorizedDepartmentIds":[]}');
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '周杰伦', '中国','青花瓷','流行',1000000,1000000,1000000);
|
||||
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (1, 'admin','admin','admin','admin@xx.com');
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (2, 'jack','123456','jack','jack@xx.com');
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (3, 'tom','123456','tom','tom@xx.com');
|
||||
-- insert into s2_user (id, `name`, password, display_name, email) values (4, 'lucy','123456','lucy','lucy@xx.com');
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '陈奕迅', '中国','爱情转移','激情',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '林俊杰', '中国','美人鱼','爱情',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '张碧晨', '中国','光的方向','流行',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), '程响', '中国','人间烟火','国风',1000000,1000000,1000000);
|
||||
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -5, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -4, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -3, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -2, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -6, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
INSERT INTO singer (imp_date,singer_name,act_area, song_name,genre,js_play_cnt,down_cnt,favor_cnt) VALUES (DATEADD('DAY', -7, CURRENT_DATE()), 'Taylor Swift
|
||||
', '欧美','Love Story','爱情',1000000,1000000,1000000);
|
||||
|
||||
---demo data for semantic and chat
|
||||
insert into s2_user_department (user_name, department) values ('jack','HR');
|
||||
|
||||
insert into s2_user_department (user_name, department) values ('jack','HR');
|
||||
insert into s2_user_department (user_name, department) values ('tom','sales');
|
||||
insert into s2_user_department (user_name, department) values ('lucy','marketing');
|
||||
|
||||
@@ -39,14 +39,11 @@ CREATE TABLE `s2_chat_query`
|
||||
);
|
||||
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `s2_chat_config` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` INT DEFAULT NULL ,
|
||||
`default_metrics` varchar(655) DEFAULT NULL,
|
||||
`visibility` varchar(655) , -- invisible dimension metric information
|
||||
`entity_info` varchar(655) ,
|
||||
`dictionary_info` varchar(655) , -- dictionary-related dimension setting information
|
||||
`chat_detail_config` varchar(655) ,
|
||||
`chat_agg_config` varchar(655) ,
|
||||
`created_at` TIMESTAMP NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
@@ -306,6 +303,7 @@ CREATE TABLE IF NOT EXISTS `s2_available_date_info` (
|
||||
`created_by` varchar(100) NOT NULL ,
|
||||
`updated_at` TIMESTAMP NOT NULL ,
|
||||
`updated_by` varchar(100) NOT NULL ,
|
||||
`date_period` varchar(100) DEFAULT NULL ,
|
||||
`status` INT DEFAULT '0', -- 1-in use 0 is normal, 1 is off the shelf, 2 is deleted
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
@@ -334,6 +332,18 @@ CREATE TABLE IF NOT EXISTS `s2_stay_time_statis` (
|
||||
);
|
||||
COMMENT ON TABLE s2_stay_time_statis IS 's2_stay_time_statis_info';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `singer` (
|
||||
`imp_date` varchar(200) NOT NULL,
|
||||
`singer_name` varchar(200) NOT NULL,
|
||||
`act_area` varchar(200) NOT NULL,
|
||||
`song_name` varchar(200) NOT NULL,
|
||||
`genre` varchar(200) NOT NULL,
|
||||
`js_play_cnt` bigINT DEFAULT NULL,
|
||||
`down_cnt` bigINT DEFAULT NULL,
|
||||
`favor_cnt` bigINT DEFAULT NULL
|
||||
);
|
||||
COMMENT ON TABLE singer IS 'singer_info';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user