|
@@ -0,0 +1,63 @@
|
|
|
+package com.aizuda.boot.modules.gen.service.impl;
|
|
|
+
|
|
|
+import com.aizuda.boot.modules.gen.service.IGenTableService;
|
|
|
+import com.aizuda.core.bean.BaseEntity;
|
|
|
+import com.baomidou.mybatisplus.annotation.FieldFill;
|
|
|
+import com.baomidou.mybatisplus.generator.config.*;
|
|
|
+import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
|
|
|
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
|
|
|
+import com.baomidou.mybatisplus.generator.fill.Column;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 代码生成业务表 服务实现类
|
|
|
+ *
|
|
|
+ * @author 青苗
|
|
|
+ * @since 2024-08-25
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@AllArgsConstructor
|
|
|
+public class GenTableServiceImpl implements IGenTableService {
|
|
|
+ private DataSourceProperties dsp;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean gen() {
|
|
|
+ DataSourceConfig.Builder dataSource = new DataSourceConfig.Builder(dsp.getUrl(), dsp.getUsername(), dsp.getPassword());
|
|
|
+ // 全局配置
|
|
|
+ GlobalConfig.Builder globalConfig = new GlobalConfig.Builder().author("青苗")
|
|
|
+ .outputDir("C://aizuda-code")
|
|
|
+ .dateType(DateType.ONLY_DATE)
|
|
|
+ .enableSwagger();
|
|
|
+ // 包配置
|
|
|
+ PackageConfig.Builder packageInfo = new PackageConfig.Builder().parent("com.aizuda.boot.modules.gen");
|
|
|
+ // 策略配置
|
|
|
+ StrategyConfig.Builder strategy = new StrategyConfig.Builder();
|
|
|
+ strategy.addInclude(List.of("gen_table"))
|
|
|
+ .controllerBuilder().enableRestStyle().enableHyphenStyle()
|
|
|
+ .serviceBuilder().superServiceClass("com.aizuda.service.service.IBaseService")
|
|
|
+ .mapperBuilder().superClass("com.aizuda.service.mapper.CrudMapper")
|
|
|
+ .entityBuilder().enableLombok().disableSerialVersionUID().addTableFills(
|
|
|
+ new Column("create_id", FieldFill.INSERT),
|
|
|
+ new Column("create_by", FieldFill.INSERT),
|
|
|
+ new Column("create_time", FieldFill.INSERT),
|
|
|
+ new Column("update_by", FieldFill.UPDATE),
|
|
|
+ new Column("update_time", FieldFill.UPDATE)
|
|
|
+ ).addSuperEntityColumns("id", "create_id", "create_by", "create_time",
|
|
|
+ "update_by", "update_time", "deleted")
|
|
|
+ .logicDeleteColumnName("deleted")
|
|
|
+ .superClass(BaseEntity.class);
|
|
|
+ // 注入配置
|
|
|
+ InjectionConfig.Builder injection = new InjectionConfig.Builder();
|
|
|
+ // 模板配置
|
|
|
+ TemplateConfig.Builder template = new TemplateConfig.Builder().disable(TemplateType.XML);
|
|
|
+ // 模板渲染引擎 new CodeTemplateEngine()
|
|
|
+ ConfigBuilder config = new ConfigBuilder(packageInfo.build(), dataSource.build(), strategy.build(), template.build(),
|
|
|
+ globalConfig.build(), injection.build());
|
|
|
+ config.getTableInfoList();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+}
|