如果要实现admin-file微服务既可以文件上传,又可以当普通接口服务,则一个fegin用admin
-file服务,一个fegin用gateway网关,就可以实现
// configuration配置相当于所有的admin-file服务都用这个配置信息
@FeignClient(value = "admin-file", configuration = FileFeign.MultipartSupportConfig.class)
public interface FileFeign {
/**
* 上传
*
* @param requestBody
* : 消息体
*
* @return : DataGrid<MallAds>
*/
@RequestMapping(value = "/sys/file/ajaxUpload", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_UTF8_VALUE }, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public OperInfo ajaxUpload(@RequestParam(value = "bizId", required = false) String bizId, @RequestParam(value = "moduleId", required = false) String moduleId, @RequestPart(value = "file") MultipartFile file);
class MultipartSupportConfig {
// 既支持文件上传也支持实体类作为参数接收。start
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignFormEncoder() {
// return new SpringFormEncoder();
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
// 既支持文件上传也支持实体类作为参数接收。start
// 只能上传文件及string byte start
// @Bean
// public Encoder feignFormEncoder() {
// return new SpringFormEncoder();
// }
// 只能上传文件string byte end
// @Bean
// public Logger.Level logger() {
// return Logger.Level.FULL;
// }
}
/**
* 获取地址
*
* @param requestBody
* @return
* @throws Exception
*/
@RequestMapping(value = "/sys/file/getFile", method = RequestMethod.GET)
public ResponseEntity getFile(@RequestParam(value = "fileId", required = false) String fileId, @RequestParam(value = "filePath", required = false) String filePath);
/**
* 通过网址上传
*
* @param requestBody
* : 消息体
*
* @return : DataGrid<MallAds>
*/
@RequestMapping(value = "/sys/file/ajaxUploadByUrl", method = RequestMethod.POST)
public OperInfo ajaxUploadByUrl(@RequestParam(value = "bizId", required = false) String bizId, @RequestParam(value = "moduleId", required = false) String moduleId, @RequestParam(value = "fileUrl") String fileUrl);
/**
* 获取地址
*
* @param requestBody
* @return
* @throws Exception
*/
@RequestMapping(value = "/sys/file/getFileUrl", method = RequestMethod.GET)
public Map<String, String> getFileUrl(@RequestParam(value = "fileIds", required = true) String fileIds);
/**
* 获取文件
*
* @param requestBody
* @return
* @throws Exception
*/
@RequestMapping(value = "/sys/file/getFileUrl", method = RequestMethod.GET)
public Map<String, SysFile> getFileObject(@RequestParam(value = "fileIds", required = true) String fileIds);
/**
* 删除文件
*
* @param requestBody
* : 消息体
*
* @return : DataGrid<MallAds>
*/
@RequestMapping(value = "/sys/file/deleteFileById", method = RequestMethod.GET)
public OperInfo deleteFileById(@RequestParam(value = "fileId", required = false) String fileId);
/**
* 更新文件
*
* @param requestBody
* : 消息体
*
* @return : DataGrid<MallAds>
*/
@RequestMapping(value = "/sys/file/updateFileById", method = RequestMethod.GET)
public OperInfo updateFileById(@RequestParam(value = "fileId", required = false) String fileId, @RequestParam(value = "bizId", required = false) String bizId, @RequestParam(value = "isValid", required = false) String isValid);
/**
*
* 下载文件
*
* @param requestBody
* @return
*/
@RequestMapping(value = "/sys/file/downloadFile", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public OperInfo downloadFile(@RequestBody FeignRequestBody<SysFile> requestBody);
/**
* 定时删除无效文件
*
* @param requestBody
* : 消息体
*
* @return : DataGrid<MallAds>
*/
@RequestMapping(value = "/sys/file/batchDeleteQuartz", method = RequestMethod.POST)
public OperInfo batchDeleteQuartz();
/************** 【以上代码是本功能基本的CRUD功能,下面代码是其它业务功能!】 ********************************************/
/**
* 获取二维码
*
* @param jsonString
* @return
*/
@RequestMapping(value = "/mall/qrcode/create", method = RequestMethod.POST)
public String createMemberQRcode(@RequestParam(value = "jsonString", required = false) String jsonString);
/**
* 生成机构核销二维码
*
* @param bizId
* @param moduleId
* @param file
* @return
*/
@RequestMapping(value = "/sys/file/createOrgQrCode", method = RequestMethod.POST)
public OperInfo createOrgQrCode(@RequestParam(value = "text", required = false) String text, @RequestParam(value = "bizId", required = false) String bizId, @RequestParam(value = "moduleId", required = false) String moduleId);
}