(improvement)(chat) show case filter by user name (#245)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2023-10-17 17:52:27 +08:00
committed by GitHub
parent a9bb1c1f68
commit 968d50e071
6 changed files with 19 additions and 18 deletions

View File

@@ -7,6 +7,6 @@ import java.util.List;
@Mapper @Mapper
public interface ShowCaseCustomMapper { public interface ShowCaseCustomMapper {
List<ChatQueryDO> queryShowCase(int start, int limit, int agentId); List<ChatQueryDO> queryShowCase(int start, int limit, int agentId, String userName);
} }

View File

@@ -78,9 +78,10 @@ public class ChatQueryRepositoryImpl implements ChatQueryRepository {
} }
@Override @Override
public List<QueryResp> queryShowCase(PageQueryInfoReq pageQueryInfoCommend, int agentId) { public List<QueryResp> queryShowCase(PageQueryInfoReq pageQueryInfoReq, int agentId) {
return showCaseCustomMapper.queryShowCase(pageQueryInfoCommend.getCurrent(), return showCaseCustomMapper.queryShowCase(pageQueryInfoReq.getCurrent(),
pageQueryInfoCommend.getPageSize(), agentId).stream().map(this::convertTo) pageQueryInfoReq.getPageSize(), agentId, pageQueryInfoReq.getUserName())
.stream().map(this::convertTo)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }

View File

@@ -137,14 +137,14 @@ public class ChatServiceImpl implements ChatService {
} }
@Override @Override
public ShowCaseResp queryShowCase(PageQueryInfoReq pageQueryInfoCommend, int agentId) { public ShowCaseResp queryShowCase(PageQueryInfoReq pageQueryInfoReq, int agentId) {
ShowCaseResp showCaseResp = new ShowCaseResp(); ShowCaseResp showCaseResp = new ShowCaseResp();
List<QueryResp> queryResps = chatQueryRepository.queryShowCase(pageQueryInfoCommend, agentId); List<QueryResp> queryResps = chatQueryRepository.queryShowCase(pageQueryInfoReq, agentId);
Map<Long, List<QueryResp>> showCaseMap = queryResps.stream() Map<Long, List<QueryResp>> showCaseMap = queryResps.stream()
.collect(Collectors.groupingBy(QueryResp::getChatId)); .collect(Collectors.groupingBy(QueryResp::getChatId));
showCaseResp.setShowCaseMap(showCaseMap); showCaseResp.setShowCaseMap(showCaseMap);
showCaseResp.setCurrent(pageQueryInfoCommend.getCurrent()); showCaseResp.setCurrent(pageQueryInfoReq.getCurrent());
showCaseResp.setPageSize(pageQueryInfoCommend.getPageSize()); showCaseResp.setPageSize(pageQueryInfoReq.getPageSize());
return showCaseResp; return showCaseResp;
} }

View File

@@ -60,6 +60,9 @@
select distinct chat_id select distinct chat_id
from s2_chat_query from s2_chat_query
where query_state = 1 and agent_id = ${agentId} where query_state = 1 and agent_id = ${agentId}
<if test="userName != null and userName != ''">
and user_name = #{userName}
</if>
order by chat_id desc order by chat_id desc
limit #{start}, #{limit} limit #{start}, #{limit}
) q2 ) q2

View File

