package com.landtool.lanbase.modules.sys.controller; import com.alibaba.fastjson.JSON; import com.landtool.lanbase.common.annotation.LogAction; import com.landtool.lanbase.common.utils.PageUtils; import com.landtool.lanbase.common.utils.Query; import com.landtool.lanbase.common.utils.Result; import com.landtool.lanbase.modules.sys.service.SysGeneratorService; import springfox.documentation.annotations.ApiIgnore; 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.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 lanbase * @Description: TODO(代码生成器) * @date 2017-6-23 15:07 */ @Controller @RequestMapping("/sys/generator") @ApiIgnore() public class SysGeneratorController extends AbstractController{ @Autowired private SysGeneratorService sysGeneratorService; /** * 列表 */ @ResponseBody @RequestMapping("/list") // @RequiresPermissions("sys:generator:list") // @LogAction("查询") public Result 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 Result.ok().put("page", pageUtil); } /** * 生成代码 */ @RequestMapping("/code") //@RequiresPermissions("sys:generator:code") public void code(HttpServletRequest request, HttpServletResponse response) throws IOException{ String[] tableNames = new String[]{}; String tables = request.getParameter("tables"); tableNames = JSON.parseArray(tables).toArray(tableNames); byte[] data = sysGeneratorService.generatorCode(tableNames); response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"lanbase-generate-code.zip\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream; charset=UTF-8"); IOUtils.write(data, response.getOutputStream()); } }