代码生成器

This commit is contained in:
TinyAnts 2022-06-10 19:02:29 +08:00
parent 97dc15dead
commit 9062c0fde3
93 changed files with 1036 additions and 373 deletions

View File

@ -22,6 +22,11 @@
<groupId>org.hxkj</groupId>
<artifactId>like-common</artifactId>
</dependency>
<dependency>
<groupId>org.hxkj</groupId>
<artifactId>like-generator</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<!-- 插件管理 -->

View File

@ -1,39 +0,0 @@
package com.hxkj.admin.controller;
import com.hxkj.admin.service.IGenerateService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("api/generate")
public class GenerateController {
@Resource
IGenerateService iGenerateService;
/**
* 数据表列表
*
* @author fzr
* @param pageParam 分页参数
* @param params 搜索参数
* @return Object
*/
@GetMapping("/db")
public Object db(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<Map<String, String>> list = iGenerateService.db(pageParam, params);
return AjaxResult.success(list);
}
}

View File

@ -1,51 +0,0 @@
package com.hxkj.admin.service.impl;
import com.github.pagehelper.PageHelper;
import com.hxkj.admin.service.IGenerateService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.mapper.generate.GenTableMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
/**
* 代码生成器服务实现类
*/
@Service
public class GenerateServiceImpl implements IGenerateService {
@Resource
GenTableMapper genTableMapper;
/**
* 数据表列表
*
* @author fzr
* @param pageParam 分页参数
* @param params 搜索参数
* @return PageResult<Map<String, String>>
*/
@Override
public PageResult<Map<String, String>> db(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
PageHelper.startPage(page, limit);
List<Map<String, String>> tables = genTableMapper.selectDbTableList(params);
List<Map<String, String>> list = new LinkedList<>();
for (Map<String, String> item : tables) {
Map<String, String> map = new LinkedHashMap<>();
map.put("tableName", item.get("table_name"));
map.put("tableComment", item.get("table_comment"));
map.put("createTime", item.get("create_time"));
map.put("updateTime", item.getOrDefault("update_time", ""));
list.add(map);
}
return PageResult.pageHelper(tables, list);
}
}

View File

@ -1,4 +1,4 @@
package com.hxkj.admin;
package com.hxkj.generator;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;

View File

