Commit 8a13dab9 by songyinghui

feature:数据组双写

parent 8997812e
...@@ -207,6 +207,12 @@ ...@@ -207,6 +207,12 @@
<artifactId>gic-operating-api</artifactId> <artifactId>gic-operating-api</artifactId>
<version>${gic-operating-api}</version> <version>${gic-operating-api}</version>
</dependency> </dependency>
<!-- 数仓 -->
<dependency>
<groupId>com.alibaba.hologres</groupId>
<artifactId>holo-client</artifactId>
<version>2.2.10</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.gic.haoban.manage.service.dao.mapper.content.holo;
import com.alibaba.hologres.client.HoloClient;
import com.alibaba.hologres.client.HoloConfig;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
/**
* @Author MUSI
* @Date 2023/9/4 4:11 PM
* @Description
* @Version
**/
@Slf4j
@Component
public class HoloDataSource implements InitializingBean, DisposableBean {
HoloClient client;
public synchronized void init() {
try {
Config appConfig = ConfigService.getAppConfig();
String holoUrl = appConfig.getProperty("holo.url", "");
String holoUserName = appConfig.getProperty("holo.username", "");
String holoPassword = appConfig.getProperty("holo.password", "");
HoloConfig holoConfig = new HoloConfig();
//holoConfig.setJdbcUrl("jdbc:postgresql://hgprecn-cn-lbj34oq08002-cn-shanghai.hologres.aliyuncs.com:80/gicdatadev.public");
//holoConfig.setUsername("LTAI5tGn2YicKmgcyTiJDV59");
//holoConfig.setPassword("iOp7cICESPZIvIjJRtTmLnCd4gT1Qy");
holoConfig.setJdbcUrl(holoUrl);
holoConfig.setUsername(holoUserName);
holoConfig.setPassword(holoPassword);
client = new HoloClient(holoConfig);
}catch (Exception ex) {
log.info("初始化client 异常 >>>", ex);
}
}
@Override
public void destroy() throws Exception {
if (client != null) {
client.close();
}
}
@Override
public void afterPropertiesSet() throws Exception {
if (client == null) {
this.init();
}
}
public HoloClient getClient() {
if (this.client == null) {
this.init();
}
return this.client;
}
}
package com.gic.haoban.manage.service.service.content.impl; package com.gic.haoban.manage.service.service.content.impl;
import com.alibaba.hologres.client.HoloClient;
import com.alibaba.hologres.client.Put;
import com.alibaba.hologres.client.model.TableSchema;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService;
import com.gic.haoban.manage.service.dao.mapper.content.TabHaobanTriggerCustomerDetailMapper; import com.gic.haoban.manage.service.dao.mapper.content.TabHaobanTriggerCustomerDetailMapper;
import com.gic.haoban.manage.service.dao.mapper.content.holo.HoloDataSource;
import com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail; import com.gic.haoban.manage.service.entity.content.TabHaobanTriggerCustomerDetail;
import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO; import com.gic.haoban.manage.service.pojo.bo.content.TriggerCustomerDetailBO;
import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO; import com.gic.haoban.manage.service.pojo.qo.content.TriggerCustomerDetailQO;
import com.gic.haoban.manage.service.service.content.TriggerCustomerDetailService; import com.gic.haoban.manage.service.service.content.TriggerCustomerDetailService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -29,6 +36,9 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe ...@@ -29,6 +36,9 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe
@Autowired @Autowired
private TabHaobanTriggerCustomerDetailMapper triggerCustomerDetailMapper; private TabHaobanTriggerCustomerDetailMapper triggerCustomerDetailMapper;
@Autowired
private HoloDataSource holoDataSource;
@Override @Override
public void save(TriggerCustomerDetailBO triggerCustomerDetailBO) { public void save(TriggerCustomerDetailBO triggerCustomerDetailBO) {
...@@ -44,15 +54,39 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe ...@@ -44,15 +54,39 @@ public class TriggerCustomerDetailServiceImpl implements TriggerCustomerDetailSe
if (CollectionUtils.isEmpty(triggerCustomerDetailBos)) { if (CollectionUtils.isEmpty(triggerCustomerDetailBos)) {
return; return;
} }
List<TabHaobanTriggerCustomerDetail> customerDetails = triggerCustomerDetailBos Config appConfig = ConfigService.getAppConfig();
.stream() // 当前阶段 0双写 1 只写数据表
.map(item -> { String triggerProcess = appConfig.getProperty("trigger.write", "0");
TabHaobanTriggerCustomerDetail temp = new TabHaobanTriggerCustomerDetail(); if (StringUtils.equals(triggerProcess, "0")) {
BeanUtils.copyProperties(item, temp); List<TabHaobanTriggerCustomerDetail> customerDetails = triggerCustomerDetailBos
return temp; .stream()
}) .map(item -> {
.collect(Collectors.toList()); TabHaobanTriggerCustomerDetail temp = new TabHaobanTriggerCustomerDetail();
triggerCustomerDetailMapper.insertBatch(customerDetails); BeanUtils.copyProperties(item, temp);
return temp;
})
.collect(Collectors.toList());
triggerCustomerDetailMapper.insertBatch(customerDetails);
}
try {
HoloClient client = holoDataSource.getClient();
if (client == null) {
log.error("数仓数据源链接异常, 请检查!!!!");
return;
}
TableSchema tableSchema = client.getTableSchema("tab_haoban_trigger_customer_detail");
List<Put> puts = triggerCustomerDetailBos
.stream()
.map(item -> {
Put temp = new Put(tableSchema);
temp.setObject("", "");
return temp;
})
.collect(Collectors.toList());
client.put(puts);
}catch (Exception ex) {
log.info("数据组写入异常", ex);
}
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment