diff --git a/postdischarge-admin/src/main/resources/application-dev.yml b/postdischarge-admin/src/main/resources/application-dev.yml index aedbd4c7..622a9f18 100644 --- a/postdischarge-admin/src/main/resources/application-dev.yml +++ b/postdischarge-admin/src/main/resources/application-dev.yml @@ -9,13 +9,6 @@ spring: url: jdbc:mysql://127.0.0.1:3306/post-discharge-hkey?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true username: root password: Hk2y!@#$ - # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: true - url: jdbc:mysql://47.104.245.3:3306/aiob_callback?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true - username: root - password: Xyl_1024!@#$ hkhis: # 从数据源开关/默认关闭 enabled: true diff --git a/postdischarge-framework/src/main/java/com/xinelu/framework/config/DruidConfig.java b/postdischarge-framework/src/main/java/com/xinelu/framework/config/DruidConfig.java index bdd6cd7f..38446817 100644 --- a/postdischarge-framework/src/main/java/com/xinelu/framework/config/DruidConfig.java +++ b/postdischarge-framework/src/main/java/com/xinelu/framework/config/DruidConfig.java @@ -35,14 +35,6 @@ public class DruidConfig { return druidProperties.dataSource(dataSource); } - @Bean - @ConfigurationProperties("spring.datasource.druid.slave") - @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true") - public DataSource slaveDataSource(DruidProperties druidProperties) { - DruidDataSource dataSource = DruidDataSourceBuilder.create().build(); - return druidProperties.dataSource(dataSource); - } - @Bean @ConfigurationProperties("spring.datasource.druid.hkhis") @@ -57,7 +49,6 @@ public class DruidConfig { public DynamicDataSource dataSource(DataSource masterDataSource) { Map targetDataSources = new HashMap<>(); targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); - setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); setDataSource(targetDataSources, DataSourceType.HKHIS.name(), "hkhisDataSource"); return new DynamicDataSource(masterDataSource, targetDataSources); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/aiob/AIOBCallbackMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/aiob/AIOBCallbackMapper.java index 1ae97fcb..4114ed35 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/aiob/AIOBCallbackMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/aiob/AIOBCallbackMapper.java @@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Param; * @Author haown * @Date 2025-12-23 15:45 */ -@DataSource(DataSourceType.SLAVE) + public interface AIOBCallbackMapper { List getList(AIOBCallbackEntity query); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBCallbackServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBCallbackServiceImpl.java index 8d9d7afe..f38db181 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBCallbackServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/aiob/impl/AIOBCallbackServiceImpl.java @@ -1,11 +1,24 @@ package com.xinelu.manage.service.aiob.impl; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.xinelu.common.exception.ServiceException; import com.xinelu.manage.domain.aiob.AIOBCallbackEntity; import com.xinelu.manage.mapper.aiob.AIOBCallbackMapper; import com.xinelu.manage.service.aiob.IAIOBCallbackService; + +import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; /** * @description: 阿里云服务器百度外呼回调Service实现 @@ -13,16 +26,46 @@ import org.springframework.stereotype.Service; * @create: 2025-12-23 15:30 **/ @Service +@Slf4j public class AIOBCallbackServiceImpl implements IAIOBCallbackService { @Resource private AIOBCallbackMapper aiobCallbackMapper; + @Value("${aiob.callBackUrl}") + private String callBackUrl; @Override public List getList(AIOBCallbackEntity query) { - return aiobCallbackMapper.getList(query); + // 接口获取外呼回调数据app + List callbackEntityList = new ArrayList<>(); + HttpEntity requestEntity = new HttpEntity<>((JSONObject) JSON.toJSON(query)); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity responseEntity = restTemplate.exchange(callBackUrl + "/getList", HttpMethod.POST, requestEntity, String.class); + JSONObject object = JSON.parseObject(responseEntity.getBody()); + if (object == null || object.getInteger("code") == null || object.getInteger("code") != 0) { + return null; + } + if (object.containsKey("data")) { + JSONArray data = object.getJSONArray("data"); + if (data != null && data.size() > 0) { + callbackEntityList = data.toJavaList(AIOBCallbackEntity.class); + } + } + return callbackEntityList; } @Override public Integer updateReadState(Integer readState, Integer id) { - return aiobCallbackMapper.updateReadState(readState, id); + log.info("修改百度外呼回调数据已读状态--id:{}", id); + JSONObject TaskCallbackUpdateDto = new JSONObject(); + TaskCallbackUpdateDto.fluentPut("id", id).fluentPut("readState", readState); + HttpEntity requestEntity = new HttpEntity<>(TaskCallbackUpdateDto); + RestTemplate restTemplate = new RestTemplate(); + ResponseEntity responseEntity = restTemplate.exchange(callBackUrl + "/updateReadState", HttpMethod.POST, requestEntity, String.class); + JSONObject object = JSON.parseObject(responseEntity.getBody()); + if (object == null || object.getInteger("code") == null || object.getInteger("code") != 0) { + log.info("修改百度外呼回调数据已读状态失败--id:{},原因:{}", id, object.getString("message")); + return null; + } + log.info("修改百度外呼回调数据已读状态成功--id:{}", id); + return 1; } @Override public Integer deleteData() { diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java index b8864f8f..8decfd24 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/UploadRobotPublishTask.java @@ -204,7 +204,7 @@ public class UploadRobotPublishTask { createTaskDto.setRetryInterval(nodeFirstTemp.getPhoneTimeInterval()); createTaskDto.setNumTypeFilterList(Arrays.asList(1, 2)); createTaskDto.setTaskDataCallback(true); - createTaskDto.setCallBackUrl(callBackUrl); + createTaskDto.setCallBackUrl(callBackUrl+ "/taskCallBack"); createTaskDto.setDialStartTime(localStartTime.format(DateTimeFormatter.ofPattern("HH:mm"))); createTaskDto.setDialEndTime(localEndTime.format(DateTimeFormatter.ofPattern("HH:mm"))); taskId = aiobService.createTask(createTaskDto);