@ -1,10 +1,10 @@
package com.hxkj.admin;
package com.hxkj.generator;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.generator.config.AdminConfig;
import com.hxkj.generator.service.ISystemAdminService;
import com.hxkj.generator.service.ISystemRoleMenuService;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.enums.HttpEnum;
import com.hxkj.common.utils.RedisUtil;
@ -36,11 +36,11 @@ public class LikeAdminInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 404拦截
response.setContentType("application/json;charset=utf-8");
if (response.getStatus() == 404) {
AjaxResult result = AjaxResult.failed(HttpEnum.REQUEST_404_ERROR.getCode(), HttpEnum.REQUEST_404_ERROR.getMsg());
response.getWriter().print(JSON.toJSONString(result));
return false;
}
// if (response.getStatus() == 404) {
// AjaxResult result = AjaxResult.failed(HttpEnum.REQUEST_404_ERROR.getCode(), HttpEnum.REQUEST_404_ERROR.getMsg());
// response.getWriter().print(JSON.toJSONString(result));
// return false;
// }
// 判断请求接口
if (!(handler instanceof HandlerMethod)) {

View File

@ -1,4 +1,4 @@
package com.hxkj.admin;
package com.hxkj.generator;
import java.util.LinkedHashMap;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.config;
package com.hxkj.generator.config;
/**
* 后台公共配置

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.config;
package com.hxkj.generator.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.config;
package com.hxkj.generator.config;
import com.hxkj.admin.LikeAdminInterceptor;
import com.hxkj.generator.LikeAdminInterceptor;
import com.hxkj.common.config.GlobalConfig;
import com.hxkj.common.utils.YmlUtil;
import org.springframework.context.annotation.Configuration;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.config.aop;
package com.hxkj.generator.config.aop;
import java.lang.annotation.*;

View File

@ -1,10 +1,9 @@
package com.hxkj.admin.config.aop;
package com.hxkj.generator.config.aop;
import com.alibaba.fastjson.JSON;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.generator.LikeAdminThreadLocal;
import com.hxkj.common.entity.system.SystemLogOperate;
import com.hxkj.common.mapper.system.SystemLogOperateMapper;
import com.hxkj.common.utils.HttpUtil;
import com.hxkj.common.utils.IpUtil;
import com.hxkj.common.utils.RequestUtil;
import org.aspectj.lang.JoinPoint;
@ -37,7 +36,7 @@ public class LogAspect {
/**
* 声明切面点拦截那些类
*/
@Pointcut("@annotation(com.hxkj.admin.config.aop.Log)")
@Pointcut("@annotation(com.hxkj.generator.config.aop.Log)")
private void pointCutMethodController() {}
/**

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.controller;
package com.hxkj.generator.controller;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IAlbumService;
import com.hxkj.admin.validate.AlbumParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.album.AlbumVo;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.IAlbumService;
import com.hxkj.generator.validate.AlbumParam;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.album.AlbumVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.utils.ArrayUtil;

View File

@ -1,13 +1,13 @@
package com.hxkj.admin.controller;
package com.hxkj.generator.controller;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IArticleService;
import com.hxkj.admin.validate.article.CategoryParam;
import com.hxkj.admin.validate.article.ArticleParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.article.ArticleDetailVo;
import com.hxkj.admin.vo.article.ArticleListVo;
import com.hxkj.admin.vo.article.CategoryVo;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.IArticleService;
import com.hxkj.generator.validate.article.CategoryParam;
import com.hxkj.generator.validate.article.ArticleParam;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.article.ArticleDetailVo;
import com.hxkj.generator.vo.article.ArticleListVo;
import com.hxkj.generator.vo.article.CategoryVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.validator.annotation.IDMust;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.controller;
package com.hxkj.generator.controller;
import com.hxkj.admin.service.IIndexService;
import com.hxkj.generator.service.IIndexService;
import com.hxkj.common.core.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.controller;
package com.hxkj.generator.controller;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IAlbumService;
import com.hxkj.generator.LikeAdminThreadLocal;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.IAlbumService;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.enums.AlbumEnum;
import com.hxkj.common.exception.OperateException;

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.monitor;
package com.hxkj.generator.controller.monitor;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.utils.StringUtil;
import org.springframework.data.redis.connection.RedisServerCommands;

View File

@ -1,17 +1,12 @@
package com.hxkj.admin.controller.monitor;
package com.hxkj.generator.controller.monitor;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.ServerResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* 服务监控管理
*/

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.setting;
package com.hxkj.generator.controller.setting;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IBasicsService;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.IBasicsService;
import com.hxkj.common.core.AjaxResult;
import org.springframework.web.bind.annotation.*;

View File

@ -1,12 +1,12 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemSelfVo;
import com.hxkj.generator.LikeAdminThreadLocal;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.ISystemAdminService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemAdminParam;
import com.hxkj.generator.vo.system.SystemAdminVo;
import com.hxkj.generator.vo.system.SystemSelfVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.validator.annotation.IDMust;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.service.ISystemDeptService;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.generator.service.ISystemDeptService;
import com.hxkj.generator.validate.system.SystemDeptParam;
import com.hxkj.generator.vo.system.SystemDeptVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.hxkj.admin.service.ISystemLogServer;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.system.LogLoginVo;
import com.hxkj.admin.vo.system.LogOperateVo;
import com.hxkj.generator.service.ISystemLogServer;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.system.LogLoginVo;
import com.hxkj.generator.vo.system.LogOperateVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import org.springframework.validation.annotation.Validated;

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.hxkj.admin.service.ISystemLoginService;
import com.hxkj.admin.validate.system.SystemLoginParam;
import com.hxkj.generator.service.ISystemLoginService;
import com.hxkj.generator.validate.system.SystemLoginParam;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.exception.LoginException;
import com.hxkj.common.exception.OperateException;

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.validate.system.SystemMenuParam;
import com.hxkj.admin.vo.system.SystemMenuVo;
import com.hxkj.generator.LikeAdminThreadLocal;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.ISystemMenuService;
import com.hxkj.generator.validate.system.SystemMenuParam;
import com.hxkj.generator.vo.system.SystemMenuVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.validator.annotation.IDMust;
import org.springframework.validation.annotation.Validated;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.hxkj.admin.service.ISystemPostService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemPostParam;
import com.hxkj.admin.vo.system.SystemPostVo;
import com.hxkj.generator.service.ISystemPostService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemPostParam;
import com.hxkj.generator.vo.system.SystemPostVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.validator.annotation.IDMust;

View File

@ -1,10 +1,10 @@
package com.hxkj.admin.controller.system;
package com.hxkj.generator.controller.system;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemRoleParam;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.generator.config.aop.Log;
import com.hxkj.generator.service.ISystemRoleService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemRoleParam;
import com.hxkj.generator.vo.system.SystemRoleVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.validator.annotation.IDMust;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.AlbumParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.album.AlbumVo;
import com.hxkj.generator.validate.AlbumParam;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.album.AlbumVo;
import com.hxkj.common.core.PageResult;
import java.util.List;

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.article.CategoryParam;
import com.hxkj.admin.validate.article.ArticleParam;
import com.hxkj.admin.vo.article.ArticleDetailVo;
import com.hxkj.admin.vo.article.ArticleListVo;
import com.hxkj.admin.vo.article.CategoryVo;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.article.CategoryParam;
import com.hxkj.generator.validate.article.ArticleParam;
import com.hxkj.generator.vo.article.ArticleDetailVo;
import com.hxkj.generator.vo.article.ArticleListVo;
import com.hxkj.generator.vo.article.CategoryVo;
import com.hxkj.common.core.PageResult;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import java.util.Map;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import java.util.Map;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemSelfVo;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemAdminParam;
import com.hxkj.generator.vo.system.SystemAdminVo;
import com.hxkj.generator.vo.system.SystemSelfVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.generator.validate.system.SystemDeptParam;
import com.hxkj.generator.vo.system.SystemDeptVo;
import java.util.List;
import java.util.Map;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.system.LogLoginVo;
import com.hxkj.admin.vo.system.LogOperateVo;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.system.LogLoginVo;
import com.hxkj.generator.vo.system.LogOperateVo;
import com.hxkj.common.core.PageResult;
import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.system.SystemLoginParam;
import com.hxkj.generator.validate.system.SystemLoginParam;
import java.util.Map;

View File

@ -1,11 +1,8 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.system.SystemMenuParam;
import com.hxkj.admin.vo.system.SystemAuthVo;
import com.hxkj.admin.vo.system.SystemMenuVo;
import java.util.List;
import com.hxkj.generator.validate.system.SystemMenuParam;
import com.hxkj.generator.vo.system.SystemMenuVo;
/**
* 系统菜单服务接口类

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemPostParam;
import com.hxkj.admin.vo.system.SystemPostVo;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemPostParam;
import com.hxkj.generator.vo.system.SystemPostVo;
import com.hxkj.common.core.PageResult;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import java.util.List;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemRoleParam;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemRoleParam;
import com.hxkj.generator.vo.system.SystemRoleVo;
import com.hxkj.common.core.PageResult;
import org.springframework.validation.annotation.Validated;

View File

@ -1,15 +1,15 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxkj.admin.service.IAlbumService;
import com.hxkj.admin.validate.AlbumParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.album.AlbumCateVo;
import com.hxkj.admin.vo.album.AlbumVo;
import com.hxkj.generator.service.IAlbumService;
import com.hxkj.generator.validate.AlbumParam;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.album.AlbumCateVo;
import com.hxkj.generator.vo.album.AlbumVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.Album;
import com.hxkj.common.entity.AlbumCate;

View File

@ -1,16 +1,16 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.service.IArticleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.article.CategoryParam;
import com.hxkj.admin.validate.article.ArticleParam;
import com.hxkj.admin.vo.article.ArticleDetailVo;
import com.hxkj.admin.vo.article.ArticleListVo;
import com.hxkj.admin.vo.article.CategoryVo;
import com.hxkj.generator.service.IArticleService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.article.CategoryParam;
import com.hxkj.generator.validate.article.ArticleParam;
import com.hxkj.generator.vo.article.ArticleDetailVo;
import com.hxkj.generator.vo.article.ArticleListVo;
import com.hxkj.generator.vo.article.CategoryVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.Article;
import com.hxkj.common.entity.ArticleCategory;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.hxkj.admin.service.IBasicsService;
import com.hxkj.generator.service.IBasicsService;
import com.hxkj.common.utils.ConfigUtil;
import com.hxkj.common.utils.UrlUtil;
import org.springframework.stereotype.Service;

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxkj.admin.service.IIndexService;
import com.hxkj.generator.service.IIndexService;
import com.hxkj.common.entity.Article;
import com.hxkj.common.mapper.ArticleMapper;
import com.hxkj.common.utils.ConfigUtil;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -6,16 +6,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.admin.vo.system.SystemSelfVo;
import com.hxkj.generator.LikeAdminThreadLocal;
import com.hxkj.generator.config.AdminConfig;
import com.hxkj.generator.service.ISystemAdminService;
import com.hxkj.generator.service.ISystemRoleMenuService;
import com.hxkj.generator.service.ISystemRoleService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemAdminParam;
import com.hxkj.generator.vo.system.SystemAdminVo;
import com.hxkj.generator.vo.system.SystemRoleVo;
import com.hxkj.generator.vo.system.SystemSelfVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemMenu;

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.service.ISystemDeptService;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.generator.service.ISystemDeptService;
import com.hxkj.generator.validate.system.SystemDeptParam;
import com.hxkj.generator.vo.system.SystemDeptVo;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemDept;
import com.hxkj.common.mapper.system.SystemAdminMapper;

View File

@ -1,13 +1,13 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.service.ISystemLogServer;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.system.LogLoginVo;
import com.hxkj.admin.vo.system.LogOperateVo;
import com.hxkj.generator.service.ISystemLogServer;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.vo.system.LogLoginVo;
import com.hxkj.generator.vo.system.LogOperateVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemLogLogin;
import com.hxkj.common.entity.system.SystemLogOperate;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemLoginService;
import com.hxkj.admin.validate.system.SystemLoginParam;
import com.hxkj.generator.config.AdminConfig;
import com.hxkj.generator.service.ISystemAdminService;
import com.hxkj.generator.service.ISystemLoginService;
import com.hxkj.generator.validate.system.SystemLoginParam;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemLogLogin;
import com.hxkj.common.enums.HttpEnum;

View File

@ -1,14 +1,14 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.validate.system.SystemMenuParam;
import com.hxkj.admin.vo.system.SystemMenuVo;
import com.hxkj.generator.LikeAdminThreadLocal;
import com.hxkj.generator.config.AdminConfig;
import com.hxkj.generator.service.ISystemMenuService;
import com.hxkj.generator.service.ISystemRoleMenuService;
import com.hxkj.generator.validate.system.SystemMenuParam;
import com.hxkj.generator.vo.system.SystemMenuVo;
import com.hxkj.common.entity.system.SystemMenu;
import com.hxkj.common.mapper.system.SystemMenuMapper;
import com.hxkj.common.utils.*;

View File

@ -1,13 +1,13 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxkj.admin.service.ISystemPostService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemPostParam;
import com.hxkj.admin.vo.system.SystemPostVo;
import com.hxkj.generator.service.ISystemPostService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemPostParam;
import com.hxkj.generator.vo.system.SystemPostVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemPost;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.generator.config.AdminConfig;
import com.hxkj.generator.service.ISystemRoleMenuService;
import com.hxkj.common.entity.system.SystemMenu;
import com.hxkj.common.entity.system.SystemRoleMenu;
import com.hxkj.common.mapper.system.SystemMenuMapper;

View File

@ -1,15 +1,15 @@
package com.hxkj.admin.service.impl;
package com.hxkj.generator.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemRoleParam;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.generator.config.AdminConfig;
import com.hxkj.generator.service.ISystemRoleMenuService;
import com.hxkj.generator.service.ISystemRoleService;
import com.hxkj.generator.validate.PageParam;
import com.hxkj.generator.validate.system.SystemRoleParam;
import com.hxkj.generator.vo.system.SystemRoleVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemRole;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate;
package com.hxkj.generator.validate;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate;
package com.hxkj.generator.validate;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -1,6 +1,5 @@
package com.hxkj.admin.validate.article;
package com.hxkj.generator.validate.article;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.article;
package com.hxkj.generator.validate.article;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.system;
package com.hxkj.generator.validate.system;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.system;
package com.hxkj.generator.validate.system;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.system;
package com.hxkj.generator.validate.system;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.system;
package com.hxkj.generator.validate.system;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;
@ -9,7 +9,6 @@ import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.system;
package com.hxkj.generator.validate.system;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate.system;
package com.hxkj.generator.validate.system;
import com.hxkj.common.validator.annotation.IDMust;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.album;
package com.hxkj.generator.vo.album;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.album;
package com.hxkj.generator.vo.album;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.article;
package com.hxkj.generator.vo.article;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.article;
package com.hxkj.generator.vo.article;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.article;
package com.hxkj.generator.vo.article;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.system;
package com.hxkj.generator.vo.system;
import lombok.Data;

View File

@ -0,0 +1,96 @@
package com.hxkj.common.constant;
public class GenConstants {
/** 单表(增删改查) */
public static final String TPL_CRUD = "crud";
/** 树表(增删改查) */
public static final String TPL_TREE = "tree";
/** 主子表(增删改查) */
public static final String TPL_SUB = "sub";
/** 树编码字段 */
public static final String TREE_CODE = "treeCode";
/** 树父编码字段 */
public static final String TREE_PARENT_CODE = "treeParentCode";
/** 树名称字段 */
public static final String TREE_NAME = "treeName";
/** 数据库字符串类型 */
public static final String[] COLUMN_TYPE_STR = {"char", "varchar", "nvarchar", "varchar2"};
/** 数据库文本类型 */
public static final String[] COLUMN_TYPE_TEXT = {"tinytext", "text", "mediumtext", "longtext"};
/** 数据库时间类型 */
public static final String[] COLUMN_TYPE_TIME = {"datetime", "time", "date", "timestamp"};
/** 数据库数字类型 */
public static final String[] COLUMN_TYPE_NUMBER = {"tinyint", "smallint", "mediumint", "int",
"number", "integer", "bit", "bigint", "float", "double", "decimal"};
/** 页面不需要编辑字段 */
public static final String[] COLUMN_NAME_NOT_EDIT = {"id", "create_time", "update_time", "delete_time"};
/** 页面不需要列表字段 */
public static final String[] COLUMN_NAME_NOT_LIST = {"id", "create_time", "update_time", "delete_time"};
/** 页面不需要查询字段 */
public static final String[] COLUMN_NAME_NOT_QUERY = {"id", "create_time", "update_time", "delete_time"};
/** 文本框 */
public static final String HTML_INPUT = "input";
/** 文本域 */
public static final String HTML_TEXTAREA = "textarea";
/** 下拉框 */
public static final String HTML_SELECT = "select";
/** 单选框 */
public static final String HTML_RADIO = "radio";
/** 复选框 */
public static final String HTML_CHECKBOX = "checkbox";
/** 日期控件 */
public static final String HTML_DATETIME = "datetime";
/** 图片上传控件 */
public static final String HTML_IMAGE_UPLOAD = "imageUpload";
/** 文件上传控件 */
public static final String HTML_FILE_UPLOAD = "fileUpload";
/** 富文本控件 */
public static final String HTML_EDITOR = "editor";
/** 字符串类型 */
public static final String TYPE_STRING = "String";
/** 整型 */
public static final String TYPE_INTEGER = "Integer";
/** 长整型 */
public static final String TYPE_LONG = "Long";
/** 高精度计算类型 */
public static final String TYPE_BIG_DECIMAL = "BigDecimal";
/** 时间类型 */
public static final String TYPE_DATE = "Date";
/** 模糊查询 */
public static final String QUERY_LIKE = "LIKE";
/** 相等查询 */
public static final String QUERY_EQ = "EQ";
/** 需要 */
public static final Integer REQUIRE = 1;
}

