GeneratorCode.java 2.2 KB
package com.topdraw.modules;

import com.topdraw.CronosGeneratorCodeApplication;
import com.topdraw.domain.GenConfig;
import com.topdraw.domain.vo.ColumnInfo;
import com.topdraw.service.GeneratorService;
import lombok.var;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @author Hongyan Wang
 * @packageName PACKAGE_NAME
 * @className GeneratorCode
 * @description
 * @date 2020/12/30 0:11
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CronosGeneratorCodeApplication.class)
public class GeneratorCode {
    @Autowired
    private GeneratorService generatorService;

    @Test
    @Rollback(value = false)
    @Transactional(rollbackFor = Exception.class)
    public void generator() {
//        表名称,支持多表
        var tableNames = Arrays.asList("dict", "dict_detail");
        tableNames.forEach(tableName -> {
//        生成的表名称
//        var tableName = "x_media";
//        拿参数
            var columnsMap = (Map<String, Object>) generatorService.getColumns(tableName);
            var columnInfos = (List<ColumnInfo>) columnsMap.get("content");
//        只生成后端的话,只需要配置下包名和是否覆盖,
            var genConfig = new GenConfig()
//                未设置id无法生成
                    .setId(1L)
//                根据需求更改包路径
                    .setPack("com.topdraw.modules.content")
//                前端路径。不生成前端可置空
                    .setPath("")
//                作者
                    .setAuthor("why")
//                表前缀。生成实体时,会移除该前缀
                    .setPrefix("x_")
//                若文件存在,是否进行覆盖
                    .setCover(true);

//        生成代码
            generatorService.generator(columnInfos, genConfig, tableName);
        });
    }
}