|
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.dragoninfo.dcuc.app.business.IResourceBusiness;
|
|
|
+import com.dragoninfo.dcuc.app.dto.dataresource.BaseResp;
|
|
|
import com.dragoninfo.dcuc.app.config.DcucResourceConfig;
|
|
|
import com.dragoninfo.dcuc.app.cons.ServiceStatusCons;
|
|
|
import com.dragoninfo.dcuc.app.dto.*;
|
|
@@ -25,6 +26,7 @@ import com.dragonsoft.duceap.base.utils.UserContextUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.ObjectUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.string.StringUtils;
|
|
|
+import com.google.common.reflect.TypeToken;
|
|
|
import org.apache.http.Header;
|
|
|
import org.apache.http.message.BasicHeader;
|
|
|
import org.slf4j.Logger;
|
|
@@ -34,6 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.lang.reflect.Type;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
@@ -70,9 +73,9 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
* 使用线程池异步获取应用菜单
|
|
|
*/
|
|
|
private ExecutorService executor = new ThreadPoolExecutor(1, 1,
|
|
|
- 0L, TimeUnit.MILLISECONDS,
|
|
|
- new LinkedBlockingQueue<Runnable>(),
|
|
|
- new ThreadFactoryBuilder().setNamePrefix("menu-resource").build());
|
|
|
+ 0L, TimeUnit.MILLISECONDS,
|
|
|
+ new LinkedBlockingQueue<Runnable>(),
|
|
|
+ new ThreadFactoryBuilder().setNamePrefix("menu-resource").build());
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -85,12 +88,12 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
List<ResourceSync> resourceSyncs;
|
|
|
for (String resourceId : resourceIds) {
|
|
|
resourceSyncs = syncService.getNotSyncResource(resourceId);
|
|
|
- if(CollectionUtils.isEmpty(resourceSyncs)){
|
|
|
+ if (CollectionUtils.isEmpty(resourceSyncs)) {
|
|
|
continue;
|
|
|
}
|
|
|
resourceService.resourceSync(resourceSyncs);
|
|
|
//更新sync字段
|
|
|
- resourceSyncs.stream().forEach(item->item.setSync(BooleanEnum.TRUE.getValue()));
|
|
|
+ resourceSyncs.stream().forEach(item -> item.setSync(BooleanEnum.TRUE.getValue()));
|
|
|
syncService.batchUpdate(resourceSyncs);
|
|
|
}
|
|
|
}
|
|
@@ -219,7 +222,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String getDataResource(Map paramMap) {
|
|
|
+ public <T> T getDataResource(Map paramMap, Type type) {
|
|
|
// 构建header
|
|
|
String busSraId = resourceConfig.getBusSraId();
|
|
|
busSraId = "Y-120000000000-0037";//原有身份没有权限 测试数据
|
|
@@ -228,10 +231,17 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
String busServiceFunc = resourceConfig.getDataResource().getBusServiceFunc();
|
|
|
List<Header> heards = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
|
|
|
String url = resourceConfig.getResourceUrl();
|
|
|
- logger.info("getServiceRemoteDetailByCode >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
|
|
|
+ logger.info("getDataResource >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
|
|
|
url, busSraId, busServiceId, busServiceFunc, busSreIdcard);
|
|
|
String response = HttpUtil.postJSON(url, JSON.toJSONString(paramMap), heards, null);
|
|
|
- return response;
|
|
|
+ BaseResp<String> baseResp = JSON.parseObject(response, new TypeToken<BaseResp<String>>() {
|
|
|
+ }.getType());
|
|
|
+ if (baseResp.getCode().equals("000")) {
|
|
|
+ return JSON.parseObject(baseResp.getResultData(), type);
|
|
|
+ }
|
|
|
+ logger.error("调用数据失败:getDataResource >> url:{}, busSraId:{}, busServiceId:{}, busServiceFunc:{}, busSreIdcard:{}",
|
|
|
+ url, busSraId, busServiceId, busServiceFunc, busSreIdcard);
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
private String getServiceRemoteDetailByCode(String serviceCode) {
|
|
@@ -310,6 +320,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
|
|
|
/**
|
|
|
* 应用资源接收类转为应用DTO
|
|
|
+ *
|
|
|
* @param acceptDTO
|
|
|
* @return
|
|
|
*/
|
|
@@ -335,12 +346,12 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
dto.setResourceType(ResourceTypeEnum.TJ_APP.getResourceType());
|
|
|
dto.setResourceProvider(ResourceTypeEnum.TJ_APP.getResouProvider());
|
|
|
String sxrq = appInfoAcceptDTO.getSxrq();
|
|
|
- if(!org.springframework.util.StringUtils.isEmpty(sxrq)){
|
|
|
+ if (!org.springframework.util.StringUtils.isEmpty(sxrq)) {
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
try {
|
|
|
Date parse = format.parse(sxrq);
|
|
|
dto.setRegistrationTime(parse);
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -364,6 +375,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
|
|
|
/**
|
|
|
* 增量新增服务资源
|
|
|
+ *
|
|
|
* @param acceptDTO
|
|
|
* @return
|
|
|
*/
|
|
@@ -406,36 +418,36 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
|
|
|
@Override
|
|
|
public List<ResourceRequestResultDTO> getResourceRequestResults(ResourceRequestParamDTO requestParamDTO) {
|
|
|
- List<ResourceRequestResultDTO> pageInfos = new ArrayList<>();
|
|
|
- Integer pageSize = requestParamDTO.getPageSize();
|
|
|
- boolean listingAll = requestParamDTO.isListingAll();
|
|
|
- pageSize = (pageSize == null ? 50 : pageSize);
|
|
|
- //全量获取
|
|
|
- //从currentPageNo页获取
|
|
|
- if (listingAll) {
|
|
|
- //全量同步默认每页数量,便于下次同步
|
|
|
- pageSize = resourceConfig.getPageSize();
|
|
|
- Integer currentPageNo = requestParamDTO.getCurrentPageNo();
|
|
|
- for (ResourceTypeEnum resourceEnum : ResourceTypeEnum.values()) {
|
|
|
- //若是增量获取currentPage = 数据库中上次同步的页数
|
|
|
- //暂时手动输入currentPage
|
|
|
- //没有就从第一页开始获获取
|
|
|
- if (null == currentPageNo) {
|
|
|
- currentPageNo = 1;
|
|
|
- }
|
|
|
- ResourceRequestResultDTO listingInfo = getAllResourceListing(currentPageNo, pageSize, resourceEnum);
|
|
|
- pageInfos.add(listingInfo);
|
|
|
- }
|
|
|
- } else {
|
|
|
- //根据页码获取
|
|
|
- List<ListingParamDTO> listingParams = requestParamDTO.getListingParams();
|
|
|
- for (ListingParamDTO listingParam : listingParams) {
|
|
|
- ResourceRequestResultDTO listingInfo = getPageNoResourceListing(pageSize, listingParam);
|
|
|
- pageInfos.add(listingInfo);
|
|
|
+ List<ResourceRequestResultDTO> pageInfos = new ArrayList<>();
|
|
|
+ Integer pageSize = requestParamDTO.getPageSize();
|
|
|
+ boolean listingAll = requestParamDTO.isListingAll();
|
|
|
+ pageSize = (pageSize == null ? 50 : pageSize);
|
|
|
+ //全量获取
|
|
|
+ //从currentPageNo页获取
|
|
|
+ if (listingAll) {
|
|
|
+ //全量同步默认每页数量,便于下次同步
|
|
|
+ pageSize = resourceConfig.getPageSize();
|
|
|
+ Integer currentPageNo = requestParamDTO.getCurrentPageNo();
|
|
|
+ for (ResourceTypeEnum resourceEnum : ResourceTypeEnum.values()) {
|
|
|
+ //若是增量获取currentPage = 数据库中上次同步的页数
|
|
|
+ //暂时手动输入currentPage
|
|
|
+ //没有就从第一页开始获获取
|
|
|
+ if (null == currentPageNo) {
|
|
|
+ currentPageNo = 1;
|
|
|
}
|
|
|
+ ResourceRequestResultDTO listingInfo = getAllResourceListing(currentPageNo, pageSize, resourceEnum);
|
|
|
+ pageInfos.add(listingInfo);
|
|
|
}
|
|
|
- //是否需要保存已获取的页数,下次获取使用增量获取?
|
|
|
- return pageInfos;
|
|
|
+ } else {
|
|
|
+ //根据页码获取
|
|
|
+ List<ListingParamDTO> listingParams = requestParamDTO.getListingParams();
|
|
|
+ for (ListingParamDTO listingParam : listingParams) {
|
|
|
+ ResourceRequestResultDTO listingInfo = getPageNoResourceListing(pageSize, listingParam);
|
|
|
+ pageInfos.add(listingInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //是否需要保存已获取的页数,下次获取使用增量获取?
|
|
|
+ return pageInfos;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -501,7 +513,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
}
|
|
|
|
|
|
private void getAppMenus(List<String> extAppIds) {
|
|
|
- if(CollectionUtils.isEmpty(extAppIds)){
|
|
|
+ if (CollectionUtils.isEmpty(extAppIds)) {
|
|
|
return;
|
|
|
}
|
|
|
String idcard = UserContextUtils.getCurrentUser().getIdcard();
|
|
@@ -622,11 +634,11 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
}
|
|
|
JSONArray records = resultFromRemote.getRecords();
|
|
|
//插入资源数据同步表
|
|
|
- if(CollectionUtils.isNotEmpty(records)){
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
List<ResourceSyncDTO> dtos = insertRemoteResourceSync(resourceEnum, records);
|
|
|
- if(resourceConfig.getMenuResource().isMenuEnabled() && ResourceTypeEnum.TJ_APP.equals(resourceEnum)){
|
|
|
+ if (resourceConfig.getMenuResource().isMenuEnabled() && ResourceTypeEnum.TJ_APP.equals(resourceEnum)) {
|
|
|
List<String> ids = dtos.stream()
|
|
|
- .filter(item-> StringUtils.isNotBlank(item.getExtId()))
|
|
|
+ .filter(item -> StringUtils.isNotBlank(item.getExtId()))
|
|
|
.map(item -> item.getExtId())
|
|
|
.collect(Collectors.toList());
|
|
|
getAppMenus(ids);
|
|
@@ -645,17 +657,18 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
|
|
|
/**
|
|
|
* 获取应用信息
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
private HttpResult getResourceFromRemote(ResourceTypeEnum resourceTypeEnum, Integer pageNo, Integer pageSize) throws IOException {
|
|
|
HttpResult httpResult;
|
|
|
String url = resourceConfig.getResourceUrl();
|
|
|
//获取应用资源
|
|
|
- if(ResourceTypeEnum.TJ_APP.equals(resourceTypeEnum)){
|
|
|
+ if (ResourceTypeEnum.TJ_APP.equals(resourceTypeEnum)) {
|
|
|
httpResult = getAppResource(pageNo, pageSize, url);
|
|
|
- }else if(ResourceTypeEnum.TJ_SERVICE.equals(resourceTypeEnum)){
|
|
|
+ } else if (ResourceTypeEnum.TJ_SERVICE.equals(resourceTypeEnum)) {
|
|
|
httpResult = getServiceResource(pageNo, pageSize, url);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
httpResult = new HttpResult();
|
|
|
httpResult.setCode(ResponseStatus.SUCCESS_CODE);
|
|
|
httpResult.setPages(pageNo);
|
|
@@ -666,6 +679,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
|
|
|
/**
|
|
|
* 从总线分页查询应用资源
|
|
|
+ *
|
|
|
* @param pageNo
|
|
|
* @param pageSize
|
|
|
* @param url
|
|
@@ -675,8 +689,8 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
HttpResult httpResult = new HttpResult();
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
//应用目录从0页开始查
|
|
|
- map.put("page",pageNo-1);
|
|
|
- map.put("size",pageSize);
|
|
|
+ map.put("page", pageNo - 1);
|
|
|
+ map.put("size", pageSize);
|
|
|
String param = JSON.toJSONString(map);
|
|
|
String busSraId = resourceConfig.getBusSraId();
|
|
|
String busSreIdcard = UserContextUtils.getCurrentUser().getIdcard();
|
|
@@ -685,7 +699,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
List<Header> headerList = getHeaders(busSraId, busSreIdcard, busServiceId, busServiceFunc);
|
|
|
logger.info("getAppResource url:{}", url);
|
|
|
String response = HttpUtil.postForm(url, param, headerList, null);
|
|
|
- if(null == response){
|
|
|
+ if (null == response) {
|
|
|
logger.info("get app resource fail,pageNo:{},pageSize:{}", pageNo, pageSize);
|
|
|
httpResult.setCode(ResponseStatus.FAIL_CODE);
|
|
|
} else {
|
|
@@ -712,10 +726,10 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
logger.info("getHeaders >>> busSraId:{},busSreIdcard:{},busServiceId:{},busServiceFunc:{}",
|
|
|
busSraId, busSreIdcard, busServiceId, busServiceFunc);
|
|
|
List<Header> heardList = new ArrayList<>();
|
|
|
- Header busSraIdHeader = new BasicHeader("bus_sra_id",busSraId);
|
|
|
+ Header busSraIdHeader = new BasicHeader("bus_sra_id", busSraId);
|
|
|
Header busSreIdHeader = new BasicHeader("bus_sre_idcard", busSreIdcard);
|
|
|
- Header serviceIdHeader = new BasicHeader("bus_service_id",busServiceId);
|
|
|
- Header busServiceFuncHeader = new BasicHeader("bus_service_func",busServiceFunc);
|
|
|
+ Header serviceIdHeader = new BasicHeader("bus_service_id", busServiceId);
|
|
|
+ Header busServiceFuncHeader = new BasicHeader("bus_service_func", busServiceFunc);
|
|
|
heardList.add(busSraIdHeader);
|
|
|
heardList.add(busSreIdHeader);
|
|
|
heardList.add(serviceIdHeader);
|
|
@@ -725,6 +739,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
|
|
|
/**
|
|
|
* 插入资源同步表
|
|
|
+ *
|
|
|
* @param resourceEnum
|
|
|
* @param records
|
|
|
* @return
|
|
@@ -750,7 +765,7 @@ public class ResourceBusiness implements IResourceBusiness {
|
|
|
dto.setSync(BooleanEnum.FALSE.getValue());
|
|
|
list.add(dto);
|
|
|
}
|
|
|
- if(CollectionUtils.isNotEmpty(list)){
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
syncService.batchInsertResourceSync(list);
|
|
|
}
|
|
|
return list;
|