View File

@ -1,20 +0,0 @@
package com.hxkj.common.entity.generate;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* 代码生成业务实体
*/
@Data
public class GenTable implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Integer id;
}

View File

@ -1,36 +0,0 @@
package com.hxkj.common.mapper.generate;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.common.entity.generate.GenTable;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
@Mapper
public interface GenTableMapper extends IBaseMapper<GenTable> {
/**
* 查询库中的数据表
*
* @author fzr
* @param params 参数
* @return List<Map<String, String>>
*/
@Select({"<script>",
"SELECT table_name, table_comment, create_time, update_time " +
"FROM information_schema.tables " +
"WHERE table_schema = (SELECT database()) " +
"AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%' " +
"AND table_name NOT IN (select table_name from ls_gen_table)",
"<if test=\"tableName != null and tableName != ''\">" +
"AND lower(table_name) like lower(concat('%', #{tableName}, '%'))" +
"</if>",
"<if test=\"tableComment != null and tableComment != ''\">" +
"AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))" +
"</if>",
"</script>"})
List<Map<String, String>> selectDbTableList(Map<String, String> params);
}

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>likeadmin-java</artifactId>
<groupId>org.hxkj</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>like-generator</artifactId>
<!-- 项目管理 -->
<dependencies>
<!-- 公共依赖 -->
<dependency>
<groupId>org.hxkj</groupId>
<artifactId>like-common</artifactId>
</dependency>
<!-- collections工具类 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<!--velocity代码生成使用模板 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,59 @@
package com.hxkj.generator.controller;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.generator.service.IGenerateService;
import com.hxkj.generator.validate.PageParam;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
@RestController
@RequestMapping("/api/gen")
public class GenController {
@Resource
IGenerateService iGenerateService;
/**
* 数据表列表
*
* @author fzr
* @param pageParam 分页参数
* @param params 搜索参数
* @return Object
*/
@GetMapping("/db")
public Object db(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<Map<String, String>> list = iGenerateService.db(pageParam, params);
return AjaxResult.success(list);
}
/**
* 导入数据表
*
* @param tables 参数
* @return Object
*/
@PostMapping("/importTable")
public Object importTable(String tables) {
String[] tableNames = tables.split(",");
iGenerateService.importTable(tableNames);
return AjaxResult.success();
}
/**
* 预览代码
*
* @return Object
*/
@GetMapping("/previewCode")
public Object previewCode() {
iGenerateService.previewCode();
return null;
}
}

