Search in sources :

Example 6 with SystemConfig

use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.

the class AuthRestApi method replyBlogLink.

@ApiOperation(value = "申请友链", notes = "申请友链")
@PostMapping("/replyBlogLink")
public String replyBlogLink(HttpServletRequest request, @RequestBody LinkVO linkVO) {
    if (request.getAttribute(SysConf.USER_UID) == null) {
        return ResultUtil.result(SysConf.ERROR, MessageConf.INVALID_TOKEN);
    }
    String userUid = request.getAttribute(SysConf.USER_UID).toString();
    User user = userService.getById(userUid);
    // 判断该用户是否被禁言,被禁言的用户,也无法进行友链申请操作
    if (user != null && user.getCommentStatus() == SysConf.ZERO) {
        return ResultUtil.result(SysConf.ERROR, MessageConf.YOU_DONT_HAVE_PERMISSION_TO_REPLY);
    }
    // 判断是否开启邮件通知
    SystemConfig systemConfig = systemConfigService.getConfig();
    if (systemConfig != null && EOpenStatus.OPEN.equals(systemConfig.getStartEmailNotification())) {
        if (StringUtils.isNotEmpty(systemConfig.getEmail())) {
            log.info("发送友链申请邮件通知");
            String feedback = "收到新的友链申请: " + "<br />" + "名称:" + linkVO.getTitle() + "<br />" + "简介:" + linkVO.getSummary() + "<br />" + "地址:" + linkVO.getUrl();
            rabbitMqUtil.sendSimpleEmail(systemConfig.getEmail(), feedback);
        } else {
            log.error("网站没有配置通知接收的邮箱地址!");
        }
    }
    QueryWrapper<Link> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq(SQLConf.USER_UID, userUid);
    queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
    queryWrapper.eq(SQLConf.TITLE, linkVO.getTitle());
    queryWrapper.last(SysConf.LIMIT_ONE);
    Link existLink = linkService.getOne(queryWrapper);
    if (existLink != null) {
        Integer linkStatus = existLink.getLinkStatus();
        String message = "";
        switch(linkStatus) {
            case 0:
                {
                    message = MessageConf.BLOG_LINK_IS_EXIST;
                }
                break;
            case 1:
                {
                    message = MessageConf.BLOG_LINK_IS_PUBLISH;
                }
                break;
            case 2:
                {
                    message = MessageConf.BLOG_LINK_IS_NO_PUBLISH;
                }
                break;
        }
        return ResultUtil.result(SysConf.ERROR, message);
    }
    Link link = new Link();
    link.setLinkStatus(ELinkStatus.APPLY);
    link.setTitle(linkVO.getTitle());
    link.setSummary(linkVO.getSummary());
    link.setUrl(linkVO.getUrl());
    link.setClickCount(0);
    link.setSort(0);
    link.setFileUid(linkVO.getFileUid());
    link.setEmail(linkVO.getEmail());
    link.setStatus(EStatus.ENABLE);
    link.setUserUid(userUid);
    link.insert();
    return ResultUtil.result(SysConf.SUCCESS, MessageConf.OPERATION_SUCCESS);
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) User(com.moxi.mogublog.commons.entity.User) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) Link(com.moxi.mogublog.commons.entity.Link) ApiOperation(io.swagger.annotations.ApiOperation)

Example 7 with SystemConfig

use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.

the class AuthRestApi method edit.

