use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.
the class FileServiceImpl method ckeditorUploadToolFile.
@Override
public Object ckeditorUploadToolFile(HttpServletRequest request) {
String token = request.getParameter(SysConf.TOKEN);
// 从Redis中获取系统配置【需要传入token】
Map<String, String> qiNiuResultMap = feignUtil.getSystemConfigMap(token);
SystemConfig systemConfig = feignUtil.getSystemConfigByMap(qiNiuResultMap);
Map<String, Object> map = new HashMap<>();
Map<String, Object> errorMap = new HashMap<>();
// 引用自己设计的一个工具类
AboutFileUtil af = new AboutFileUtil();
// 转换成多部分request
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 取得request中的所有文件名
Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile(iter.next());
if (file != null) {
// 获取旧名称
String oldName = file.getOriginalFilename();
// 获取扩展名
String expandedName = FileUtils.getPicExpandedName(oldName);
// 判断是否安全文件
if (!af.isSafe(expandedName)) {
map.put(SysConf.UPLOADED, 0);
errorMap.put(SysConf.MESSAGE, "请上传正确格式的文件");
map.put(SysConf.ERROR, errorMap);
return map;
}
// 对文件大小进行限制
if (file.getSize() > (50 * 1024 * 1024)) {
map.put(SysConf.UPLOADED, 0);
errorMap.put(SysConf.MESSAGE, "文件大小不能超过50M");
map.put(SysConf.ERROR, errorMap);
return map;
}
// 设置图片上传服务必要的信息
request.setAttribute(SysConf.USER_UID, SysConf.DEFAULT_UID);
request.setAttribute(SysConf.ADMIN_UID, SysConf.DEFAULT_UID);
request.setAttribute(SysConf.PROJECT_NAME, SysConf.BLOG);
request.setAttribute(SysConf.SORT_NAME, SysConf.ADMIN);
List<MultipartFile> fileData = new ArrayList<>();
fileData.add(file);
String result = fileService.batchUploadFile(request, fileData, systemConfig);
Map<String, Object> resultMap = JsonUtils.jsonToMap(result);
String code = resultMap.get(SysConf.CODE).toString();
if (SysConf.SUCCESS.equals(code)) {
List<HashMap<String, Object>> resultList = (List<HashMap<String, Object>>) resultMap.get(SysConf.DATA);
if (resultList.size() > 0) {
Map<String, Object> picture = resultList.get(0);
String fileName = picture.get(SysConf.PIC_NAME).toString();
map.put(SysConf.UPLOADED, 1);
map.put(SysConf.FILE_NAME, fileName);
// 设置显示方式
if (EFilePriority.QI_NIU.equals(systemConfig.getContentPicturePriority())) {
String qiNiuPictureBaseUrl = systemConfig.getQiNiuPictureBaseUrl();
String qiNiuUrl = qiNiuPictureBaseUrl + picture.get(SysConf.QI_NIU_URL).toString();
map.put(SysConf.URL, qiNiuUrl);
} else if (EFilePriority.MINIO.equals(systemConfig.getContentPicturePriority())) {
String minioPictureBaseUrl = systemConfig.getMinioPictureBaseUrl();
// 设置图片服务根域名
String url = minioPictureBaseUrl + picture.get(SysConf.MINIO_URL).toString();
map.put(SysConf.URL, url);
} else {
String localPictureBaseUrl = systemConfig.getLocalPictureBaseUrl();
// 设置图片服务根域名
String url = localPictureBaseUrl + picture.get(SysConf.PIC_URL).toString();
map.put(SysConf.URL, url);
}
}
return map;
} else {
map.put(SysConf.UPLOADED, 0);
errorMap.put(SysConf.MESSAGE, "上传失败");
map.put(SysConf.ERROR, errorMap);
return map;
}
}
}
return null;
}
use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.
the class FreemarkerController method getAllHtml.
/**
* 生成所有博客的静态文件
*/
@RequestMapping("/getAllHtml")
@ResponseBody
public String getAllHtml() throws IOException {
FileOutputStream fileOutputStream = null;
InputStream inputStream = null;
try {
// 创建配置类
Configuration configuration = new Configuration(Configuration.getVersion());
String classpath = this.getClass().getResource("/").getPath();
// 设置模板路径
configuration.setDirectoryForTemplateLoading(new File(classpath + "/templates/"));
// 设置字符集
configuration.setDefaultEncoding("utf-8");
// 加载模板
Template template = configuration.getTemplate("info.ftl");
QueryWrapper<Blog> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
queryWrapper.eq(SQLConf.IS_PUBLISH, EPublish.PUBLISH);
List<Blog> blogList = blogService.list(queryWrapper);
blogList = setBlog(blogList);
Map<String, List<Blog>> blogMap = new HashMap<>();
List<Blog> thirdBlog = new ArrayList<>();
List<Blog> fourthBlog = new ArrayList<>();
List<Blog> hotBlogList = blogService.getBlogListByTop(SysConf.FIVE);
blogList.forEach(item -> {
if (item.getLevel() == ELevel.THIRD) {
thirdBlog.add(item);
} else if (item.getLevel() == ELevel.FOURTH) {
fourthBlog.add(item);
}
List<Blog> tempList = blogMap.get(item.getBlogSortUid());
if (tempList != null && tempList.size() > 0) {
tempList.add(item);
blogMap.put(item.getBlogSortUid(), tempList);
} else {
List<Blog> temp = new ArrayList<>();
temp.add(item);
blogMap.put(item.getBlogSortUid(), temp);
}
});
SystemConfig systemConfig = systemConfigService.getConfig();
if (systemConfig == null) {
return ResultUtil.result(SysConf.ERROR, "系统配置为空");
}
for (int a = 0; a < blogList.size(); a++) {
// 数据模型
Map map = new HashMap();
List<Blog> sameBlog = blogMap.get(blogList.get(a).getBlogSortUid());
map.put("vueWebBasePath", webSiteUrl);
map.put("webBasePath", webUrl);
map.put("staticBasePath", systemConfig.getLocalPictureBaseUrl());
map.put("webConfig", webConfigService.getWebConfig());
map.put("blog", blogList.get(a));
map.put("sameBlog", sameBlog);
map.put("thirdBlogList", thirdBlog);
map.put("fourthBlogList", fourthBlog);
map.put("hotBlogList", hotBlogList);
// 静态化
String content = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
inputStream = IOUtils.toInputStream(content);
// 输出文件
String savePath = fileUploadPath + "/blog/page/" + blogList.get(a).getUid() + ".html";
fileOutputStream = new FileOutputStream(new File(savePath));
IOUtils.copy(inputStream, fileOutputStream);
}
return ResultUtil.result(SysConf.SUCCESS, "生成成功");
} catch (Exception e) {
e.getMessage();
} finally {
inputStream.close();
fileOutputStream.close();
}
return ResultUtil.result(SysConf.SUCCESS, "生成失败");
}
use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.
the class AuthRestApi method getSystemConfig.
/**
* 通过token获取七牛云配置
*
* @param token
* @return
*/
@GetMapping("/getSystemConfig")
public String getSystemConfig(@RequestParam("token") String token) {
String userInfo = stringRedisTemplate.opsForValue().get(RedisConf.USER_TOKEN + Constants.SYMBOL_COLON + token);
if (StringUtils.isEmpty(userInfo)) {
return ResultUtil.result(SysConf.ERROR, MessageConf.INVALID_TOKEN);
}
QueryWrapper<SystemConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc(SQLConf.CREATE_TIME);
queryWrapper.eq(SQLConf.STATUS, EStatus.ENABLE);
queryWrapper.last(SysConf.LIMIT_ONE);
SystemConfig SystemConfig = systemConfigService.getOne(queryWrapper);
return ResultUtil.result(SysConf.SUCCESS, SystemConfig);
}
use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.
the class SystemConfigServiceImpl method editSystemConfig.
@Override
public String editSystemConfig(SystemConfigVO systemConfigVO) {
// 图片必须选择上传到一个区域
if (EOpenStatus.CLOSE.equals(systemConfigVO.getUploadLocal()) && EOpenStatus.CLOSE.equals(systemConfigVO.getUploadQiNiu()) && EOpenStatus.CLOSE.equals(systemConfigVO.getUploadMinio())) {
return ResultUtil.errorWithMessage(MessageConf.PICTURE_MUST_BE_SELECT_AREA);
}
// 图片显示优先级为本地优先,必须开启图片上传本地
if ((EFilePriority.LOCAL.equals(systemConfigVO.getPicturePriority()) || EFilePriority.LOCAL.equals(systemConfigVO.getContentPicturePriority())) && EOpenStatus.CLOSE.equals(systemConfigVO.getUploadLocal())) {
return ResultUtil.errorWithMessage(MessageConf.MUST_BE_OPEN_LOCAL_UPLOAD);
}
// 图片显示优先级为七牛云优先,必须开启图片上传七牛云
if ((EFilePriority.QI_NIU.equals(systemConfigVO.getPicturePriority()) || EFilePriority.QI_NIU.equals(systemConfigVO.getContentPicturePriority())) && EOpenStatus.CLOSE.equals(systemConfigVO.getUploadQiNiu())) {
return ResultUtil.errorWithMessage(MessageConf.MUST_BE_OPEN_QI_NIU_UPLOAD);
}
// 图片显示优先级为Minio优先,必须开启图片上传Minio
if ((EFilePriority.MINIO.equals(systemConfigVO.getPicturePriority()) || EFilePriority.MINIO.equals(systemConfigVO.getContentPicturePriority())) && EOpenStatus.CLOSE.equals(systemConfigVO.getUploadMinio())) {
return ResultUtil.errorWithMessage(MessageConf.MUST_BE_OPEN_MINIO_UPLOAD);
}
// 开启Email邮件通知时,必须保证Email字段不为空
if (EOpenStatus.OPEN.equals(systemConfigVO.getStartEmailNotification()) && StringUtils.isEmpty(systemConfigVO.getEmail())) {
return ResultUtil.errorWithMessage(MessageConf.MUST_BE_SET_EMAIL);
}
if (StringUtils.isEmpty(systemConfigVO.getUid())) {
SystemConfig systemConfig = new SystemConfig();
// 设置七牛云、邮箱、系统配置相关属性【使用Spring工具类提供的深拷贝】
BeanUtils.copyProperties(systemConfigVO, systemConfig, SysConf.STATUS);
systemConfig.insert();
} else {
SystemConfig systemConfig = systemConfigService.getById(systemConfigVO.getUid());
// 判断是否更新了图片显示优先级【如果更新了,需要请求Redis中的博客,否者将导致图片无法正常显示】
if (systemConfigVO.getPicturePriority() != systemConfig.getPicturePriority()) {
blogService.deleteRedisByBlog();
}
// 设置七牛云、邮箱、系统配置相关属性【使用Spring工具类提供的深拷贝】
BeanUtils.copyProperties(systemConfigVO, systemConfig, SysConf.STATUS, SysConf.UID);
systemConfig.updateById();
}
// 更新系统配置成功后,需要删除Redis中的系统配置
redisUtil.delete(RedisConf.SYSTEM_CONFIG);
return ResultUtil.successWithMessage(MessageConf.UPDATE_SUCCESS);
}
use of com.moxi.mogublog.commons.entity.SystemConfig in project mogu_blog_v2 by moxi624.
the class QiniuServiceImpl method uploadSingleFile.
/**
* 七牛云服务图片上传【上传到七牛云中】
*
* @return
*/
private String uploadSingleFile(MultipartFile multipartFile) {
BufferedOutputStream out = null;
java.io.File dest = null;
String url = "";
try {
// 从Redis中获取系统配置
SystemConfig systemConfig = feignUtil.getSystemConfig();
String oldName = multipartFile.getOriginalFilename();
// 获取扩展名,默认是jpg
String picExpandedName = FileUtils.getPicExpandedName(oldName);
// 获取新文件名
String newFileName = System.currentTimeMillis() + Constants.SYMBOL_POINT + picExpandedName;
// 创建一个临时目录文件
String tempFiles = path + "/temp/" + newFileName;
dest = new java.io.File(tempFiles);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
out = new BufferedOutputStream(new FileOutputStream(dest));
out.write(multipartFile.getBytes());
out.flush();
out.close();
url = qiniuUtil.uploadQiniu(dest, systemConfig);
} catch (Exception e) {
e.getStackTrace();
log.error("文件上传七牛云失败: {}", e.getMessage());
} finally {
if (dest != null && dest.getParentFile().exists()) {
dest.delete();
}
}
return url;
}
Aggregations