src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
@@ -1,10 +1,10 @@ package com.xcong.farmer.cms.common.utils; import java.io.File; import java.io.IOException; import java.io.*; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; /** * @author wzy @@ -30,16 +30,75 @@ return dir + fileName; } public static void zipUpload(File file, String templateDir, String staticDir) throws IOException { ZipFile zipFile = new ZipFile(file); public static void zipUpload(String zipPath, String templateDir) throws IOException { FileInputStream fis = new FileInputStream(zipPath); ZipInputStream zipIs = new ZipInputStream(fis); Enumeration<? extends ZipEntry> entries = zipFile.entries(); if (entries.hasMoreElements()) { ZipEntry zipEntry = entries.nextElement(); if (zipEntry.isDirectory()) { // zipEntry. ZipEntry ze = null; try { while ((ze = zipIs.getNextEntry()) != null) { File zfile = new File(path(templateDir, ze.getName())); if (ze.isDirectory()) { if (!zfile.exists()) { zfile.mkdirs(); } zipIs.closeEntry(); } else { byte[] data = new byte[1024]; FileOutputStream fos = new FileOutputStream(zfile); int i = 0; while ((i = zipIs.read(data)) != -1) { fos.write(data, 0, i); } zipIs.closeEntry(); fos.close(); } } System.out.println(zipEntry.getName()); fis.close(); zipIs.close(); } catch (Exception e) { e.printStackTrace(); } } public static void upload(File file, String dir) { if (file.isDirectory()) { File[] files = file.listFiles(); if (files == null) { return; } for (File dirFile : files) { upload(dirFile, path(dir, dirFile.getName())); } } else { outputFile(file, dir); } } public static void outputFile(File file, String outputDir) { try { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); int count; int buffer = 1024; byte[] dataByte = new byte[buffer]; FileOutputStream out = new FileOutputStream(path(outputDir, file.getName())); BufferedOutputStream bos = new BufferedOutputStream(out, buffer); while((count = bis.read(dataByte, 0, buffer)) != -1) { bos.write(dataByte, 0 ,count); } bos.flush(); bos.close(); bis.close(); } catch (IOException e) { e.printStackTrace(); } } } src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java
@@ -1,5 +1,7 @@ package com.xcong.farmer.cms.modules.system.service.Impl; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ZipUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -13,6 +15,8 @@ import com.xcong.farmer.cms.modules.system.mapper.CmsTemplateMapper; import com.xcong.farmer.cms.modules.system.service.ICmsTemplateService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -48,17 +52,58 @@ } try { String path = FileUtils.path(templatePath, filename); File file = new File(path); upload.transferTo(file); if (".zip".equals(suffix)) { String path = FileUtils.path(templatePath, filename); System.out.println(path); File file = new File(path); upload.transferTo(file); FileUtils.zipUpload(file, templatePath, staticPath); ZipUtil.unzip(file, new File(templatePath)); FileUtil.del(file); File template = new File(templatePath); File[] files = template.listFiles(); if (files == null) { return; } for (File templateFile : files) { if (!templateFile.isFile()) { continue; } if (!"html".equals(FileUtil.extName(templateFile))) { continue; } String name = templateFile.getName(); if (!name.endsWith(".list.html") && !name.endsWith(".article.html") && !name.endsWith(".index.html")) { continue; } Document parse = Jsoup.parse(templateFile, null); String attr = parse.head().attr("name"); System.out.println(attr); CmsTemplateEntity cmsTemplate = new CmsTemplateEntity(); cmsTemplate.setCompanyId(10L); if (name.endsWith(".list.html")) { cmsTemplate.setType(2); } else if (name.endsWith(".article.html")) { cmsTemplate.setType(3); } else { cmsTemplate.setType(1); } cmsTemplate.setName(templateFile.getName()); cmsTemplate.setPath(templateFile.getName()); } } if (".html".equals(suffix)) { FileUtil.touch(file); } } catch (IOException e) { e.printStackTrace(); } System.out.println(suffix); } @Override src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
@@ -11,15 +11,18 @@ import com.xcong.farmer.cms.modules.system.dto.AdminColumnDto; import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto; import com.xcong.farmer.cms.modules.system.dto.AdminUpdateColumnDto; import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; import com.xcong.farmer.cms.modules.system.entity.NavigationBarEntity; import com.xcong.farmer.cms.modules.system.entity.UserEntity; import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper; import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper; import com.xcong.farmer.cms.modules.system.service.IColumnService; import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import com.xcong.farmer.cms.modules.system.vo.AdminColumnVo; import com.xcong.farmer.cms.modules.system.vo.AdminSeeColumnInfoVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.hutool.core.util.StrUtil; @@ -32,6 +35,10 @@ @Service @Slf4j public class ColumnServiceImpl extends ServiceImpl<ColumnMapper, ColumnEntity> implements IColumnService { @Autowired private ArticleMapper articleMapper; @Override public Result getColumnInPage(AdminColumnDto adminColumnDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); @@ -149,6 +156,15 @@ adminSeeColumnInfoVo.setIsNav(columnEntity.getIsNav()); adminSeeColumnInfoVo.setType(columnEntity.getType()); adminSeeColumnInfoVo.setTargetType(columnEntity.getTargetType()); if (columnEntity.getType() == 2) { if (columnEntity.getTargetType() == 1) { ArticleEntity articleEntity = articleMapper.selectById(Long.parseLong(columnEntity.getTargetUrl())); adminSeeColumnInfoVo.setTargetName(articleEntity.getTitle()); } else if (columnEntity.getTargetType() == 2) { ColumnEntity column = this.baseMapper.selectById(Long.parseLong(columnEntity.getTargetUrl())); adminSeeColumnInfoVo.setTargetName(column.getColumnName()); } } adminSeeColumnInfoVo.setTargetUrl(columnEntity.getTargetUrl()); return Result.ok(adminSeeColumnInfoVo); } src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeColumnInfoVo.java
@@ -43,6 +43,9 @@ @ApiModelProperty(value = "目标地址") private String targetUrl; @ApiModelProperty(value = "目标描述") private String targetName; @ApiModelProperty(value = "是否为导航 1-是 2-否") private Integer isNav;