| | |
| | | import org.yeshi.utils.generater.params.AdminGeneraterParams; |
| | | import org.yeshi.utils.generater.params.DaoGeneraterParams; |
| | | import org.yeshi.utils.generater.params.ServiceGeneraterParams; |
| | | import org.yeshi.utils.generater.util.NameUtil; |
| | | import org.yeshi.utils.generater.vo.ExceptionVO; |
| | | import org.yeshi.utils.generater.vo.admin.controller.AdminControllerInfoVO; |
| | | import org.yeshi.utils.generater.vo.dao.MongoDBDaoVO; |
| | |
| | | import org.yeshi.utils.generater.vo.service.QueryVO; |
| | | import org.yeshi.utils.generater.vo.service.ServiceImplInfoVO; |
| | | import org.yeshi.utils.generater.vo.service.ServiceInfoVO; |
| | | import org.yeshi.utils.generater.vo.xmlconfig.GenertorConfig; |
| | | import org.yeshi.utils.mongo.MongodbBaseDao; |
| | | import org.yeshi.utils.mybatis.BaseMapper; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.lang.annotation.Annotation; |
| | | |
| | | /** |
| | |
| | | private String classRootDir; |
| | | private Class entity; |
| | | |
| | | |
| | | public static GeneraterManager getInstance() { |
| | | if (instance == null) |
| | | instance = new GeneraterManager(); |
| | |
| | | if (!f.exists()) { |
| | | f.mkdirs(); |
| | | } |
| | | return new File(f.getAbsolutePath(), packageName.replace(".", "/")).getAbsolutePath(); |
| | | f = new File(f.getAbsolutePath(), packageName.replace(".", "/")); |
| | | if (!f.exists()) { |
| | | f.mkdirs(); |
| | | } |
| | | return f.getAbsolutePath(); |
| | | } |
| | | |
| | | /** |
| | | * @return void |
| | | * @author hxh |
| | | * @description 保存文件 |
| | | * @date 10:06 2021/10/14 |
| | | * @param: data |
| | | * @param: path |
| | | **/ |
| | | private void saveFile(String data, String path) throws IOException { |
| | | if (!new File(path).exists()) |
| | | new File(path).createNewFile(); |
| | | FileUtil.saveAsFileByte(data.getBytes("UTF-8"), path); |
| | | } |
| | | |
| | | public void createException(String packageName, Class base) { |
| | |
| | | ExceptionVO vo = new ExceptionVO.Builder().setEntity(entity).setPackageName(packageName).setBase(new ClassInfo(base.getSimpleName(), base.getName())).build(); |
| | | String result = GeneraterUtil.createException(vo); |
| | | //保存 |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), path); |
| | | saveFile(result, path); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | * @param: packageName |
| | | **/ |
| | | public MongoDBDaoVO createDao(String packageName) throws Exception { |
| | | String daoName = entity.getSimpleName() + "Dao"; |
| | | |
| | | String daoName = NameUtil.getDefaultDaoName(entity); |
| | | String path = getDirPath(packageName); |
| | | MongoDBDaoVO vo = new MongoDBDaoVO.Builder() |
| | | .setBaseDao(new ClassInfo(MongodbBaseDao.class.getSimpleName(), MongodbBaseDao.class.getName())) |
| | |
| | | .setEntity(entity).build(); |
| | | String result = GeneraterUtil.createMongoDBDao(vo); |
| | | //保存 |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, daoName).getAbsolutePath()); |
| | | saveFile(result, new File(path, daoName + ".java").getAbsolutePath()); |
| | | return vo; |
| | | } |
| | | |
| | |
| | | * @param: mapperDir |
| | | **/ |
| | | public MyBatisDBDaoVO createMapper(String packageName, String mapperDir) throws Exception { |
| | | String mapperName = entity.getSimpleName() + "Mapper"; |
| | | String mapperName = NameUtil.getDefaultMapperName(entity); |
| | | String path = getDirPath(packageName); |
| | | MyBatisDBDaoVO vo = new MyBatisDBDaoVO.Builder() |
| | | .setBaseMapper(new ClassInfo(BaseMapper.class.getSimpleName(), BaseMapper.class.getName())) |
| | |
| | | .build(); |
| | | String result = GeneraterUtil.createMybatisDBMapper(vo); |
| | | //保存 |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, mapperName + ".java").getAbsolutePath()); |
| | | saveFile(result, new File(path, mapperName + ".java").getAbsolutePath()); |
| | | if (!new File(mapperDir).exists()) |
| | | new File(mapperDir).mkdirs(); |
| | | result = GeneraterUtil.createMybatisDBMapperXML(vo); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(mapperDir, mapperName + ".xml").getAbsolutePath()); |
| | | saveFile(result, new File(mapperDir, mapperName + ".xml").getAbsolutePath()); |
| | | return vo; |
| | | } |
| | | |
| | |
| | | String path = getDirPath(packageName); |
| | | QueryVO queryVO = new QueryVO.Builder().setEntity(entity).setPackageName(packageName).build(); |
| | | String result = GeneraterUtil.createQuery(queryVO); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, queryVO.getClassName() + ".java").getAbsolutePath()); |
| | | saveFile(result, new File(path, queryVO.getClassName() + ".java").getAbsolutePath()); |
| | | return queryVO; |
| | | } |
| | | |
| | |
| | | |
| | | |
| | | //创建service接口 |
| | | String serviceName = entity.getSimpleName() + "Service"; |
| | | String serviceName = NameUtil.getDefaultServiceName(entity); |
| | | String path = getDirPath(interPackageName); |
| | | ServiceInfoVO vo = new ServiceInfoVO.Builder() |
| | | .setPackageName(interPackageName) |
| | |
| | | .setService(new ClassInfo(serviceName, interPackageName + "." + serviceName)) |
| | | .build(); |
| | | String result = GeneraterUtil.createService(vo); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceName + ".java").getAbsolutePath()); |
| | | saveFile(result, new File(path, serviceName + ".java").getAbsolutePath()); |
| | | |
| | | //创建service实现 |
| | | String serviceImplName = entity.getSimpleName() + "ServiceImpl"; |
| | | String serviceImplName = NameUtil.getDefaultServiceImplName(entity); |
| | | path = getDirPath(implPackageName); |
| | | ServiceImplInfoVO implVO = new ServiceImplInfoVO.Builder() |
| | | .setDao(dao) |
| | |
| | | .setDaoQuery(new ClassInfo("DaoQuery", dao.getClazz() + ".DaoQuery")) |
| | | .build(); |
| | | result = GeneraterUtil.createServiceImpl(implVO); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, serviceImplName + ".java").getAbsolutePath()); |
| | | saveFile(result, new File(path, serviceImplName + ".java").getAbsolutePath()); |
| | | return vo; |
| | | } |
| | | |
| | |
| | | public void createAdmin(String controllerPackage, String htmlDir, ClassInfo query, ClassInfo service) throws Exception { |
| | | String path = getDirPath(controllerPackage); |
| | | |
| | | String controllerName = entity.getSimpleName() + "AdminController"; |
| | | |
| | | AdminGeneraterInfo generaterInfo = new AdminGeneraterInfo.Builder().setEntityClass(entity).build(); |
| | | |
| | | |
| | | String htmlNamePrefix = getHtmlNameFromEntityName(entity.getSimpleName()); |
| | | AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(generaterInfo).setPackageName(controllerName).setQueryVO(query).setService(service).build(); |
| | | AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(generaterInfo).setPackageName(controllerPackage).setQueryVO(query).setService(service).build(); |
| | | String controllerName = vo.getControllerName(); |
| | | //生成controller |
| | | String result = GeneraterUtil.createAdminController(vo); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(path, controllerName + ".java").getAbsolutePath()); |
| | | saveFile(result, new File(path, controllerName + ".java").getAbsolutePath()); |
| | | |
| | | |
| | | if (!new File(htmlDir).exists()) { |
| | | new File(htmlDir).mkdirs(); |
| | | } |
| | | result = GeneraterUtil.createAdminPageForList(generaterInfo); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_list.html").getAbsolutePath()); |
| | | saveFile(result, new File(htmlDir, htmlNamePrefix + "_list.html").getAbsolutePath()); |
| | | |
| | | if (generaterInfo.getAddFormRows() != null && generaterInfo.getAddFormRows().size() > 0) { |
| | | result = GeneraterUtil.createAdminPageForAdd(generaterInfo); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_add.html").getAbsolutePath()); |
| | | saveFile(result, new File(htmlDir, htmlNamePrefix + "_add.html").getAbsolutePath()); |
| | | } |
| | | |
| | | if (generaterInfo.getUpdateFormRows() != null && generaterInfo.getUpdateFormRows().size() > 0) { |
| | | result = GeneraterUtil.createAdminPageForUpdate(generaterInfo); |
| | | FileUtil.saveAsFileByte(result.getBytes("UTF-8"), new File(htmlDir, htmlNamePrefix + "_update.html").getAbsolutePath()); |
| | | saveFile(result, new File(htmlDir, htmlNamePrefix + "_update.html").getAbsolutePath()); |
| | | } |
| | | } |
| | | |
| | |
| | | serviceClass = serviceInfoVO.getService(); |
| | | } |
| | | |
| | | //创建Admin模块 |
| | | createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass); |
| | | if (queryClass != null && serviceClass != null) { |
| | | if (adminParams != null) |
| | | //创建Admin模块 |
| | | createAdmin(adminParams.getControllerPackage(), adminParams.getHtmlDir(), queryClass, serviceClass); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | * @date 18:25 2021/10/13 |
| | | * @param: entityName |
| | | **/ |
| | | private static String getHtmlNameFromEntityName(String entityName) { |
| | | public static String getHtmlNameFromEntityName(String entityName) { |
| | | StringBuffer sb = new StringBuffer(); |
| | | StringBuffer buffer = null; |
| | | for (int i = 0; i < entityName.length(); i++) { |