@ApiOperation(value = "提交反馈", notes = "提交反馈", response = String.class)
@PostMapping("/addFeedback")
public String edit(HttpServletRequest request, @Validated({ Insert.class }) @RequestBody FeedbackVO feedbackVO, BindingResult result) {
    // 参数校验
    ThrowableUtils.checkParamArgument(result);
    if (request.getAttribute(SysConf.USER_UID) == null) {
        return ResultUtil.result(SysConf.ERROR, MessageConf.INVALID_TOKEN);
    }
    String userUid = request.getAttribute(SysConf.USER_UID).toString();
    User user = userService.getById(userUid);
    // 判断该用户是否被禁言,被禁言的用户,也无法进行反馈操作
    if (user != null && user.getCommentStatus() == SysConf.ZERO) {
        return ResultUtil.result(SysConf.ERROR, MessageConf.YOU_DONT_HAVE_PERMISSION_TO_FEEDBACK);
    }
    // 判断是否开启邮件通知
    SystemConfig systemConfig = systemConfigService.getConfig();
    if (systemConfig != null && EOpenStatus.OPEN.equals(systemConfig.getStartEmailNotification())) {
        if (StringUtils.isNotEmpty(systemConfig.getEmail())) {
            log.info("发送反馈邮件通知");
            String feedback = "网站收到新的反馈: " + "<br />" + "标题:" + feedbackVO.getTitle() + "<br />" + "<br />" + "内容" + feedbackVO.getContent();
            rabbitMqUtil.sendSimpleEmail(systemConfig.getEmail(), feedback);
        } else {
            log.error("网站没有配置通知接收的邮箱地址!");
        }
    }
    Feedback feedback = new Feedback();
    feedback.setUserUid(userUid);
    feedback.setTitle(feedbackVO.getTitle());
    feedback.setContent(feedbackVO.getContent());
    // 设置反馈已开启
    feedback.setFeedbackStatus(0);
    feedback.setReply(feedbackVO.getReply());
    feedback.setUpdateTime(new Date());
    feedback.insert();
    return ResultUtil.result(SysConf.SUCCESS, MessageConf.INSERT_SUCCESS);
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) User(com.moxi.mogublog.commons.entity.User) Feedback(com.moxi.mogublog.commons.entity.Feedback) ApiOperation(io.swagger.annotations.ApiOperation)

Example 8 with SystemConfig

use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.

the class WebUtil method getPicture.

/**
 * 格式化数据获取图片列表
 *
 * @param result
 * @return
 */
public List<String> getPicture(String result) {
    String picturePriority = "";
    String localPictureBaseUrl = "";
    String qiNiuPictureBaseUrl = "";
    String minioPictureBaseUrl = "";
    // 从Redis中获取系统配置
    String systemConfigJson = redisUtil.get(RedisConf.SYSTEM_CONFIG);
    if (StringUtils.isEmpty(systemConfigJson)) {
        QueryWrapper<SystemConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
        SystemConfig systemConfig = systemConfigService.getOne(queryWrapper);
        if (systemConfig == null) {
            throw new QueryException(MessageConf.SYSTEM_CONFIG_IS_NOT_EXIST);
        } else {
            // 将系统配置存入Redis中【设置过期时间24小时】
            redisUtil.setEx(RedisConf.SYSTEM_CONFIG, JsonUtils.objectToJson(systemConfig), 24, TimeUnit.HOURS);
        }
        picturePriority = systemConfig.getPicturePriority();
        localPictureBaseUrl = systemConfig.getLocalPictureBaseUrl();
        qiNiuPictureBaseUrl = systemConfig.getQiNiuPictureBaseUrl();
        minioPictureBaseUrl = systemConfig.getMinioPictureBaseUrl();
    } else {
        SystemConfig systemConfig = JsonUtils.jsonToPojo(systemConfigJson, SystemConfig.class);
        if (systemConfig == null) {
            throw new QueryException(ErrorCode.QUERY_DEFAULT_ERROR, "系统配置转换错误,请检查系统配置,或者清空Redis后重试!");
        }
        picturePriority = systemConfig.getPicturePriority();
        localPictureBaseUrl = systemConfig.getLocalPictureBaseUrl();
        qiNiuPictureBaseUrl = systemConfig.getQiNiuPictureBaseUrl();
        minioPictureBaseUrl = systemConfig.getMinioPictureBaseUrl();
    }
    List<String> picUrls = new ArrayList<>();
    try {
        Map<String, Object> picMap = (Map<String, Object>) JsonUtils.jsonToObject(result, Map.class);
        if (SysConf.SUCCESS.equals(picMap.get(SysConf.CODE))) {
            List<Map<String, Object>> picData = (List<Map<String, Object>>) picMap.get(SysConf.DATA);
            if (picData.size() > 0) {
                for (int i = 0; i < picData.size(); i++) {
                    // 判断文件显示优先级【需要显示存储在哪里的图片】
                    if (EFilePriority.QI_NIU.equals(picturePriority)) {
                        picUrls.add(qiNiuPictureBaseUrl + picData.get(i).get(SysConf.QI_NIU_URL));
                    } else if (EFilePriority.MINIO.equals(picturePriority)) {
                        picUrls.add(minioPictureBaseUrl + picData.get(i).get(SysConf.MINIO_URL));
                    } else {
                        picUrls.add(localPictureBaseUrl + picData.get(i).get(SysConf.URL));
                    }
                }
            }
        }
    } catch (Exception e) {
        log.error("从Json中获取图片列表失败");
        log.error(e.getMessage());
        return picUrls;
    }
    return picUrls;
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) ArrayList(java.util.ArrayList) QueryException(com.moxi.mougblog.base.exception.exceptionType.QueryException) QueryException(com.moxi.mougblog.base.exception.exceptionType.QueryException) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map)