View File

@ -0,0 +1,36 @@
package com.hxkj.generator.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* 代码生成业务实体
*/
@Data
public class GenTable implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Integer id;
private String tableName;
private String tableComment;
private String subTableName;
private String subTableFk;
private String entityName;
private String packageName;
private String moduleName;
private String businessName;
private String functionName;
private String functionAuthor;
private String genTpl;
private String genType;
private String genPath;
private Long createTime;
private Long updateTime;
private Long deleteTime;
}

View File

@ -0,0 +1,39 @@
package com.hxkj.generator.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* 代码生成表列实体类
*/
@Data
public class GenTableColumn implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Integer id;
private Integer tableId;
private String columnName;
private String columnComment;
private String columnType;
private String javaType;
private String javaField;
private Integer isPk;
private Integer isIncrement;
private Integer isRequired;
private Integer isInsert;
private Integer isEdit;
private Integer isList;
private Integer isQuery;
private String queryType;
private String htmlType;
private String dictType;
private Integer sort;
private Long createTime;
private Long updateTime;
}

View File

@ -0,0 +1,12 @@
package com.hxkj.generator.mapper;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.generator.entity.GenTableColumn;
import org.apache.ibatis.annotations.Mapper;
/**
* 代码生成表列
*/
@Mapper
public interface GenTableColumnMapper extends IBaseMapper<GenTableColumn> {
}

