|
@@ -4,6 +4,7 @@ import com.google.common.reflect.TypeToken;
|
|
import com.qmth.themis.business.annotation.ApiJsonObject;
|
|
import com.qmth.themis.business.annotation.ApiJsonObject;
|
|
import com.qmth.themis.business.annotation.ApiJsonProperty;
|
|
import com.qmth.themis.business.annotation.ApiJsonProperty;
|
|
import com.qmth.themis.business.bean.exam.EnvBean;
|
|
import com.qmth.themis.business.bean.exam.EnvBean;
|
|
|
|
+import com.qmth.themis.business.bean.exam.ExamFileUploadBean;
|
|
import com.qmth.themis.business.bean.exam.OrgInfoBean;
|
|
import com.qmth.themis.business.bean.exam.OrgInfoBean;
|
|
import com.qmth.themis.business.bean.exam.VersionBean;
|
|
import com.qmth.themis.business.bean.exam.VersionBean;
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
import com.qmth.themis.business.constant.SystemConstant;
|
|
@@ -16,6 +17,7 @@ import com.qmth.themis.business.enums.UploadFileEnum;
|
|
import com.qmth.themis.business.service.TBClientVersionService;
|
|
import com.qmth.themis.business.service.TBClientVersionService;
|
|
import com.qmth.themis.business.service.TBOrgService;
|
|
import com.qmth.themis.business.service.TBOrgService;
|
|
import com.qmth.themis.business.service.ThemisCacheService;
|
|
import com.qmth.themis.business.service.ThemisCacheService;
|
|
|
|
+import com.qmth.themis.business.util.OssUtil;
|
|
import com.qmth.themis.common.enums.ExceptionResultEnum;
|
|
import com.qmth.themis.common.enums.ExceptionResultEnum;
|
|
import com.qmth.themis.common.exception.BusinessException;
|
|
import com.qmth.themis.common.exception.BusinessException;
|
|
import com.qmth.themis.common.util.GsonUtil;
|
|
import com.qmth.themis.common.util.GsonUtil;
|
|
@@ -26,17 +28,14 @@ import io.swagger.annotations.*;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
-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.RestController;
|
|
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Objects;
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.io.InputStream;
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Api(tags = "系统信息Controller")
|
|
@Api(tags = "系统信息Controller")
|
|
@RestController
|
|
@RestController
|
|
@@ -56,6 +55,9 @@ public class SysController {
|
|
@Resource
|
|
@Resource
|
|
TBOrgService tbOrgService;
|
|
TBOrgService tbOrgService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ OssUtil ossUtil;
|
|
|
|
+
|
|
@ApiOperation(value = "获取环境接口")
|
|
@ApiOperation(value = "获取环境接口")
|
|
@RequestMapping(value = "/env", method = RequestMethod.POST)
|
|
@RequestMapping(value = "/env", method = RequestMethod.POST)
|
|
@ApiResponses({@ApiResponse(code = 200, message = "环境信息", response = Result.class)})
|
|
@ApiResponses({@ApiResponse(code = 200, message = "环境信息", response = Result.class)})
|
|
@@ -121,4 +123,32 @@ public class SysController {
|
|
Optional.ofNullable(cdnUrl).orElseThrow(() -> new BusinessException("cdn地址未配置"));
|
|
Optional.ofNullable(cdnUrl).orElseThrow(() -> new BusinessException("cdn地址未配置"));
|
|
return ResultUtil.ok(tbClientVersionService.save(new TBClientVersion(tbOrg.getId(), cdnUrl.getConfigValue() + tbOrgBean.getPackagePath(), tbOrgBean.getDescription(), ClientVersionTypeEnum.UPLOAD)));
|
|
return ResultUtil.ok(tbClientVersionService.save(new TBClientVersion(tbOrg.getId(), cdnUrl.getConfigValue() + tbOrgBean.getPackagePath(), tbOrgBean.getDescription(), ClientVersionTypeEnum.UPLOAD)));
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @ApiOperation(value = "文件上传")
|
|
|
|
+ @RequestMapping(value = "/file/upload", method = RequestMethod.POST)
|
|
|
|
+ @ApiResponses({@ApiResponse(code = 200, message = "试卷信息")})
|
|
|
|
+ public Result fileUpload(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
|
|
|
|
+ @ApiParam(value = "md5", required = true) @RequestParam String md5,
|
|
|
|
+ @ApiParam(value = "上传文件目录") @RequestParam(required = false) String fileDir) throws IOException {
|
|
|
|
+ InputStream in = null;
|
|
|
|
+ ExamFileUploadBean ret = new ExamFileUploadBean();
|
|
|
|
+ try {
|
|
|
|
+ SysConfig sysConfig = themisCacheService.addSysConfigCache(SystemConstant.CLIENT_DB_UPLOAD_LOCATION);
|
|
|
|
+ Optional.ofNullable(sysConfig).orElseThrow(() -> new BusinessException("未配置客户端上传db目录地址"));
|
|
|
|
+
|
|
|
|
+ StringJoiner stringJoiner = new StringJoiner("").add(sysConfig.getConfigValue());
|
|
|
|
+ stringJoiner = Objects.nonNull(fileDir) && !Objects.equals(fileDir.trim(), "") ? stringJoiner.add(File.separator).add(fileDir) : stringJoiner;
|
|
|
|
+ stringJoiner = stringJoiner.add(File.separator).add(file.getOriginalFilename());
|
|
|
|
+ in = file.getInputStream();
|
|
|
|
+ ossUtil.upload(true, stringJoiner.toString(), in, md5);
|
|
|
|
+ String url = ossUtil.getAliYunOssPublicDomain().getPublicUrl() + File.separator + stringJoiner.toString();
|
|
|
|
+ ret.setUrl(url);
|
|
|
|
+ ret.setUploadTime(System.currentTimeMillis());
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ throw new BusinessException("文件读取出错");
|
|
|
|
+ } finally {
|
|
|
|
+ in.close();
|
|
|
|
+ }
|
|
|
|
+ return ResultUtil.ok(ret);
|
|
|
|
+ }
|
|
}
|
|
}
|