提交 7cc43e06 authored 作者: songchuancai's avatar songchuancai

优化代码

上级 99379019
......@@ -23,7 +23,7 @@ import java.util.Locale;
@NoArgsConstructor
public class ColumnDataRangeFilter {
// 表名
@ApiModelProperty(hidden = true)
// @ApiModelProperty(hidden = true)
private String tableName;
// 表名ID
@ApiModelProperty(value = "表名ID", required = true)
......
......@@ -13,7 +13,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class DataColumn {
// 字段名
@ApiModelProperty(hidden = true)
// @ApiModelProperty(hidden = true)
private String columnName;
// 字段ID
@ApiModelProperty(value = "字段ID", required = true)
......
......@@ -33,8 +33,8 @@ public class LineDataRangeFilter {
@ApiModelProperty(value = "表ID", required = true)
private Long tableId;
@ApiModelProperty(hidden = true)
// @ApiModelProperty(value = "表名", required = false)
// @ApiModelProperty(hidden = true)
@ApiModelProperty(value = "表名", required = false)
private String tableName;
/**
......
......@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
* @author : scc
* @date : 2023/03/20
**/
@Api(tags = "数据api服务-日志管理")
@Api(tags = "数据服务-日志管理")
@RestController
@RequestMapping("/api/v1/dataService/logs")
public class DataServiceLogManagementController extends BaseController{
......@@ -25,7 +25,6 @@ public class DataServiceLogManagementController extends BaseController{
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true),
@ApiImplicitParam(name = "systemId", value = "系统ID", required = true),
@ApiImplicitParam(name = "nextToken", value = "下一页token", required = false),
@ApiImplicitParam(name = "pageSize", value = "指定返回结果中每页显示的记录数量", defaultValue = "10", required = false),
@ApiImplicitParam(name = "page", value = "指定显示返回结果中的第几页", defaultValue = "1", required = false),
@ApiImplicitParam(name = "sortProperty", value = "根据哪个字段排序", required = false, allowableValues = "timestamp, status", defaultValue = "timestamp"),
......
......@@ -6,12 +6,9 @@ import com.hisense.dataservice.enums.ModelConfigType;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.service.DataApiCommonService;
import com.hisense.dataservice.service.DataApiDataSourceManagementService;
import com.hisense.dataservice.service.DataApiServiceManagementService;
import com.hisense.dataservice.vo.DataApiModelDetailVo;
import com.hisense.dataservice.vo.DataApiModelItemVo;
import com.hisense.dataservice.vo.DataTableVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -20,8 +17,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author : scc
* @date : 2023/02/24
......@@ -37,13 +32,13 @@ public class DataServiceManagementController extends BaseController {
private DataApiServiceManagementService dataApiServiceManagementService;
@ApiOperation(value = "数据服务管理-创建或修改数据服务(草稿状态)",notes = "返回数据模型ID")
@ApiOperation(value = "数据服务管理-创建或修改数据服务(草稿状态)", notes = "返回数据模型ID")
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true)
})
@PostMapping("/createDataApiService/{environment}")
public Result<Long> createDataApiService(@PathVariable String environment, @RequestBody DataApiModelDto dataApiModelDto){
return dataApiServiceManagementService.createDataApi(environment,dataApiModelDto);
public Result<Long> createDataApiService(@PathVariable String environment, @RequestBody DataApiModelDto dataApiModelDto) {
return dataApiServiceManagementService.createDataApi(environment, dataApiModelDto);
}
@ApiOperation(value = "数据服务管理-发布数据服务")
......@@ -60,8 +55,11 @@ public class DataServiceManagementController extends BaseController {
@ApiOperation(value = "数据服务管理-数据服务列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true),
@ApiImplicitParam(name = "publishSystemId", value = "发布系统ID", required = true),
@ApiImplicitParam(name = "status", value = "类型(1:已发布/0:草稿)", required = true),
@ApiImplicitParam(name = "serviceName", value = "服务名", required = false),
@ApiImplicitParam(name = "systemName", value = "发布系统名", required = false),
@ApiImplicitParam(name = "publisher", value = "发布者", required = false),
@ApiImplicitParam(name = "publishSystemId", value = "发布系统ID(服务市场列表不必填)", required = false),
@ApiImplicitParam(name = "status", value = "类型(1:已发布/0:草稿)服务市场列表必须传1", required = true),
@ApiImplicitParam(name = "pageSize", value = "指定返回结果中每页显示的记录数量", defaultValue = "10", required = false),
@ApiImplicitParam(name = "page", value = "指定显示返回结果中的第几页", defaultValue = "1", required = false),
@ApiImplicitParam(name = "sortProperty", value = "根据哪个字段排序", required = false, allowableValues = "id,createdTime,updatedTime"),
......@@ -69,6 +67,9 @@ public class DataServiceManagementController extends BaseController {
})
@GetMapping("/{environment}")
public Result<PageData<DataApiModelItemVo>> getPublishDataApiList(@PathVariable String environment,
@RequestParam(value = "serviceName") String serviceName,
@RequestParam(value = "systemName") String systemName,
@RequestParam(value = "publisher") String publisher,
@RequestParam(value = "status", defaultValue = "1") Integer status,
@RequestParam(value = "publishSystemId") Long publishSystemId,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
......@@ -78,7 +79,7 @@ public class DataServiceManagementController extends BaseController {
PageLink pageLink = createPageLink(pageSize, page, "", sortProperty, sortOrder);
return dataApiServiceManagementService.queryDataApiList(environment, status, publishSystemId, pageLink);
return dataApiServiceManagementService.queryDataApiList(environment, status, publishSystemId, serviceName, systemName, publisher, pageLink);
}
@ApiOperation(value = "数据服务管理-服务详情")
......@@ -109,7 +110,7 @@ public class DataServiceManagementController extends BaseController {
@PathVariable Long dataModelId,
@PathVariable ModelConfigType type) {
return dataApiServiceManagementService.debugDataApiService(environment, dataModelId,type);
return dataApiServiceManagementService.debugDataApiService(environment, dataModelId, type);
}
......
package com.hisense.dataservice.controller;
import com.hisense.dataservice.enums.DataSourceTypeEnum;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.service.DataMarketService;
import com.hisense.dataservice.vo.DataApiModelItemVo;
import com.hisense.dataservice.service.MyApplicationService;
import com.hisense.dataservice.vo.DataApiModelDetailVo;
import com.hisense.dataservice.vo.DataApiModelSubscribeDetailVo;
import com.hisense.dataservice.vo.DataSourceVo;
import com.hisense.dataservice.vo.MyApplicationVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author : scc
* @date : 2023/03/22
* @date : 2023/03/27
**/
@Api(tags = "数据api服务-服务市场")
@Api(tags = "数据api服务-我的申请")
@RestController
@RequestMapping("/api/v1/dataService/market")
public class DataServiceMarketController extends BaseController{
@RequestMapping("/api/v1/dataService/myapp")
@Slf4j
public class MyApplicationController extends BaseController{
@Autowired
private DataMarketService dataMarketService;
private MyApplicationService myApplicationService;
@ApiOperation(value = "数据服务市场-服务列表")
@ApiOperation(value = "我的申请-我的订阅列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true),
@ApiImplicitParam(name = "serviceName", value = "服务名", required = false),
@ApiImplicitParam(name = "systemName", value = "发布系统名", required = false),
@ApiImplicitParam(name = "publisher", value = "发布者", required = false),
@ApiImplicitParam(name = "status", value = "状态(0:未审批,1审批)", required = true),
@ApiImplicitParam(name = "systemId", value = "系统ID", required = true),
@ApiImplicitParam(name = "pageSize", value = "指定返回结果中每页显示的记录数量", defaultValue = "10", required = false),
@ApiImplicitParam(name = "page", value = "指定显示返回结果中的第几页", defaultValue = "1", required = false),
@ApiImplicitParam(name = "sortProperty", value = "根据哪个字段排序", required = false, allowableValues = "id,createdTime,updatedTime"),
@ApiImplicitParam(name = "sortOrder", value = "排序方向", required = false, allowableValues = "ASC,DESC")
})
@GetMapping("/{environment}")
public Result<PageData<DataApiModelItemVo>> getPublishDataApiList(@PathVariable String environment,
@RequestParam(value = "serviceName") String serviceName,
@RequestParam(value = "systemName") String systemName,
@RequestParam(value = "publisher") String publisher,
public Result<PageData<MyApplicationVo>> getApplicationList(@PathVariable String environment,
@RequestParam(value = "status") Integer status,
@RequestParam(value = "systemId") Integer systemId,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
@RequestParam(value = "page", required = false, defaultValue = "1") Integer page,
@RequestParam(value = "sortProperty", required = false, defaultValue = "id") String sortProperty,
@RequestParam(value = "sortOrder", required = false, defaultValue = "ASC") String sortOrder) {
PageLink pageLink = createPageLink(pageSize, page, "", sortProperty, sortOrder);
return dataMarketService.queryDataServiceList(environment, serviceName, systemName, publisher, pageLink);
return myApplicationService.querySubscribeList(environment, status, systemId, pageLink);
}
@ApiOperation(value = "数据服务管理-服务详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "environment", value = "环境", required = true),
@ApiImplicitParam(name = "subscribeId", value = "订阅ID", required = true)
})
@GetMapping("/{environment}/{subscribeId}")
public Result<DataApiModelSubscribeDetailVo> getApiModelDetail(@PathVariable String environment,
@PathVariable Long subscribeId) {
return myApplicationService.queryApiModelDetail(environment, subscribeId);
}
}
package com.hisense.dataservice.dto;
import com.hisense.dataservice.bo.ColumnDataRangeFilter;
import com.hisense.dataservice.bo.LineDataRangeFilter;
import com.hisense.dataservice.bo.TableJoinRelationConfig;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author : scc
* @date : 2023/03/22
**/
@ApiModel("数据api服务订阅dto")
@Data
public class DataApiModelSubscribeDto {
@ApiModelProperty(value = "数据模板ID", required = false)
private Long modelId;
@ApiModelProperty(value = "列数据范围", required = true)
private List<ColumnDataRangeFilter> columnDataRangeConfig;
@ApiModelProperty(value = "行数据范围", required = true)
private List<LineDataRangeFilter> lineDataRangeConfig;
@ApiModelProperty(value = "订阅系统ID", required = false)
private Integer subscribeSystemId;
@ApiModelProperty(value = "网络环境", required = true)
private String networkEnv;
@ApiModelProperty(value = "系统环境", required = true)
private String systemEnv;
@ApiModelProperty(value = "订阅服务描述", required = true)
private String desc;
}
package com.hisense.dataservice.dto;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @author : scc
* @date : 2023/03/23
**/
@Data
public class WorkFlowDto {
private String userID; //用户id
private String processDefName; //流程定义名称
private String processInstName; //流程实例名称
private String processInstDesc; //流程实例描述
private Map<String, Object> relaDatas; //相关数据
private String tenantID; //租户id
private String tableName; //业务表
private Map bizInfo; //业务数据
private Boolean finishFirstWorkItem; //是否完成第一个工作项
private Boolean log; //是否记录操作
private String userName; //用户名称
private String msg; //操作意见
private String personID; //指定人员
private List<String> procBindList; //流程实例条件
private List<String> bizBindList; //业务条件
private Map pageCond; //分页属性
private String processDefId; //流程定义ID;
}
package com.hisense.dataservice.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @author : scc
* @date : 2023/03/23
* 发布、订阅应用信息
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "data_api_application")
public class DataApiApplication extends BaseEntity {
// 流程记录ID
private Long processRecordId;
// 数据服务订阅配置ID
@Column(name = "data_model_sub_config_id", nullable = false)
private Long dataModelSubConfigId;
@Column(columnDefinition = "varchar2(256) default null")
private String userKey;
private String appId;
private String appKey;
private Integer system; // 发布、订阅系统所属ID
private Integer environment; // 环境
}
package com.hisense.dataservice.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @author : scc
* @date : 2023/03/23
* 数据服务-发布、订阅流程记录表
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "data_api_process_record")
public class DataApiProcessRecord extends BaseEntity {
// 数据服务ID
private Long dataModelId;
// 流程类型(sub-订阅,pub-发布)
@Column(name = "process_type", columnDefinition = "varchar2(32)")
private String processType;
// 流程实例ID
@Column(columnDefinition = "varchar2(512) default null")
private String processInstID;
/**
* 审批状态:0-删除,1-初始,2-完成审批,3-审批不通过
*/
private Integer status;
// 审批意见
private String remark;
}
......@@ -37,4 +37,13 @@ public class DataApiSubscribeConfig extends BaseEntity {
@Column(name = "system_env", columnDefinition = "varchar2(10)", nullable = false)
private SystemEnv systemEnv;
// 订阅负责人
private String subSystemLeader;
// 订阅说明
private String subDesc;
// 订阅唯一标识
private String hashStr;
}
package com.hisense.dataservice.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author : scc
* @date : 2023/03/23
**/
@Entity
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "data_item")
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class DataItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(columnDefinition = "varchar(32) default null")
private String groupKey;// 字典组key
@Column(columnDefinition = "varchar(32) default null")
private String groupName;// 字典组名称
@Column(columnDefinition = "varchar(32) default null")
private String itemKey;// 字典key
@Column(columnDefinition = "varchar(32) default null")
private String itemName;// 字典名称
private Integer parentId; // 父字典ID
private Integer status = 1;// 状态:0 废弃,1有效
private Integer createId;// remove for later
private String creator;
private Date createTime;
private Date updateTime;
public DataItem(String groupKey, String groupName, String itemKey, String itemName, Integer parentId,
String creator, Date createTime, Date updateTime) {
this.groupKey = groupKey;
this.groupName = groupName;
this.itemKey = itemKey;
this.itemName = itemName;
this.parentId = parentId;
this.creator = creator;
this.createTime = createTime;
this.updateTime = updateTime;
}
}
\ No newline at end of file
......@@ -442,7 +442,7 @@ public class ElasticsearchUtils {
searchRequest.indices(indexName);
SearchSourceBuilder searchSourceBuilder = buildSearchSourceBuilder(conditionFileds);
//设置分页
searchSourceBuilder.from((pageNum - 1) * pageSize).size(pageSize);
searchSourceBuilder.from((pageNum) * pageSize).size(pageSize);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
//分析结果
......
package com.hisense.dataservice.repository;
import com.hisense.dataservice.entity.DataApiApplication;
import com.hisense.dataservice.entity.PublishApplication;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @author : scc
* @date : 2023/03/23
**/
@Repository
public interface DataApiApplicationRepository extends JpaRepository<DataApiApplication, Long> {
DataApiApplication findByProcessRecordId(Long processRecordId);
DataApiApplication findDataApiApplicationByDataModelSubConfigId(Long dataModelSubConfigId);
// 获取数据api
@Query("select p from DataApiApplication p JOIN DataApiProcessRecord pr " +
"on pr.id = p.processRecordId and (pr.processType='sub' and pr.status=:status)" +
"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.appId is not null " +
// "where p.system =:systemId and p.environment=:env")
// List<PublishApplication> findSubscribedBySystemAppIdNotNull(@Param("systemId") Integer systemId,@Param("type") Integer type,@Param("env") Integer env);
}
......@@ -2,6 +2,7 @@ package com.hisense.dataservice.repository;
import com.hisense.dataservice.entity.DataApiModel;
import com.hisense.dataservice.enums.SystemEnv;
import com.hisense.dataservice.vo.LdapUserInfoVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
......@@ -10,7 +11,10 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
/**
* @author : scc
......@@ -29,4 +33,13 @@ public interface DataApiModelRepository extends JpaRepository<DataApiModel,Long>
@Query(value = "select name from system_info where id = :systemId", nativeQuery = true)
String findSystemNameBySystemId(@Param("systemId") Long systemId);
// 获取系统的项目管理员和租户管理员
@Query(value = "select prd_api_dev_dame as projectDevName ,prd_api_tenant_name as tenantAdminName from system_info where id = :systemId", nativeQuery = true)
Map<String,String> findSystemProjectAndTenantAdminNameBySystemId(@Param("systemId") Integer systemId);
@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);
}
package com.hisense.dataservice.repository;
import com.hisense.dataservice.entity.DataApiProcessRecord;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
/**
* @author : scc
* @date : 2023/03/23
**/
public interface DataApiProcessRecordRepository extends JpaRepository<DataApiProcessRecord,Long> {
// 根据流程ID查询流程记录
Optional<DataApiProcessRecord> findByProcessInstID(String processInstId);
}
package com.hisense.dataservice.repository;
import com.alibaba.fastjson.JSONObject;
import com.hisense.dataservice.entity.DataApiApplication;
import com.hisense.dataservice.entity.DataApiSubscribeConfig;
import com.hisense.dataservice.enums.NetworkEnv;
import com.hisense.dataservice.enums.SystemEnv;
import com.hisense.dataservice.vo.MyApplicationVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
......@@ -15,4 +26,42 @@ public interface DataApiSubscribeRepository extends JpaRepository<DataApiSubscri
Optional<DataApiSubscribeConfig> findBySubscribeSystemIdAndDataApiModelIdAndDeletedIsFalse(Integer subscribeSystemId, Long dataApiModelId);
Optional<DataApiSubscribeConfig> findBySubscribeSystemIdAndDataApiModelIdAndCreatorAndDeletedIsFalse(Integer subscribeSystemId, Long dataApiModelId, String userName);
// 查询已审批的服务
@Query(value = "SELECT new com.hisense.dataservice.vo.MyApplicationVo(sc.id, m.name, m.description) " +
"FROM DataApiSubscribeConfig sc " +
"LEFT JOIN DataApiApplication app on sc.id = app.dataModelSubConfigId " +
"LEFT JOIN DataApiProcessRecord pr on pr.id = app.processRecordId " +
"LEFT JOIN DataApiModel m on m.id = pr.dataModelId " +
"WHERE sc.subscribeSystemId = :systemId and pr.status in (2,3) and sc.systemEnv =:systemEnv and sc.creator = :creator",
countQuery = " " +
"SELECT count(sc) " +
"FROM DataApiSubscribeConfig sc " +
"LEFT JOIN DataApiApplication app on sc.id = app.dataModelSubConfigId " +
"LEFT JOIN DataApiProcessRecord pr on pr.id = app.processRecordId " +
"LEFT JOIN DataApiModel m on m.id = pr.dataModelId " +
"WHERE sc.subscribeSystemId = :systemId and pr.status in (2,3) and sc.systemEnv =:systemEnv and sc.creator = :creator" )
Page<MyApplicationVo> findAllApplicationWithApprove(@Param("systemId") Integer systemId, @Param("systemEnv") SystemEnv systemEnv, @Param("creator") String creator, Pageable pageable);
// 查询未审批的服务
@Query(value = "SELECT new com.hisense.dataservice.vo.MyApplicationVo(sc.id, m.name, m.description) " +
"FROM DataApiSubscribeConfig sc " +
"LEFT JOIN DataApiApplication app on sc.id = app.dataModelSubConfigId " +
"LEFT JOIN DataApiProcessRecord pr on pr.id = app.processRecordId " +
"LEFT JOIN DataApiModel m on m.id = pr.dataModelId " +
"WHERE sc.subscribeSystemId = :systemId and pr.status =1 and sc.systemEnv =:systemEnv and sc.creator = :creator",
countQuery = " " +
"SELECT count(sc) " +
"FROM DataApiSubscribeConfig sc " +
"LEFT JOIN DataApiApplication app on sc.id = app.dataModelSubConfigId " +
"LEFT JOIN DataApiProcessRecord pr on pr.id = app.processRecordId " +
"LEFT JOIN DataApiModel m on m.id = pr.dataModelId " +
"WHERE sc.subscribeSystemId = :systemId and pr.status =1 and sc.systemEnv =:systemEnv and sc.creator = :creator" )
Page<MyApplicationVo> findAllApplicationWithNoApprove(@Param("systemId") Integer systemId, @Param("systemEnv") SystemEnv systemEnv, @Param("creator") String creator, Pageable pageable);
Optional<DataApiSubscribeConfig> findByIdAndSystemEnv(Long id, SystemEnv systemEnv);
Optional<DataApiSubscribeConfig> findByIdAndSystemEnvAndSubscribeSystemId(Long id, SystemEnv systemEnv, Integer systemId);
}
package com.hisense.dataservice.repository;
import com.hisense.dataservice.entity.DataItem;
import org.springframework.data.jpa.repository.JpaRepository;
public interface DataItemRepository extends JpaRepository<DataItem, Integer> {
}
......@@ -5,10 +5,13 @@ import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.library.model.page.SortOrder;
import com.hisense.dataservice.library.model.Result;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
......@@ -61,4 +64,41 @@ public interface BaseService {
default <T> Result<T> failure(String message) {
return new Result<>(Result.FAIL, message);
}
/**
* 资源列表转分页
*/
default <T> PageData buildPage(List<T> items,
Pageable pageable) {
PageData<T> resourcePageable = new PageData<>();
if(!CollectionUtils.isEmpty(items)){
List<T> ts = splitList(items, pageable.getPageNumber(), pageable.getPageSize());
Page<T> page = new PageImpl(ts, pageable, items.size());
resourcePageable.setData(ts);
resourcePageable.setTotalPages(page.getTotalPages());
resourcePageable.setTotalElements(page.getTotalElements());
resourcePageable.setCurrentPage(page.getNumber() + 1);
}else{
Page<T> page = new PageImpl(Collections.emptyList(), pageable, items.size());
resourcePageable.setData(items);
resourcePageable.setTotalPages(page.getTotalPages());
resourcePageable.setTotalElements(page.getTotalElements());
resourcePageable.setCurrentPage(1);
}
return resourcePageable;
}
default <T> List<T> splitList(List<T> list, int pageNumber, int pageSize) {
List<T> pageList = new ArrayList<T>();
int currIdx = (pageNumber > 0 ? pageNumber * pageSize : 0);
if (null == list || list.size() == 0) {
return pageList;
}
for (int i = 0; i < pageSize && i < list.size() - currIdx; i++) {
T listNew = list.get(currIdx + i);
pageList.add(listNew);
}
return pageList;
}
}
......@@ -8,7 +8,7 @@ import javax.servlet.http.HttpServletRequest;
* @author : scc
* @date : 2023/02/24
**/
public interface DataApiCommonService {
public interface DataApiCommonService extends BaseService{
Object queryData(String environment, String pattern, String apiId, HttpServletRequest request);
}
......@@ -25,7 +25,7 @@ public interface DataApiServiceManagementService extends BaseService {
Result<JSONObject> debugDataApiService(String environment, Long dataModelId, ModelConfigType type);
Result<PageData<DataApiModelItemVo>> queryDataApiList(String environment, Integer status, Long publishSystemId, PageLink pageLink);
Result<PageData<DataApiModelItemVo>> queryDataApiList(String environment, Integer status, Long publishSystemId, String serviceName, String systemName, String publisher, PageLink pageLink);
Result<DataApiModelDetailVo> queryApiModelDetail(String environment, Long modelId);
}
......@@ -3,12 +3,15 @@ package com.hisense.dataservice.service;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.vo.DataApiModelItemVo;
import com.hisense.dataservice.vo.DataApiModelSubscribeDetailVo;
import com.hisense.dataservice.vo.MyApplicationVo;
/**
* @author : scc
* @date : 2023/03/22
* @date : 2023/03/27
**/
public interface DataMarketService extends BaseService{
Result<PageData<DataApiModelItemVo>> queryDataServiceList(String environment, String serviceName, String systemName, String publisher, PageLink pageLink);
public interface MyApplicationService extends BaseService{
Result<PageData<MyApplicationVo>> querySubscribeList(String environment, Integer status, Integer systemId, PageLink pageLink);
Result<DataApiModelSubscribeDetailVo> queryApiModelDetail(String environment, Long subscribeId);
}
package com.hisense.dataservice.service;
import com.hisense.dataservice.dto.WorkFlowDto;
import com.hisense.dataservice.library.model.Result;
public interface WorkFlowService {
/**
* 启动流程
* @param workFlowDto
* @return
*/
Result<Object> startProcess(WorkFlowDto workFlowDto);
}
......@@ -517,12 +517,25 @@ public class DataApiServiceManagementServiceImpl implements DataApiServiceManage
}
@Override
public Result<PageData<DataApiModelItemVo>> queryDataApiList(String environment, Integer status, Long publishSystemId, PageLink pageLink) {
public Result<PageData<DataApiModelItemVo>> queryDataApiList(String environment, Integer status, Long publishSystemId, String serviceName, String systemName, String publisher, PageLink pageLink) {
Specification<DataApiModel> spec = (root, query, builder) -> {
List<Predicate> andList = new LinkedList<>();
if(!StringUtils.isEmpty(serviceName)){
andList.add(builder.equal((root.get("name").as(String.class)), serviceName));
}
if(!StringUtils.isEmpty(systemName)){
andList.add(builder.equal((root.get("publishSystemName").as(String.class)), systemName));
}
if(!StringUtils.isEmpty(publisher)){
andList.add(builder.equal((root.get("creator").as(String.class)), publisher));
}
if(status != null){
andList.add(builder.equal((root.get("status").as(Integer.class)), status));
}
if(publishSystemId != null){
andList.add(builder.equal((root.get("publishSystemId").as(Long.class)), publishSystemId));
}
andList.add(builder.equal((root.get("deleted").as(Boolean.class)), Boolean.FALSE));
andList.add(builder.equal((root.get("systemEnv").as(SystemEnv.class)), SystemEnv.valueOf(environment.toUpperCase())));
......
package com.hisense.dataservice.service.impl;
import com.hisense.dataservice.entity.DataApiModel;
import com.hisense.dataservice.enums.SystemEnv;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.repository.DataApiModelRepository;
import com.hisense.dataservice.service.DataMarketService;
import com.hisense.dataservice.vo.DataApiModelItemVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.persistence.criteria.Predicate;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* @author : scc
* @date : 2023/03/22
**/
@Service
public class DataMarketServiceImpl implements DataMarketService {
@Autowired
private DataApiModelRepository dataApiModelRepository;
@Override
public Result<PageData<DataApiModelItemVo>> queryDataServiceList(String environment, String serviceName, String systemName, String publisher, PageLink pageLink) {
Specification<DataApiModel> spec = (root, query, builder) -> {
List<Predicate> andList = new LinkedList<>();
if(!StringUtils.isEmpty(serviceName)){
andList.add(builder.equal((root.get("name").as(Integer.class)), serviceName));
}
if(!StringUtils.isEmpty(systemName)){
andList.add(builder.equal((root.get("publishSystemName").as(Integer.class)), systemName));
}
if(!StringUtils.isEmpty(publisher)){
andList.add(builder.equal((root.get("creator").as(Integer.class)), publisher));
}
andList.add(builder.equal((root.get("deleted").as(Boolean.class)), Boolean.FALSE));
andList.add(builder.equal((root.get("systemEnv").as(SystemEnv.class)), SystemEnv.valueOf(environment.toUpperCase())));
andList.add(builder.equal((root.get("status").as(Integer.class)), new Integer(1)));
return builder.and(andList.toArray(new Predicate[0]));
};
Page<DataApiModel> dataApiModelPage = dataApiModelRepository.findAll(spec, toPageable(pageLink));
PageData<DataApiModelItemVo> result = pageToPageData(dataApiModelPage);
List<DataApiModelItemVo> dataSourceVos = new ArrayList<>();
for (DataApiModel dataApiModel : dataApiModelPage.getContent()) {
dataSourceVos.add(dataApiModel.toItem());
}
result.setData(dataSourceVos);
return success(result);
}
}
......@@ -11,6 +11,7 @@ import com.hisense.dataservice.service.DataServiceLogManagementService;
import com.hisense.dataservice.vo.CallLogVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
......@@ -26,18 +27,33 @@ public class DataServiceLogManagementServiceImpl implements DataServiceLogManage
@Autowired
private ElasticsearchUtils elasticsearchUtils;
@Value("${es.index-pre}")
private String ES_INDEX;
@Override
public PageData<CallLogVo> getCallLog(String environment, Long systemId, PageLink pageLink) {
List<EsField> conditions = new ArrayList<>();
// 排序
// 环境
EsField esField = new EsField();
esField.setField("environment");
esField.setValue(environment);
esField.setFieldTypeEnum(FieldTypeEnum.PRECISE_QUERY);
conditions.add(esField);
// 系统ID
esField = new EsField();
esField.setField("systemId");
esField.setValue(systemId+"");
esField.setFieldTypeEnum(FieldTypeEnum.PRECISE_QUERY);
conditions.add(esField);
// 排序
esField = new EsField();
esField.setField(pageLink.getSortOrder().getProperty());
esField.setFieldTypeEnum(pageLink.getSortOrder().getDirection().equals(SortOrder.Direction.ASC) ? FieldTypeEnum.ORDER_ASC :FieldTypeEnum.ORDER_ESC);
conditions.add(esField);
// 索引名称 : data_serv_call_log_+环境+订阅系统ID
String indexName = "data_serv_call_log_" + environment + "_" +systemId;
String indexName = ES_INDEX + "*";
PageData result = new PageData();
result.setData(new ArrayList());
......
package com.hisense.dataservice.service.impl;
import com.hisense.dataservice.entity.DataApiApplication;
import com.hisense.dataservice.entity.DataApiModel;
import com.hisense.dataservice.entity.DataApiModelConfig;
import com.hisense.dataservice.entity.DataApiSubscribeConfig;
import com.hisense.dataservice.enums.ModelConfigType;
import com.hisense.dataservice.enums.SystemEnv;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.library.model.page.PageData;
import com.hisense.dataservice.library.model.page.PageLink;
import com.hisense.dataservice.repository.DataApiApplicationRepository;
import com.hisense.dataservice.repository.DataApiModelConfigRepository;
import com.hisense.dataservice.repository.DataApiModelRepository;
import com.hisense.dataservice.repository.DataApiSubscribeRepository;
import com.hisense.dataservice.service.MyApplicationService;
import com.hisense.dataservice.vo.DataApiModelDetailVo;
import com.hisense.dataservice.vo.DataApiModelSubscribeDetailVo;
import com.hisense.dataservice.vo.MyApplicationVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.Optional;
/**
* @author : scc
* @date : 2023/03/27
**/
@Service
@Slf4j
public class MyApplicationServiceImpl implements MyApplicationService {
@Autowired
private DataApiSubscribeRepository dataApiSubscribeRepository;
@Autowired
private DataApiModelRepository dataApiModelRepository;
@Autowired
private DataApiModelConfigRepository dataApiModelConfigRepository;
@Autowired
private DataApiApplicationRepository dataApiApplicationRepository;
@Value("${data-server.base-url}")
private String DATA_SERVER_BASE_URL;
@Override
public Result<PageData<MyApplicationVo>> querySubscribeList(String environment, Integer status, Integer systemId, PageLink pageLink) {
String userName = ""; // TODO 当前用户
SystemEnv systemEnv = SystemEnv.valueOf(environment);
Page<MyApplicationVo> myApplicationVoPage;
if(new Integer(0).equals(status)){
myApplicationVoPage = dataApiSubscribeRepository.findAllApplicationWithNoApprove(systemId, systemEnv, userName, toPageable(pageLink));
}else if(new Integer(1).equals(status)){
myApplicationVoPage = dataApiSubscribeRepository.findAllApplicationWithApprove(systemId, systemEnv, userName, toPageable(pageLink));
}else{
return failure("审批状态无效");
}
PageData<MyApplicationVo> result = pageToPageData(myApplicationVoPage);
result.setData(myApplicationVoPage.getContent());
return success(result);
}
@Override
public Result<DataApiModelSubscribeDetailVo> queryApiModelDetail(String environment, Long subscribeId) {
DataApiModelSubscribeDetailVo subscribeDetailVo = new DataApiModelSubscribeDetailVo();
subscribeDetailVo.setSubscribeId(subscribeId);
// 获取订阅信息
Optional<DataApiSubscribeConfig> dataApiSubscribeConfigOptional = dataApiSubscribeRepository.findByIdAndSystemEnv(subscribeId, SystemEnv.valueOf(environment));
if(!dataApiSubscribeConfigOptional.isPresent()){
return failure("未查询到订阅信息");
}
DataApiSubscribeConfig subscribeConfig = dataApiSubscribeConfigOptional.get();
Long dataApiModelId = subscribeConfig.getDataApiModelId();
// 获取数据服务信息
Optional<DataApiModel> dataApiModelOptional = dataApiModelRepository.findByIdAndSystemEnv(dataApiModelId, SystemEnv.valueOf(environment));
if(!dataApiModelOptional.isPresent()){
return failure("数据服务不存在");
}
DataApiModel dataApiModel = dataApiModelOptional.get();
BeanUtils.copyProperties(dataApiModel, subscribeDetailVo);
// 获取订阅配置
Optional<DataApiModelConfig> dataApiModelConfigOptional = dataApiModelConfigRepository.findByTypeIdAndType(subscribeConfig.getId(), ModelConfigType.SUBSCRIBE);
if(!dataApiModelConfigOptional.isPresent()){
return failure("订阅配置信息不存在");
}
DataApiModelConfig dataApiModelConfig = dataApiModelConfigOptional.get();
subscribeDetailVo.setColumnDataRangeConfig(dataApiModelConfig.getColumnDataRangeConfig());
subscribeDetailVo.setLineDataRangeConfig(dataApiModelConfig.getLineDataRangeConfig());
// 负责人
subscribeDetailVo.setSystemLeader(dataApiModel.getCreator());
// 设置路由规则
DataApiApplication dataApiApplication = dataApiApplicationRepository.findDataApiApplicationByDataModelSubConfigId(subscribeId);
if(dataApiApplication == null){
return failure("未查询到订阅认证信息");
}
String userKey = dataApiApplication.getUserKey();
String appId = dataApiApplication.getAppId();
String appKey = dataApiApplication.getAppKey();
DataApiModelSubscribeDetailVo.RouteRule routeRule = new DataApiModelSubscribeDetailVo.RouteRule();
routeRule.setMethod("GET");
String url;
if(StringUtils.isEmpty(userKey)){
url = String.format("%s?appId=%s&appKey=%s", DATA_SERVER_BASE_URL, appId, appKey);
}else{
url = String.format("%s?user_key=%s", DATA_SERVER_BASE_URL, userKey);
}
routeRule.setUrl(url);
subscribeDetailVo.setRouter(routeRule);
return success(subscribeDetailVo);
}
}
package com.hisense.dataservice.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.hisense.dataservice.dto.WorkFlowDto;
import com.hisense.dataservice.library.model.Result;
import com.hisense.dataservice.service.WorkFlowService;
import com.hisense.dataservice.util.HttpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@Service
public class WorkFlowServiceImpl implements WorkFlowService {
private String bpmSucCode = "00000000";
@Value("${flow.app.key}")
private String appKey;
@Value("${flow.app.operationCode}")
private String operationCode;
@Value("${flow.bpm.apiBasic-url}")
private String bpmBasicUrl;
@Value("${flow.bpm.service-url}")
private String bpmServiceUrl;
@Override
public Result<Object> startProcess(WorkFlowDto workFlowDto) {
Result<Object> result = new Result<>(Result.OK,"启动流程成功!",null);
WorkFlowDto flowDto = new WorkFlowDto();
flowDto.setTenantID("HXJT");
flowDto.setUserID(workFlowDto.getUserID());
flowDto.setProcessDefName(workFlowDto.getProcessDefName());
flowDto.setProcessInstName(workFlowDto.getProcessInstName());
flowDto.setRelaDatas(workFlowDto.getRelaDatas());
flowDto.setTableName("bizinfo");
flowDto.setBizInfo(workFlowDto.getBizInfo());
flowDto.setFinishFirstWorkItem(true);
flowDto.setLog(true);
flowDto.setUserName(workFlowDto.getUserName());
Map<String,String> header= new HashMap<>() ;
header.put("appKey",appKey);
header.put("OperationCode",operationCode);
String url = bpmServiceUrl + "com.hisense.bpm.createAndStartProcessInstance";
String response = null;
try {
response = HttpUtil.sendPostAndHeader(url, JSONObject.toJSONString(flowDto), header);
JSONObject resultObj = JSONObject.parseObject(response);
String code = (String) resultObj.get("code");
if(bpmSucCode.equals(code)){
JSONObject data = (JSONObject) resultObj.get("data");
result.setData(data==null?new String[]{}:data);
}else{
result.setError(Result.FAIL,(String)resultObj.get("message"));
}
} catch (Exception e) {
log.error("启动流程异常:",e);
}
return result;
}
}
package com.hisense.dataservice.util;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.*;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.Map;
@Slf4j
public class HttpUtil {
private static final CloseableHttpClient httpclient = HttpClients.createDefault();
/**
* 处理get请求.
*
* @return json
*/
public static String get(String url) {
String methodName = "get";
// 实例化httpclient
CloseableHttpClient httpclient = HttpClients.createDefault();
// 实例化get方法
HttpGet httpget = new HttpGet(url);
// 请求结果
CloseableHttpResponse response = null;
String content = "";
// 设置请求和传输超时时间
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(1000 * 180).setConnectTimeout(1000 * 180)
.build();
httpget.setConfig(requestConfig);
try {
// 执行get方法
response = httpclient.execute(httpget);
if (response.getStatusLine().getStatusCode() == 200) {
content = EntityUtils.toString(response.getEntity(), "UTF-8");
}
} catch (Exception e) {
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
}
}
if (httpclient != null) {
try {
httpclient.close();
} catch (IOException e) {
}
}
}
return content;
}
/**
* 发送httpPost请求,参数为json,
* @param url
* @param json
* @return
* @throws IOException
*/
public static String sendPostAndHeader(String url, String json ,Map<String,String> header) throws IOException {
log.info("request, url: {}, body: {}", url, json);
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
HttpPost httppost = new HttpPost(url);
httppost.setEntity(entity);
httppost.setHeader("appKey", header.get("appKey"));
httppost.setHeader("OperationCode", header.get("OperationCode"));
CloseableHttpResponse response = httpclient.execute(httppost);
HttpEntity entityRes = response.getEntity();
String ret = EntityUtils.toString(entityRes);
log.info("get response: {}", ret);
return ret;
}
}
package com.hisense.dataservice.vo;
import com.hisense.dataservice.bo.ColumnDataRangeFilter;
import com.hisense.dataservice.bo.LineDataRangeFilter;
import com.hisense.dataservice.bo.TableJoinRelationConfig;
import com.hisense.dataservice.enums.NetworkEnv;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author : scc
* @date : 2023/02/24
**/
@ApiModel("数据服务订阅详情vo")
@Data
public class DataApiModelSubscribeDetailVo {
@ApiModelProperty(name = "数据服务ID")
private Long id;
@ApiModelProperty(name = "订阅ID")
private Long subscribeId;
@ApiModelProperty(name = "数据服务名称")
private String name;
@ApiModelProperty(name = "数据服务描述")
private String description;
@ApiModelProperty(name = "数据源类型")
private String dataSourceId;
@ApiModelProperty(name = "发布/创建人")
private String creator;
@ApiModelProperty(name = "负责人")
private String systemLeader;
@ApiModelProperty(name = "发布系统")
private String publishSystemName;
@ApiModelProperty(name = "发布时间")
private Date createdTime;
@ApiModelProperty(name = "数据服务图片")
private String imageId;
@ApiModelProperty(name = "网络环境")
private NetworkEnv networkEnv;
@ApiModelProperty(value = "列数据范围")
private List<ColumnDataRangeFilter> columnDataRangeConfig;
@ApiModelProperty(value = "数据表关系")
private List<TableJoinRelationConfig> tableJoinRelationConfig;
@ApiModelProperty(value = "行数据范围")
private List<LineDataRangeFilter> lineDataRangeConfig;
@ApiModelProperty(value = "路由规则")
private RouteRule router;
@Data
public static class RouteRule{
@ApiModelProperty(value = "请求方法")
private String method;
@ApiModelProperty(value = "请求地址")
private String url;
}
}
package com.hisense.dataservice.vo;
import lombok.Data;
/**
* @author : scc
* @date : 2023/03/24
**/
@Data
public class LdapUserInfoVo {
private String userId;
private String cn;
public LdapUserInfoVo(String userId, String cn){
this.userId = userId;
this.cn = cn;
}
}
package com.hisense.dataservice.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author : scc
* @date : 2023/03/27
**/
@Data
@ApiModel("我的申请")
public class MyApplicationVo {
@ApiModelProperty(name = "订阅ID")
private Long subscribeId;
@ApiModelProperty(name = "服务名称")
private String name;
@ApiModelProperty(name = "服务描述")
private String description;
public MyApplicationVo(Long id, String name, String description){
this.subscribeId = id;
this.name = name;
this.description = description;
}
public MyApplicationVo(){
}
}
......@@ -22,3 +22,19 @@ es:
connectTimeout: ${ES_CONNECT_TIMEOUT:30000}
socketTimeout: ${ES_SOCKET_TIMEOUT:30000}
connectionRequestTimeout: ${CONNECTION_REQUEST_TIMEOUT:30000}
index-pre: api-dataservice-recored-dev- # 索引前缀
flow:
bpm:
service-url: http://10.19.34.80:9090/
apiBasic-url: com.kubenote.bpm.
app:
key: N4dLEpIoenUFgAgmekVqPQ==
tenantID:
processDefName:
operationCode: com.kubenote.bpm.rest.createAndStartProcessInstance
tableName: bizinfo
link: http://hip-web-kubenote-apigateway-test.devapps.kubenote.com/flowNeedDo/api/v1/process/needTodo
im-link: https://kk-proxy.kubenote.com/hiphichat/#/approvalAgency
data-server:
base-url: ${DATA_SERVER_BASE_URL:https://data-server.com}
......@@ -16,6 +16,7 @@ import com.hisense.dataservice.repository.DataApiModelRepository;
import com.hisense.dataservice.repository.DataApiSubscribeRepository;
import com.hisense.dataservice.service.impl.DataApiCommonServiceImpl;
import com.hisense.dataservice.util.FileUtil;
import com.hisense.dataservice.vo.LdapUserInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -24,9 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.*;
/**
* @author : scc
......@@ -479,7 +478,7 @@ public class DataApiCommonServiceTest {
dataApiModelDto.setDataSourceId(1L);
try {
dataApiModelService.unsubscribeDataApi(432L);
// dataApiModelService.unsubscribeDataApi(432L);
// Boolean result = dataApiModelService.subscribeDataApi(dataApiModelDto);
} catch (Exception e) {
log.error("创建或更新数据服务api失败:" , e);
......@@ -493,5 +492,22 @@ public class DataApiCommonServiceTest {
}
@Test
public void testLdapUserInfoQuery(){
Set<String> adminNameSet = new HashSet<>();
adminNameSet.add("scc");
adminNameSet.add("zgz");
adminNameSet.add("s");
List<Map<String,String>> ldapUserInfoVos = dataApiModelRepository.getUserInfoByUserIds(adminNameSet);
Map<String,LdapUserInfoVo> userIdToCnMap = new HashMap<>();
for (Map<String,String> userInfo : ldapUserInfoVos) {
String userId = userInfo.get("user_id");
String cn = userInfo.get("cn");
userIdToCnMap.put(userId, new LdapUserInfoVo(userId, cn));
}
}
}
......@@ -22,7 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
......@@ -290,18 +292,28 @@ public class DataApiServiceManagementServiceTest {
callSqlEsLogJson.put("reason", "数据库连接失败");
callSqlEsLogJson.put("timestamp", System.currentTimeMillis());
callSqlEsLogJson.put("environment", "staging");
callSqlEsLogJson.put("subscribeSystemId", "1");
String indexName = "call_log_" + "staging_" + "2";
callSqlEsLogJson.put("systemId", "1");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(new Date());
String indexName = "api-dataservice-recored-dev-" + formattedDate;
boolean addLogResult = elasticsearchUtils.addData(indexName, callSqlEsLogJson.toJSONString());
log.info("添加记录到es,结果:{}", addLogResult);
PageLink pageLink = new PageLink(10,1,"", new SortOrder("timestamp", SortOrder.Direction.DESC));
PageData<CallLogVo> pageData1 = dataServiceLogManagementService.getCallLog("staging", 2L, pageLink);
PageData<CallLogVo> pageData1 = dataServiceLogManagementService.getCallLog("staging", 1L, pageLink);
log.info("pageData1: {}", pageData1);
PageData<CallLogVo> pageData2 = dataServiceLogManagementService.getCallLog("staging", 1L, pageLink);
PageData<CallLogVo> pageData2 = dataServiceLogManagementService.getCallLog("staging", 2L, pageLink);
log.info("pageData2: {}", pageData2);
}
@Autowired
private MyApplicationService myApplicationService;
@Test
public void testMyApplicationList(){
PageLink pageLink = new PageLink(10, 0, "", new SortOrder("id", SortOrder.Direction.DESC));
myApplicationService.querySubscribeList("DEV",1,1,pageLink);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论