No Description

DiscoverBannerService.java 6.5KB

    package com.ekexiu.console.system.service; import com.ekexiu.console.system.dao.DiscoverBannerDao; import com.ekexiu.console.system.po.DiscoverBanner; import com.ekexiu.console.system.vo.ConsoleAuthUser; import freemarker.cache.TemplateLoader; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.TemplateExceptionHandler; import org.jfw.apt.annotation.Autowrie; import org.jfw.apt.annotation.DefaultValue; import org.jfw.apt.annotation.Nullable; import org.jfw.apt.web.annotation.LoginUser; import org.jfw.apt.web.annotation.Path; import org.jfw.apt.web.annotation.operate.Get; import org.jfw.apt.web.annotation.operate.Post; import org.jfw.apt.web.annotation.param.JdbcConn; import org.jfw.apt.web.annotation.param.PathVar; import org.jfw.apt.web.annotation.param.RequestParam; import org.jfw.util.ConstData; import org.jfw.util.DateUtil; import org.jfw.util.PageQueryResult; import java.io.*; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /** * Created by TT on 2017/8/25. */ @Path("/disBanner") public class DiscoverBannerService { private File source; private Configuration cfg = new Configuration(Configuration.VERSION_2_3_26); @Autowrie private DiscoverBannerDao discoverBannerDao; @Autowrie private ImageService imageService; public DiscoverBannerDao getDiscoverBannerDao() { return discoverBannerDao; } public void setDiscoverBannerDao(DiscoverBannerDao discoverBannerDao) { this.discoverBannerDao = discoverBannerDao; } public File getSource() { return source; } public void setSource(File source) { this.source = source; try { this.cfg.setDirectoryForTemplateLoading(source); } catch (IOException e) { this.source = null; this.cfg.setTemplateLoader(new TemplateLoader() { @Override public Reader getReader(Object templateSource, String encoding) throws IOException { StringReader reader = new StringReader("TemplateService'source is invalid dir,so "+templateSource.toString()+" can't read"); return reader; } @Override public long getLastModified(Object templateSource) { return 0; } @Override public Object findTemplateSource(String name) throws IOException { return name; } @Override public void closeTemplateSource(Object templateSource) throws IOException { } }); } cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); } public void genCnt(String templateName,File dest,Map<String,Object> root) throws IOException, TemplateException { if(dest.exists()){ if(!dest.delete()){ throw new IOException("delete file["+dest.getAbsolutePath()+"] error"); } } Template template = this.cfg.getTemplate(templateName,"UTF-8"); OutputStream out = new FileOutputStream(dest); try { template.process(root, new OutputStreamWriter(out, ConstData.UTF8)); out.flush(); } finally { out.close(); } } @Path @Post public void insert(@JdbcConn(true) Connection con,@RequestParam(excludeFields = {"createTime", "modifyTime", "id"}) DiscoverBanner discoverBanner,@Nullable String fn) throws SQLException, IOException { long id = this.discoverBannerDao.insert(con, discoverBanner); this.imageService.saveBannerImage(id, fn); } @Path("/id/{id}") @Get public DiscoverBanner query(@JdbcConn Connection con,@PathVar long id)throws SQLException { return this.discoverBannerDao.query(con, id); } @Path("/update") @Post public void update(@JdbcConn(true) Connection con, DiscoverBanner banner,@Nullable String fn) throws SQLException, IOException { this.discoverBannerDao.update(con, banner); this.imageService.saveBannerImage(banner.getId(), fn); } @Path("/pq") @Get public PageQueryResult<DiscoverBanner> pageQuery(@JdbcConn Connection con, @Nullable String title, @DefaultValue("1") int pageNo, @DefaultValue("10") int pageSize) throws SQLException { return this.discoverBannerDao.query(con,title,pageNo,pageSize); } @Path("/putOn") @Post public void putOn(@JdbcConn(true) Connection con, Long[] ids, @LoginUser ConsoleAuthUser user) throws SQLException { this.setSource(new File("D:/tmp/banner")); ArrayList<Banner> banners = new ArrayList<>(); for (int i=0;i<5;i++) { DiscoverBanner discoverBanner = this.discoverBannerDao.query(con, ids[i]); discoverBanner.setBeginTime(DateUtil.formatDateTime(System.currentTimeMillis())); discoverBanner.setModifier(user.getId()); this.discoverBannerDao.update(con, discoverBanner); Banner b = new Banner(); b.setId(discoverBanner.getArticleId()); b.setImage("image"+i); b.setBanner(discoverBanner.getBanner()); b.setTitle(discoverBanner.getTitle()); banners.add(b); } Map<String, Object> root = new HashMap<String, Object>(); root.put("banner", banners); try { this.genCnt("slideTab.html",new File("D:/tmp/banner/generate.html"),root); this.genCnt("appfound.html",new File("D:/tmp/banner/generateApp.html"),root); } catch (IOException | TemplateException e) { e.printStackTrace(); } } public static class Banner{ private String id; private String image; private String title; private int banner; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getBanner() { return banner; } public void setBanner(int banner) { this.banner = banner; } } }