View File

@ -0,0 +1,75 @@
package com.hxkj.generator.mapper;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.generator.entity.GenTable;
import com.hxkj.generator.entity.GenTableColumn;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* 代码生成表
*/
@Mapper
public interface GenTableMapper extends IBaseMapper<GenTable> {
/**
* 查询库中的数据表
*
* @author fzr
* @param params 参数
* @return List<Map<String, String>>
*/
@Select({"<script>",
"SELECT table_name, table_comment, create_time, update_time " +
"FROM information_schema.tables " +
"WHERE table_schema = (SELECT database()) " +
"AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%' " +
"AND table_name NOT IN (select table_name from ls_gen_table)",
"<if test=\"tableName != null and tableName != ''\">" +
"AND lower(table_name) like lower(concat('%', #{tableName}, '%'))" +
"</if>",
"<if test=\"tableComment != null and tableComment != ''\">" +
"AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))" +
"</if>",
"</script>"})
List<Map<String, String>> selectDbTableList(Map<String, String> params);
/**
* 根据表名集查询表
*
* @author fzr
* @param tableNames 表名集
* @return List<Map<String, String>>
*/
@Select({"<script>",
"SELECT table_name, table_comment, create_time, update_time " +
"FROM information_schema.tables " +
"WHERE table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%' AND table_schema = (select database()) " +
"AND table_name IN " +
"<foreach collection='array' item='name' open='(' separator=',' close=')'>" +
"#{name}" +
"</foreach>",
"</script>"})
List<Map<String, String>> selectDbTableListByNames(String[] tableNames);
/**
* 根据表名查询列信息
*
* @author fzr
* @param tableName 表名
* @return List<GenTableColumn>
*/
@Select({"<script>",
"SELECT column_name, " +
"(CASE WHEN (is_nullable = 'no' <![CDATA[ && ]]> column_key != 'PRI') THEN '1' ELSE NULL END) AS is_required, " +
"(CASE WHEN column_key = 'PRI' THEN '1' ELSE '0' END) AS is_pk, ordinal_position AS sort, column_comment, " +
"(CASE WHEN extra = 'auto_increment' THEN '1' ELSE '0' END) AS is_increment, column_type " +
"FROM information_schema.columns WHERE table_schema = (SELECT database()) AND table_name = (#{tableName}) " +
"ORDER BY ordinal_position",
"</script>"})
List<GenTableColumn> selectDbTableColumnsByName(String tableName);
}

