package com.dhcc.finance.main.client;

import com.dhcc.common.model.CurrencyMeta;
import com.dhcc.common.model.response.RestfulResponse;
import com.dhcc.finance.main.domain.SysDictInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * 功能描述：凭证类型操作接口
 * @author dml
 * @date 2019年12月25日 上午11:28:12
 * @修改日志：
 */
@FeignClient(name = VoucherTaskMonitorFeignClient.SERVICE_ID, fallback = VoucherTaskMonitorHystrixFallback.class )
public interface VoucherTaskMonitorFeignClient {
	public static final String SERVICE_ID = "dhcc-system-service";

	public static final String SERVICE_MS = "/" + SERVICE_ID;

	public static final String MS_API_PREFIX = "/api/v1";

	public static final String SERVEICE_SYS_DICT_INFO = "/sys-dict-info";

	/**
	 * 功能描述：根据字典名称查询数据字典信息
	 * @param   list
	 * @return  RestfulResponse<List<CwBdManualSerial>, CurrencyMeta>
	 * @author: yaojun
	 * @date:   2020/2/8 18:55
	 * @修改日志：
	 */
	@RequestMapping(value = SERVICE_MS + MS_API_PREFIX + SERVEICE_SYS_DICT_INFO + "/searchDictInfoByDictName", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
	public RestfulResponse<List<SysDictInfo>, CurrencyMeta> searchDictInfoByDictName(@RequestParam(value = "list", required = false) List<String> list);

	/**
	 * 功能描述：根据字典项查询数据字典信息
	 * @param   list
	 * @return  RestfulResponse<List<CwBdManualSerial>, CurrencyMeta>
	 * @author: yaojun
	 * @date:   2020/2/8 18:55
	 * @修改日志：
	 */
	@RequestMapping(value = SERVICE_MS + MS_API_PREFIX + SERVEICE_SYS_DICT_INFO + "/selectDictInfoByDictField", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
	public RestfulResponse<List<SysDictInfo>, CurrencyMeta> selectDictInfoByDictField(@RequestParam(value = "list", required = false) List<String> list);

}
