admin
2022-04-07 211840b64fa1132d76d6dff6c779e9ba2c0c450f
src/main/java/org/yeshi/utils/generater/GeneraterManager.java
@@ -10,6 +10,7 @@
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;
@@ -17,10 +18,12 @@
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;
/**
@@ -44,6 +47,7 @@
    private String classRootDir;
    private Class entity;
    public static GeneraterManager getInstance() {
        if (instance == null)
            instance = new GeneraterManager();
@@ -62,7 +66,25 @@
        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) {
@@ -71,7 +93,7 @@
            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();
        }
@@ -85,7 +107,8 @@
     * @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()))
@@ -93,7 +116,7 @@
                .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;
    }
@@ -106,7 +129,7 @@
     * @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()))
@@ -115,11 +138,11 @@
                .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;
    }
@@ -135,7 +158,7 @@
        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;
    }
@@ -153,7 +176,7 @@
        //创建service接口
        String serviceName = entity.getSimpleName() + "Service";
        String serviceName = NameUtil.getDefaultServiceName(entity);
        String path = getDirPath(interPackageName);
        ServiceInfoVO vo = new ServiceInfoVO.Builder()
                .setPackageName(interPackageName)
@@ -162,10 +185,10 @@
                .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)
@@ -176,7 +199,7 @@
                .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;
    }
@@ -194,28 +217,32 @@
    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());
        }
    }
@@ -276,8 +303,11 @@
            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);
        }
    }
    /**