提交 c2502aff authored 作者: songchuancai's avatar songchuancai

优化代码

上级 7cc43e06
package com.hisense.dataservice.bo;
import com.hisense.dataservice.dto.DataApiModelSubscribeDto;
import com.hisense.dataservice.dto.SubscribeApiResultDto;
import com.hisense.dataservice.entity.DataApiModel;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.service.impl.DataApiCommonServiceImpl;
import com.hisense.dataservice.util.SpringBeanUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.Callable;
/**
* @author : scc
* @date : 2023/03/29
**/
@Data
@Slf4j
public class SubscribeDataApiTask implements Callable<Result<SubscribeApiResultDto>> {
private DataApiModelSubscribeDto application;
private DataApiModel dataApiModel;
private String environment;
private Integer subscribeSystemId;
private String subscribeSystemName;
private String user;
public SubscribeDataApiTask(DataApiModelSubscribeDto application, DataApiModel dataApiModel, String environment, Integer subscribeSystemId, String user, String subscribeSystemName) {
this.application = application;
this.dataApiModel = dataApiModel;
this.environment = environment;
this.subscribeSystemId = subscribeSystemId;
this.subscribeSystemName = subscribeSystemName;
this.user = user;
}
@Override
public Result<SubscribeApiResultDto> call() throws Exception {
Result<SubscribeApiResultDto> result = new Result<>(Result.OK,"",null);
long time1 = System.currentTimeMillis();
DataApiCommonServiceImpl applicationService = SpringBeanUtil.getBean(DataApiCommonServiceImpl.class);
SubscribeApiResultDto subscribeApiResultDto = applicationService.doSubscribe(environment, application, dataApiModel, subscribeSystemId, user,subscribeSystemName);
result.setData(subscribeApiResultDto);
long time2 = System.currentTimeMillis();
log.info(String.format("订阅完成,系统=%s,api=%s,订阅线程%S处理时间(ms)=%s",subscribeSystemName,dataApiModel.getName(),Thread.currentThread().getName(),(time2-time1)));
return result;
}
}
\ No newline at end of file
......@@ -58,11 +58,13 @@ public class MyApplicationController extends BaseController{
@ApiOperation(value = "数据服务管理-服务详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true),
@ApiImplicitParam(name = "subscribeId", value = "订阅ID", required = true)
@ApiImplicitParam(name = "subscribeId", value = "订阅ID", required = true),
@ApiImplicitParam(name = "systemId", value = "系统ID", required = true)
})
@GetMapping("/{environment}/{subscribeId}")
@GetMapping("/{environment}/{subscribeId}/{systemId}")
public Result<DataApiModelSubscribeDetailVo> getApiModelDetail(@PathVariable String environment,
@PathVariable Long subscribeId) {
return myApplicationService.queryApiModelDetail(environment, subscribeId);
@PathVariable Long subscribeId,
@PathVariable Integer systemId) {
return myApplicationService.queryApiModelDetail(environment, subscribeId,systemId);
}
}
......@@ -26,8 +26,8 @@ public class DataApiModelSubscribeDto {
@ApiModelProperty(value = "行数据范围", required = true)
private List<LineDataRangeFilter> lineDataRangeConfig;
@ApiModelProperty(value = "订阅系统ID", required = false)
private Integer subscribeSystemId;
@ApiModelProperty(value = "订阅系统IDs", required = true)
private List<Integer> subscribeSystemIds;
@ApiModelProperty(value = "网络环境", required = true)
private String networkEnv;
......@@ -37,4 +37,7 @@ public class DataApiModelSubscribeDto {
@ApiModelProperty(value = "订阅服务描述", required = true)
private String desc;
@ApiModelProperty(value = "订阅服务负责人", required = true)
private String subSystemLeader;
}
package com.hisense.dataservice.dto;
import lombok.Data;
/**
* @author : scc
* @date : 2023/03/29
**/
@Data
public class SubscribeApiResultDto {
private String environment;
private Integer subscribeSystemId; // 订阅系统ID
private StringBuilder errorMsg;
private String subscribeSystemName; // 订阅系统名成
private boolean subResult; // 订阅结果
}
......@@ -27,10 +27,10 @@ public interface DataApiApplicationRepository extends JpaRepository<DataApiAppli
"where p.system =:systemId and pr.dataModelId=:apiId ")
List<DataApiApplication> findSubscribedApiBySystem(@Param("systemId") Integer systemId, @Param("apiId") Long apiId, @Param("status") Integer status);
// @Query("select p from DataApiApplication p JOIN DataApiProcessRecord pr " +
// "on pr.id = p.processRecordId and pr.processType='sub' and p.userKey is not null " +
// "where p.system =:systemId and p.environment=:env")
// List<PublishApplication> findSubscribedBySystemUserKeyNotNull(@Param("systemId") Integer systemId, @Param("type") Integer type, @Param("env") Integer env);
@Query("select p from DataApiApplication p JOIN DataApiProcessRecord pr " +
"on pr.id = p.processRecordId and pr.processType='sub' and p.userKey is not null " +
"where p.system =:systemId and p.environment=:env")
List<PublishApplication> findSubscribedBySystemUserKeyNotNull(@Param("systemId") Integer systemId, @Param("env") Integer env);
//
// @Query("select p from DataApiApplication p JOIN DataApiProcessRecord pr " +
// "on pr.id = p.processRecordId and pr.processType='sub' and p.appId is not null " +
......
......@@ -5,7 +5,9 @@ import com.hisense.dataservice.enums.ModelConfigType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
import java.util.Set;
/**
* @author : scc
......@@ -15,4 +17,5 @@ import java.util.Optional;
public interface DataApiModelConfigRepository extends JpaRepository<DataApiModelConfig,Long> {
Optional<DataApiModelConfig> findByTypeIdAndType(Long typeId, ModelConfigType type);
List<DataApiModelConfig> findByTypeIdInAndType(Set<Long> typeIds, ModelConfigType type);
}
......@@ -42,4 +42,5 @@ public interface DataApiModelRepository extends JpaRepository<DataApiModel,Long>
@Query(value = "select a.user_id, a.cn from ldap_user_info a where a.user_id in (:userIds)", nativeQuery = true)
List<Map<String,String>> getUserInfoByUserIds(@Param("userIds") Set<String> userIds);
List<DataApiModel> findAllByIdIn(Set<Long> ids);
}
......@@ -3,5 +3,10 @@ package com.hisense.dataservice.repository;
import com.hisense.dataservice.entity.DataItem;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Set;
public interface DataItemRepository extends JpaRepository<DataItem, Integer> {
List<DataItem> findAllByIdIn(Set<Integer> ids);
}
......@@ -13,5 +13,5 @@ import com.hisense.dataservice.vo.MyApplicationVo;
public interface MyApplicationService extends BaseService{
Result<PageData<MyApplicationVo>> querySubscribeList(String environment, Integer status, Integer systemId, PageLink pageLink);
Result<DataApiModelSubscribeDetailVo> queryApiModelDetail(String environment, Long subscribeId);
Result<DataApiModelSubscribeDetailVo> queryApiModelDetail(String environment, Long subscribeId,Integer systemId);
}
......@@ -69,11 +69,11 @@ public class MyApplicationServiceImpl implements MyApplicationService {
}
@Override
public Result<DataApiModelSubscribeDetailVo> queryApiModelDetail(String environment, Long subscribeId) {
public Result<DataApiModelSubscribeDetailVo> queryApiModelDetail(String environment, Long subscribeId,Integer systemId) {
DataApiModelSubscribeDetailVo subscribeDetailVo = new DataApiModelSubscribeDetailVo();
subscribeDetailVo.setSubscribeId(subscribeId);
// 获取订阅信息
Optional<DataApiSubscribeConfig> dataApiSubscribeConfigOptional = dataApiSubscribeRepository.findByIdAndSystemEnv(subscribeId, SystemEnv.valueOf(environment));
Optional<DataApiSubscribeConfig> dataApiSubscribeConfigOptional = dataApiSubscribeRepository.findByIdAndSystemEnvAndSubscribeSystemId(subscribeId, SystemEnv.valueOf(environment), systemId);
if(!dataApiSubscribeConfigOptional.isPresent()){
return failure("未查询到订阅信息");
}
......
package com.hisense.dataservice.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
/***
* 根据一个bean的id获取配置文件中相应的bean
*/
public static Object getBean(String beanId) throws BeansException {
if (applicationContext.containsBean(beanId)) {
applicationContext.getBean(beanId);
}
return null;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (SpringBeanUtil.applicationContext == null) {
SpringBeanUtil.applicationContext = applicationContext;
}
}
/***
* 根据一个bean的类型获取配置文件中相应的bean
*/
public static <T> T getBean(Class<T> requiredType) throws BeansException {
return applicationContext.getBean(requiredType);
}
/**
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
*/
public static boolean containsBean(String name) {
return applicationContext.containsBean(name);
}
public static ApplicationContext getApplicationContext() {
return SpringBeanUtil.applicationContext;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论