| | |
| | | private static final Integer SET_PO_Getter = 1; |
| | | //endregion |
| | | |
| | | //region po类头部文字设置 |
| | | //region 类头部文字设置 |
| | | private static final String SET_BEFORE_TEXT = |
| | | "/**\n" + |
| | | "# __----~~~~~~~~~~~------___\n" + |
| | |
| | | "*/"; |
| | | //endregion |
| | | |
| | | //region import依赖架包 |
| | | |
| | | //region po类 import 内容设置 |
| | | private static final String[] SET_PO_IMPORT = new String[]{ |
| | | "import com.baomidou.mybatisplus.annotation.*;", |
| | |
| | | }; |
| | | //endregion |
| | | |
| | | //region 实体映射类 import 内容设置 |
| | | //region 实体属性映射类 import 内容设置 |
| | | private static final String[] SET_CONVERT_IMPORT = new String[]{ |
| | | "import org.mapstruct.Mapper;" + |
| | | "import org.mapstruct.factory.Mappers;" + |
| | |
| | | }; |
| | | //endregion |
| | | |
| | | //region dao类 import 内容设置 |
| | | private static final String[] SET_DAO_IMPORT = new String[]{ |
| | | //region mapper实现类 import 内容设置 |
| | | private static final String[] SET_MAPPER_IMPL_IMPORT = new String[]{ |
| | | "import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;", |
| | | "import com.baomidou.mybatisplus.extension.plugins.pagination.Page;", |
| | | "import com.lunhan.xxx.common.PagerResult;", |
| | | "import com.lunhan.xxx.common.enums.EYesOrNo;", |
| | | "import com.lunhan.xxx.common.util.ListUtil;", |
| | | "import com.lunhan.xxx.common.util.NumericUtil;", |
| | | "import com.lunhan.xxx.common.util.StringUtil;", |
| | | "import com.lunhan.xxx.entity.dto.OrderByDTO;", |
| | | "import com.lunhan.xxx.entity.dto.SearchBasicDTO;", |
| | | "import com.lunhan.xxx.entity.enums.EOrderBy;", |
| | | "import com.lunhan.xxx.common.util.*;", |
| | | "import com.lunhan.xxx.entity.dto.*;", |
| | | "import com.lunhan.xxx.entity.enums.*;", |
| | | "import com.lunhan.xxx.repository.BasicMapperImpl;", |
| | | "import org.springframework.stereotype.Repository;" |
| | | }; |
| | |
| | | private static final String[] SET_SEARCH_IMPORT = new String[]{ |
| | | "import " + GenCodeGauss.PackageSet.SEARCH.replaceAll("\\.search", "") + ".SearchBasicDTO;", |
| | | }; |
| | | //endregion |
| | | |
| | | //endregion |
| | | |
| | | //region 类注释模版 |
| | |
| | | * 只生成以下配置的表 |
| | | */ |
| | | private static final List<String> ONLY_TABLES = Arrays.asList( |
| | | "water_meter_apply" |
| | | "admin_menus" |
| | | ); |
| | | |
| | | public static void main(String[] args) { |
| | |
| | | genSearch(columns, tableDesc); |
| | | genMapper(columns, tableDesc); |
| | | genModifyDto(columns, tableName, tableDesc); |
| | | genDao(tableName, tableDesc); |
| | | genMapperImpl(tableName, tableDesc); |
| | | genConvertMapper(tableName, tableDesc); |
| | | genService(tableName, tableDesc); |
| | | genController(tableName, tableDesc); |
| | |
| | | writeFile(GenCodeGauss.OutSet.SEARCH + "/", searchName + ".java", content.toString()); |
| | | } |
| | | |
| | | private static void genDao(String tableName, String tableDesc) { |
| | | private static void genMapperImpl(String tableName, String tableDesc) { |
| | | String modelName = underline2Camel(tableName, true); |
| | | String mapperName = modelName + SuffixSet.MAPPER; |
| | | String daoName = modelName + GenCodeGauss.SuffixSet.MAPPER_IMPL; |
| | |
| | | content.append(GenCodeGauss.PackageSet.MAPPER_IMPL); |
| | | content.append(ConstantFactory.STR_SEMICOLON); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | if (SET_DAO_IMPORT.length > 0) { |
| | | if (SET_MAPPER_IMPL_IMPORT.length > 0) { |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | for (String s : SET_DAO_IMPORT) { |
| | | for (String s : SET_MAPPER_IMPL_IMPORT) { |
| | | content.append(s); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | } |
| | |
| | | content.append("\t}\n"); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append("\t@Override\n" + |
| | | "\tpublic PagerResult<" + poName + "> search(" + searchName + " request) {\n" + |
| | | "\tpublic PagerResult<" + poName + "> search(SearchBasicDTO request) {\n" + |
| | | "\t\t// 还原查询条件真实类型\n" + |
| | | "\t\t" + searchName + " search = (" + searchName + ")request;\n" + |
| | | "\t\t// 查询条件\n" + |
| | |
| | | "\t\t// 数据创建时间-截止\n" + |
| | | "\t\tqueryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, " + poName + "::getCreateTime, search.getCreateTimeEnd());\n" + |
| | | "\t\t// 关键字\n" + |
| | | "\t\tif (StringUtil.isNotNullOrEmpty(search.getKeywords())) {\n" + |
| | | "\t\t\tqueryWrapper.and(q ->\n" + |
| | | "\t\t\t\tq.like(" + poName + "::getName, search.getKeywords())\n" + |
| | | "\t\t\t\t.or().like(" + poName + "::getPhone, search.getKeywords())\n" + |
| | | "\t\t\t);\n" + |
| | | "\t\t}\n" + |
| | | "\t\t//if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {\n" + |
| | | "\t\t//\tqueryWrapper.and(q ->\n" + |
| | | "\t\t//\t\tq.like(" + poName + "::getName, search.getKeywords())\n" + |
| | | "\t\t//\t\t.or().like(" + poName + "::getPhone, search.getKeywords())\n" + |
| | | "\t\t//\t);\n" + |
| | | "\t\t//}\n" + |
| | | "\n" + |
| | | "\t\t// 排序处理\n" + |
| | | "\t\tif (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {\n" + |
| | |
| | | content.append(serviceName); |
| | | content.append(" extends BaseService {\n"); |
| | | content.append(" @Autowired\n" + |
| | | " private " + daoName + " dao;\n"); |
| | | " private " + daoName + " mapper;\n"); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append(" public ExecutedResult<Long> create(" + createDTOName + " request) {\n" + |
| | | " // 转换po\n" + |
| | |
| | | " // 是否删除(逻辑删除)初始值\n" + |
| | | " //item.setIsDelete(EYesOrNo.NO.getValue());\n" + |
| | | "\n" + |
| | | " Boolean result = this.dao.add(item);\n" + |
| | | " if (BooleanUtils.isFalse(result)) {\n" + |
| | | " int rowCount = mapper.insert(item);\n" + |
| | | " if (rowCount != 1) {\n" + |
| | | " return ExecutedResult.failed(\"创建[" + tableDesc + "]失败。\");\n" + |
| | | " }\n" + |
| | | " return ExecutedResult.success(item.getId());\n" + |
| | |
| | | " // 转换po\n" + |
| | | " " + poName + " item = CopierUtil.mapTo(request, " + poName + ".class);\n" + |
| | | "\n" + |
| | | " Boolean result = this.dao.modify(item);\n" + |
| | | " if (BooleanUtils.isFalse(result)) {\n" + |
| | | " int rowCount = mapper.updateById(item);\n" + |
| | | " if (rowCount != 1) {\n" + |
| | | " return ExecutedResult.failed(\"编辑[" + tableDesc + "]失败。\");\n" + |
| | | " }\n" + |
| | | " return ExecutedResult.success();\n" + |
| | |
| | | " public ExecutedResult<" + responseDTOName + "> get(Long id) {\n" + |
| | | " " + responseDTOName + " result = new " + responseDTOName + "();\n" + |
| | | "\n" + |
| | | " " + poName + " find = dao.getById(id);\n" + |
| | | " " + poName + " find = mapper.get(id);\n" + |
| | | " if (null != find) {\n" + |
| | | " result = CopierUtil.mapTo(find, " + responseDTOName + ".class);\n" + |
| | | " }\n" + |
| | |
| | | "// item.setId(id);\n" + |
| | | "// item.setStatus(EState.DISABLED.getValue());\n" + |
| | | "//\n" + |
| | | "// Boolean result = this.dao.modify(item);\n" + |
| | | "// if (BooleanUtils.isFalse(result)) {\n" + |
| | | "// int rowCount = mapper.updateById(item);\n" + |
| | | "// if (rowCount != 1) {\n" + |
| | | "// return ExecutedResult.failed(\"停用[" + tableDesc + "]失败。\");\n" + |
| | | "// }\n" + |
| | | "// return ExecutedResult.success();\n" + |
| | |
| | | "// item.setId(id);\n" + |
| | | "// item.setStatus(EState.NORMAL.getValue());\n" + |
| | | "//\n" + |
| | | "// Boolean result = this.dao.modify(item);\n" + |
| | | "// if (BooleanUtils.isFalse(result)) {\n" + |
| | | "// int rowCount = mapper.updateById(item);\\n\" +\n" + |
| | | "// if (rowCount != 1) {\n" + |
| | | "// return ExecutedResult.failed(\"启用[" + tableDesc + "]失败。\");\n" + |
| | | "// }\n" + |
| | | "// return ExecutedResult.success();\n" + |
| | |
| | | "// item.setId(request.getId());\n" + |
| | | "// item.setSort(request.getSort());\n" + |
| | | "//\n" + |
| | | "// Boolean result = this.dao.modify(item);\n" + |
| | | "// if (BooleanUtils.isFalse(result)) {\n" + |
| | | "// int rowCount = mapper.updateById(item);\\n\" +\n" + |
| | | "// if (rowCount != 1) {\n" + |
| | | "// return ExecutedResult.failed(\"设置[" + tableDesc + "]排序值失败。\");\n" + |
| | | "// }\n" + |
| | | "// return ExecutedResult.success();\n" + |
| | | "// }\n" + |
| | | "//\n" + |
| | | "// public ExecutedResult<String> listSetSort(ReqListSetSort request) {\n" + |
| | | "// // id列表\n" + |
| | | "// List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());\n" + |
| | | "// // 验证记录是否存在\n" + |
| | | "// ExecutedResult<List<" + poName + ">> checkExists = this.check4Id(listId);\n" + |
| | | "// if (checkExists.isFailed()) {\n" + |
| | | "// return ExecutedResult.failed(checkExists.getMsg());\n" + |
| | | "// }\n" + |
| | | "//\n" + |
| | | "// List<" + poName + "> listUpdate = request.getList().stream()\n" + |
| | | "// .map(c -> {\n" + |
| | | "// " + poName + " item = new " + poName + "();\n" + |
| | | "// item.setId(c.getId());\n" + |
| | | "// item.setSort(c.getSort());\n" + |
| | | "// return item;\n" + |
| | | "// })\n" + |
| | | "// .collect(Collectors.toList());\n" + |
| | | "// Boolean result = mapper.modifyList(listUpdate);\n" + |
| | | "// if (result) {\n" + |
| | | "// return ExecutedResult.success();\n" + |
| | | "// }\n" + |
| | | "// return ExecutedResult.failed(\"[" + tableDesc + "]设置排序值失败\");\n" + |
| | | "// }\n" + |
| | | "//\n" + |
| | | "// public ExecutedResult<String> remove(Long id) {\n" + |
| | | "// Boolean result = this.dao.remove(id);\n" + |
| | | "// Boolean result = mapper.deleteLogic(id);\n" + |
| | | "// if (BooleanUtils.isFalse(result)) {\n" + |
| | | "// return ExecutedResult.failed(\"删除[" + tableDesc + "]失败。\");\n" + |
| | | "// }\n" + |
| | |
| | | "// }\n" + |
| | | "//\n" + |
| | | "// public ExecutedResult<String> removeList(List<Long> ids) {\n" + |
| | | "// Boolean result = this.dao.removeByListId(ids);\n" + |
| | | "// Boolean result = mapper.deleteLogic(ids);\n" + |
| | | "// if (BooleanUtils.isFalse(result)) {\n" + |
| | | "// return ExecutedResult.failed(\"删除[" + tableDesc + "]失败。\");\n" + |
| | | "// }\n" + |
| | |
| | | " public ExecutedResult<List<" + responseDTOName + ">> getList(List<Long> listId) {\n" + |
| | | " List<" + responseDTOName + "> result = new ArrayList<>();\n" + |
| | | "\n" + |
| | | " List<" + poName + "> list = this.dao.getListById(listId);\n" + |
| | | " List<" + poName + "> list = mapper.getList(listId);\n" + |
| | | " if (ListUtil.isNotNullOrEmpty(list)) {\n" + |
| | | " result = CopierUtil.mapTo(list, " + responseDTOName + ".class);\n" + |
| | | " }\n" + |
| | |
| | | " search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());\n" + |
| | | " }\n" + |
| | | "\n" + |
| | | " PagerResult<" + poName + "> pageList = dao.search(search);\n" + |
| | | " PagerResult<" + poName + "> pageList = mapper.search(search);\n" + |
| | | " List<" + responseDTOName + "> listVo = new ArrayList<>();\n" + |
| | | " List<" + poName + "> list = pageList.getList();\n" + |
| | | " if (ListUtil.isNotNullOrEmpty(list)) {\n" + |
| | |
| | | " }\n" + |
| | | "\n" + |
| | | " protected ExecutedResult<" + poName + "> check4Id(Long id) {\n" + |
| | | " " + poName + " exists = dao.getById(id);\n" + |
| | | " " + poName + " exists = mapper.get(id);\n" + |
| | | " if (Objects.isNull(exists)) {\n" + |
| | | " return ExecutedResult.failed(\"[" + tableDesc + "]不存在:\" + id);\n" + |
| | | " }\n" + |
| | | " return ExecutedResult.success(exists);\n" + |
| | | " }\n"); |
| | | " }\n"+ |
| | | " protected ExecutedResult<List<" + poName + ">> check4Id(List<Long> listId) {\n" + |
| | | " // 从数据库查找" + tableDesc + "\n" + |
| | | " List<" + poName + "> list = mapper.getList(listId);\n" + |
| | | " if (ListUtil.isNullOrEmpty(list)) {\n" + |
| | | " return ExecutedResult.failed(\"[" + tableDesc + "]不存在.\" + listId);\n" + |
| | | " }\n" + |
| | | " // 数据库找到的id列表\n" + |
| | | " List<Long> listIdFind = list.stream().map(" + poName + "::getId).collect(Collectors.toList());\n" + |
| | | " // 数量不一致\n" + |
| | | " if (listId.size() != listIdFind.size()) {\n" + |
| | | " // 筛选数据库不存在的" + tableDesc + "\n" + |
| | | " List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());\n" + |
| | | " if (ListUtil.isNullOrEmpty(list)) {\n" + |
| | | " return ExecutedResult.failed(\"[" + tableDesc + "]不存在.\" + listIdNotFound);\n" + |
| | | " }\n" + |
| | | " }\n" + |
| | | " return ExecutedResult.success(list);\n" + |
| | | " }"); |
| | | content.append("}"); |
| | | |
| | | if (new File(GenCodeGauss.OutSet.SERVICE + serviceName + ".java").exists()) { |
| | |
| | | .replaceAll("\\{\\#\\=date\\}", LocalDateTimeUtil.todayStr().replaceAll("\\-", "/")) |
| | | ); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append(" @PostMapping(value = \"getList\")\n" + |
| | | " public ExecutedResult<List<" + voName + ">> getList(@RequestBody ReqListId request) {\n" + |
| | | " return this.service.getList(request.getListId());\n" + |
| | | " }\n\n"); |
| | | content.append(SET_METHOD_DESC_TPL |
| | | .replaceAll("\\{\\#\\=desc\\}", "查询[" + tableDesc + "]") |
| | | .replaceAll("\\{\\#\\=author\\}", AUTHOR) |
| | | .replaceAll("\\{\\#\\=date\\}", LocalDateTimeUtil.todayStr().replaceAll("\\-", "/")) |
| | | ); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append(" @PostMapping(value = \"search\")\n" + |
| | | " public ExecutedResult<PagerResult<" + voName + ">> search(@RequestBody " + searchName + " request) {\n" + |
| | | " return this.service.search(request);\n" + |
| | |
| | | content.append(ConstantFactory.STR_SEMICOLON); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append(String.format("import %s.BasicMapper;", PackageSet.MAPPER.replace(".mapper", ""))); |
| | | content.append(String.format("import %s.%s%s;", GenCodeGauss.PackageSet.PO, modelName, GenCodeGauss.SuffixSet.PO)); |
| | | content.append(ConstantFactory.STR_NEWLINE); |
| | | content.append(ConstantFactory.STR_NEWLINE); |