Example 9 with SystemConfig

use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.

the class WebUtil method getPictureMap.

/**
 * 获取图片,返回Map
 *
 * @param result
 * @return
 */
public List<Map<String, Object>> getPictureMap(String result) {
    String picturePriority = "";
    String localPictureBaseUrl = "";
    String qiNiuPictureBaseUrl = "";
    String minioPictureBaseUrl = "";
    // 从Redis中获取系统配置
    String systemConfigJson = redisUtil.get(RedisConf.SYSTEM_CONFIG);
    if (StringUtils.isEmpty(systemConfigJson)) {
        QueryWrapper<SystemConfig> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
        SystemConfig systemConfig = systemConfigService.getOne(queryWrapper);
        if (systemConfig == null) {
            throw new QueryException(MessageConf.SYSTEM_CONFIG_IS_NOT_EXIST);
        } else {
            // 将系统配置存入Redis中【设置过期时间24小时】
            redisUtil.setEx(RedisConf.SYSTEM_CONFIG, JsonUtils.objectToJson(systemConfig), 24, TimeUnit.HOURS);
        }
        picturePriority = systemConfig.getPicturePriority();
        localPictureBaseUrl = systemConfig.getLocalPictureBaseUrl();
        qiNiuPictureBaseUrl = systemConfig.getQiNiuPictureBaseUrl();
        minioPictureBaseUrl = systemConfig.getMinioPictureBaseUrl();
    } else {
        SystemConfig systemConfig = JsonUtils.jsonToPojo(systemConfigJson, SystemConfig.class);
        picturePriority = systemConfig.getPicturePriority();
        localPictureBaseUrl = systemConfig.getLocalPictureBaseUrl();
        qiNiuPictureBaseUrl = systemConfig.getQiNiuPictureBaseUrl();
        minioPictureBaseUrl = systemConfig.getMinioPictureBaseUrl();
    }
    List<Map<String, Object>> resultList = new ArrayList<>();
    Map<String, Object> picMap = (Map<String, Object>) JsonUtils.jsonToObject(result, Map.class);
    if (SysConf.SUCCESS.equals(picMap.get(SysConf.CODE))) {
        List<Map<String, Object>> picData = (List<Map<String, Object>>) picMap.get(SysConf.DATA);
        if (picData.size() > 0) {
            for (int i = 0; i < picData.size(); i++) {
                Map<String, Object> map = new HashMap<>();
                if (StringUtils.isEmpty(picData.get(i).get(SysConf.UID))) {
                    continue;
                }
                // 判断文件显示优先级【需要显示存储在哪里的图片】
                if (EFilePriority.QI_NIU.equals(picturePriority)) {
                    map.put(SysConf.URL, qiNiuPictureBaseUrl + picData.get(i).get(SysConf.QI_NIU_URL));
                } else if (EFilePriority.MINIO.equals(picturePriority)) {
                    map.put(SysConf.URL, minioPictureBaseUrl + picData.get(i).get(SysConf.MINIO_URL));
                } else {
                    map.put(SysConf.URL, localPictureBaseUrl + picData.get(i).get(SysConf.URL));
                }
                map.put(SysConf.UID, picData.get(i).get(SysConf.UID));
                resultList.add(map);
            }
        }
    } else if (SysConf.ERROR.equals(picMap.get(SysConf.CODE))) {
        log.error("获取图片失败,图片服务出现异常:{}", picMap.get(SysConf.MESSAGE));
    } else {
        log.error("获取图片失败");
    }
    return resultList;
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) QueryWrapper(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) QueryException(com.moxi.mougblog.base.exception.exceptionType.QueryException) ArrayList(java.util.ArrayList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map)

Example 10 with SystemConfig

use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.

the class StorageServiceImpl method uploadFile.

