Search in sources :

Example 6 with InsertException

use of com.moxi.mougblog.base.exception.exceptionType.InsertException in project mogu_blog_v2 by moxi624.

the class FileServiceImpl method uploadPictureByUrl.

@Override
public String uploadPictureByUrl(FileVO fileVO) {
    // 获取配置文件
    SystemConfig systemConfig;
    if (fileVO.getSystemConfig() != null) {
        Map<String, String> resultMap = fileVO.getSystemConfig();
        systemConfig = feignUtil.getSystemConfigByMap(resultMap);
    } else {
        // 从Redis中获取七牛云配置文件
        systemConfig = feignUtil.getSystemConfig();
    }
    String userUid = fileVO.getUserUid();
    String adminUid = fileVO.getAdminUid();
    String projectName = fileVO.getProjectName();
    String sortName = fileVO.getSortName();
    List<String> urlList = fileVO.getUrlList();
    // projectName现在默认base
    if (StringUtils.isEmpty(projectName)) {
        projectName = "base";
    }
    // 这里可以检测用户上传,如果不是网站的用户或会员就不能调用
    if (StringUtils.isEmpty(userUid) && StringUtils.isEmpty(adminUid)) {
        throw new InsertException(ErrorCode.INSERT_DEFAULT_ERROR, "请先注册");
    }
    QueryWrapper<FileSort> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq(SQLConf.SORT_NAME, sortName);
    queryWrapper.eq(SQLConf.PROJECT_NAME, projectName);
    queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
    List<FileSort> fileSorts = fileSortService.list(queryWrapper);
    FileSort fileSort = null;
    if (fileSorts.size() > 0) {
        fileSort = fileSorts.get(0);
    } else {
        throw new InsertException(ErrorCode.INSERT_DEFAULT_ERROR, "文件不被允许上传, 请填写文件分类信息");
    }
    List<com.moxi.mogublog.commons.entity.File> lists = new ArrayList<>();
    // 文件上传
    if (urlList != null && urlList.size() > 0) {
        for (String itemUrl : urlList) {
            // 获取新文件名(默认为jpg)
            String newFileName = System.currentTimeMillis() + ".jpg";
            // 将图片上传到本地服务器中以及七牛云中
            String picurl = "";
            String qiNiuUrl = "";
            String minioUrl = "";
            // 判断是否能够上传至本地
            if (EOpenStatus.OPEN.equals(systemConfig.getUploadLocal())) {
                picurl = localFileService.uploadPictureByUrl(itemUrl, fileSort);
            }
            // 上传七牛云,判断是否能够上传七牛云
            if (EOpenStatus.OPEN.equals(systemConfig.getUploadMinio())) {
                minioUrl = minioService.uploadPictureByUrl(itemUrl);
            }
            // 上传七牛云,判断是否能够上传七牛云
            if (EOpenStatus.OPEN.equals(systemConfig.getUploadQiNiu())) {
                qiNiuUrl = qiniuService.uploadPictureByUrl(itemUrl, systemConfig);
            }
            com.moxi.mogublog.commons.entity.File file = new com.moxi.mogublog.commons.entity.File();
            file.setCreateTime(new Date(System.currentTimeMillis()));
            file.setFileSortUid(fileSort.getUid());
            file.setFileOldName(itemUrl);
            file.setFileSize(0L);
            file.setPicExpandedName("jpg");
            file.setPicName(newFileName);
            file.setPicUrl(picurl);
            file.setQiNiuUrl(qiNiuUrl);
            file.setMinioUrl(minioUrl);
            file.setStatus(EStatus.ENABLE);
            file.setUserUid(userUid);
            file.setAdminUid(adminUid);
            fileService.save(file);
            lists.add(file);
        }
        // 保存成功返回数据
        return ResultUtil.result(SysConf.SUCCESS, lists);
    }
    return ResultUtil.result(SysConf.ERROR, "请上传图片");
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) InsertException(com.moxi.mougblog.base.exception.exceptionType.InsertException) File(com.moxi.mogublog.commons.entity.File) FileSort(com.moxi.mogublog.commons.entity.FileSort) File(com.moxi.mogublog.commons.entity.File) MultipartFile(org.springframework.web.multipart.MultipartFile)

Aggregations

InsertException (com.moxi.mougblog.base.exception.exceptionType.InsertException)6 MultipartFile (org.springframework.web.multipart.MultipartFile)5 URL (java.net.URL)3 URLConnection (java.net.URLConnection)3 QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)2 File (com.moxi.mogublog.commons.entity.File)2 FileSort (com.moxi.mogublog.commons.entity.FileSort)2 SystemConfig (com.moxi.mogublog.commons.entity.SystemConfig)2 BufferedOutputStream (java.io.BufferedOutputStream)2 FileOutputStream (java.io.FileOutputStream)2 InputStream (java.io.InputStream)2 MockMultipartFile (org.springframework.mock.web.MockMultipartFile)2 User (com.moxi.mogublog.commons.entity.User)1 QiniuUtil (com.moxi.mogublog.picture.util.QiniuUtil)1 java.io (java.io)1 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 MultipartHttpServletRequest (org.springframework.web.multipart.MultipartHttpServletRequest)1