Merge remote-tracking branch 'origin/master'

This commit is contained in:
张松 2025-02-12 17:31:38 +08:00
commit 8b83858f59
2 changed files with 215 additions and 21 deletions

View File

@ -1,8 +1,7 @@
package com.czg;
import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.ColumnConfig;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.mybatisflex.codegen.config.*;
import com.mybatisflex.core.service.IService;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.zaxxer.hikari.HikariDataSource;
@ -16,38 +15,37 @@ public class Main {
private final static String USERNAME = "cashier";
private final static String PASSWORD = "Cashier@1@";
private final static String DATABASE = "czg_cashier";
static String currentWorkingDirectory = System.getProperty("user.dir");
static String basePackage = "com.czg.";
public static void main(String[] args) {
// packageName 指定生成代码项目
// tableName 指定需要生成的表
// String servicePackageName = "system";
// String servicePackageName = "account";
// String servicePackageName = "product";
String packageName = "order";
String tableName = "tb_order_info";
//配置数据源
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl("jdbc:mysql://" + BASE_URL + ":" + PORT + "/" + DATABASE);
dataSource.setUsername(USERNAME);
dataSource.setPassword(PASSWORD);
String currentWorkingDirectory = System.getProperty("user.dir");
String projectPath = currentWorkingDirectory + "/cash-service/system-service";
// String projectPath = currentWorkingDirectory + "/cash-service/account-service";
// String projectPath = currentWorkingDirectory + "/cash-service/product-service";
// String projectPath = currentWorkingDirectory + "/cash-service/order-service";
String packageName = "com.czg.service.system";
// String packageName = "com.czg.service.account";
// String packageName = "com.czg.service.product";
// String packageName = "com.czg.service.order";
String servicePackageName = "com.czg.system";
// String servicePackageName = "com.czg.account";
// String servicePackageName = "com.czg.product";
// String servicePackageName = "com.czg.order";
String projectPath = currentWorkingDirectory + "/cash-service/" + packageName + "-service";
// 生成 mapper service实现
GlobalConfig globalConfig = createGlobalConfigUseStyle(projectPath, packageName, "tb", "tb_version");
GlobalConfig globalConfig = createGlobalConfigUseStyle(projectPath, packageName, "tb", tableName);
Generator generator = new Generator(dataSource, globalConfig);
generator.generate();
// 生成 entity service
GlobalConfig serviceConfig = createServiceGlobalConfigUseStyle(currentWorkingDirectory + "/cash-common/cash-common-service",
servicePackageName, "tb", "tb_version");
basePackage + packageName, "tb", tableName);
Generator serviceGenerator = new Generator(dataSource, serviceConfig);
serviceGenerator.generate();
}
@ -59,12 +57,23 @@ public class Main {
//设置根包
globalConfig.getPackageConfig()
.setSourceDir(projectPath + "/src/main/java")
.setBasePackage(packageName);
.setEntityPackage(basePackage + packageName + ".entity")
.setServicePackage(basePackage + packageName + ".service")
.setServiceImplPackage(basePackage + "service." + packageName + ".service.impl")
.setMapperPackage(basePackage + "service." + packageName + ".mapper")
.setBasePackage(basePackage + "service." + packageName);
globalConfig.getServiceConfig()
.setClassSuffix("Service");
globalConfig.getServiceImplConfig()
.setClassSuffix("ServiceImpl")
.setSuperClass(ServiceImpl.class);
globalConfig.enableServiceImpl();
globalConfig.setServiceImplTemplatePath("templates/serviceImpl.tpl");
globalConfig.getMapperConfig()
.setClassSuffix("Mapper");
@ -106,7 +115,7 @@ public class Main {
//设置生成 entity 并启用 Lombok
globalConfig.enableEntity()
.setWithLombok(true)
.setJdkVersion(23);
.setJdkVersion(21);
//可以单独配置某个列
ColumnConfig createTime = new ColumnConfig();

View File

@ -0,0 +1,185 @@
#set(isCacheExample = serviceImplConfig.cacheExample)
#set(primaryKey = table.getPrimaryKey().getProperty())
#set(entityClassName = table.buildEntityClassName())
package #(packageConfig.serviceImplPackage);
import #(serviceImplConfig.buildSuperClassImport());
import #(packageConfig.entityPackage).#(table.buildEntityClassName());
import #(packageConfig.servicePackage).#(table.buildServiceClassName());
import #(packageConfig.mapperPackage).#(table.buildMapperClassName());
import org.springframework.stereotype.Service;
#if(isCacheExample)
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
#end
/**
* #(table.getComment()) 服务层实现。
*
* @author #(javadocConfig.getAuthor())
* @since #(javadocConfig.getSince())
*/
@Service
#if(isCacheExample)
@CacheConfig(cacheNames = "#(firstCharToLowerCase(entityClassName))")
#end
public class #(table.buildServiceImplClassName()) extends #(serviceImplConfig.buildSuperClassName())<#(table.buildMapperClassName()), #(table.buildEntityClassName())> implements #(table.buildServiceClassName()){
#if(isCacheExample)
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@CacheEvict(allEntries = true)
public boolean remove(QueryWrapper query) {
return super.remove(query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@CacheEvict(key = "#id")
public boolean removeById(Serializable id) {
return super.removeById(id);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@CacheEvict(allEntries = true)
public boolean removeByIds(Collection<? extends Serializable> ids) {
return super.removeByIds(ids);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@CacheEvict(allEntries = true)
public boolean update(#(entityClassName) entity, QueryWrapper query) {
return super.update(entity, query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@CacheEvict(key = "#entity.#(primaryKey)")
public boolean updateById(#(entityClassName) entity, boolean ignoreNulls) {
return super.updateById(entity, ignoreNulls);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@CacheEvict(allEntries = true)
public boolean updateBatch(Collection<#(entityClassName)> entities, int batchSize) {
return super.updateBatch(entities, batchSize);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#id")
public #(entityClassName) getById(Serializable id) {
return super.getById(id);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public #(entityClassName) getOne(QueryWrapper query) {
return super.getOne(query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public <R> R getOneAs(QueryWrapper query, Class<R> asType) {
return super.getOneAs(query, asType);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public Object getObj(QueryWrapper query) {
return super.getObj(query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public <R> R getObjAs(QueryWrapper query, Class<R> asType) {
return super.getObjAs(query, asType);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public List<Object> objList(QueryWrapper query) {
return super.objList(query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public <R> List<R> objListAs(QueryWrapper query, Class<R> asType) {
return super.objListAs(query, asType);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public List<#(entityClassName)> list(QueryWrapper query) {
return super.list(query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public <R> List<R> listAs(QueryWrapper query, Class<R> asType) {
return super.listAs(query, asType);
}
/**
* @deprecated 无法通过注解进行缓存操作。
*/
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Deprecated
public List<#(entityClassName)> listByIds(Collection<? extends Serializable> ids) {
return super.listByIds(ids);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #query.toSQL()")
public long count(QueryWrapper query) {
return super.count(query);
}
#if(table.getGlobalConfig().isServiceGenerateEnable())
@Override
#end
@Cacheable(key = "#root.methodName + ':' + #page.getPageSize() + ':' + #page.getPageNumber() + ':' + #query.toSQL()")
public <R> Page<R> pageAs(Page<R> page, QueryWrapper query, Class<R> asType) {
return super.pageAs(page, query, asType);
}
#end
}