123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- package com.ruoyi.gen.controller;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.io.IOUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.DeleteMapping;
- 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.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import com.ruoyi.common.core.text.Convert;
- import com.ruoyi.common.core.web.controller.BaseController;
- import com.ruoyi.common.core.web.domain.AjaxResult;
- import com.ruoyi.common.core.web.page.TableDataInfo;
- import com.ruoyi.common.log.annotation.Log;
- import com.ruoyi.common.log.enums.BusinessType;
- import com.ruoyi.common.security.annotation.PreAuthorize;
- import com.ruoyi.gen.domain.GenTable;
- import com.ruoyi.gen.domain.GenTableColumn;
- import com.ruoyi.gen.service.IGenTableColumnService;
- import com.ruoyi.gen.service.IGenTableService;
- /**
- * 代码生成 操作处理
- *
- * @author ruoyi
- */
- @RequestMapping("/gen")
- @RestController
- public class GenController extends BaseController
- {
- @Autowired
- private IGenTableService genTableService;
- @Autowired
- private IGenTableColumnService genTableColumnService;
- /**
- * 查询代码生成列表
- */
- @PreAuthorize(hasPermi = "tool:gen:list")
- @GetMapping("/list")
- public TableDataInfo genList(GenTable genTable)
- {
- startPage();
- List<GenTable> list = genTableService.selectGenTableList(genTable);
- return getDataTable(list);
- }
- /**
- * 修改代码生成业务
- */
- @PreAuthorize(hasPermi = "tool:gen:query")
- @GetMapping(value = "/{talbleId}")
- public AjaxResult getInfo(@PathVariable Long talbleId)
- {
- GenTable table = genTableService.selectGenTableById(talbleId);
- List<GenTable> tables = genTableService.selectGenTableAll();
- List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(talbleId);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("info", table);
- map.put("rows", list);
- map.put("tables", tables);
- return AjaxResult.success(map);
- }
- /**
- * 查询数据库列表
- */
- @PreAuthorize(hasPermi = "tool:gen:list")
- @GetMapping("/db/list")
- public TableDataInfo dataList(GenTable genTable)
- {
- startPage();
- List<GenTable> list = genTableService.selectDbTableList(genTable);
- return getDataTable(list);
- }
- /**
- * 查询数据表字段列表
- */
- @GetMapping(value = "/column/{talbleId}")
- public TableDataInfo columnList(Long tableId)
- {
- TableDataInfo dataInfo = new TableDataInfo();
- List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(tableId);
- dataInfo.setRows(list);
- dataInfo.setTotal(list.size());
- return dataInfo;
- }
- /**
- * 导入表结构(保存)
- */
- @PreAuthorize(hasPermi = "tool:gen:import")
- @Log(title = "代码生成", businessType = BusinessType.IMPORT)
- @PostMapping("/importTable")
- public AjaxResult importTableSave(String tables)
- {
- String[] tableNames = Convert.toStrArray(tables);
- // 查询表信息
- List<GenTable> tableList = genTableService.selectDbTableListByNames(tableNames);
- genTableService.importGenTable(tableList);
- return AjaxResult.success();
- }
- /**
- * 修改保存代码生成业务
- */
- @PreAuthorize(hasPermi = "tool:gen:edit")
- @Log(title = "代码生成", businessType = BusinessType.UPDATE)
- @PutMapping
- public AjaxResult editSave(@Validated @RequestBody GenTable genTable)
- {
- genTableService.validateEdit(genTable);
- genTableService.updateGenTable(genTable);
- return AjaxResult.success();
- }
- /**
- * 删除代码生成
- */
- @PreAuthorize(hasPermi = "tool:gen:remove")
- @Log(title = "代码生成", businessType = BusinessType.DELETE)
- @DeleteMapping("/{tableIds}")
- public AjaxResult remove(@PathVariable Long[] tableIds)
- {
- genTableService.deleteGenTableByIds(tableIds);
- return AjaxResult.success();
- }
- /**
- * 预览代码
- */
- @PreAuthorize(hasPermi = "tool:gen:preview")
- @GetMapping("/preview/{tableId}")
- public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException
- {
- Map<String, String> dataMap = genTableService.previewCode(tableId);
- return AjaxResult.success(dataMap);
- }
- /**
- * 生成代码(下载方式)
- */
- @PreAuthorize(hasPermi = "tool:gen:code")
- @Log(title = "代码生成", businessType = BusinessType.GENCODE)
- @GetMapping("/download/{tableName}")
- public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException
- {
- byte[] data = genTableService.downloadCode(tableName);
- genCode(response, data);
- }
- /**
- * 生成代码(自定义路径)
- */
- @PreAuthorize(hasPermi = "tool:gen:code")
- @Log(title = "代码生成", businessType = BusinessType.GENCODE)
- @GetMapping("/genCode/{tableName}")
- public AjaxResult genCode(@PathVariable("tableName") String tableName)
- {
- genTableService.generatorCode(tableName);
- return AjaxResult.success();
- }
- /**
- * 同步数据库
- */
- @PreAuthorize(hasPermi = "tool:gen:edit")
- @Log(title = "代码生成", businessType = BusinessType.UPDATE)
- @GetMapping("/synchDb/{tableName}")
- public AjaxResult synchDb(@PathVariable("tableName") String tableName)
- {
- genTableService.synchDb(tableName);
- return AjaxResult.success();
- }
- /**
- * 批量生成代码
- */
- @PreAuthorize(hasPermi = "tool:gen:code")
- @Log(title = "代码生成", businessType = BusinessType.GENCODE)
- @GetMapping("/batchGenCode")
- public void batchGenCode(HttpServletResponse response, String tables) throws IOException
- {
- String[] tableNames = Convert.toStrArray(tables);
- byte[] data = genTableService.downloadCode(tableNames);
- genCode(response, data);
- }
- /**
- * 生成zip文件
- */
- private void genCode(HttpServletResponse response, byte[] data) throws IOException
- {
- response.reset();
- response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\"");
- response.addHeader("Content-Length", "" + data.length);
- response.setContentType("application/octet-stream; charset=UTF-8");
- IOUtils.write(data, response.getOutputStream());
- }
- }
|