From 8ee749f137987de436ccd869adc43f31979286e8 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 04 三月 2022 21:09:46 +0800 Subject: [PATCH] update 初步适配oracle(未完成) --- ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java | 335 +++++++++ ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableColumnMapper.java | 24 ruoyi-generator/pom.xml | 20 ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableMapper.java | 62 + ruoyi-generator/src/main/java/com/ruoyi/generator/service/OracleGenTableServiceImpl.java | 391 ++++++++++ ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableColumnMapper.xml | 53 + ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java | 8 ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableMapper.xml | 117 +++ ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 159 --- /dev/null | 44 - script/sql/oracle/oracle_ry_vue_4.X.sql | 954 +++++++++++++++++++++++++ ruoyi-ui/src/api/tool/gen.js | 12 ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java | 9 script/docker/database.yml | 17 14 files changed, 2,017 insertions(+), 188 deletions(-) diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml index f44a9e5..d713c4c 100644 --- a/ruoyi-generator/pom.xml +++ b/ruoyi-generator/pom.xml @@ -29,6 +29,26 @@ <artifactId>ruoyi-common</artifactId> </dependency> + <!-- MySql --> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + </dependency> + <dependency> + <groupId>com.oracle.database.jdbc</groupId> + <artifactId>ojdbc8</artifactId> + </dependency> + <!-- PostgreSql --> + <dependency> + <groupId>org.postgresql</groupId> + <artifactId>postgresql</artifactId> + </dependency> + <!-- SqlServer --> + <dependency> + <groupId>com.microsoft.sqlserver</groupId> + <artifactId>mssql-jdbc</artifactId> + </dependency> + </dependencies> </project> diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java index 09bf1ae..218227a 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java @@ -5,13 +5,12 @@ import cn.hutool.core.io.IoUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.generator.domain.GenTable; import com.ruoyi.generator.domain.GenTableColumn; -import com.ruoyi.generator.service.IGenTableColumnService; import com.ruoyi.generator.service.IGenTableService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -38,7 +37,6 @@ public class GenController extends BaseController { private final IGenTableService genTableService; - private final IGenTableColumnService genTableColumnService; /** * 鏌ヨ浠g爜鐢熸垚鍒楄〃 @@ -59,7 +57,7 @@ public R<Map<String, Object>> getInfo(@PathVariable Long talbleId) { GenTable table = genTableService.selectGenTableById(talbleId); List<GenTable> tables = genTableService.selectGenTableAll(); - List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(talbleId); + List<GenTableColumn> list = genTableService.selectGenTableColumnListByTableId(talbleId); Map<String, Object> map = new HashMap<String, Object>(); map.put("info", table); map.put("rows", list); @@ -85,7 +83,7 @@ @GetMapping(value = "/column/{talbleId}") public TableDataInfo<GenTableColumn> columnList(Long tableId) { TableDataInfo<GenTableColumn> dataInfo = new TableDataInfo<>(); - List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(tableId); + List<GenTableColumn> list = genTableService.selectGenTableColumnListByTableId(tableId); dataInfo.setRows(list); dataInfo.setTotal(list.size()); return dataInfo; diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableColumnMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableColumnMapper.java new file mode 100644 index 0000000..b14f2e6 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableColumnMapper.java @@ -0,0 +1,24 @@ +package com.ruoyi.generator.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.ruoyi.common.core.mapper.BaseMapperPlus; +import com.ruoyi.generator.domain.GenTableColumn; + +import java.util.List; + +/** + * 涓氬姟瀛楁 鏁版嵁灞� + * + * @author Lion Li + */ +@InterceptorIgnore(dataPermission = "true") +public interface OracleGenTableColumnMapper extends BaseMapperPlus<OracleGenTableColumnMapper, GenTableColumn, GenTableColumn> { + /** + * 鏍规嵁琛ㄥ悕绉版煡璇㈠垪淇℃伅 + * + * @param tableName 琛ㄥ悕绉� + * @return 鍒椾俊鎭� + */ + List<GenTableColumn> selectDbTableColumnsByName(String tableName); + +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableMapper.java new file mode 100644 index 0000000..23a5fed --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/OracleGenTableMapper.java @@ -0,0 +1,62 @@ +package com.ruoyi.generator.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.mapper.BaseMapperPlus; +import com.ruoyi.generator.domain.GenTable; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 涓氬姟 鏁版嵁灞� + * + * @author Lion Li + */ +@InterceptorIgnore(dataPermission = "true") +public interface OracleGenTableMapper extends BaseMapperPlus<OracleGenTableMapper, GenTable, GenTable> { + + Page<GenTable> selectPageDbTableList(@Param("page") Page<GenTable> page, @Param(Constants.WRAPPER) Wrapper<Object> queryWrapper); + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param queryWrapper 鏌ヨ鏉′欢 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + List<GenTable> selectDbTableList(@Param(Constants.WRAPPER) Wrapper<Object> queryWrapper); + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param tableNames 琛ㄥ悕绉扮粍 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + List<GenTable> selectDbTableListByNames(String[] tableNames); + + /** + * 鏌ヨ鎵�鏈夎〃淇℃伅 + * + * @return 琛ㄤ俊鎭泦鍚� + */ + List<GenTable> selectGenTableAll(); + + /** + * 鏌ヨ琛↖D涓氬姟淇℃伅 + * + * @param id 涓氬姟ID + * @return 涓氬姟淇℃伅 + */ + GenTable selectGenTableById(Long id); + + /** + * 鏌ヨ琛ㄥ悕绉颁笟鍔′俊鎭� + * + * @param tableName 琛ㄥ悕绉� + * @return 涓氬姟淇℃伅 + */ + GenTable selectGenTableByName(String tableName); + +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java new file mode 100644 index 0000000..b51668f --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java @@ -0,0 +1,335 @@ +package com.ruoyi.generator.service; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.ruoyi.common.constant.GenConstants; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.util.VelocityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +import javax.sql.DataSource; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.sql.DatabaseMetaData; +import java.sql.SQLException; +import java.util.List; +import java.util.Map; +import java.util.zip.ZipOutputStream; + +/** + * 涓氬姟 鏈嶅姟灞傚疄鐜� + * + * @author Lion Li + */ +@DS("#header.datasource") +@Primary +@Service +public class BaseGenTableServiceImpl implements IGenTableService { + + @Autowired + private DataSource dataSource; + + public BaseGenTableServiceImpl getService() { + DynamicRoutingDataSource ds = (DynamicRoutingDataSource) this.dataSource; + DataSource dataSource = ds.determineDataSource(); + try { + DatabaseMetaData metaData = dataSource.getConnection().getMetaData(); + String databaseProductName = metaData.getDatabaseProductName(); + if ("MySQL".equals(databaseProductName)) { + return SpringUtils.getBean(GenTableServiceImpl.class); + } else if ("Oracle".equals(databaseProductName)) { + return SpringUtils.getBean(OracleGenTableServiceImpl.class); + } else if ("PostgreSQL".equals(databaseProductName)) { + + } else if ("Microsoft SQL Server".equals(databaseProductName)) { + + } else { + throw new ServiceException("褰撳墠鏁版嵁搴撶被鍨嬩笉鏀寔 => " + databaseProductName); + } + } catch (SQLException e) { + throw new ServiceException(e.getMessage()); + } + return null; + } + + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + @Override + public List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId) { + return getService().selectGenTableColumnListByTableId(tableId); + } + + /** + * 鏌ヨ涓氬姟淇℃伅 + * + * @param id 涓氬姟ID + * @return 涓氬姟淇℃伅 + */ + @Override + public GenTable selectGenTableById(Long id) { + return getService().selectGenTableById(id); + } + + @Override + public TableDataInfo<GenTable> selectPageGenTableList(GenTable genTable, PageQuery pageQuery) { + return getService().selectPageGenTableList(genTable, pageQuery); + } + + /** + * 鏌ヨ涓氬姟鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 涓氬姟闆嗗悎 + */ + @Override + public List<GenTable> selectGenTableList(GenTable genTable) { + return getService().selectGenTableList(genTable); + } + + + @Override + public TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery){ + return getService().selectPageDbTableList(genTable, pageQuery); + } + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + @Override + public List<GenTable> selectDbTableList(GenTable genTable) { + return getService().selectDbTableList(genTable); + } + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param tableNames 琛ㄥ悕绉扮粍 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + @Override + public List<GenTable> selectDbTableListByNames(String[] tableNames) { + return getService().selectDbTableListByNames(tableNames); + } + + /** + * 鏌ヨ鎵�鏈夎〃淇℃伅 + * + * @return 琛ㄤ俊鎭泦鍚� + */ + @Override + public List<GenTable> selectGenTableAll() { + return getService().selectGenTableAll(); + } + + /** + * 淇敼涓氬姟 + * + * @param genTable 涓氬姟淇℃伅 + * @return 缁撴灉 + */ + @Override + public void updateGenTable(GenTable genTable) { + getService().updateGenTable(genTable); + } + + /** + * 鍒犻櫎涓氬姟瀵硅薄 + * + * @param tableIds 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public void deleteGenTableByIds(Long[] tableIds) { + getService().deleteGenTableByIds(tableIds); + } + + /** + * 瀵煎叆琛ㄧ粨鏋� + * + * @param tableList 瀵煎叆琛ㄥ垪琛� + */ + @Override + public void importGenTable(List<GenTable> tableList) { + getService().importGenTable(tableList); + } + + /** + * 棰勮浠g爜 + * + * @param tableId 琛ㄧ紪鍙� + * @return 棰勮鏁版嵁鍒楄〃 + */ + @Override + public Map<String, String> previewCode(Long tableId) { + return getService().previewCode(tableId); + } + + /** + * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 + * + * @param tableName 琛ㄥ悕绉� + * @return 鏁版嵁 + */ + @Override + public byte[] downloadCode(String tableName) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + generatorCode(tableName, zip); + IoUtil.close(zip); + return outputStream.toByteArray(); + } + + /** + * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛� + * + * @param tableName 琛ㄥ悕绉� + */ + @Override + public void generatorCode(String tableName) { + getService().generatorCode(tableName); + } + + /** + * 鍚屾鏁版嵁搴� + * + * @param tableName 琛ㄥ悕绉� + */ + @Override + public void synchDb(String tableName) { + getService().synchDb(tableName); + } + + /** + * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 + * + * @param tableNames 琛ㄦ暟缁� + * @return 鏁版嵁 + */ + @Override + public byte[] downloadCode(String[] tableNames) { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ZipOutputStream zip = new ZipOutputStream(outputStream); + for (String tableName : tableNames) { + generatorCode(tableName, zip); + } + IoUtil.close(zip); + return outputStream.toByteArray(); + } + + /** + * 鏌ヨ琛ㄤ俊鎭苟鐢熸垚浠g爜 + */ + public void generatorCode(String tableName, ZipOutputStream zip) { + getService().generatorCode(tableName, zip); + } + + /** + * 淇敼淇濆瓨鍙傛暟鏍¢獙 + * + * @param genTable 涓氬姟淇℃伅 + */ + @Override + public void validateEdit(GenTable genTable) { + if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { + String options = JsonUtils.toJsonString(genTable.getParams()); + Dict paramsObj = JsonUtils.parseMap(options); + if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_CODE))) { + throw new ServiceException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌�"); + } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_PARENT_CODE))) { + throw new ServiceException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖"); + } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_NAME))) { + throw new ServiceException("鏍戝悕绉板瓧娈典笉鑳戒负绌�"); + } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { + if (StringUtils.isEmpty(genTable.getSubTableName())) { + throw new ServiceException("鍏宠仈瀛愯〃鐨勮〃鍚嶄笉鑳戒负绌�"); + } else if (StringUtils.isEmpty(genTable.getSubTableFkName())) { + throw new ServiceException("瀛愯〃鍏宠仈鐨勫閿悕涓嶈兘涓虹┖"); + } + } + } + } + + /** + * 璁剧疆涓婚敭鍒椾俊鎭� + * + * @param table 涓氬姟琛ㄤ俊鎭� + */ + public void setPkColumn(GenTable table) { + for (GenTableColumn column : table.getColumns()) { + if (column.isPk()) { + table.setPkColumn(column); + break; + } + } + if (ObjectUtil.isNull(table.getPkColumn())) { + table.setPkColumn(table.getColumns().get(0)); + } + if (GenConstants.TPL_SUB.equals(table.getTplCategory())) { + for (GenTableColumn column : table.getSubTable().getColumns()) { + if (column.isPk()) { + table.getSubTable().setPkColumn(column); + break; + } + } + if (ObjectUtil.isNull(table.getSubTable().getPkColumn())) { + table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); + } + } + } + + /** + * 璁剧疆浠g爜鐢熸垚鍏朵粬閫夐」鍊� + * + * @param genTable 璁剧疆鍚庣殑鐢熸垚瀵硅薄 + */ + public void setTableFromOptions(GenTable genTable) { + Dict paramsObj = JsonUtils.parseMap(genTable.getOptions()); + if (ObjectUtil.isNotNull(paramsObj)) { + String treeCode = paramsObj.getStr(GenConstants.TREE_CODE); + String treeParentCode = paramsObj.getStr(GenConstants.TREE_PARENT_CODE); + String treeName = paramsObj.getStr(GenConstants.TREE_NAME); + String parentMenuId = paramsObj.getStr(GenConstants.PARENT_MENU_ID); + String parentMenuName = paramsObj.getStr(GenConstants.PARENT_MENU_NAME); + + genTable.setTreeCode(treeCode); + genTable.setTreeParentCode(treeParentCode); + genTable.setTreeName(treeName); + genTable.setParentMenuId(parentMenuId); + genTable.setParentMenuName(parentMenuName); + } + } + + /** + * 鑾峰彇浠g爜鐢熸垚鍦板潃 + * + * @param table 涓氬姟琛ㄤ俊鎭� + * @param template 妯℃澘鏂囦欢璺緞 + * @return 鐢熸垚鍦板潃 + */ + public static String getGenPath(GenTable table, String template) { + String genPath = table.getGenPath(); + if (StringUtils.equals(genPath, "/")) { + return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table); + } + return genPath + File.separator + VelocityUtils.getFileName(template, table); + } +} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java deleted file mode 100644 index 78260aa..0000000 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.ruoyi.generator.service; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.ruoyi.generator.domain.GenTableColumn; -import com.ruoyi.generator.mapper.GenTableColumnMapper; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import java.util.Arrays; -import java.util.List; - -/** - * 涓氬姟瀛楁 鏈嶅姟灞傚疄鐜� - * - * @author Lion Li - */ -@RequiredArgsConstructor -@Service -public class GenTableColumnServiceImpl implements IGenTableColumnService { - - private final GenTableColumnMapper baseMapper; - - /** - * 鏌ヨ涓氬姟瀛楁鍒楄〃 - * - * @param tableId 涓氬姟瀛楁缂栧彿 - * @return 涓氬姟瀛楁闆嗗悎 - */ - @Override - public List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId) { - return baseMapper.selectList(new LambdaQueryWrapper<GenTableColumn>() - .eq(GenTableColumn::getTableId, tableId) - .orderByAsc(GenTableColumn::getSort)); - } - - /** - * 鏂板涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int insertGenTableColumn(GenTableColumn genTableColumn) { - return baseMapper.insert(genTableColumn); - } - - /** - * 淇敼涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - @Override - public int updateGenTableColumn(GenTableColumn genTableColumn) { - return baseMapper.updateById(genTableColumn); - } - - /** - * 鍒犻櫎涓氬姟瀛楁瀵硅薄 - * - * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - @Override - public int deleteGenTableColumnByIds(String ids) { - return baseMapper.deleteBatchIds(Arrays.asList(ids.split(","))); - } -} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java index 80b1c96..f957009 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java @@ -2,15 +2,12 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; -import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.constant.GenConstants; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.ServiceException; @@ -31,10 +28,7 @@ import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.IOException; import java.io.StringWriter; import java.nio.charset.StandardCharsets; @@ -52,10 +46,23 @@ @Slf4j @RequiredArgsConstructor @Service -public class GenTableServiceImpl implements IGenTableService { +public class GenTableServiceImpl extends BaseGenTableServiceImpl { private final GenTableMapper baseMapper; private final GenTableColumnMapper genTableColumnMapper; + + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + @Override + public List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId) { + return genTableColumnMapper.selectList(new LambdaQueryWrapper<GenTableColumn>() + .eq(GenTableColumn::getTableId, tableId) + .orderByAsc(GenTableColumn::getSort)); + } /** * 鏌ヨ涓氬姟淇℃伅 @@ -119,8 +126,8 @@ Map<String, Object> params = genTable.getParams(); QueryWrapper<Object> wrapper = Wrappers.query(); wrapper.apply("table_schema = (select database())") - .notLike("table_name", "xxl_job_%") - .notLike("table_name", "gen_%") + .notLike("table_name", "xxl_job_") + .notLike("table_name", "gen_") .notInSql("table_name", "select table_name from gen_table") .like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName())) .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(table_comment)", StringUtils.lowerCase(genTable.getTableComment())) @@ -158,7 +165,6 @@ * @return 缁撴灉 */ @Override - @Transactional(rollbackFor = Exception.class) public void updateGenTable(GenTable genTable) { String options = JsonUtils.toJsonString(genTable.getParams()); genTable.setOptions(options); @@ -177,7 +183,6 @@ * @return 缁撴灉 */ @Override - @Transactional(rollbackFor = Exception.class) public void deleteGenTableByIds(Long[] tableIds) { List<Long> ids = Arrays.asList(tableIds); baseMapper.deleteBatchIds(ids); @@ -190,7 +195,6 @@ * @param tableList 瀵煎叆琛ㄥ垪琛� */ @Override - @Transactional(rollbackFor = Exception.class) public void importGenTable(List<GenTable> tableList) { String operName = LoginHelper.getUsername(); try { @@ -248,21 +252,6 @@ } /** - * 鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - * - * @param tableName 琛ㄥ悕绉� - * @return 鏁版嵁 - */ - @Override - public byte[] downloadCode(String tableName) { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - generatorCode(tableName, zip); - IoUtil.close(zip); - return outputStream.toByteArray(); - } - - /** * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛� * * @param tableName 琛ㄥ悕绉� @@ -304,7 +293,6 @@ * @param tableName 琛ㄥ悕绉� */ @Override - @Transactional(rollbackFor = Exception.class) public void synchDb(String tableName) { GenTable table = baseMapper.selectGenTableByName(tableName); List<GenTableColumn> tableColumns = table.getColumns(); @@ -328,9 +316,8 @@ column.setQueryType(prevColumn.getQueryType()); } if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) && !column.isPk() - && (column.isInsert() || column.isEdit()) - && ((column.isUsableColumn()) || (!column.isSuperColumn()))) - { + && (column.isInsert() || column.isEdit()) + && ((column.isUsableColumn()) || (!column.isSuperColumn()))) { // 濡傛灉鏄�(鏂板/淇敼&闈炰富閿�/闈炲拷鐣ュ強鐖跺睘鎬�)锛岀户缁繚鐣欏繀濉�/鏄剧ず绫诲瀷閫夐」 column.setIsRequired(prevColumn.getIsRequired()); column.setHtmlType(prevColumn.getHtmlType()); @@ -352,26 +339,10 @@ } /** - * 鎵归噺鐢熸垚浠g爜锛堜笅杞芥柟寮忥級 - * - * @param tableNames 琛ㄦ暟缁� - * @return 鏁版嵁 - */ - @Override - public byte[] downloadCode(String[] tableNames) { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ZipOutputStream zip = new ZipOutputStream(outputStream); - for (String tableName : tableNames) { - generatorCode(tableName, zip); - } - IoUtil.close(zip); - return outputStream.toByteArray(); - } - - /** * 鏌ヨ琛ㄤ俊鎭苟鐢熸垚浠g爜 */ - private void generatorCode(String tableName, ZipOutputStream zip) { + @Override + public void generatorCode(String tableName, ZipOutputStream zip) { // 鏌ヨ琛ㄤ俊鎭� GenTable table = baseMapper.selectGenTableByName(tableName); // 璁剧疆涓诲瓙琛ㄤ俊鎭� @@ -404,60 +375,6 @@ } /** - * 淇敼淇濆瓨鍙傛暟鏍¢獙 - * - * @param genTable 涓氬姟淇℃伅 - */ - @Override - public void validateEdit(GenTable genTable) { - if (GenConstants.TPL_TREE.equals(genTable.getTplCategory())) { - String options = JsonUtils.toJsonString(genTable.getParams()); - Dict paramsObj = JsonUtils.parseMap(options); - if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_CODE))) { - throw new ServiceException("鏍戠紪鐮佸瓧娈典笉鑳戒负绌�"); - } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_PARENT_CODE))) { - throw new ServiceException("鏍戠埗缂栫爜瀛楁涓嶈兘涓虹┖"); - } else if (StringUtils.isEmpty(paramsObj.getStr(GenConstants.TREE_NAME))) { - throw new ServiceException("鏍戝悕绉板瓧娈典笉鑳戒负绌�"); - } else if (GenConstants.TPL_SUB.equals(genTable.getTplCategory())) { - if (StringUtils.isEmpty(genTable.getSubTableName())) { - throw new ServiceException("鍏宠仈瀛愯〃鐨勮〃鍚嶄笉鑳戒负绌�"); - } else if (StringUtils.isEmpty(genTable.getSubTableFkName())) { - throw new ServiceException("瀛愯〃鍏宠仈鐨勫閿悕涓嶈兘涓虹┖"); - } - } - } - } - - /** - * 璁剧疆涓婚敭鍒椾俊鎭� - * - * @param table 涓氬姟琛ㄤ俊鎭� - */ - public void setPkColumn(GenTable table) { - for (GenTableColumn column : table.getColumns()) { - if (column.isPk()) { - table.setPkColumn(column); - break; - } - } - if (ObjectUtil.isNull(table.getPkColumn())) { - table.setPkColumn(table.getColumns().get(0)); - } - if (GenConstants.TPL_SUB.equals(table.getTplCategory())) { - for (GenTableColumn column : table.getSubTable().getColumns()) { - if (column.isPk()) { - table.getSubTable().setPkColumn(column); - break; - } - } - if (ObjectUtil.isNull(table.getSubTable().getPkColumn())) { - table.getSubTable().setPkColumn(table.getSubTable().getColumns().get(0)); - } - } - } - - /** * 璁剧疆涓诲瓙琛ㄤ俊鎭� * * @param table 涓氬姟琛ㄤ俊鎭� @@ -469,40 +386,4 @@ } } - /** - * 璁剧疆浠g爜鐢熸垚鍏朵粬閫夐」鍊� - * - * @param genTable 璁剧疆鍚庣殑鐢熸垚瀵硅薄 - */ - public void setTableFromOptions(GenTable genTable) { - Dict paramsObj = JsonUtils.parseMap(genTable.getOptions()); - if (ObjectUtil.isNotNull(paramsObj)) { - String treeCode = paramsObj.getStr(GenConstants.TREE_CODE); - String treeParentCode = paramsObj.getStr(GenConstants.TREE_PARENT_CODE); - String treeName = paramsObj.getStr(GenConstants.TREE_NAME); - String parentMenuId = paramsObj.getStr(GenConstants.PARENT_MENU_ID); - String parentMenuName = paramsObj.getStr(GenConstants.PARENT_MENU_NAME); - - genTable.setTreeCode(treeCode); - genTable.setTreeParentCode(treeParentCode); - genTable.setTreeName(treeName); - genTable.setParentMenuId(parentMenuId); - genTable.setParentMenuName(parentMenuName); - } - } - - /** - * 鑾峰彇浠g爜鐢熸垚鍦板潃 - * - * @param table 涓氬姟琛ㄤ俊鎭� - * @param template 妯℃澘鏂囦欢璺緞 - * @return 鐢熸垚鍦板潃 - */ - public static String getGenPath(GenTable table, String template) { - String genPath = table.getGenPath(); - if (StringUtils.equals(genPath, "/")) { - return System.getProperty("user.dir") + File.separator + "src" + File.separator + VelocityUtils.getFileName(template, table); - } - return genPath + File.separator + VelocityUtils.getFileName(template, table); - } } diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java deleted file mode 100644 index f14f36a..0000000 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.ruoyi.generator.service; - -import com.ruoyi.generator.domain.GenTableColumn; - -import java.util.List; - -/** - * 涓氬姟瀛楁 鏈嶅姟灞� - * - * @author Lion Li - */ -public interface IGenTableColumnService { - /** - * 鏌ヨ涓氬姟瀛楁鍒楄〃 - * - * @param tableId 涓氬姟瀛楁缂栧彿 - * @return 涓氬姟瀛楁闆嗗悎 - */ - List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId); - - /** - * 鏂板涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - int insertGenTableColumn(GenTableColumn genTableColumn); - - /** - * 淇敼涓氬姟瀛楁 - * - * @param genTableColumn 涓氬姟瀛楁淇℃伅 - * @return 缁撴灉 - */ - int updateGenTableColumn(GenTableColumn genTableColumn); - - /** - * 鍒犻櫎涓氬姟瀛楁淇℃伅 - * - * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID - * @return 缁撴灉 - */ - int deleteGenTableColumnByIds(String ids); -} diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java index 27fac79..092020a 100644 --- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java @@ -3,6 +3,7 @@ import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; import java.util.List; import java.util.Map; @@ -14,6 +15,14 @@ */ public interface IGenTableService { + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId); + TableDataInfo<GenTable> selectPageGenTableList(GenTable genTable, PageQuery pageQuery); diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/OracleGenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/OracleGenTableServiceImpl.java new file mode 100644 index 0000000..79550d5 --- /dev/null +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/OracleGenTableServiceImpl.java @@ -0,0 +1,391 @@ +package com.ruoyi.generator.service; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.IoUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.constant.Constants; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUtils; +import com.ruoyi.generator.domain.GenTable; +import com.ruoyi.generator.domain.GenTableColumn; +import com.ruoyi.generator.mapper.OracleGenTableColumnMapper; +import com.ruoyi.generator.mapper.OracleGenTableMapper; +import com.ruoyi.generator.util.GenUtils; +import com.ruoyi.generator.util.VelocityInitializer; +import com.ruoyi.generator.util.VelocityUtils; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.io.StringWriter; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +/** + * 涓氬姟 鏈嶅姟灞傚疄鐜� + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class OracleGenTableServiceImpl extends BaseGenTableServiceImpl { + + private final OracleGenTableMapper baseMapper; + private final OracleGenTableColumnMapper genTableColumnMapper; + + /** + * 鏌ヨ涓氬姟瀛楁鍒楄〃 + * + * @param tableId 涓氬姟瀛楁缂栧彿 + * @return 涓氬姟瀛楁闆嗗悎 + */ + @Override + public List<GenTableColumn> selectGenTableColumnListByTableId(Long tableId) { + return genTableColumnMapper.selectList(new LambdaQueryWrapper<GenTableColumn>() + .eq(GenTableColumn::getTableId, tableId) + .orderByAsc(GenTableColumn::getSort)); + } + /** + * 鏌ヨ涓氬姟淇℃伅 + * + * @param id 涓氬姟ID + * @return 涓氬姟淇℃伅 + */ + @Override + public GenTable selectGenTableById(Long id) { + GenTable genTable = baseMapper.selectGenTableById(id); + setTableFromOptions(genTable); + return genTable; + } + + @Override + public TableDataInfo<GenTable> selectPageGenTableList(GenTable genTable, PageQuery pageQuery) { + Page<GenTable> page = baseMapper.selectPage(pageQuery.build(), this.buildGenTableQueryWrapper(genTable)); + return TableDataInfo.build(page); + } + + /** + * 鏌ヨ涓氬姟鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 涓氬姟闆嗗悎 + */ + @Override + public List<GenTable> selectGenTableList(GenTable genTable) { + return baseMapper.selectList(this.buildGenTableQueryWrapper(genTable)); + } + + private QueryWrapper<GenTable> buildGenTableQueryWrapper(GenTable genTable) { + Map<String, Object> params = genTable.getParams(); + QueryWrapper<GenTable> wrapper = Wrappers.query(); + wrapper.like(StringUtils.isNotBlank(genTable.getTableName()), "lower(table_name)", StringUtils.lowerCase(genTable.getTableName())) + .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(table_comment)", StringUtils.lowerCase(genTable.getTableComment())) + .between(params.get("beginTime") != null && params.get("endTime") != null, + "create_time", params.get("beginTime"), params.get("endTime")); + return wrapper; + } + + + @Override + public TableDataInfo<GenTable> selectPageDbTableList(GenTable genTable, PageQuery pageQuery) { + Page<GenTable> page = baseMapper.selectPageDbTableList(pageQuery.build(), this.buildDbTableQueryWrapper(genTable)); + return TableDataInfo.build(page); + } + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param genTable 涓氬姟淇℃伅 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + @Override + public List<GenTable> selectDbTableList(GenTable genTable) { + return baseMapper.selectDbTableList(this.buildDbTableQueryWrapper(genTable)); + } + + private Wrapper<Object> buildDbTableQueryWrapper(GenTable genTable) { + Map<String, Object> params = genTable.getParams(); + QueryWrapper<Object> wrapper = Wrappers.query(); + wrapper.apply("dt.table_name = dtc.table_name") + .apply("dt.table_name = uo.object_name") + .eq("uo.object_type ", "TABLE") + .notLike("dt.table_name", "XXL_JOB_") + .notLike("dt.table_name", "GEN_") + .notInSql("lower(dt.table_name)", "select table_name from gen_table") + .like(StringUtils.isNotBlank(genTable.getTableName()), "lower(dt.table_name)", StringUtils.lowerCase(genTable.getTableName())) + .like(StringUtils.isNotBlank(genTable.getTableComment()), "lower(dt.table_comment)", StringUtils.lowerCase(genTable.getTableComment())) + .between(params.get("beginTime") != null && params.get("endTime") != null, + "create_time", params.get("beginTime"), params.get("endTime")) + .orderByDesc("create_time"); + return wrapper; + } + + /** + * 鏌ヨ鎹簱鍒楄〃 + * + * @param tableNames 琛ㄥ悕绉扮粍 + * @return 鏁版嵁搴撹〃闆嗗悎 + */ + @Override + public List<GenTable> selectDbTableListByNames(String[] tableNames) { + return baseMapper.selectDbTableListByNames(tableNames); + } + + /** + * 鏌ヨ鎵�鏈夎〃淇℃伅 + * + * @return 琛ㄤ俊鎭泦鍚� + */ + @Override + public List<GenTable> selectGenTableAll() { + return baseMapper.selectGenTableAll(); + } + + /** + * 淇敼涓氬姟 + * + * @param genTable 涓氬姟淇℃伅 + * @return 缁撴灉 + */ + @Override + public void updateGenTable(GenTable genTable) { + String options = JsonUtils.toJsonString(genTable.getParams()); + genTable.setOptions(options); + int row = baseMapper.updateById(genTable); + if (row > 0) { + for (GenTableColumn cenTableColumn : genTable.getColumns()) { + genTableColumnMapper.updateById(cenTableColumn); + } + } + } + + /** + * 鍒犻櫎涓氬姟瀵硅薄 + * + * @param tableIds 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ + @Override + public void deleteGenTableByIds(Long[] tableIds) { + List<Long> ids = Arrays.asList(tableIds); + baseMapper.deleteBatchIds(ids); + genTableColumnMapper.delete(new LambdaQueryWrapper<GenTableColumn>().in(GenTableColumn::getTableId, ids)); + } + + /** + * 瀵煎叆琛ㄧ粨鏋� + * + * @param tableList 瀵煎叆琛ㄥ垪琛� + */ + @Override + public void importGenTable(List<GenTable> tableList) { + String operName = LoginHelper.getUsername(); + try { + for (GenTable table : tableList) { + String tableName = table.getTableName(); + GenUtils.initTable(table, operName); + int row = baseMapper.insert(table); + if (row > 0) { + // 淇濆瓨鍒椾俊鎭� + List<GenTableColumn> genTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); + List<GenTableColumn> saveColumns = new ArrayList<>(); + for (GenTableColumn column : genTableColumns) { + GenUtils.initColumnField(column, table); + saveColumns.add(column); + } + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertBatch(saveColumns); + } + } + } + } catch (Exception e) { + throw new ServiceException("瀵煎叆澶辫触锛�" + e.getMessage()); + } + } + + /** + * 棰勮浠g爜 + * + * @param tableId 琛ㄧ紪鍙� + * @return 棰勮鏁版嵁鍒楄〃 + */ + @Override + public Map<String, String> previewCode(Long tableId) { + Map<String, String> dataMap = new LinkedHashMap<>(); + // 鏌ヨ琛ㄤ俊鎭� + GenTable table = baseMapper.selectGenTableById(tableId); + // 璁剧疆涓诲瓙琛ㄤ俊鎭� + setSubTable(table); + // 璁剧疆涓婚敭鍒椾俊鎭� + setPkColumn(table); + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + dataMap.put(template, sw.toString()); + } + return dataMap; + } + + /** + * 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛� + * + * @param tableName 琛ㄥ悕绉� + */ + @Override + public void generatorCode(String tableName) { + // 鏌ヨ琛ㄤ俊鎭� + GenTable table = baseMapper.selectGenTableByName(tableName); + // 璁剧疆涓诲瓙琛ㄤ俊鎭� + setSubTable(table); + // 璁剧疆涓婚敭鍒椾俊鎭� + setPkColumn(table); + + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + if (!StringUtils.containsAny(template, "sql.vm", "api.js.vm", "index.vue.vm", "index-tree.vue.vm")) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + String path = getGenPath(table, template); + FileUtils.writeUtf8String(sw.toString(), path); + } catch (Exception e) { + throw new ServiceException("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName()); + } + } + } + } + + /** + * 鍚屾鏁版嵁搴� + * + * @param tableName 琛ㄥ悕绉� + */ + @Override + public void synchDb(String tableName) { + GenTable table = baseMapper.selectGenTableByName(tableName); + List<GenTableColumn> tableColumns = table.getColumns(); + Map<String, GenTableColumn> tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); + + List<GenTableColumn> dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); + if (CollUtil.isEmpty(dbTableColumns)) { + throw new ServiceException("鍚屾鏁版嵁澶辫触锛屽師琛ㄧ粨鏋勪笉瀛樺湪"); + } + List<String> dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + + List<GenTableColumn> saveColumns = new ArrayList<>(); + dbTableColumns.forEach(column -> { + GenUtils.initColumnField(column, table); + if (tableColumnMap.containsKey(column.getColumnName())) { + GenTableColumn prevColumn = tableColumnMap.get(column.getColumnName()); + column.setColumnId(prevColumn.getColumnId()); + if (column.isList()) { + // 濡傛灉鏄垪琛紝缁х画淇濈暀鏌ヨ鏂瑰紡/瀛楀吀绫诲瀷閫夐」 + column.setDictType(prevColumn.getDictType()); + column.setQueryType(prevColumn.getQueryType()); + } + if (StringUtils.isNotEmpty(prevColumn.getIsRequired()) && !column.isPk() + && (column.isInsert() || column.isEdit()) + && ((column.isUsableColumn()) || (!column.isSuperColumn()))) + { + // 濡傛灉鏄�(鏂板/淇敼&闈炰富閿�/闈炲拷鐣ュ強鐖跺睘鎬�)锛岀户缁繚鐣欏繀濉�/鏄剧ず绫诲瀷閫夐」 + column.setIsRequired(prevColumn.getIsRequired()); + column.setHtmlType(prevColumn.getHtmlType()); + } + genTableColumnMapper.updateById(column); + } else { + genTableColumnMapper.insert(column); + } + }); + if (CollUtil.isNotEmpty(saveColumns)) { + genTableColumnMapper.insertBatch(saveColumns); + } + + List<GenTableColumn> delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(delColumns)) { + List<Long> ids = delColumns.stream().map(GenTableColumn::getColumnId).collect(Collectors.toList()); + genTableColumnMapper.deleteBatchIds(ids); + } + } + + /** + * 鏌ヨ琛ㄤ俊鎭苟鐢熸垚浠g爜 + */ + @Override + public void generatorCode(String tableName, ZipOutputStream zip) { + // 鏌ヨ琛ㄤ俊鎭� + GenTable table = baseMapper.selectGenTableByName(tableName); + // 璁剧疆涓诲瓙琛ㄤ俊鎭� + setSubTable(table); + // 璁剧疆涓婚敭鍒椾俊鎭� + setPkColumn(table); + + VelocityInitializer.initVelocity(); + + VelocityContext context = VelocityUtils.prepareContext(table); + + // 鑾峰彇妯℃澘鍒楄〃 + List<String> templates = VelocityUtils.getTemplateList(table.getTplCategory()); + for (String template : templates) { + // 娓叉煋妯℃澘 + StringWriter sw = new StringWriter(); + Template tpl = Velocity.getTemplate(template, Constants.UTF8); + tpl.merge(context, sw); + try { + // 娣诲姞鍒皕ip + zip.putNextEntry(new ZipEntry(VelocityUtils.getFileName(template, table))); + IoUtil.write(zip, StandardCharsets.UTF_8, false, sw.toString()); + IoUtil.close(sw); + zip.flush(); + zip.closeEntry(); + } catch (IOException e) { + log.error("娓叉煋妯℃澘澶辫触锛岃〃鍚嶏細" + table.getTableName(), e); + } + } + } + + /** + * 璁剧疆涓诲瓙琛ㄤ俊鎭� + * + * @param table 涓氬姟琛ㄤ俊鎭� + */ + public void setSubTable(GenTable table) { + String subTableName = table.getSubTableName(); + if (StringUtils.isNotEmpty(subTableName)) { + table.setSubTable(baseMapper.selectGenTableByName(subTableName)); + } + } + +} diff --git a/ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableColumnMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableColumnMapper.xml new file mode 100644 index 0000000..9317ab1 --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableColumnMapper.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.generator.mapper.OracleGenTableColumnMapper"> + + <resultMap type="GenTableColumn" id="GenTableColumnResult"> + <id property="columnId" column="column_id" /> + <result property="tableId" column="table_id" /> + <result property="columnName" column="column_name" /> + <result property="columnComment" column="column_comment" /> + <result property="columnType" column="column_type" /> + <result property="javaType" column="java_type" /> + <result property="javaField" column="java_field" /> + <result property="isPk" column="is_pk" /> + <result property="isIncrement" column="is_increment" /> + <result property="isRequired" column="is_required" /> + <result property="isInsert" column="is_insert" /> + <result property="isEdit" column="is_edit" /> + <result property="isList" column="is_list" /> + <result property="isQuery" column="is_query" /> + <result property="queryType" column="query_type" /> + <result property="htmlType" column="html_type" /> + <result property="dictType" column="dict_type" /> + <result property="sort" column="sort" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + </resultMap> + + <select id="selectDbTableColumnsByName" parameterType="String" resultMap="GenTableColumnResult"> + select lower(temp.column_name) as column_name, + (case when (temp.nullable = 'N' and temp.constraint_type != 'P') then '1' else null end) as is_required, + (case when temp.constraint_type = 'P' then '1' else '0' end) as is_pk, + temp.column_id as sort, + temp.comments as column_comment, + (case when temp.constraint_type = 'P' then '1' else '0' end) as is_increment, + lower(temp.data_type) as column_type + from ( + select col.column_id, col.column_name,col.nullable, col.data_type, colc.comments, uc.constraint_type + , row_number() over (partition by col.column_name order by uc.constraint_type desc) as row_flg + from user_tab_columns col + left join user_col_comments colc on colc.table_name = col.table_name and colc.column_name = col.column_name + left join user_cons_columns ucc on ucc.table_name = col.table_name and ucc.column_name = col.column_name + left join user_constraints uc on uc.constraint_name = ucc.constraint_name + where col.table_name = upper(#{tableName}) + ) temp + WHERE temp.row_flg = 1 + ORDER BY temp.column_id + </select> + +</mapper> diff --git a/ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableMapper.xml new file mode 100644 index 0000000..5bf1a20 --- /dev/null +++ b/ruoyi-generator/src/main/resources/mapper/generator/OracleGenTableMapper.xml @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.generator.mapper.OracleGenTableMapper"> + + <resultMap type="GenTable" id="GenTableResult"> + <id property="tableId" column="table_id" /> + <result property="tableName" column="table_name" /> + <result property="tableComment" column="table_comment" /> + <result property="subTableName" column="sub_table_name" /> + <result property="subTableFkName" column="sub_table_fk_name" /> + <result property="className" column="class_name" /> + <result property="tplCategory" column="tpl_category" /> + <result property="packageName" column="package_name" /> + <result property="moduleName" column="module_name" /> + <result property="businessName" column="business_name" /> + <result property="functionName" column="function_name" /> + <result property="functionAuthor" column="function_author" /> + <result property="genType" column="gen_type" /> + <result property="genPath" column="gen_path" /> + <result property="options" column="options" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + <result property="remark" column="remark" /> + <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> + </resultMap> + + <resultMap type="GenTableColumn" id="GenTableColumnResult"> + <id property="columnId" column="column_id" /> + <result property="tableId" column="table_id" /> + <result property="columnName" column="column_name" /> + <result property="columnComment" column="column_comment" /> + <result property="columnType" column="column_type" /> + <result property="javaType" column="java_type" /> + <result property="javaField" column="java_field" /> + <result property="isPk" column="is_pk" /> + <result property="isIncrement" column="is_increment" /> + <result property="isRequired" column="is_required" /> + <result property="isInsert" column="is_insert" /> + <result property="isEdit" column="is_edit" /> + <result property="isList" column="is_list" /> + <result property="isQuery" column="is_query" /> + <result property="queryType" column="query_type" /> + <result property="htmlType" column="html_type" /> + <result property="dictType" column="dict_type" /> + <result property="sort" column="sort" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + </resultMap> + + <select id="selectPageDbTableList" resultMap="GenTableResult"> + select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time + from user_tables dt, user_tab_comments dtc, user_objects uo + ${ew.getCustomSqlSegment} + </select> + + <select id="selectDbTableList" resultMap="GenTableResult"> + select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time + from user_tables dt, user_tab_comments dtc, user_objects uo + ${ew.getCustomSqlSegment} + </select> + + <select id="selectDbTableListByNames" resultMap="GenTableResult"> + select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time + from user_tables dt, user_tab_comments dtc, user_objects uo + where dt.table_name = dtc.table_name + and dt.table_name = uo.object_name + and uo.object_type = 'TABLE' + AND dt.table_name NOT LIKE 'XXL_JOB_%' AND dt.table_name NOT LIKE 'GEN_%' + AND dt.table_name NOT IN (select table_name from gen_table) + and lower(dt.table_name) in + <foreach collection="array" item="name" open="(" separator="," close=")"> + #{name} + </foreach> + </select> + + <select id="selectTableByName" parameterType="String" resultMap="GenTableResult"> + select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time + from user_tables dt, user_tab_comments dtc, user_objects uo + where dt.table_name = dtc.table_name + and dt.table_name = uo.object_name + and uo.object_type = 'TABLE' + AND dt.table_name NOT LIKE 'XXL_JOB_%' AND dt.table_name NOT LIKE 'GEN_%' + AND dt.table_name NOT IN (select table_name from gen_table) + and lower(dt.table_name) = #{tableName} + </select> + + <select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult"> + SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, + c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort + FROM gen_table t + LEFT JOIN gen_table_column c ON t.table_id = c.table_id + where t.table_id = #{tableId} order by c.sort + </select> + + <select id="selectGenTableByName" parameterType="String" resultMap="GenTableResult"> + SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, + c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort + FROM gen_table t + LEFT JOIN gen_table_column c ON t.table_id = c.table_id + where t.table_name = #{tableName} order by c.sort + </select> + + <select id="selectGenTableAll" parameterType="String" resultMap="GenTableResult"> + SELECT t.table_id, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.options, t.remark, + c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort + FROM gen_table t + LEFT JOIN gen_table_column c ON t.table_id = c.table_id + order by c.sort + </select> + +</mapper> diff --git a/ruoyi-ui/src/api/tool/gen.js b/ruoyi-ui/src/api/tool/gen.js index 4506927..5bea272 100644 --- a/ruoyi-ui/src/api/tool/gen.js +++ b/ruoyi-ui/src/api/tool/gen.js @@ -1,16 +1,21 @@ import request from '@/utils/request' +const dataName = "master"; + // 鏌ヨ鐢熸垚琛ㄦ暟鎹� export function listTable(query) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/list', method: 'get', params: query }) } + // 鏌ヨdb鏁版嵁搴撳垪琛� export function listDbTable(query) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/db/list', method: 'get', params: query @@ -20,6 +25,7 @@ // 鏌ヨ琛ㄨ缁嗕俊鎭� export function getGenTable(tableId) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/' + tableId, method: 'get' }) @@ -28,6 +34,7 @@ // 淇敼浠g爜鐢熸垚淇℃伅 export function updateGenTable(data) { return request({ + headers: { datasource: dataName }, url: '/tool/gen', method: 'put', data: data @@ -37,6 +44,7 @@ // 瀵煎叆琛� export function importTable(data) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/importTable', method: 'post', params: data @@ -46,6 +54,7 @@ // 棰勮鐢熸垚浠g爜 export function previewTable(tableId) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/preview/' + tableId, method: 'get' }) @@ -54,6 +63,7 @@ // 鍒犻櫎琛ㄦ暟鎹� export function delTable(tableId) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/' + tableId, method: 'delete' }) @@ -62,6 +72,7 @@ // 鐢熸垚浠g爜锛堣嚜瀹氫箟璺緞锛� export function genCode(tableName) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/genCode/' + tableName, method: 'get' }) @@ -70,6 +81,7 @@ // 鍚屾鏁版嵁搴� export function synchDb(tableName) { return request({ + headers: { datasource: dataName }, url: '/tool/gen/synchDb/' + tableName, method: 'get' }) diff --git a/script/docker/database.yml b/script/docker/database.yml new file mode 100644 index 0000000..e7c276f --- /dev/null +++ b/script/docker/database.yml @@ -0,0 +1,17 @@ +version: '3' + +services: + oracle: + image: tekintian/oracle12c:latest + container_name: oracle + environment: + # 鏃跺尯涓婃捣 + TZ: Asia/Shanghai + DBCA_TOTAL_MEMORY: 16192 + ports: + - "18080:8080" + - "1521:1521" + volumes: + # 鏁版嵁鎸傝浇 + - "/docker/oracle/data:/u01/app/oracle" + restart: always diff --git a/script/sql/oracle/oracle_ry_vue_4.X.sql b/script/sql/oracle/oracle_ry_vue_4.X.sql new file mode 100644 index 0000000..c13f5ac --- /dev/null +++ b/script/sql/oracle/oracle_ry_vue_4.X.sql @@ -0,0 +1,954 @@ +-- ---------------------------- +-- 1銆侀儴闂ㄨ〃 +-- ---------------------------- +create table sys_dept ( + dept_id number(20) not null, + parent_id number(20) default 0, + ancestors varchar2(50) default '', + dept_name varchar2(30) default '', + order_num number(4) default 0, + leader varchar2(20) default null, + phone varchar2(11) default null, + email varchar2(50) default null, + status char(1) default '0', + del_flag char(1) default '0', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date +); + +alter table sys_dept add constraint pk_sys_dept primary key (dept_id); + +comment on table sys_dept is '閮ㄩ棬琛�'; +comment on column sys_dept.dept_id is '閮ㄩ棬id'; +comment on column sys_dept.parent_id is '鐖堕儴闂╥d'; +comment on column sys_dept.ancestors is '绁栫骇鍒楄〃'; +comment on column sys_dept.dept_name is '閮ㄩ棬鍚嶇О'; +comment on column sys_dept.order_num is '鏄剧ず椤哄簭'; +comment on column sys_dept.leader is '璐熻矗浜�'; +comment on column sys_dept.phone is '鑱旂郴鐢佃瘽'; +comment on column sys_dept.email is '閭'; +comment on column sys_dept.status is '閮ㄩ棬鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_dept.del_flag is '鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�'; +comment on column sys_dept.create_by is '鍒涘缓鑰�'; +comment on column sys_dept.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_dept.update_by is '鏇存柊鑰�'; +comment on column sys_dept.update_time is '鏇存柊鏃堕棿'; + +-- ---------------------------- +-- 鍒濆鍖�-閮ㄩ棬琛ㄦ暟鎹� +-- ---------------------------- +insert into sys_dept values(100, 0, '0', '鑻ヤ緷绉戞妧', 0, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(101, 100, '0,100', '娣卞湷鎬诲叕鍙�', 1, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(102, 100, '0,100', '闀挎矙鍒嗗叕鍙�', 2, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(103, 101, '0,100,101', '鐮斿彂閮ㄩ棬', 1, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(104, 101, '0,100,101', '甯傚満閮ㄩ棬', 2, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(105, 101, '0,100,101', '娴嬭瘯閮ㄩ棬', 3, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(106, 101, '0,100,101', '璐㈠姟閮ㄩ棬', 4, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(107, 101, '0,100,101', '杩愮淮閮ㄩ棬', 5, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(108, 102, '0,100,102', '甯傚満閮ㄩ棬', 1, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); +insert into sys_dept values(109, 102, '0,100,102', '璐㈠姟閮ㄩ棬', 2, '鑻ヤ緷', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate, '', null); + + +-- ---------------------------- +-- 2銆佺敤鎴蜂俊鎭〃 +-- ---------------------------- +create table sys_user ( + user_id number(20) not null, + dept_id number(20) default null, + user_name varchar2(30) not null, + nick_name varchar2(30) not null, + user_type varchar2(10) default 'sys_user', + email varchar2(50) default '', + phonenumber varchar2(11) default '', + sex char(1) default '0', + avatar varchar2(100) default '', + password varchar2(100) default '', + status char(1) default '0', + del_flag char(1) default '0', + login_ip varchar2(128) default '', + login_date date, + create_by varchar2(64), + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) default '' +); + +alter table sys_user add constraint pk_sys_user primary key (user_id); + +comment on table sys_user is '鐢ㄦ埛淇℃伅琛�'; +comment on column sys_user.user_id is '鐢ㄦ埛ID'; +comment on column sys_user.dept_id is '閮ㄩ棬ID'; +comment on column sys_user.user_name is '鐢ㄦ埛璐﹀彿'; +comment on column sys_user.nick_name is '鐢ㄦ埛鏄电О'; +comment on column sys_user.user_type is '鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛�'; +comment on column sys_user.email is '鐢ㄦ埛閭'; +comment on column sys_user.phonenumber is '鎵嬫満鍙风爜'; +comment on column sys_user.sex is '鐢ㄦ埛鎬у埆锛�0鐢� 1濂� 2鏈煡锛�'; +comment on column sys_user.avatar is '澶村儚璺緞'; +comment on column sys_user.password is '瀵嗙爜'; +comment on column sys_user.status is '甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_user.del_flag is '鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�'; +comment on column sys_user.login_ip is '鏈�鍚庣櫥褰旾P'; +comment on column sys_user.login_date is '鏈�鍚庣櫥褰曟椂闂�'; +comment on column sys_user.create_by is '鍒涘缓鑰�'; +comment on column sys_user.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_user.update_by is '鏇存柊鑰�'; +comment on column sys_user.update_time is '鏇存柊鏃堕棿'; +comment on column sys_user.remark is '澶囨敞'; + +-- ---------------------------- +-- 鍒濆鍖�-鐢ㄦ埛淇℃伅琛ㄦ暟鎹� +-- ---------------------------- +insert into sys_user values(1, 103, 'admin', '鐤媯鐨勭嫯瀛怢i', 'sys_user', 'crazyLionLi@163.com', '15888888888', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate, 'admin', sysdate, '', null, '绠$悊鍛�'); +insert into sys_user values(2, 105, 'lionli', '鐤媯鐨勭嫯瀛怢i', 'sys_user', 'crazyLionLi@qq.com', '15666666666', '1', '', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '127.0.0.1', sysdate, 'admin', sysdate, '', null, '娴嬭瘯鍛�'); + + +-- ---------------------------- +-- 3銆佸矖浣嶄俊鎭〃 +-- ---------------------------- +create table sys_post ( + post_id number(20) not null, + post_code varchar2(64) not null, + post_name varchar2(50) not null, + post_sort number(4) not null, + status char(1) not null, + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) +); + +alter table sys_post add constraint pk_sys_post primary key (post_id); + +comment on table sys_post is '宀椾綅淇℃伅琛�'; +comment on column sys_post.post_id is '宀椾綅ID'; +comment on column sys_post.post_code is '宀椾綅缂栫爜'; +comment on column sys_post.post_name is '宀椾綅鍚嶇О'; +comment on column sys_post.post_sort is '鏄剧ず椤哄簭'; +comment on column sys_post.status is '鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_post.create_by is '鍒涘缓鑰�'; +comment on column sys_post.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_post.update_by is '鏇存柊鑰�'; +comment on column sys_post.update_time is '鏇存柊鏃堕棿'; +comment on column sys_post.remark is '澶囨敞'; + +-- ---------------------------- +-- 鍒濆鍖�-宀椾綅淇℃伅琛ㄦ暟鎹� +-- ---------------------------- +insert into sys_post values(1, 'ceo', '钁d簨闀�', 1, '0', 'admin', sysdate, '', null, ''); +insert into sys_post values(2, 'se', '椤圭洰缁忕悊', 2, '0', 'admin', sysdate, '', null, ''); +insert into sys_post values(3, 'hr', '浜哄姏璧勬簮', 3, '0', 'admin', sysdate, '', null, ''); +insert into sys_post values(4, 'user', '鏅�氬憳宸�', 4, '0', 'admin', sysdate, '', null, ''); + + +-- ---------------------------- +-- 4銆佽鑹蹭俊鎭〃 +-- ---------------------------- +create table sys_role ( + role_id number(20) not null, + role_name varchar2(30) not null, + role_key varchar2(100) not null, + role_sort number(4) not null, + data_scope char(1) default '1', + menu_check_strictly number(1) default 1, + dept_check_strictly number(1) default 1, + status char(1) not null, + del_flag char(1) default '0', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) default null +); + +alter table sys_role add constraint pk_sys_role primary key (role_id); + +comment on table sys_role is '瑙掕壊淇℃伅琛�'; +comment on column sys_role.role_id is '瑙掕壊ID'; +comment on column sys_role.role_name is '瑙掕壊鍚嶇О'; +comment on column sys_role.role_key is '瑙掕壊鏉冮檺瀛楃涓�'; +comment on column sys_role.role_sort is '鏄剧ず椤哄簭'; +comment on column sys_role.data_scope is '鏁版嵁鑼冨洿锛�1锛氬叏閮ㄦ暟鎹潈闄� 2锛氳嚜瀹氭暟鎹潈闄� 3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺 4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶級'; +comment on column sys_role.menu_check_strictly is '鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�'; +comment on column sys_role.dept_check_strictly is '閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�'; +comment on column sys_role.status is '瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_role.del_flag is '鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�'; +comment on column sys_role.create_by is '鍒涘缓鑰�'; +comment on column sys_role.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_role.update_by is '鏇存柊鑰�'; +comment on column sys_role.update_time is '鏇存柊鏃堕棿'; +comment on column sys_role.remark is '澶囨敞'; + +-- ---------------------------- +-- 鍒濆鍖�-瑙掕壊淇℃伅琛ㄦ暟鎹� +-- ---------------------------- +insert into sys_role values('1', '瓒呯骇绠$悊鍛�', 'admin', 1, 1, 1, 1, '0', '0', 'admin', sysdate, '', null, '瓒呯骇绠$悊鍛�'); +insert into sys_role values('2', '鏅�氳鑹�', 'common', 2, 2, 1, 1, '0', '0', 'admin', sysdate, '', null, '鏅�氳鑹�'); + + +-- ---------------------------- +-- 5銆佽彍鍗曟潈闄愯〃 +-- ---------------------------- +create table sys_menu ( + menu_id number(20) not null, + menu_name varchar2(50) not null, + parent_id number(20) default 0, + order_num number(4) default 0, + path varchar(200) default '', + component varchar(255) default null, + query varchar(255) default null, + is_frame number(1) default 1, + is_cache number(1) default 0, + menu_type char(1) default '', + visible char(1) default 0, + status char(1) default 0, + perms varchar2(100) default null, + icon varchar2(100) default '#', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date , + remark varchar2(500) default '' +); + +alter table sys_menu add constraint pk_sys_menu primary key (menu_id); + +comment on table sys_menu is '鑿滃崟鏉冮檺琛�'; +comment on column sys_menu.menu_id is '鑿滃崟ID'; +comment on column sys_menu.menu_name is '鑿滃崟鍚嶇О'; +comment on column sys_menu.parent_id is '鐖惰彍鍗旾D'; +comment on column sys_menu.order_num is '鏄剧ず椤哄簭'; +comment on column sys_menu.path is '璇锋眰鍦板潃'; +comment on column sys_menu.component is '璺敱鍦板潃'; +comment on column sys_menu.query is '璺敱鍙傛暟'; +comment on column sys_menu.is_frame is '鏄惁涓哄閾撅紙0鏄� 1鍚︼級'; +comment on column sys_menu.is_cache is '鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級'; +comment on column sys_menu.menu_type is '鑿滃崟绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�'; +comment on column sys_menu.visible is '鑿滃崟鐘舵�侊紙0鏄剧ず 1闅愯棌锛�'; +comment on column sys_menu.status is '鑿滃崟鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_menu.perms is '鏉冮檺鏍囪瘑'; +comment on column sys_menu.icon is '鑿滃崟鍥炬爣'; +comment on column sys_menu.create_by is '鍒涘缓鑰�'; +comment on column sys_menu.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_menu.update_by is '鏇存柊鑰�'; +comment on column sys_menu.update_time is '鏇存柊鏃堕棿'; +comment on column sys_menu.remark is '澶囨敞'; + +-- ---------------------------- +-- 鍒濆鍖�-鑿滃崟淇℃伅琛ㄦ暟鎹� +-- ---------------------------- +-- 涓�绾ц彍鍗� +insert into sys_menu values('1', '绯荤粺绠$悊', '0', '1', 'system', null, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', sysdate, '', null, '绯荤粺绠$悊鐩綍'); +insert into sys_menu values('2', '绯荤粺鐩戞帶', '0', '2', 'monitor', null, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', sysdate, '', null, '绯荤粺鐩戞帶鐩綍'); +insert into sys_menu values('3', '绯荤粺宸ュ叿', '0', '3', 'tool', null, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', sysdate, '', null, '绯荤粺宸ュ叿鐩綍'); +insert into sys_menu values('4', 'PLUS瀹樼綉', '0', '4', 'https://gitee.com/JavaLionLi/RuoYi-Vue-Plus', null, '', 0, 0, 'M', '0', '0', '', 'guide', 'admin', sysdate, '', null, 'RuoYi-Vue-Plus瀹樼綉鍦板潃'); +-- 浜岀骇鑿滃崟 +insert into sys_menu values('100', '鐢ㄦ埛绠$悊', '1', '1', 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', sysdate, '', null, '鐢ㄦ埛绠$悊鑿滃崟'); +insert into sys_menu values('101', '瑙掕壊绠$悊', '1', '2', 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', sysdate, '', null, '瑙掕壊绠$悊鑿滃崟'); +insert into sys_menu values('102', '鑿滃崟绠$悊', '1', '3', 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', sysdate, '', null, '鑿滃崟绠$悊鑿滃崟'); +insert into sys_menu values('103', '閮ㄩ棬绠$悊', '1', '4', 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', sysdate, '', null, '閮ㄩ棬绠$悊鑿滃崟'); +insert into sys_menu values('104', '宀椾綅绠$悊', '1', '5', 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', sysdate, '', null, '宀椾綅绠$悊鑿滃崟'); +insert into sys_menu values('105', '瀛楀吀绠$悊', '1', '6', 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', sysdate, '', null, '瀛楀吀绠$悊鑿滃崟'); +insert into sys_menu values('106', '鍙傛暟璁剧疆', '1', '7', 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', sysdate, '', null, '鍙傛暟璁剧疆鑿滃崟'); +insert into sys_menu values('107', '閫氱煡鍏憡', '1', '8', 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', sysdate, '', null, '閫氱煡鍏憡鑿滃崟'); +insert into sys_menu values('108', '鏃ュ織绠$悊', '1', '9', 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', sysdate, '', null, '鏃ュ織绠$悊鑿滃崟'); +insert into sys_menu values('109', '鍦ㄧ嚎鐢ㄦ埛', '2', '1', 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', sysdate, '', null, '鍦ㄧ嚎鐢ㄦ埛鑿滃崟'); +insert into sys_menu values('111', '鏁版嵁鐩戞帶', '2', '3', 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', sysdate, '', null, '鏁版嵁鐩戞帶鑿滃崟'); +insert into sys_menu values('113', '缂撳瓨鐩戞帶', '2', '5', 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', sysdate, '', null, '缂撳瓨鐩戞帶鑿滃崟'); +insert into sys_menu values('114', '琛ㄥ崟鏋勫缓', '3', '1', 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', sysdate, '', null, '琛ㄥ崟鏋勫缓鑿滃崟'); +insert into sys_menu values('115', '浠g爜鐢熸垚', '3', '2', 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', sysdate, '', null, '浠g爜鐢熸垚鑿滃崟'); +insert into sys_menu values('116', '绯荤粺鎺ュ彛', '3', '3', 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', sysdate, '', null, '绯荤粺鎺ュ彛鑿滃崟'); +-- springboot-admin鐩戞帶 +insert into sys_menu values('117', 'Admin鐩戞帶', '2', '5', 'Admin', 'monitor/admin/index', '', 1, 0, 'C', '0', '0', 'monitor:admin:list', 'dashboard', 'admin', sysdate, '', null, 'Admin鐩戞帶鑿滃崟'); +-- oss鑿滃崟 +insert into sys_menu values('118', '鏂囦欢绠$悊', '1', '10', 'oss', 'system/oss/index', '', 1, 0, 'C', '0', '0', 'system:oss:list', 'upload', 'admin', sysdate, '', null, '鏂囦欢绠$悊鑿滃崟'); +-- xxl-job-admin鎺у埗鍙� +insert into sys_menu values('120', '浠诲姟璋冨害涓績', '2', '5', 'XxlJob', 'monitor/xxljob/index', '', 1, 0, 'C', '0', '0', 'monitor:xxljob:list', 'job', 'admin', sysdate, '', null, 'Xxl-Job鎺у埗鍙拌彍鍗�'); + +-- 涓夌骇鑿滃崟 +insert into sys_menu values('500', '鎿嶄綔鏃ュ織', '108', '1', 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', sysdate, '', null, '鎿嶄綔鏃ュ織鑿滃崟'); +insert into sys_menu values('501', '鐧诲綍鏃ュ織', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', sysdate, '', null, '鐧诲綍鏃ュ織鑿滃崟'); +-- 鐢ㄦ埛绠$悊鎸夐挳 +insert into sys_menu values('1001', '鐢ㄦ埛鏌ヨ', '100', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1002', '鐢ㄦ埛鏂板', '100', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1003', '鐢ㄦ埛淇敼', '100', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1004', '鐢ㄦ埛鍒犻櫎', '100', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1005', '鐢ㄦ埛瀵煎嚭', '100', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1006', '鐢ㄦ埛瀵煎叆', '100', '6', '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1007', '閲嶇疆瀵嗙爜', '100', '7', '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', sysdate, '', null, ''); +-- 瑙掕壊绠$悊鎸夐挳 +insert into sys_menu values('1008', '瑙掕壊鏌ヨ', '101', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1009', '瑙掕壊鏂板', '101', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1010', '瑙掕壊淇敼', '101', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1011', '瑙掕壊鍒犻櫎', '101', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1012', '瑙掕壊瀵煎嚭', '101', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', sysdate, '', null, ''); +-- 鑿滃崟绠$悊鎸夐挳 +insert into sys_menu values('1013', '鑿滃崟鏌ヨ', '102', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1014', '鑿滃崟鏂板', '102', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1015', '鑿滃崟淇敼', '102', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1016', '鑿滃崟鍒犻櫎', '102', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', sysdate, '', null, ''); +-- 閮ㄩ棬绠$悊鎸夐挳 +insert into sys_menu values('1017', '閮ㄩ棬鏌ヨ', '103', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1018', '閮ㄩ棬鏂板', '103', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1019', '閮ㄩ棬淇敼', '103', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1020', '閮ㄩ棬鍒犻櫎', '103', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', sysdate, '', null, ''); +-- 宀椾綅绠$悊鎸夐挳 +insert into sys_menu values('1021', '宀椾綅鏌ヨ', '104', '1', '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1022', '宀椾綅鏂板', '104', '2', '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1023', '宀椾綅淇敼', '104', '3', '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1024', '宀椾綅鍒犻櫎', '104', '4', '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1025', '宀椾綅瀵煎嚭', '104', '5', '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', sysdate, '', null, ''); +-- 瀛楀吀绠$悊鎸夐挳 +insert into sys_menu values('1026', '瀛楀吀鏌ヨ', '105', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1027', '瀛楀吀鏂板', '105', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1028', '瀛楀吀淇敼', '105', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1029', '瀛楀吀鍒犻櫎', '105', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1030', '瀛楀吀瀵煎嚭', '105', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', sysdate, '', null, ''); +-- 鍙傛暟璁剧疆鎸夐挳 +insert into sys_menu values('1031', '鍙傛暟鏌ヨ', '106', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1032', '鍙傛暟鏂板', '106', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1033', '鍙傛暟淇敼', '106', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1034', '鍙傛暟鍒犻櫎', '106', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1035', '鍙傛暟瀵煎嚭', '106', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', sysdate, '', null, ''); +-- 閫氱煡鍏憡鎸夐挳 +insert into sys_menu values('1036', '鍏憡鏌ヨ', '107', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1037', '鍏憡鏂板', '107', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1038', '鍏憡淇敼', '107', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1039', '鍏憡鍒犻櫎', '107', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', sysdate, '', null, ''); +-- 鎿嶄綔鏃ュ織鎸夐挳 +insert into sys_menu values('1040', '鎿嶄綔鏌ヨ', '500', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1041', '鎿嶄綔鍒犻櫎', '500', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1042', '鏃ュ織瀵煎嚭', '500', '4', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', sysdate, '', null, ''); +-- 鐧诲綍鏃ュ織鎸夐挳 +insert into sys_menu values('1043', '鐧诲綍鏌ヨ', '501', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1044', '鐧诲綍鍒犻櫎', '501', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1045', '鏃ュ織瀵煎嚭', '501', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', sysdate, '', null, ''); +-- 鍦ㄧ嚎鐢ㄦ埛鎸夐挳 +insert into sys_menu values('1046', '鍦ㄧ嚎鏌ヨ', '109', '1', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1047', '鎵归噺寮洪��', '109', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1048', '鍗曟潯寮洪��', '109', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate, '', null, ''); +-- 浠g爜鐢熸垚鎸夐挳 +insert into sys_menu values('1055', '鐢熸垚鏌ヨ', '115', '1', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1056', '鐢熸垚淇敼', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1057', '鐢熸垚鍒犻櫎', '115', '3', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1058', '瀵煎叆浠g爜', '115', '2', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1059', '棰勮浠g爜', '115', '4', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1060', '鐢熸垚浠g爜', '115', '5', '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate, '', null, ''); +-- oss鐩稿叧鎸夐挳 +insert into sys_menu values('1600', '鏂囦欢鏌ヨ', '118', '1', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:query', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1601', '鏂囦欢涓婁紶', '118', '2', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:upload', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1602', '鏂囦欢涓嬭浇', '118', '3', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:download', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1603', '鏂囦欢鍒犻櫎', '118', '4', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:remove', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1604', '閰嶇疆娣诲姞', '118', '5', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:add', '#', 'admin', sysdate, '', null, ''); +insert into sys_menu values('1605', '閰嶇疆缂栬緫', '118', '6', '#', '', '', 1, 0, 'F', '0', '0', 'system:oss:edit', '#', 'admin', sysdate, '', null, ''); + + +-- ---------------------------- +-- 6銆佺敤鎴峰拰瑙掕壊鍏宠仈琛� 鐢ㄦ埛N-1瑙掕壊 +-- ---------------------------- +create table sys_user_role ( + user_id number(20) not null, + role_id number(20) not null +); + +alter table sys_user_role add constraint pk_sys_user_role primary key (user_id, role_id); + +comment on table sys_user_role is '鐢ㄦ埛鍜岃鑹插叧鑱旇〃'; +comment on column sys_user_role.user_id is '鐢ㄦ埛ID'; +comment on column sys_user_role.role_id is '瑙掕壊ID'; + +-- ---------------------------- +-- 鍒濆鍖�-鐢ㄦ埛鍜岃鑹插叧鑱旇〃鏁版嵁 +-- ---------------------------- +insert into sys_user_role values ('1', '1'); +insert into sys_user_role values ('2', '2'); + + +-- ---------------------------- +-- 7銆佽鑹插拰鑿滃崟鍏宠仈琛� 瑙掕壊1-N鑿滃崟 +-- ---------------------------- +create table sys_role_menu ( + role_id number(20) not null, + menu_id number(20) not null +); + +alter table sys_role_menu add constraint pk_sys_role_menu primary key (role_id, menu_id); + +comment on table sys_role_menu is '瑙掕壊鍜岃彍鍗曞叧鑱旇〃'; +comment on column sys_role_menu.role_id is '瑙掕壊ID'; +comment on column sys_role_menu.menu_id is '鑿滃崟ID'; + +-- ---------------------------- +-- 鍒濆鍖�-瑙掕壊鍜岃彍鍗曞叧鑱旇〃鏁版嵁 +-- ---------------------------- +insert into sys_role_menu values ('2', '1'); +insert into sys_role_menu values ('2', '2'); +insert into sys_role_menu values ('2', '3'); +insert into sys_role_menu values ('2', '4'); +insert into sys_role_menu values ('2', '100'); +insert into sys_role_menu values ('2', '101'); +insert into sys_role_menu values ('2', '102'); +insert into sys_role_menu values ('2', '103'); +insert into sys_role_menu values ('2', '104'); +insert into sys_role_menu values ('2', '105'); +insert into sys_role_menu values ('2', '106'); +insert into sys_role_menu values ('2', '107'); +insert into sys_role_menu values ('2', '108'); +insert into sys_role_menu values ('2', '109'); +insert into sys_role_menu values ('2', '110'); +insert into sys_role_menu values ('2', '111'); +insert into sys_role_menu values ('2', '112'); +insert into sys_role_menu values ('2', '113'); +insert into sys_role_menu values ('2', '114'); +insert into sys_role_menu values ('2', '115'); +insert into sys_role_menu values ('2', '116'); +insert into sys_role_menu values ('2', '500'); +insert into sys_role_menu values ('2', '501'); +insert into sys_role_menu values ('2', '1000'); +insert into sys_role_menu values ('2', '1001'); +insert into sys_role_menu values ('2', '1002'); +insert into sys_role_menu values ('2', '1003'); +insert into sys_role_menu values ('2', '1004'); +insert into sys_role_menu values ('2', '1005'); +insert into sys_role_menu values ('2', '1006'); +insert into sys_role_menu values ('2', '1007'); +insert into sys_role_menu values ('2', '1008'); +insert into sys_role_menu values ('2', '1009'); +insert into sys_role_menu values ('2', '1010'); +insert into sys_role_menu values ('2', '1011'); +insert into sys_role_menu values ('2', '1012'); +insert into sys_role_menu values ('2', '1013'); +insert into sys_role_menu values ('2', '1014'); +insert into sys_role_menu values ('2', '1015'); +insert into sys_role_menu values ('2', '1016'); +insert into sys_role_menu values ('2', '1017'); +insert into sys_role_menu values ('2', '1018'); +insert into sys_role_menu values ('2', '1019'); +insert into sys_role_menu values ('2', '1020'); +insert into sys_role_menu values ('2', '1021'); +insert into sys_role_menu values ('2', '1022'); +insert into sys_role_menu values ('2', '1023'); +insert into sys_role_menu values ('2', '1024'); +insert into sys_role_menu values ('2', '1025'); +insert into sys_role_menu values ('2', '1026'); +insert into sys_role_menu values ('2', '1027'); +insert into sys_role_menu values ('2', '1028'); +insert into sys_role_menu values ('2', '1029'); +insert into sys_role_menu values ('2', '1030'); +insert into sys_role_menu values ('2', '1031'); +insert into sys_role_menu values ('2', '1032'); +insert into sys_role_menu values ('2', '1033'); +insert into sys_role_menu values ('2', '1034'); +insert into sys_role_menu values ('2', '1035'); +insert into sys_role_menu values ('2', '1036'); +insert into sys_role_menu values ('2', '1037'); +insert into sys_role_menu values ('2', '1038'); +insert into sys_role_menu values ('2', '1039'); +insert into sys_role_menu values ('2', '1040'); +insert into sys_role_menu values ('2', '1041'); +insert into sys_role_menu values ('2', '1042'); +insert into sys_role_menu values ('2', '1043'); +insert into sys_role_menu values ('2', '1044'); +insert into sys_role_menu values ('2', '1045'); +insert into sys_role_menu values ('2', '1046'); +insert into sys_role_menu values ('2', '1047'); +insert into sys_role_menu values ('2', '1048'); +insert into sys_role_menu values ('2', '1055'); +insert into sys_role_menu values ('2', '1056'); +insert into sys_role_menu values ('2', '1057'); +insert into sys_role_menu values ('2', '1058'); +insert into sys_role_menu values ('2', '1059'); +insert into sys_role_menu values ('2', '1060'); + +-- ---------------------------- +-- 8銆佽鑹插拰閮ㄩ棬鍏宠仈琛� 瑙掕壊1-N閮ㄩ棬 +-- ---------------------------- +create table sys_role_dept ( + role_id number(20) not null, + dept_id number(20) not null +); + +alter table sys_role_dept add constraint pk_sys_role_dept primary key (role_id, dept_id); + +comment on table sys_role_dept is '瑙掕壊鍜岄儴闂ㄥ叧鑱旇〃'; +comment on column sys_role_dept.role_id is '瑙掕壊ID'; +comment on column sys_role_dept.dept_id is '閮ㄩ棬ID'; + +-- ---------------------------- +-- 鍒濆鍖�-瑙掕壊鍜岄儴闂ㄥ叧鑱旇〃鏁版嵁 +-- ---------------------------- +insert into sys_role_dept values ('2', '100'); +insert into sys_role_dept values ('2', '101'); +insert into sys_role_dept values ('2', '105'); + + +-- ---------------------------- +-- 9銆佺敤鎴蜂笌宀椾綅鍏宠仈琛� 鐢ㄦ埛1-N宀椾綅 +-- ---------------------------- +create table sys_user_post ( + user_id number(20) not null, + post_id number(20) not null +); + +alter table sys_user_post add constraint pk_sys_user_post primary key (user_id, post_id); + +comment on table sys_user_post is '鐢ㄦ埛涓庡矖浣嶅叧鑱旇〃'; +comment on column sys_user_post.user_id is '鐢ㄦ埛ID'; +comment on column sys_user_post.post_id is '宀椾綅ID'; + +-- ---------------------------- +-- 鍒濆鍖�-鐢ㄦ埛涓庡矖浣嶅叧鑱旇〃鏁版嵁 +-- ---------------------------- +insert into sys_user_post values ('1', '1'); +insert into sys_user_post values ('2', '2'); + + +-- ---------------------------- +-- 10銆佹搷浣滄棩蹇楄褰� +-- ---------------------------- +create table sys_oper_log ( + oper_id number(20) not null , + title varchar2(50) default '', + business_type number(2) default 0, + method varchar2(100) default '', + request_method varchar(10) default '', + operator_type number(1) default 0, + oper_name varchar2(50) default '', + dept_name varchar2(50) default '', + oper_url varchar2(255) default '', + oper_ip varchar2(128) default '', + oper_location varchar2(255) default '', + oper_param varchar2(2000) default '', + json_result varchar2(2000) default '', + status number(1) default 0, + error_msg varchar2(2000) default '' , + oper_time date +); + +alter table sys_oper_log add constraint pk_sys_oper_log primary key (oper_id); + +comment on table sys_oper_log is '鎿嶄綔鏃ュ織璁板綍'; +comment on column sys_oper_log.oper_id is '鏃ュ織涓婚敭'; +comment on column sys_oper_log.title is '妯″潡鏍囬'; +comment on column sys_oper_log.business_type is '涓氬姟绫诲瀷锛�0鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛�'; +comment on column sys_oper_log.method is '鏂规硶鍚嶇О'; +comment on column sys_oper_log.request_method is '璇锋眰鏂瑰紡'; +comment on column sys_oper_log.operator_type is '鎿嶄綔绫诲埆锛�0鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級'; +comment on column sys_oper_log.oper_name is '鎿嶄綔浜哄憳'; +comment on column sys_oper_log.dept_name is '閮ㄩ棬鍚嶇О'; +comment on column sys_oper_log.oper_url is '璇锋眰URL'; +comment on column sys_oper_log.oper_ip is '涓绘満鍦板潃'; +comment on column sys_oper_log.oper_location is '鎿嶄綔鍦扮偣'; +comment on column sys_oper_log.oper_param is '璇锋眰鍙傛暟'; +comment on column sys_oper_log.json_result is '杩斿洖鍙傛暟'; +comment on column sys_oper_log.status is '鎿嶄綔鐘舵�侊紙0姝e父 1寮傚父锛�'; +comment on column sys_oper_log.error_msg is '閿欒娑堟伅'; +comment on column sys_oper_log.oper_time is '鎿嶄綔鏃堕棿'; + + +-- ---------------------------- +-- 11銆佸瓧鍏哥被鍨嬭〃 +-- ---------------------------- +create table sys_dict_type ( + dict_id number(20) not null, + dict_name varchar2(100) default '', + dict_type varchar2(100) default '', + status char(1) default '0', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) default null +); + +alter table sys_dict_type add constraint pk_sys_dict_type primary key (dict_id); +create unique index sys_dict_type_index1 on sys_dict_type (dict_type); + +comment on table sys_dict_type is '瀛楀吀绫诲瀷琛�'; +comment on column sys_dict_type.dict_id is '瀛楀吀涓婚敭'; +comment on column sys_dict_type.dict_name is '瀛楀吀鍚嶇О'; +comment on column sys_dict_type.dict_type is '瀛楀吀绫诲瀷'; +comment on column sys_dict_type.status is '鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_dict_type.create_by is '鍒涘缓鑰�'; +comment on column sys_dict_type.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_dict_type.update_by is '鏇存柊鑰�'; +comment on column sys_dict_type.update_time is '鏇存柊鏃堕棿'; +comment on column sys_dict_type.remark is '澶囨敞'; + +insert into sys_dict_type values(1, '鐢ㄦ埛鎬у埆', 'sys_user_sex', '0', 'admin', sysdate, '', null, '鐢ㄦ埛鎬у埆鍒楄〃'); +insert into sys_dict_type values(2, '鑿滃崟鐘舵��', 'sys_show_hide', '0', 'admin', sysdate, '', null, '鑿滃崟鐘舵�佸垪琛�'); +insert into sys_dict_type values(3, '绯荤粺寮�鍏�', 'sys_normal_disable', '0', 'admin', sysdate, '', null, '绯荤粺寮�鍏冲垪琛�'); +insert into sys_dict_type values(6, '绯荤粺鏄惁', 'sys_yes_no', '0', 'admin', sysdate, '', null, '绯荤粺鏄惁鍒楄〃'); +insert into sys_dict_type values(7, '閫氱煡绫诲瀷', 'sys_notice_type', '0', 'admin', sysdate, '', null, '閫氱煡绫诲瀷鍒楄〃'); +insert into sys_dict_type values(8, '閫氱煡鐘舵��', 'sys_notice_status', '0', 'admin', sysdate, '', null, '閫氱煡鐘舵�佸垪琛�'); +insert into sys_dict_type values(9, '鎿嶄綔绫诲瀷', 'sys_oper_type', '0', 'admin', sysdate, '', null, '鎿嶄綔绫诲瀷鍒楄〃'); +insert into sys_dict_type values(10, '绯荤粺鐘舵��', 'sys_common_status', '0', 'admin', sysdate, '', null, '鐧诲綍鐘舵�佸垪琛�'); + + +-- ---------------------------- +-- 12銆佸瓧鍏告暟鎹〃 +-- ---------------------------- +create table sys_dict_data ( + dict_code number(20) not null, + dict_sort number(4) default 0, + dict_label varchar2(100) default '', + dict_value varchar2(100) default '', + dict_type varchar2(100) default '', + css_class varchar2(100) default null, + list_class varchar2(100) default null, + is_default char(1) default 'N', + status char(1) default '0', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) default null +); + +alter table sys_dict_data add constraint pk_sys_dict_data primary key (dict_code); + +comment on table sys_dict_data is '瀛楀吀鏁版嵁琛�'; +comment on column sys_dict_data.dict_code is '瀛楀吀涓婚敭'; +comment on column sys_dict_data.dict_sort is '瀛楀吀鎺掑簭'; +comment on column sys_dict_data.dict_label is '瀛楀吀鏍囩'; +comment on column sys_dict_data.dict_value is '瀛楀吀閿��'; +comment on column sys_dict_data.dict_type is '瀛楀吀绫诲瀷'; +comment on column sys_dict_data.css_class is '鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�'; +comment on column sys_dict_data.list_class is '琛ㄦ牸鍥炴樉鏍峰紡'; +comment on column sys_dict_data.is_default is '鏄惁榛樿锛圷鏄� N鍚︼級'; +comment on column sys_dict_data.status is '鐘舵�侊紙0姝e父 1鍋滅敤锛�'; +comment on column sys_dict_data.create_by is '鍒涘缓鑰�'; +comment on column sys_dict_data.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_dict_data.update_by is '鏇存柊鑰�'; +comment on column sys_dict_data.update_time is '鏇存柊鏃堕棿'; +comment on column sys_dict_data.remark is '澶囨敞'; + +insert into sys_dict_data values(1, 1, '鐢�', '0', 'sys_user_sex', '', '', 'Y', '0', 'admin', sysdate, '', null, '鎬у埆鐢�'); +insert into sys_dict_data values(2, 2, '濂�', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate, '', null, '鎬у埆濂�'); +insert into sys_dict_data values(3, 3, '鏈煡', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', sysdate, '', null, '鎬у埆鏈煡'); +insert into sys_dict_data values(4, 1, '鏄剧ず', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', sysdate, '', null, '鏄剧ず鑿滃崟'); +insert into sys_dict_data values(5, 2, '闅愯棌', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '闅愯棌鑿滃崟'); +insert into sys_dict_data values(6, 1, '姝e父', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', sysdate, '', null, '姝e父鐘舵��'); +insert into sys_dict_data values(7, 2, '鍋滅敤', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '鍋滅敤鐘舵��'); +insert into sys_dict_data values(12, 1, '鏄�', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', sysdate, '', null, '绯荤粺榛樿鏄�'); +insert into sys_dict_data values(13, 2, '鍚�', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '绯荤粺榛樿鍚�'); +insert into sys_dict_data values(14, 1, '閫氱煡', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', sysdate, '', null, '閫氱煡'); +insert into sys_dict_data values(15, 2, '鍏憡', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', sysdate, '', null, '鍏憡'); +insert into sys_dict_data values(16, 1, '姝e父', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', sysdate, '', null, '姝e父鐘舵��'); +insert into sys_dict_data values(17, 2, '鍏抽棴', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '鍏抽棴鐘舵��'); +insert into sys_dict_data values(18, 1, '鏂板', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate, '', null, '鏂板鎿嶄綔'); +insert into sys_dict_data values(19, 2, '淇敼', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', sysdate, '', null, '淇敼鎿嶄綔'); +insert into sys_dict_data values(20, 3, '鍒犻櫎', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '鍒犻櫎鎿嶄綔'); +insert into sys_dict_data values(21, 4, '鎺堟潈', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', sysdate, '', null, '鎺堟潈鎿嶄綔'); +insert into sys_dict_data values(22, 5, '瀵煎嚭', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate, '', null, '瀵煎嚭鎿嶄綔'); +insert into sys_dict_data values(23, 6, '瀵煎叆', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate, '', null, '瀵煎叆鎿嶄綔'); +insert into sys_dict_data values(24, 7, '寮洪��', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '寮洪��鎿嶄綔'); +insert into sys_dict_data values(25, 8, '鐢熸垚浠g爜', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', sysdate, '', null, '鐢熸垚鎿嶄綔'); +insert into sys_dict_data values(26, 9, '娓呯┖鏁版嵁', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '娓呯┖鎿嶄綔'); +insert into sys_dict_data values(27, 1, '鎴愬姛', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', sysdate, '', null, '姝e父鐘舵��'); +insert into sys_dict_data values(28, 2, '澶辫触', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', sysdate, '', null, '鍋滅敤鐘舵��'); + + +-- ---------------------------- +-- 13銆佸弬鏁伴厤缃〃 +-- ---------------------------- +create table sys_config ( + config_id number(20) not null, + config_name varchar2(100) default '', + config_key varchar2(100) default '', + config_value varchar2(100) default '', + config_type char(1) default 'N', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) default null +); +alter table sys_config add constraint pk_sys_config primary key (config_id); + +comment on table sys_config is '鍙傛暟閰嶇疆琛�'; +comment on column sys_config.config_id is '鍙傛暟涓婚敭'; +comment on column sys_config.config_name is '鍙傛暟鍚嶇О'; +comment on column sys_config.config_key is '鍙傛暟閿悕'; +comment on column sys_config.config_value is '鍙傛暟閿��'; +comment on column sys_config.config_type is '绯荤粺鍐呯疆锛圷鏄� N鍚︼級'; +comment on column sys_config.create_by is '鍒涘缓鑰�'; +comment on column sys_config.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_config.update_by is '鏇存柊鑰�'; +comment on column sys_config.update_time is '鏇存柊鏃堕棿'; +comment on column sys_config.remark is '澶囨敞'; + +insert into sys_config values(1, '涓绘鏋堕〉-榛樿鐨偆鏍峰紡鍚嶇О', 'sys.index.skinName', 'skin-blue', 'Y', 'admin', sysdate, '', null, '钃濊壊 skin-blue銆佺豢鑹� skin-green銆佺传鑹� skin-purple銆佺孩鑹� skin-red銆侀粍鑹� skin-yellow' ); +insert into sys_config values(2, '鐢ㄦ埛绠$悊-璐﹀彿鍒濆瀵嗙爜', 'sys.user.initPassword', '123456', 'Y', 'admin', sysdate, '', null, '鍒濆鍖栧瘑鐮� 123456' ); +insert into sys_config values(3, '涓绘鏋堕〉-渚ц竟鏍忎富棰�', 'sys.index.sideTheme', 'theme-dark', 'Y', 'admin', sysdate, '', null, '娣辫壊涓婚theme-dark锛屾祬鑹蹭富棰榯heme-light' ); +insert into sys_config values(4, '璐﹀彿鑷姪-楠岃瘉鐮佸紑鍏�', 'sys.account.captchaOnOff', 'true', 'Y', 'admin', sysdate, '', null, '鏄惁寮�鍚獙璇佺爜鍔熻兘锛坱rue寮�鍚紝false鍏抽棴锛�'); +insert into sys_config values(5, '璐﹀彿鑷姪-鏄惁寮�鍚敤鎴锋敞鍐屽姛鑳�', 'sys.account.registerUser', 'false', 'Y', 'admin', sysdate, '', null, '鏄惁寮�鍚敞鍐岀敤鎴峰姛鑳斤紙true寮�鍚紝false鍏抽棴锛�'); +insert into sys_config values(11, 'OSS棰勮鍒楄〃璧勬簮寮�鍏�', 'sys.oss.previewListResource', 'true', 'Y', 'admin', sysdate, '', null, 'true:寮�鍚�, false:鍏抽棴'); + + +-- ---------------------------- +-- 14銆佺郴缁熻闂褰� +-- ---------------------------- +create table sys_logininfor ( + info_id number(20) not null, + user_name varchar2(50) default '', + ipaddr varchar2(128) default '', + login_location varchar2(255) default '', + browser varchar2(50) default '', + os varchar2(50) default '', + status char(1) default '0', + msg varchar2(255) default '', + login_time date +); + +alter table sys_logininfor add constraint pk_sys_logininfor primary key (info_id); + +comment on table sys_logininfor is '绯荤粺璁块棶璁板綍'; +comment on column sys_logininfor.info_id is '璁块棶ID'; +comment on column sys_logininfor.user_name is '鐧诲綍璐﹀彿'; +comment on column sys_logininfor.ipaddr is '鐧诲綍IP鍦板潃'; +comment on column sys_logininfor.login_location is '鐧诲綍鍦扮偣'; +comment on column sys_logininfor.browser is '娴忚鍣ㄧ被鍨�'; +comment on column sys_logininfor.os is '鎿嶄綔绯荤粺'; +comment on column sys_logininfor.status is '鐧诲綍鐘舵�侊紙0鎴愬姛 1澶辫触锛�'; +comment on column sys_logininfor.msg is '鎻愮ず娑堟伅'; +comment on column sys_logininfor.login_time is '璁块棶鏃堕棿'; + + +-- ---------------------------- +-- 17銆侀�氱煡鍏憡琛� +-- ---------------------------- +create table sys_notice ( + notice_id number(20) not null, + notice_title varchar2(50) not null, + notice_type char(1) not null, + notice_content clob default null, + status char(1) default '0', + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(255) default null +); + +alter table sys_notice add constraint pk_sys_notice primary key (notice_id); + +comment on table sys_notice is '閫氱煡鍏憡琛�'; +comment on column sys_notice.notice_id is '鍏憡涓婚敭'; +comment on column sys_notice.notice_title is '鍏憡鏍囬'; +comment on column sys_notice.notice_type is '鍏憡绫诲瀷锛�1閫氱煡 2鍏憡锛�'; +comment on column sys_notice.notice_content is '鍏憡鍐呭'; +comment on column sys_notice.status is '鍏憡鐘舵�侊紙0姝e父 1鍏抽棴锛�'; +comment on column sys_notice.create_by is '鍒涘缓鑰�'; +comment on column sys_notice.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_notice.update_by is '鏇存柊鑰�'; +comment on column sys_notice.update_time is '鏇存柊鏃堕棿'; +comment on column sys_notice.remark is '澶囨敞'; + +-- ---------------------------- +-- 鍒濆鍖�-鍏憡淇℃伅琛ㄦ暟鎹� +-- ---------------------------- +insert into sys_notice values('1', '娓╅Θ鎻愰啋锛�2018-07-01 鏂扮増鏈彂甯冨暒', '2', '鏂扮増鏈唴瀹�', '0', 'admin', sysdate, '', null, '绠$悊鍛�'); +insert into sys_notice values('2', '缁存姢閫氱煡锛�2018-07-01 绯荤粺鍑屾櫒缁存姢', '1', '缁存姢鍐呭', '0', 'admin', sysdate, '', null, '绠$悊鍛�'); + + +-- ---------------------------- +-- 18銆佷唬鐮佺敓鎴愪笟鍔¤〃 +-- ---------------------------- +create table gen_table ( + table_id number(20) not null, + table_name varchar2(200) default '', + table_comment varchar2(500) default '', + sub_table_name varchar(64) default null, + sub_table_fk_name varchar(64) default null, + class_name varchar2(100) default '', + tpl_category varchar2(200) default 'crud', + package_name varchar2(100), + module_name varchar2(30), + business_name varchar2(30), + function_name varchar2(50), + function_author varchar2(50), + gen_type char(1) default '0', + gen_path varchar2(200) default '/', + options varchar2(1000), + create_by varchar2(64) default '', + create_time date, + update_by varchar2(64) default '', + update_time date, + remark varchar2(500) default null +); + +alter table gen_table add constraint pk_gen_table primary key (table_id); + +comment on table gen_table is '浠g爜鐢熸垚涓氬姟琛�'; +comment on column gen_table.table_id is '缂栧彿'; +comment on column gen_table.table_name is '琛ㄥ悕绉�'; +comment on column gen_table.table_comment is '琛ㄦ弿杩�'; +comment on column gen_table.sub_table_name is '鍏宠仈瀛愯〃鐨勮〃鍚�'; +comment on column gen_table.sub_table_fk_name is '瀛愯〃鍏宠仈鐨勫閿悕'; +comment on column gen_table.class_name is '瀹炰綋绫诲悕绉�'; +comment on column gen_table.tpl_category is '浣跨敤鐨勬ā鏉匡紙crud鍗曡〃鎿嶄綔 tree鏍戣〃鎿嶄綔锛�'; +comment on column gen_table.package_name is '鐢熸垚鍖呰矾寰�'; +comment on column gen_table.module_name is '鐢熸垚妯″潡鍚�'; +comment on column gen_table.business_name is '鐢熸垚涓氬姟鍚�'; +comment on column gen_table.function_name is '鐢熸垚鍔熻兘鍚�'; +comment on column gen_table.function_author is '鐢熸垚鍔熻兘浣滆��'; +comment on column gen_table.gen_type is '鐢熸垚浠g爜鏂瑰紡锛�0zip鍘嬬缉鍖� 1鑷畾涔夎矾寰勶級'; +comment on column gen_table.gen_path is '鐢熸垚璺緞锛堜笉濉粯璁ら」鐩矾寰勶級'; +comment on column gen_table.options is '鍏跺畠鐢熸垚閫夐」'; +comment on column gen_table.create_by is '鍒涘缓鑰�'; +comment on column gen_table.create_time is '鍒涘缓鏃堕棿'; +comment on column gen_table.update_by is '鏇存柊鑰�'; +comment on column gen_table.update_time is '鏇存柊鏃堕棿'; +comment on column gen_table.remark is '澶囨敞'; + + +-- ---------------------------- +-- 19銆佷唬鐮佺敓鎴愪笟鍔¤〃瀛楁 +-- ---------------------------- +create table gen_table_column ( + column_id number(20) not null, + table_id varchar2(64), + column_name varchar2(200), + column_comment varchar2(500), + column_type varchar2(100), + java_type varchar2(500), + java_field varchar2(200), + is_pk char(1), + is_increment char(1), + is_required char(1), + is_insert char(1), + is_edit char(1), + is_list char(1), + is_query char(1), + query_type varchar(200) default 'EQ', + html_type varchar(200), + dict_type varchar(200) default '', + sort number(4), + create_by varchar(64) default '', + create_time date , + update_by varchar(64) default '', + update_time date +); + +alter table gen_table_column add constraint pk_gen_table_column primary key (column_id); + +comment on table gen_table_column is '浠g爜鐢熸垚涓氬姟琛ㄥ瓧娈�'; +comment on column gen_table_column.column_id is '缂栧彿'; +comment on column gen_table_column.table_id is '褰掑睘琛ㄧ紪鍙�'; +comment on column gen_table_column.column_name is '鍒楀悕绉�'; +comment on column gen_table_column.column_comment is '鍒楁弿杩�'; +comment on column gen_table_column.column_type is '鍒楃被鍨�'; +comment on column gen_table_column.java_type is 'JAVA绫诲瀷'; +comment on column gen_table_column.java_field is 'JAVA瀛楁鍚�'; +comment on column gen_table_column.is_pk is '鏄惁涓婚敭锛�1鏄級'; +comment on column gen_table_column.is_increment is '鏄惁鑷锛�1鏄級'; +comment on column gen_table_column.is_required is '鏄惁蹇呭~锛�1鏄級'; +comment on column gen_table_column.is_insert is '鏄惁涓烘彃鍏ュ瓧娈碉紙1鏄級'; +comment on column gen_table_column.is_edit is '鏄惁缂栬緫瀛楁锛�1鏄級'; +comment on column gen_table_column.is_list is '鏄惁鍒楄〃瀛楁锛�1鏄級'; +comment on column gen_table_column.is_query is '鏄惁鏌ヨ瀛楁锛�1鏄級'; +comment on column gen_table_column.query_type is '鏌ヨ鏂瑰紡锛堢瓑浜庛�佷笉绛変簬銆佸ぇ浜庛�佸皬浜庛�佽寖鍥达級'; +comment on column gen_table_column.html_type is '鏄剧ず绫诲瀷锛堟枃鏈銆佹枃鏈煙銆佷笅鎷夋銆佸閫夋銆佸崟閫夋銆佹棩鏈熸帶浠讹級'; +comment on column gen_table_column.dict_type is '瀛楀吀绫诲瀷'; +comment on column gen_table_column.sort is '鎺掑簭'; +comment on column gen_table_column.create_by is '鍒涘缓鑰�'; +comment on column gen_table_column.create_time is '鍒涘缓鏃堕棿'; +comment on column gen_table_column.update_by is '鏇存柊鑰�'; +comment on column gen_table_column.update_time is '鏇存柊鏃堕棿'; + + +-- ---------------------------- +-- OSS瀵硅薄瀛樺偍琛� +-- ---------------------------- +create table sys_oss ( + oss_id number(20) not null, + file_name varchar(255) not null, + original_name varchar(255) not null, + file_suffix varchar(10) not null, + url varchar(500) not null, + service varchar(10) default 'minio' not null, + create_by varchar(64) default '', + create_time date, + update_by varchar(64) default '', + update_time date +); + +alter table sys_oss add constraint pk_sys_oss primary key (oss_id); + +comment on table sys_oss is 'OSS瀵硅薄瀛樺偍琛�'; +comment on column sys_oss.oss_id is '瀵硅薄瀛樺偍涓婚敭'; +comment on column sys_oss.file_name is '鏂囦欢鍚�'; +comment on column sys_oss.original_name is '鍘熷悕'; +comment on column sys_oss.file_suffix is '鏂囦欢鍚庣紑鍚�'; +comment on column sys_oss.url is 'URL鍦板潃'; +comment on column sys_oss.service is '鏈嶅姟鍟�'; +comment on column sys_oss.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_oss.create_by is '涓婁紶鑰�'; +comment on column sys_oss.update_time is '鏇存柊鏃堕棿'; +comment on column sys_oss.update_by is '鏇存柊鑰�'; + + +-- ---------------------------- +-- OSS瀵硅薄瀛樺偍鍔ㄦ�侀厤缃〃 +-- ---------------------------- +create table sys_oss_config ( + oss_config_id number(20) not null, + config_key varchar(255) not null, + access_key varchar(255) default '', + secret_key varchar(255) default '', + bucket_name varchar(255) default '', + prefix varchar(255) default '', + endpoint varchar(255) default '', + is_https char(1) default 'N', + region varchar(255) default '', + status char(1) default '1', + ext1 varchar(255) default '', + create_by varchar(64) default '', + remark varchar(500) default null, + create_time date, + update_by varchar(64) default '', + update_time date +); + +alter table sys_oss_config add constraint pk_sys_oss_config primary key (oss_config_id); + +comment on table sys_oss_config is '瀵硅薄瀛樺偍閰嶇疆琛�'; +comment on column sys_oss_config.oss_config_id is '涓诲缓'; +comment on column sys_oss_config.config_key is '閰嶇疆key'; +comment on column sys_oss_config.access_key is 'accesskey'; +comment on column sys_oss_config.secret_key is '绉橀挜'; +comment on column sys_oss_config.bucket_name is '妗跺悕绉�'; +comment on column sys_oss_config.prefix is '鍓嶇紑'; +comment on column sys_oss_config.endpoint is '璁块棶绔欑偣'; +comment on column sys_oss_config.is_https is '鏄惁https锛圷=鏄�,N=鍚︼級'; +comment on column sys_oss_config.region is '鍩�'; +comment on column sys_oss_config.status is '鐘舵�侊紙0=姝e父,1=鍋滅敤锛�'; +comment on column sys_oss_config.ext1 is '鎵╁睍瀛楁'; +comment on column sys_oss_config.remark is '澶囨敞'; +comment on column sys_oss_config.create_by is '鍒涘缓鑰�'; +comment on column sys_oss_config.create_time is '鍒涘缓鏃堕棿'; +comment on column sys_oss_config.update_by is '鏇存柊鑰�'; +comment on column sys_oss_config.update_time is '鏇存柊鏃堕棿'; + +insert into sys_oss_config values (1, 'minio', 'ruoyi', 'ruoyi123', 'ruoyi', '', 'http://localhost:9000', 'N', '', '0', '', NULL, 'admin', sysdate, 'admin', sysdate); +insert into sys_oss_config values (2, 'qiniu', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 'http://XXX.XXXX.com', 'N', 'z0', '1', '', NULL, 'admin', sysdate, 'admin', sysdate); +insert into sys_oss_config values (3, 'aliyun', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi', '', 'http://oss-cn-beijing.aliyuncs.com', 'N', '', '1', '', NULL, 'admin', sysdate, 'admin', sysdate); +insert into sys_oss_config values (4, 'qcloud', 'XXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXX', 'ruoyi-1250000000', '', 'http://cos.ap-beijing.myqcloud.com', 'N', 'ap-beijing', '1', '', NULL, 'admin', sysdate, 'admin', sysdate); + + +-- ---------------------------- +-- 鍑芥暟 锛屼唬鏇縨ysql鐨刦ind_in_set +-- 渚嬪锛� select * from sys_dept where FIND_IN_SET (101,ancestors) <> 0 +-- mysql鍙帴鍙�0鎴栧叾瀹僴umber鍋氫负where 鏉′欢锛宱racle鍙帴鍙楄〃杈惧紡鍋氫负where 鏉′欢 +-- ---------------------------- +create or replace function find_in_set(arg1 in varchar2,arg2 in varchar) +return number is Result number; +begin +select instr(','||arg2||',' , ','||arg1||',') into Result from dual; +return(Result); +end find_in_set; -- Gitblit v1.9.3