package com.kmall.gen.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.kmall.gen.service.SysGeneratorService; import com.kmall.common.utils.PageUtils; import com.kmall.common.utils.Query; import com.kmall.common.utils.R; import com.kmall.common.xss.XssHttpServletRequestWrapper; import org.apache.commons.io.IOUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; import java.util.Map; /** * 代码生成器 * * @author Scott * @email * @date 2017年1月3日 下午6:35:28 */ @Controller @RequestMapping("/sys/generator") public class SysGeneratorController { @Autowired private SysGeneratorService sysGeneratorService; /** * 列表 */ @ResponseBody @RequestMapping("/list") @RequiresPermissions("sys:generator:list") public R list(@RequestParam Map params) { //查询列表数据 Query query = new Query(params); List> list = sysGeneratorService.queryList(query); int total = sysGeneratorService.queryTotal(query); PageUtils pageUtil = new PageUtils(list, total, query.getLimit(), query.getPage()); return R.ok().put("page", pageUtil); } /** * 生成代码 */ @RequestMapping("/code") @RequiresPermissions("sys:generator:code") public void code(HttpServletRequest request, HttpServletResponse response) throws IOException { String[] tableNames = new String[]{}; //获取表名,不进行xss过滤 HttpServletRequest orgRequest = XssHttpServletRequestWrapper.getOrgRequest(request); String tables = orgRequest.getParameter("tables"); byte[] data = sysGeneratorService.generatorCode(tables.split(",")); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"AutoCode.zip\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream; charset=UTF-8"); IOUtils.write(data, response.getOutputStream()); } }