View File

@ -1,9 +1,8 @@
package com.hxkj.admin.service;
package com.hxkj.generator.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.common.core.PageResult;
import com.hxkj.generator.validate.PageParam;
import java.util.List;
import java.util.Map;
/**
@ -12,7 +11,7 @@ import java.util.Map;
public interface IGenerateService {
/**
* 数据表列表
* 表列表
*
* @author fzr
* @param pageParam 分页参数
@ -21,4 +20,14 @@ public interface IGenerateService {
*/
PageResult<Map<String, String>> db(PageParam pageParam, Map<String, String> params);
/**
* 导入表
*
* @author fzr
* @param tableNames 参数
*/
void importTable(String[] tableNames);
Object previewCode();
}

View File

@ -0,0 +1,200 @@
package com.hxkj.generator.service.impl;
import com.github.pagehelper.PageHelper;
import com.hxkj.common.constant.GenConstants;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.utils.StringUtil;
import com.hxkj.generator.entity.GenTable;
import com.hxkj.generator.entity.GenTableColumn;
import com.hxkj.generator.mapper.GenTableColumnMapper;
import com.hxkj.generator.mapper.GenTableMapper;
import com.hxkj.generator.service.IGenerateService;
import com.hxkj.generator.util.GenUtil;
import com.hxkj.generator.validate.PageParam;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.StringWriter;
import java.util.*;
/**
* 代码生成器服务实现类
*/
@Service
public class GenerateServiceImpl implements IGenerateService {
@Resource
GenTableMapper genTableMapper;
@Resource
GenTableColumnMapper genTableColumnMapper;
/**
* 数据表列表
*
* @author fzr
* @param pageParam 分页参数
* @param params 搜索参数
* @return PageResult<Map<String, String>>
*/
@Override
public PageResult<Map<String, String>> db(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
PageHelper.startPage(page, limit);
List<Map<String, String>> tables = genTableMapper.selectDbTableList(params);
List<Map<String, String>> list = new LinkedList<>();
for (Map<String, String> item : tables) {
Map<String, String> map = new LinkedHashMap<>();
map.put("tableName", item.get("table_name"));
map.put("tableComment", item.get("table_comment"));
map.put("createTime", item.get("create_time"));
map.put("updateTime", item.getOrDefault("update_time", ""));
list.add(map);
}
return PageResult.pageHelper(tables, list);
}
@Override
public void importTable(String[] tableNames) {
List<Map<String, String>> tables = genTableMapper.selectDbTableListByNames(tableNames);
for (Map<String, String> map : tables) {
// 生成表信息
String tableName = map.get("table_name");
String tableDesc = map.get("table_comment");
GenTable table = new GenTable();
table.setTableName(tableName);
table.setTableComment(tableDesc);
table.setEntityName(GenUtil.toClassName(tableName));
table.setPackageName("com.hxkj.admin");
table.setModuleName(GenUtil.toModuleName("com.hxkj.admin"));
table.setBusinessName(GenUtil.toBusinessName(tableName));
table.setFunctionName(GenUtil.replaceText(tableDesc));
table.setFunctionAuthor("likeAdmin");
table.setCreateTime(System.currentTimeMillis() / 1000);
table.setUpdateTime(System.currentTimeMillis() / 1000);
int row = genTableMapper.insert(table);
// 生成列信息
if (row > 0) {
List<GenTableColumn> genTableColumns = genTableMapper.selectDbTableColumnsByName(tableName);
for (GenTableColumn column : genTableColumns) {
String columnType = GenUtil.getDbType(column.getColumnType());
String columnName = column.getColumnName();
column.setTableId(table.getId());
column.setUpdateTime(table.getUpdateTime());
column.setCreateTime(table.getCreateTime());
column.setJavaField(StringUtil.toCamelCase(columnName));
column.setJavaType("String");
column.setQueryType("EQ");
column.setIsInsert(GenConstants.REQUIRE);
if (GenUtil.isArraysContains(GenConstants.COLUMN_TYPE_STR, columnType) ||
GenUtil.isArraysContains(GenConstants.COLUMN_TYPE_TEXT, columnType)) {
Integer columnLength = GenUtil.getColumnLength(column.getColumnType());
String htmlType = columnLength >= 500 || GenUtil.isArraysContains(GenConstants.COLUMN_TYPE_TEXT, columnType)
? GenConstants.HTML_TEXTAREA
: GenConstants.HTML_INPUT;
column.setHtmlType(htmlType);
}
else if (GenUtil.isArraysContains(GenConstants.COLUMN_TYPE_TIME, columnType)) {
column.setJavaType(GenConstants.TYPE_DATE);
column.setHtmlType(GenConstants.HTML_DATETIME);
}
else if (GenUtil.isArraysContains(GenConstants.COLUMN_TYPE_NUMBER, columnType)) {
column.setHtmlType(GenConstants.HTML_INPUT);
String[] str = StringUtil.split(StringUtil.substringBetween(column.getColumnType(), "(", ")"), ",");
if (str != null && str.length == 2 && Integer.parseInt(str[1]) > 0) {
column.setJavaType(GenConstants.TYPE_BIG_DECIMAL); // 浮点形
} else if (str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) {
column.setJavaType(GenConstants.TYPE_INTEGER); // 整数形
} else {
column.setJavaType(GenConstants.TYPE_LONG); // 长整形
}
}
// 编辑字段
if (!GenUtil.isArraysContains(GenConstants.COLUMN_NAME_NOT_EDIT, columnName) && column.getIsPk() == 0) {
column.setIsEdit(GenConstants.REQUIRE);
}
// 列表字段
if (!GenUtil.isArraysContains(GenConstants.COLUMN_NAME_NOT_LIST, columnName) && column.getIsPk() == 0) {
column.setIsList(GenConstants.REQUIRE);
}
// 查询字段
if (!GenUtil.isArraysContains(GenConstants.COLUMN_NAME_NOT_QUERY, columnName) && column.getIsPk() == 0) {
column.setIsQuery(GenConstants.REQUIRE);
}
// 查询字段类型
if (StringUtil.endsWithIgnoreCase(columnName, "name")) {
column.setQueryType(GenConstants.QUERY_LIKE);
}
// 根据字段设置
if (StringUtil.endsWithIgnoreCase(columnName, "status")) {
// 状态字段设置单选框
column.setHtmlType(GenConstants.HTML_RADIO);
} else if (StringUtil.endsWithIgnoreCase(columnName, "type") ||
StringUtil.endsWithIgnoreCase(columnName, "sex")) {
// 类型&性别字段设置下拉框
column.setHtmlType(GenConstants.HTML_SELECT);
} else if (StringUtil.endsWithIgnoreCase(columnName, "image")) {
// 图片字段设置图片上传控件
column.setHtmlType(GenConstants.HTML_IMAGE_UPLOAD);
} else if (StringUtil.endsWithIgnoreCase(columnName, "file")) {
// 文件字段设置文件上传控件
column.setHtmlType(GenConstants.HTML_FILE_UPLOAD);
} else if (StringUtil.endsWithIgnoreCase(columnName, "content")) {
// 内容字段设置富文本控件
column.setHtmlType(GenConstants.HTML_EDITOR);
}
genTableColumnMapper.insert(column);
}
}
}
}
@Override
public Object previewCode() {
try{
Velocity.init(getDefaultProp());
VelocityContext context = new VelocityContext();
context.put("hello", "Hello World!");
StringWriter w = new StringWriter();
Template t = Velocity.getTemplate("vm/java/controller.java.vm");
t.merge(context, w);
System.out.println("template:" + w);
}catch (Exception e){
e.printStackTrace();
}
return null;
}
public Properties getDefaultProp(){
Properties prop = new Properties();
// prop.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
// prop.setProperty(RuntimeConstants.RESOURCE_LOADER_CLASS, "classpath");
prop.setProperty(RuntimeConstants.RESOURCE_LOADERS, "classpath");
// prop.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
prop.setProperty("resource.loader.file.class", ClasspathResourceLoader.class.getName());
return prop;
}
}

