(improvement)(chat) async save time statistic and update parse info (#264)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2023-10-20 11:23:13 +08:00
committed by GitHub
parent a1d56fc7e4
commit f4638b48d5
13 changed files with 34 additions and 14 deletions

View File

@@ -7,5 +7,5 @@ import java.util.List;
public interface StatisticsRepository {
boolean batchSaveStatistics(List<StatisticsDO> list);
void batchSaveStatistics(List<StatisticsDO> list);
}

View File

@@ -20,10 +20,9 @@ public class StatisticsRepositoryImpl implements StatisticsRepository {
this.statisticsMapper = statisticsMapper;
}
public boolean batchSaveStatistics(List<StatisticsDO> list) {
return statisticsMapper.batchSaveStatistics(list);
public void batchSaveStatistics(List<StatisticsDO> list) {
statisticsMapper.batchSaveStatistics(list);
}
;
}

View File

@@ -5,5 +5,5 @@ import com.tencent.supersonic.chat.persistence.dataobject.StatisticsDO;
import java.util.List;
public interface StatisticsService {
boolean batchSaveStatistics(List<StatisticsDO> list);
void batchSaveStatistics(List<StatisticsDO> list);
}

View File

@@ -33,6 +33,7 @@ import com.tencent.supersonic.common.util.JsonUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.springframework.context.annotation.Primary;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

View File

@@ -4,6 +4,7 @@ import com.tencent.supersonic.chat.persistence.dataobject.StatisticsDO;
import com.tencent.supersonic.chat.persistence.repository.StatisticsRepository;
import com.tencent.supersonic.chat.service.StatisticsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -18,8 +19,9 @@ public class StatisticsServiceImpl implements StatisticsService {
this.statisticsRepository = statisticsRepository;
}
@Async
@Override
public boolean batchSaveStatistics(List<StatisticsDO> list) {
return statisticsRepository.batchSaveStatistics(list);
public void batchSaveStatistics(List<StatisticsDO> list) {
statisticsRepository.batchSaveStatistics(list);
}
}

View File

@@ -28,7 +28,7 @@
<update id="updateParseInfo" parameterType="com.tencent.supersonic.chat.persistence.dataobject.ChatParseDO">
update s2_chat_parse
set parse_info = #{parseInfo}
where parse_id = #{parseId}
where question_id = #{questionId} and parse_id = #{parseId}
</update>
<select id="getParseInfo" resultMap="ChatParse">

View File

@@ -4,11 +4,13 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(scanBasePackages = {"com.tencent.supersonic"},
exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@EnableScheduling
@EnableAsync
public class StandaloneLauncher {
public static void main(String[] args) {

View File

@@ -88,7 +88,7 @@ public class DatabaseServiceImpl implements DatabaseService {
@Override
public void deleteDatabase(Long databaseId) {
List<DatasourceResp> datasourceResps = datasourceService.getDatasourceList(databaseId);
List<DatasourceResp> datasourceResps = datasourceService.getDatasourceByDatabase(databaseId);
if (!CollectionUtils.isEmpty(datasourceResps)) {
List<String> datasourceNames = datasourceResps.stream()
.map(DatasourceResp::getName).collect(Collectors.toList());

View File

@@ -261,6 +261,11 @@ public class DatasourceServiceImpl implements DatasourceService {
return DatasourceConverter.convertList(datasourceRepository.getDatasourceList());
}
@Override
public List<DatasourceResp> getDatasourceByDatabase(Long databaseId) {
return DatasourceConverter.convertList(datasourceRepository.getDatasourceByDatabase(databaseId));
}
@Override
public List<DatasourceResp> getDatasourceListNoMeasurePrefix(Long modelId) {
List<DatasourceResp> datasourceResps = getDatasourceList(modelId);

View File

@@ -28,13 +28,15 @@ public interface DatasourceService {
List<DatasourceResp> getDatasourceList(Long modelId);
List<DatasourceResp> getDatasourceByDatabase(Long databaseId);
Map<Long, DatasourceResp> getDatasourceMap();
void deleteDatasource(Long id) throws Exception;
DatasourceRelaResp createOrUpdateDatasourceRela(DatasourceRelaReq datasourceRelaReq, User user);
List<DatasourceRelaResp> getDatasourceRelaList(Long domainId);
List<DatasourceRelaResp> getDatasourceRelaList(Long modelId);
void deleteDatasourceRela(Long id);

View File

@@ -15,6 +15,8 @@ public interface DatasourceRepository {
List<DatasourceDO> getDatasourceList(Long modelId);
List<DatasourceDO> getDatasourceByDatabase(Long databaseId);
DatasourceDO getDatasourceById(Long id);
void deleteDatasource(Long id);

View File

@@ -150,26 +150,26 @@ public class DatasourceConverter {
}
private static boolean isCraeteDimension(Dim dim) {
private static boolean isCreateDimension(Dim dim) {
return dim.getIsCreateDimension() == 1
&& StringUtils.isNotBlank(dim.getName())
&& !dim.getType().equalsIgnoreCase("time");
}
private static boolean isCraeteMetric(Measure measure) {
private static boolean isCreateMetric(Measure measure) {
return measure.getIsCreateMetric() == 1
&& StringUtils.isNotBlank(measure.getName());
}
public static List<Dim> getDimToCreateDimension(Datasource datasource) {
return datasource.getDatasourceDetail().getDimensions().stream()
.filter(DatasourceConverter::isCraeteDimension)
.filter(DatasourceConverter::isCreateDimension)
.collect(Collectors.toList());
}
public static List<Measure> getMeasureToCreateMetric(Datasource datasource) {
return datasource.getDatasourceDetail().getMeasures().stream()
.filter(DatasourceConverter::isCraeteMetric)
.filter(DatasourceConverter::isCreateMetric)
.collect(Collectors.toList());
}

View File

@@ -51,6 +51,13 @@ public class DatasourceRepositoryImpl implements DatasourceRepository {
return datasourceMapper.selectByExampleWithBLOBs(datasourceExample);
}
@Override
public List<DatasourceDO> getDatasourceByDatabase(Long databaseId) {
DatasourceDOExample datasourceExample = new DatasourceDOExample();
datasourceExample.createCriteria().andDatabaseIdEqualTo(databaseId);
return datasourceMapper.selectByExampleWithBLOBs(datasourceExample);
}
@Override
public DatasourceDO getDatasourceById(Long id) {
return datasourceMapper.selectByPrimaryKey(id);