@Override
public String uploadFile(NetworkDisk networkDisk, List<MultipartFile> fileDatas) {
    HttpServletRequest request = RequestHolder.getRequest();
    SystemConfig systemConfig = feignUtil.getSystemConfig();
    if (systemConfig == null) {
        throw new QueryException(ErrorCode.SYSTEM_CONFIG_IS_NOT_EXIST, MessageConf.SYSTEM_CONFIG_NOT_EXIST);
    }
    // 计算文件大小
    Long newStorageSize = 0L;
    Long storageSize = 0L;
    for (MultipartFile fileData : fileDatas) {
        newStorageSize += fileData.getSize();
    }
    Storage storage = getStorageByAdmin();
    if (storage != null) {
        storageSize = storage.getStorageSize() + newStorageSize;
        // 判断上传的文件是否超过了剩余空间
        if (storage.getMaxStorageSize() < storageSize) {
            throw new UpdateException(ErrorCode.UPDATE_DEFAULT_ERROR, "上传失败,您可用的空间已经不足!");
        } else {
            storage.setStorageSize(storageSize);
        }
    } else {
        throw new UpdateException(ErrorCode.UPDATE_DEFAULT_ERROR, "上传失败,您没有分配可用的上传空间!");
    }
    // 上传文件
    String result = fileService.batchUploadFile(request, fileDatas, systemConfig);
    List<File> fileList = WebUtils.getAllList(result, File.class);
    List<NetworkDisk> networkDiskList = new ArrayList<>();
    for (File file : fileList) {
        NetworkDisk saveNetworkDisk = new NetworkDisk();
        saveNetworkDisk.setAdminUid(request.getAttribute(SysConf.ADMIN_UID).toString());
        saveNetworkDisk.setFilePath(networkDisk.getFilePath());
        saveNetworkDisk.setQiNiuUrl(file.getQiNiuUrl());
        saveNetworkDisk.setLocalUrl(file.getPicUrl());
        saveNetworkDisk.setMinioUrl(file.getMinioUrl());
        saveNetworkDisk.setFileSize(file.getFileSize());
        saveNetworkDisk.setFileName(file.getPicName());
        saveNetworkDisk.setExtendName(file.getPicExpandedName());
        saveNetworkDisk.setFileOldName(file.getFileOldName());
        saveNetworkDisk.setCreateTime(new Date());
        networkDiskList.add(saveNetworkDisk);
    }
    // 上传文件
    networkDiskService.saveBatch(networkDiskList);
    // 更新容量大小
    storageService.updateById(storage);
    return ResultUtil.successWithMessage(MessageConf.OPERATION_SUCCESS);
}
Also used : SystemConfig(com.moxi.mogublog.commons.entity.SystemConfig) ArrayList(java.util.ArrayList) Date(java.util.Date) HttpServletRequest(javax.servlet.http.HttpServletRequest) QueryException(com.moxi.mougblog.base.exception.exceptionType.QueryException) MultipartFile(org.springframework.web.multipart.MultipartFile) Storage(com.moxi.mogublog.commons.entity.Storage) UpdateException(com.moxi.mougblog.base.exception.exceptionType.UpdateException) File(com.moxi.mogublog.commons.entity.File) MultipartFile(org.springframework.web.multipart.MultipartFile) NetworkDisk(com.moxi.mogublog.commons.entity.NetworkDisk)

Aggregations

SystemConfig (com.moxi.mogublog.commons.entity.SystemConfig)25 QueryWrapper (com.baomidou.mybatisplus.core.conditions.query.QueryWrapper)11 QueryException (com.moxi.mougblog.base.exception.exceptionType.QueryException)7 HttpServletRequest (javax.servlet.http.HttpServletRequest)5 MultipartFile (org.springframework.web.multipart.MultipartFile)5 ArrayList (java.util.ArrayList)4 MultipartHttpServletRequest (org.springframework.web.multipart.MultipartHttpServletRequest)4 File (com.moxi.mogublog.commons.entity.File)3 User (com.moxi.mogublog.commons.entity.User)3 InsertException (com.moxi.mougblog.base.exception.exceptionType.InsertException)3 MinioClient (io.minio.MinioClient)3 ApiOperation (io.swagger.annotations.ApiOperation)3 HashMap (java.util.HashMap)3 List (java.util.List)3 Map (java.util.Map)3 Blog (com.moxi.mogublog.commons.entity.Blog)2 FileSort (com.moxi.mogublog.commons.entity.FileSort)2 AboutFileUtil (com.moxi.mogublog.picture.util.AboutFileUtil)2 FileVO (com.moxi.mougblog.base.vo.FileVO)2 InputStream (java.io.InputStream)2