package top.tangyh.lamp.generator.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.meta.Column;
import cn.hutool.db.meta.MetaUtil;
import cn.hutool.db.meta.Table;
import com.baidu.fsg.uid.UidGenerator;
import com.baomidou.mybatisplus.annotation.DbType;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.tangyh.basic.base.request.DownloadVO;
import top.tangyh.basic.base.service.impl.SuperServiceImpl;
import top.tangyh.basic.constant.Constants;
import top.tangyh.basic.database.mybatis.conditions.Wraps;
import top.tangyh.basic.database.properties.DatabaseProperties;
import top.tangyh.basic.exception.ArgumentException;
import top.tangyh.basic.exception.BizException;
import top.tangyh.basic.utils.ArgumentAssert;
import top.tangyh.basic.utils.DbPlusUtil;
import top.tangyh.basic.utils.StrPool;
import top.tangyh.lamp.generator.config.FileOverrideStrategy;
import top.tangyh.lamp.generator.config.GeneratorConfig;
import top.tangyh.lamp.generator.entity.DefGenTable;
import top.tangyh.lamp.generator.entity.DefGenTableColumn;
import top.tangyh.lamp.generator.enumeration.FileOverrideStrategyEnum;
import top.tangyh.lamp.generator.enumeration.TemplateEnum;
import top.tangyh.lamp.generator.enumeration.TplEnum;
import top.tangyh.lamp.generator.manager.DefGenTableColumnManager;
import top.tangyh.lamp.generator.manager.DefGenTableManager;
import top.tangyh.lamp.generator.rules.enumeration.EnumType;
import top.tangyh.lamp.generator.service.DefGenTableService;
import top.tangyh.lamp.generator.utils.FileInsertUtil;
import top.tangyh.lamp.generator.utils.GenCodeConstant;
import top.tangyh.lamp.generator.utils.GenUtils;
import top.tangyh.lamp.generator.utils.OutputFileUtils;
import top.tangyh.lamp.generator.utils.ProjectUtils;
import top.tangyh.lamp.generator.utils.SourceCodeUtils;
import top.tangyh.lamp.generator.utils.TemplateUtils;
import top.tangyh.lamp.generator.vo.result.DefGenTableResultVO;
import top.tangyh.lamp.generator.vo.save.DefGenTableImportVO;
import top.tangyh.lamp.generator.vo.save.DefGenVO;
import top.tangyh.lamp.generator.vo.save.ProjectGeneratorVO;
import top.tangyh.lamp.generator.vo.update.DefGenTableUpdateVO;
import top.tangyh.lamp.model.constant.EchoApi;
import top.tangyh.lamp.model.constant.EchoDictType;
import top.tangyh.lamp.model.constant.EchoRef;
import javax.sql.DataSource;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_CONTROLLER;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_ENTITY_JAVA;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_ENUM;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_MANAGER;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_MANAGER_IMPL;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_MAPPER;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_PAGE_QUERY;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_RESULT_VO;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_SAVE_VO;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_SERVICE;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_SERVICE_IMPL;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_SQL;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_UPDATE_VO;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_API;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_DATA;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_EDIT;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_INDEX;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_JUMP_EDIT;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_LANG_EN;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_LANG_ZH;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_SIMPLE_MODEL;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_TREE_EDIT;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_TREE_INDEX;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_WEB_PRO_TREE_TREE;
import static top.tangyh.lamp.generator.utils.GenCodeConstant.TEMPLATE_XML;
/**
* <p>
* 业务实现类
* 代码生成
* </p>
*
* @author zuihou
* @date 2022-03-01
*/
@Slf4j
@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
@EnableConfigurationProperties(GeneratorConfig.class)
public class DefGenTableServiceImpl extends SuperServiceImpl<DefGenTableManager, Long, DefGenTable> implements DefGenTableService {
private static final Map<String, String> TEMPLATE_FIELD_MAP = MapUtil.newHashMap();
static {
TEMPLATE_FIELD_MAP.put("enum", TEMPLATE_ENUM);
TEMPLATE_FIELD_MAP.put("saveVo", TEMPLATE_SAVE_VO);
TEMPLATE_FIELD_MAP.put("updateVo", TEMPLATE_UPDATE_VO);
TEMPLATE_FIELD_MAP.put("resultVo", TEMPLATE_RESULT_VO);
TEMPLATE_FIELD_MAP.put("pageQuery", TEMPLATE_PAGE_QUERY);
TEMPLATE_FIELD_MAP.put("sql", TEMPLATE_SQL);
TEMPLATE_FIELD_MAP.put("entity", TEMPLATE_ENTITY_JAVA);
TEMPLATE_FIELD_MAP.put("xml", TEMPLATE_XML);
TEMPLATE_FIELD_MAP.put("mapper", TEMPLATE_MAPPER);
TEMPLATE_FIELD_MAP.put("manager", TEMPLATE_MANAGER);
TEMPLATE_FIELD_MAP.put("managerImpl", TEMPLATE_MANAGER_IMPL);
TEMPLATE_FIELD_MAP.put("service", TEMPLATE_SERVICE);
TEMPLATE_FIELD_MAP.put("serviceImpl", TEMPLATE_SERVICE_IMPL);
TEMPLATE_FIELD_MAP.put("controller", TEMPLATE_CONTROLLER);
TEMPLATE_FIELD_MAP.put("api", TEMPLATE_WEB_PRO_SIMPLE_API);
TEMPLATE_FIELD_MAP.put("model", TEMPLATE_WEB_PRO_SIMPLE_MODEL);
TEMPLATE_FIELD_MAP.put("langEn", TEMPLATE_WEB_PRO_SIMPLE_LANG_EN);
TEMPLATE_FIELD_MAP.put("langZh", TEMPLATE_WEB_PRO_SIMPLE_LANG_ZH);
TEMPLATE_FIELD_MAP.put("data", TEMPLATE_WEB_PRO_SIMPLE_DATA);
TEMPLATE_FIELD_MAP.put("index", TEMPLATE_WEB_PRO_SIMPLE_INDEX);
TEMPLATE_FIELD_MAP.put("edit", TEMPLATE_WEB_PRO_SIMPLE_EDIT);
TEMPLATE_FIELD_MAP.put("jumpEdit", TEMPLATE_WEB_PRO_SIMPLE_JUMP_EDIT);
TEMPLATE_FIELD_MAP.put("treeIndex", TEMPLATE_WEB_PRO_TREE_INDEX);
TEMPLATE_FIELD_MAP.put("treeEdit", TEMPLATE_WEB_PRO_TREE_EDIT);
TEMPLATE_FIELD_MAP.put("treeTree", TEMPLATE_WEB_PRO_TREE_TREE);
}
private final DefGenTableColumnManager defGenTableColumnManager;
private final GeneratorConfig generatorConfig;
private final DatabaseProperties databaseProperties;
private final UidGenerator uidGene
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringCloud的lamp-cloud微服务快速开发平台设计源码

共993个文件
java:740个
xml:95个
ftl:46个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 114 浏览量
2024-05-22
20:25:28
上传
评论
收藏 18.85MB ZIP 举报
温馨提示
lamp-cloud微服务快速开发平台设计源码:该项目基于SpringCloud和SpringBoot开发,包含737个文件,主要使用Java和Shell语言。lamp-cloud是一个微服务中后台快速开发平台,专注于多租户(SaaS架构)解决方案,也可作为普通项目的基础开发框架。实现了插拔式数据库隔离、SCHEMA隔离、字段隔离等租户隔离方案。
资源推荐
资源详情
资源评论























收起资源包目录





































































































共 993 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论


沐知全栈开发
- 粉丝: 6626
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (完整word版)基于PLC的三层电梯控制系统.doc
- PLC毕业设计开题报告模板.doc
- 大学本科计算机应用课程实践研究(1).docx
- 2023年上半年网络工程师真题及答案下午卷.docx
- 2022计算机毕业生自荐信_.docx
- 2021-2022年收藏的精品资料软件工程概论课后答案.docx
- 2022电气自动化公司员工个人工作总结.docx
- 剖析电子商务中最优网络拍卖方案(1).docx
- 2022最新的互联网创业计划书.docx
- 低kV联合迭代算法的下肢小动脉CT成像在股前外穿支皮瓣移植中的临床价值.doc
- Panasonic机器人教学编程设定篇名师优质课获奖(1).ppt
- 《网络借贷信息中介机构业务活动管理暂行办法》.docx
- 浅谈计算机网络安全问题及对策(1).docx
- 初创公司前端工程体系建设.ppt
- DB22_T_1979_2013_化妆品中汞的测定_自动测汞仪法.pdf
- EXCEL高级应用技巧培训资料内部培训.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
