package com.primeton.dsp.dataservice.service;
import com.primeton.dsp.dataservice.vomodel.PubServiceVO;
import com.primeton.dsp.dataservice.vomodel.ServiceParamVO;
import feign.Headers;
import feign.Param;
import feign.RequestLine;
import java.util.Map;
/**
*
* 服务发布调用 datarelease 接口
*
*
*
*
* Created by zhaopx.
* User: zhaopx
* Date: 2020/3/30
* Time: 17:08
*
*
*
* @author zhaopx
*/
public interface IDataPublisherService {
/**
* 生成 SQL。 应包含 sid,table, conds 几个参数
*
* @return
*/
@RequestLine("POST /api/pub/saveSingleQuery")
@Headers({"Content-Type: application/json", "Accept: application/json"})
Map saveSingleQuery(Map singleQuery);
/**
* 多表发布服务生成 SQL。 应包含 sid,tables,joins, conds 几个参数
*
* @return
*/
@RequestLine("POST /api/pub/saveMutilTableQuery")
@Headers({"Content-Type: application/json", "Accept: application/json"})
Map saveMutilTableQuery(Map mutil);
/**
* 发布服务, 单表和多表
*
* @param model
* @return 返回发布结果, success 为 true 则发布成功
*/
@RequestLine("POST /api/pub/doPub")
@Headers({"Content-Type: application/json", "Accept: application/json"})
public Map doPubService(PubServiceVO model);
/**
* 删除 已经发布的服务
*
* @param id 服务 ID
* @return success 为 true 则删除服务成功
*/
@RequestLine("POST /api/pub/remove?id={id}")
Map removeDataPub(@Param("id") String id);
/**
* 修改服务参数
* @param model
* @return
*/
@RequestLine("POST /api/pub/saveServiceParams")
@Headers({"Content-Type: application/json", "Accept: application/json"})
Map saveServiceParams(ServiceParamVO model);
/**
* 获取任务的正在运行的
*
* @param jobId
* @return
*/
@RequestLine("GET /getExecutingJobs?jobId={jobId}")
Map getExecutingJobs(@Param("jobId") String jobId);
/**
* 分页获取规则
*
* @param page
* @param pageSize
* @return
*/
@RequestLine(value = "GET /rule/getAllRules?page={page}&pageSize={pageSize}")
Map getAllRules(@Param(value = "page") int page,
@Param(value = "pageSize") int pageSize);
/**
* 上传文件,管理平台上传直接到 任务调度
*
* @param jobId 任务 ID
* @param file 上传文件
* @return 返回上传结果
*/
@RequestLine("POST /upload/file")
Map uploadFile(@Param(value = "jobId") String jobId,
@Param("file") MultipartFile file);
}