View File

@ -0,0 +1,135 @@
package com.hxkj.generator.util;
import com.hxkj.common.utils.StringUtil;
import org.apache.commons.lang3.RegExUtils;
import java.util.Arrays;
public class GenUtil {
/**
* 转模块名
*
* @author fzr
* @param packageName 包名
* @return 模块名
*/
public static String toModuleName(String packageName)
{
int lastIndex = packageName.lastIndexOf(".");
int nameLength = packageName.length();
return StringUtil.substring(packageName, lastIndex + 1, nameLength);
}
/**
* 转业务名
*
* @author fzr
* @param tableName 表名
* @return 业务名
*/
public static String toBusinessName(String tableName)
{
int lastIndex = tableName.lastIndexOf("_");
int nameLength = tableName.length();
return StringUtil.substring(tableName, lastIndex + 1, nameLength);
}
/**
* 表名转Java类名
*
* @author fzr
* @param tableName 表名称
* @return 类名
*/
public static String toClassName(String tableName)
{
String tablePrefix = "ls_";
if (StringUtil.isNotEmpty(tablePrefix)) {
String[] searchList = StringUtil.split(tablePrefix, ",");
tableName = replaceFirst(tableName, searchList);
}
return StringUtil.convertToCamelCase(tableName);
}
/**
* 批量替换前缀
*
* @author fzr
* @param replaceVal 替换值
* @param searchList 替换列表
* @return String
*/
public static String replaceFirst(String replaceVal, String[] searchList)
{
String text = replaceVal;
for (String searchString : searchList) {
if (replaceVal.startsWith(searchString)) {
text = replaceVal.replaceFirst(searchString, "");
break;
}
}
return text;
}
/**
* 关键字替换
*
* @author fzr
* @param text 需要被替换的名字
* @return 替换后的名字
*/
public static String replaceText(String text)
{
return RegExUtils.replaceAll(text, "(?:表)", "");
}
/**
* 校验数组是否包含指定值
*
* @author fzr
* @param arr 数组
* @param targetValue
* @return 是否包含
*/
public static boolean isArraysContains(String[] arr, String targetValue)
{
return Arrays.asList(arr).contains(targetValue);
}
/**
* 获取数据库类型字段
*
* @author fzr
* @param columnType 列类型
* @return 截取后的列类型
*/
public static String getDbType(String columnType)
{
if (StringUtil.indexOf(columnType, "(") > 0) {
return StringUtil.substringBefore(columnType, "(");
}
else {
return columnType;
}
}
/**
* 获取字段长度
*
* @author fzr
* @param columnType 列类型
* @return 截取后的列类型
*/
public static Integer getColumnLength(String columnType)
{
if (StringUtil.indexOf(columnType, "(") > 0) {
String length = StringUtil.substringBetween(columnType, "(", ")");
return Integer.valueOf(length);
}
else {
return 0;
}
}
}

