微服文件管理接口

yun-zuoyi
yunhao.wang 6 years ago
parent 2e66e522f0
commit 4d96152b3e

@ -74,4 +74,12 @@ public interface ISysFileService {
*/
@ApiOperation(value = "上传文件资源",notes = "上传文件资源")
SysFile uploadFile(Object file) throws Exception;
/**
*
* @param fileCode
* @return
*/
@ApiOperation(value = "根据文件代码获取文件信息")
SysFile getSysFileByFileCode(String fileCode);
}

@ -3,7 +3,6 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysDictionaryService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
@ -26,7 +25,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedInputStream;
import java.io.IOException;
@ -63,6 +61,7 @@ public class SysFileController extends CoreBaseController{
// 条件验证
ValidatorBean.beginValid(sysFile)
.notNull("id", sysFile.getId())
.notNull("fileSoftType", sysFile.getFileSoftType())
.notNull("name", sysFile.getName());
sysFileService.updateSysFile(sysFile);
@ -76,9 +75,17 @@ public class SysFileController extends CoreBaseController{
@DeleteMapping(value = "/delete/{id}")
@ApiOperation(value = "根据id删除文件资源", notes = "根据id删除文件资源")
public ResultBean deleteSysFileById(@PathVariable("id") String id){
public ResultBean deleteSysFileById(@PathVariable("id") String idStr){
try {
sysFileService.deleteSysFileById(Long.parseLong(id));
ValidatorBean.checkNotNull(idStr, "id不能为空");
SysFile sysFile = sysFileService.getSysFileById(Long.parseLong(idStr));
ValidatorBean.checkNotNull(sysFile, "文件信息不存在");
LOGGER.info("FastDFS删除文件 == groupName: {}name{}", sysFile.getDfsGroupName(), sysFile.getDfsFileName());
dfsClient.deleteFile(sysFile.getDfsGroupName(), sysFile.getDfsFileName());
sysFileService.deleteSysFileById(Long.parseLong(idStr));
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
@ -109,6 +116,8 @@ public class SysFileController extends CoreBaseController{
ValidatorBean.checkIsNumber(id, "id必须为数字");
SysFile sysFile = sysFileService.getSysFileById(Long.parseLong(id));
ValidatorBean.checkNotNull(sysFile, "文件信息不存在");
return ResultBean.success("操作成功")
.setResultObject(sysFile)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -255,6 +264,7 @@ public class SysFileController extends CoreBaseController{
ValidatorBean.beginValid(sysFile)
.notNull("dfsFileName", sysFile.getDfsFileName())
.notNull("dfsGroupName", sysFile.getDfsGroupName())
.notNull("fileSoftType", sysFile.getFileSoftType())
.notNull("fileOriginalName", sysFile.getFileOriginalName());
// 文件类型验证
@ -282,4 +292,25 @@ public class SysFileController extends CoreBaseController{
}
}
/**
*
* @param fileCode
* @return
*/
@GetMapping("/get-file-code/{code}")
@ApiOperation(value = "根据文件代码查询文件信息")
public ResultBean getSysFileByFileCode(@PathVariable("code") String fileCode) {
try {
// 条件验证
ValidatorBean.checkNotNull(fileCode, "文件代码不能为空");
SysFile sysFile = sysFileService.getSysFileByFileCode(fileCode);
ValidatorBean.checkNotNull(sysFile, "文件信息不存在");
return ResultBean.success().setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile);
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
}

@ -314,6 +314,7 @@ public class SysOrderNoRuleController extends CoreBaseController {
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(fileAbsolutePath[0]);
sysFile.setDfsFileName(fileAbsolutePath[1]);
sysFile.setFileSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue());
sysFile.setFileSize(fastDFSFile.getContent().length);
sysFile.setFilePath(filePath);
sysFile.setFileOriginalName(fastDFSFile.getName());

@ -8,11 +8,14 @@ import cn.estsh.i3plus.pojo.base.bean.BaseConstWords;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysDictionary;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.repository.SysDictionaryRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysFileRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient;
import cn.estsh.impp.framework.boot.fastdfs.FastDFSFile;
import io.swagger.annotations.ApiOperation;
@ -21,7 +24,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
@ -49,6 +51,18 @@ public class SysFileServiceImpl implements ISysFileService {
@ApiOperation(value = "新增资源信息")
public SysFile insertSysFile(SysFile sysFile) {
LOGGER.info("文件资源 SYS_FILE :{}", sysFile);
if (sysFile.getFileCode() != null) {
SysFile fileCode = sysFileRDao.getByProperty("fileCode", sysFile.getFileCode());
if (fileCode != null) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("文件代码已存在。")
.setErrorSolution("请更换文件代码")
.build();
}
}
return sysFileRDao.insert(sysFile);
}
@ -56,6 +70,18 @@ public class SysFileServiceImpl implements ISysFileService {
@ApiOperation(value = "更新资源信息")
public void updateSysFile(SysFile sysFile) {
LOGGER.info("文件资源 SYS_FILE :{}", sysFile);
if (sysFile.getFileCode() != null) {
List list = sysFileRDao.findByHqlWhere(CoreHqlPack.packHqlSysFileCode(sysFile));
if (list != null && list.size() > 0) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode())
.setErrorDetail("文件代码已存在。")
.setErrorSolution("请更换文件代码")
.build();
}
}
sysFileRDao.update(sysFile);
}
@ -128,6 +154,7 @@ public class SysFileServiceImpl implements ISysFileService {
SysFile sysFile = new SysFile();
sysFile.setDfsGroupName(fileAbsolutePath[0]);
sysFile.setDfsFileName(fileAbsolutePath[1]);
sysFile.setFileSoftType(CommonEnumUtil.SOFT_TYPE.CORE.getValue());
sysFile.setFileSize(fastDFSFile.getContent().length);
sysFile.setFilePath(filePath);
sysFile.setFileOriginalName(fastDFSFile.getName());
@ -138,4 +165,9 @@ public class SysFileServiceImpl implements ISysFileService {
return insertSysFile(sysFile);
}
@Override
public SysFile getSysFileByFileCode(String fileCode) {
return sysFileRDao.getByProperty("fileCode", fileCode);
}
}

Loading…
Cancel
Save