控制层代码GeneratorController
import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import utils.R; import utils.GenUtils; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.io.IOUtils; import com.alibaba.dubbo.config.annotation.Reference; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.fastjson.JSON; import com.zscat.shop.service.GeneratorService; @RequestMapping("/common/generator") @Controller public class GeneratorController { String prefix = "common/generator"; @Reference(version = "1.0.0") GeneratorService generatorService; @GetMapping() String generator() { return prefix + "/list"; } @ResponseBody @GetMapping("/list") List<Map<String, Object>> list() { List<Map<String, Object>> list = generatorService.list(); return list; }; @RequestMapping("/code/{tableName}") public void code(HttpServletRequest request, HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException { String[] tableNames = new String[] { tableName }; byte[] data = generatorService.generatorCode(tableNames); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"zscat.zip\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream; charset=UTF-8"); IOUtils.write(data, response.getOutputStream()); } @RequestMapping("/batchCode") public void batchCode(HttpServletRequest request, HttpServletResponse response, String tables) throws IOException { String[] tableNames = new String[] {}; tableNames = JSON.parseArray(tables).toArray(tableNames); byte[] data = generatorService.generatorCode(tableNames); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"zscat.zip\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream; charset=UTF-8"); IOUtils.write(data, response.getOutputStream()); } @GetMapping("/edit") public String edit(Model model) { Configuration conf = GenUtils.getConfig(); Map<String, Object> property = new HashMap<>(); property.put("author", conf.getProperty("author")); property.put("email", conf.getProperty("email")); property.put("package", conf.getProperty("package")); property.put("autoRemovePre", conf.getProperty("autoRemovePre")); property.put("tablePrefix", conf.getProperty("tablePrefix")); model.addAttribute("property", property); return prefix + "/edit"; } @ResponseBody @PostMapping("/update") R update(@RequestParam Map<String, Object> map) { try { PropertiesConfiguration conf = new PropertiesConfiguration("generator.properties"); conf.setProperty("author", map.get("author")); conf.setProperty("email", map.get("email")); conf.setProperty("package", map.get("package")); conf.setProperty("autoRemovePre", map.get("autoRemovePre")); conf.setProperty("tablePrefix", map.get("tablePrefix")); conf.save(); } catch (ConfigurationException e) { return R.error("保存配置文件出错"); } return R.ok(); } }