View File

@ -0,0 +1,86 @@
package com.hxkj.generator.util;
import com.hxkj.common.utils.StringUtil;
import com.hxkj.generator.entity.GenTable;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
public class VelocityUtil {
/**
* 初始化vm方法
*/
public static void initVelocity()
{
try {
Properties p = new Properties();
p.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
p.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
p.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
Velocity.init(p);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* 设置模板变量信息
*
* @return 模板列表
*/
public static VelocityContext prepareContext(GenTable genTable)
{
String moduleName = genTable.getModuleName();
String businessName = genTable.getBusinessName();
String packageName = genTable.getPackageName();
String tplCategory = genTable.getGenTpl();
String functionName = genTable.getFunctionName();
VelocityContext velocityContext = new VelocityContext();
velocityContext.put("tplCategory", genTable.getGenTpl());
velocityContext.put("tableName", genTable.getTableName());
velocityContext.put("functionName", StringUtil.isNotEmpty(functionName) ? functionName : "【请填写功能名称】");
velocityContext.put("ClassName", genTable.getEntityName());
return velocityContext;
}
/**
* 获取模板信息
*
* @return 模板列表
*/
public static List<String> getTemplateList(String tplCategory)
{
List<String> templates = new ArrayList<String>();
// templates.add("vm/java/domain.java.vm");
// templates.add("vm/java/mapper.java.vm");
// templates.add("vm/java/service.java.vm");
// templates.add("vm/java/serviceImpl.java.vm");
templates.add("vm/java/controller.java.vm");
// templates.add("vm/xml/mapper.xml.vm");
// templates.add("vm/sql/sql.vm");
// templates.add("vm/js/api.js.vm");
// if (GenConstants.TPL_CRUD.equals(tplCategory))
// {
// templates.add("vm/vue/index.vue.vm");
// }
// else if (GenConstants.TPL_TREE.equals(tplCategory))
// {
// templates.add("vm/vue/index-tree.vue.vm");
// }
// else if (GenConstants.TPL_SUB.equals(tplCategory))
// {
// templates.add("vm/vue/index.vue.vm");
// templates.add("vm/java/sub-domain.java.vm");
// }
return templates;
}
}

View File

@ -0,0 +1,28 @@
package com.hxkj.generator.validate;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import java.io.Serializable;
/**
* 分页参数
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class PageParam implements Serializable {
// 当前分页
@DecimalMin(value = "1", message = "pageNo参数必须大于0的数字")
public Integer pageNo = 1;
// 每页条数
@DecimalMin(value = "1", message = "pageSize参数必须是大于0的数字")
@DecimalMax(value = "60", message = "pageSize参数必须是小于60的数字")
private Integer pageSize = 20;
}

View File

@ -0,0 +1 @@
$hello

View File

@ -0,0 +1 @@
$hello

View File

@ -13,6 +13,7 @@
<module>like-admin</module>
<module>like-front</module>
<module>like-common</module>
<module>like-generator</module>
</modules>
<!-- 特性信息 -->