@@ -41,19 +41,21 @@ public class DatabaseServiceImpl implements DatabaseService {
@Override @Override
public boolean testConnect(DatabaseReq databaseReq, User user) { public boolean testConnect(DatabaseReq databaseReq, User user) {
Database database = DatabaseConverter.convert(databaseReq, user); Database database = DatabaseConverter.convert(databaseReq);
return JdbcDataSourceUtils.testDatabase(database); return JdbcDataSourceUtils.testDatabase(database);
} }
@Override @Override
public DatabaseResp createOrUpdateDatabase(DatabaseReq databaseReq, User user) { public DatabaseResp createOrUpdateDatabase(DatabaseReq databaseReq, User user) {
Database database = DatabaseConverter.convert(databaseReq, user); Database database = DatabaseConverter.convert(databaseReq);
DatabaseDO databaseDO = getDatabaseDO(databaseReq.getId()); DatabaseDO databaseDO = getDatabaseDO(databaseReq.getId());
if (databaseDO != null) { if (databaseDO != null) {
database.updatedBy(user.getName());
DatabaseConverter.convert(database, databaseDO); DatabaseConverter.convert(database, databaseDO);
databaseRepository.updateDatabase(databaseDO); databaseRepository.updateDatabase(databaseDO);
return DatabaseConverter.convert(databaseDO); return DatabaseConverter.convert(databaseDO);
} }
database.createdBy(user.getName());
databaseDO = DatabaseConverter.convert(database); databaseDO = DatabaseConverter.convert(database);
databaseRepository.createDatabase(databaseDO); databaseRepository.createDatabase(databaseDO);
return DatabaseConverter.convert(databaseDO); return DatabaseConverter.convert(databaseDO);

View File

@@ -1,21 +1,18 @@
package com.tencent.supersonic.semantic.model.domain.utils; package com.tencent.supersonic.semantic.model.domain.utils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.tencent.supersonic.auth.api.authentication.pojo.User;
import com.tencent.supersonic.semantic.api.model.request.DatabaseReq; import com.tencent.supersonic.semantic.api.model.request.DatabaseReq;
import com.tencent.supersonic.semantic.api.model.response.DatabaseResp; import com.tencent.supersonic.semantic.api.model.response.DatabaseResp;
import com.tencent.supersonic.semantic.model.domain.dataobject.DatabaseDO; import com.tencent.supersonic.semantic.model.domain.dataobject.DatabaseDO;
import com.tencent.supersonic.semantic.model.domain.pojo.ConnectInfo; import com.tencent.supersonic.semantic.model.domain.pojo.ConnectInfo;
import com.tencent.supersonic.semantic.model.domain.pojo.Database; import com.tencent.supersonic.semantic.model.domain.pojo.Database;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
public class DatabaseConverter { public class DatabaseConverter {
public static Database convert(DatabaseReq databaseReq, User user) { public static Database convert(DatabaseReq databaseReq) {
Database database = new Database(); Database database = new Database();
BeanUtils.copyProperties(databaseReq, database); BeanUtils.copyProperties(databaseReq, database);
ConnectInfo connectInfo = new ConnectInfo(); ConnectInfo connectInfo = new ConnectInfo();
@@ -24,16 +21,14 @@ public class DatabaseConverter {
connectInfo.setUrl(databaseReq.getUrl()); connectInfo.setUrl(databaseReq.getUrl());
connectInfo.setDatabase(databaseReq.getDatabase()); connectInfo.setDatabase(databaseReq.getDatabase());
database.setConnectInfo(connectInfo); database.setConnectInfo(connectInfo);
database.setCreatedAt(new Date());
database.setCreatedBy(user.getName());
database.setUpdatedAt(new Date());
database.setUpdatedBy(user.getName());
database.setVersion(databaseReq.getVersion()); database.setVersion(databaseReq.getVersion());
return database; return database;
} }
public static DatabaseDO convert(Database database, DatabaseDO databaseDO) { public static DatabaseDO convert(Database database, DatabaseDO databaseDO) {
database.setId(databaseDO.getId()); database.setId(databaseDO.getId());
database.setCreatedBy(databaseDO.getCreatedBy());
database.setCreatedAt(databaseDO.getCreatedAt());
BeanUtils.copyProperties(database, databaseDO); BeanUtils.copyProperties(database, databaseDO);
databaseDO.setConfig(JSONObject.toJSONString(database.getConnectInfo())); databaseDO.setConfig(JSONObject.toJSONString(database.getConnectInfo()));
databaseDO.setAdmin(String.join(",", database.getAdmins())); databaseDO.setAdmin(String.join(",", database.getAdmins()));