liulin
2024-08-02 12c82c37acb998a3c269871e22e339d66b9f1c1d
自动生成代码
已修改2个文件
已添加1个文件
192 ■■■■ 文件已修改
sql/init.sql 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lunhan/xxx/service/TestInfoService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/lunhan/xxx/host/GenCodeGauss.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/init.sql
对比新文件
@@ -0,0 +1,50 @@
CREATE OR REPLACE FUNCTION "public"."update_timestamp_column"()
  RETURNS "pg_catalog"."trigger" AS $BODY$
BEGIN
NEW.timestamp_column := current_timestamp;
RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
-- test_info - 测试信息表
DROP TABLE IF EXISTS "public"."test_info";
CREATE TABLE "public"."test_info" (
  "id" int8 NOT NULL,
  "name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
  "user_id" int8 NOT NULL DEFAULT 0,
  "phone" varchar(50) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
  "balance" numeric(18,4) NOT NULL DEFAULT 0,
  "sex" int2 NOT NULL DEFAULT 0,
  "birthday" varchar(50) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
  "sort" int4 NOT NULL DEFAULT 0,
  "status" int4 NOT NULL DEFAULT 0,
  "comment" varchar(500) COLLATE "pg_catalog"."default" NOT NULL DEFAULT NULL::character varying,
  "create_time" int8 NOT NULL DEFAULT 0,
  "update_time" timestamp(3) NOT NULL DEFAULT pg_systimestamp(),
  "is_delete" int2 NOT NULL DEFAULT 0
)
;
COMMENT ON TABLE "public"."test_info" IS '测试信息表';
COMMENT ON COLUMN "public"."test_info"."id" IS '主键id';
COMMENT ON COLUMN "public"."test_info"."name" IS '名称';
COMMENT ON COLUMN "public"."test_info"."user_id" IS '用户id';
COMMENT ON COLUMN "public"."test_info"."phone" IS '电话';
COMMENT ON COLUMN "public"."test_info"."balance" IS 'balance余额';
COMMENT ON COLUMN "public"."test_info"."sex" IS '性别 男=1,女=2,其他=3';
COMMENT ON COLUMN "public"."test_info"."birthday" IS '生日';
COMMENT ON COLUMN "public"."test_info"."sort" IS '排序值';
COMMENT ON COLUMN "public"."test_info"."status" IS '状态 正常=200,停用=300,删除=400';
COMMENT ON COLUMN "public"."test_info"."comment" IS '备注';
COMMENT ON COLUMN "public"."test_info"."create_time" IS '数据创建时间';
COMMENT ON COLUMN "public"."test_info"."update_time" IS '最后更新时间';
COMMENT ON COLUMN "public"."test_info"."is_delete" IS '是否删除(逻辑删除)';
-- 设置主键
ALTER TABLE "public"."test_info" ADD CONSTRAINT "PK_test_info" PRIMARY KEY ("id");
-- 索引
CREATE INDEX "IDX_test_info_create_time" ON "public"."test_info"("create_time");
-- 触发器:自动赋值最后更新时间
CREATE TRIGGER "TG_test_info" BEFORE UPDATE OF "update_time" ON "public"."test_info"
FOR EACH ROW
EXECUTE PROCEDURE "public"."update_timestamp_column"();
src/main/java/com/lunhan/xxx/service/TestInfoService.java
@@ -129,7 +129,7 @@
    }
    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
        // 类别id列表
        // id列表
        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
        // 验证记录是否存在
        ExecutedResult<List<TestInfoPO>> checkExists = this.check4Id(listId);
@@ -221,16 +221,16 @@
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<TestInfoPO>> check4Id(List<Long> listId) {
        // 从数据库查找类别
        // 从数据库查找测试信息
        List<TestInfoPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[测试信息]不存在." + listId);
        }
        // 数据库找到的类别id列表
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(TestInfoPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的类别
            // 筛选数据库不存在的测试信息
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[测试信息]不存在." + listIdNotFound);
src/test/java/com/lunhan/xxx/host/GenCodeGauss.java
@@ -79,7 +79,7 @@
    private static final Integer SET_PO_Getter = 1;
    //endregion
    //region po类头部文字设置
    //region 类头部文字设置
    private static final String SET_BEFORE_TEXT =
            "/**\n" +
                    "#                                                    __----~~~~~~~~~~~------___\n" +
@@ -105,6 +105,8 @@
                    "*/";
    //endregion
    //region import依赖架包
    //region po类 import 内容设置
    private static final String[] SET_PO_IMPORT = new String[]{
            "import com.baomidou.mybatisplus.annotation.*;",
@@ -122,7 +124,7 @@
    };
    //endregion
    //region 实体映射类 import 内容设置
    //region 实体属性映射类 import 内容设置
    private static final String[] SET_CONVERT_IMPORT = new String[]{
            "import org.mapstruct.Mapper;" +
                    "import org.mapstruct.factory.Mappers;" +
@@ -131,18 +133,15 @@
    };
    //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;"
    };
@@ -181,6 +180,8 @@
    private static final String[] SET_SEARCH_IMPORT = new String[]{
            "import " + GenCodeGauss.PackageSet.SEARCH.replaceAll("\\.search", "") + ".SearchBasicDTO;",
    };
    //endregion
    //endregion
    //region 类注释模版
@@ -241,7 +242,7 @@
     * 只生成以下配置的表
     */
    private static final List<String> ONLY_TABLES = Arrays.asList(
            "water_meter_apply"
            "admin_menus"
    );
    public static void main(String[] args) {
@@ -265,7 +266,7 @@
            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);
@@ -521,7 +522,7 @@
        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;
@@ -537,9 +538,9 @@
        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);
            }
@@ -574,7 +575,7 @@
        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" +
@@ -591,12 +592,12 @@
                "\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" +
@@ -980,7 +981,7 @@
        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" +
@@ -992,8 +993,8 @@
                "        // 是否删除(逻辑删除)初始值\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" +
@@ -1008,8 +1009,8 @@
                "        // 转换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" +
@@ -1018,7 +1019,7 @@
                "    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" +
@@ -1035,8 +1036,8 @@
                "//        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" +
@@ -1052,8 +1053,8 @@
                "//        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" +
@@ -1069,15 +1070,39 @@
                "//        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" +
@@ -1085,7 +1110,7 @@
                "//    }\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" +
@@ -1095,7 +1120,7 @@
                "    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" +
@@ -1112,7 +1137,7 @@
                "            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" +
@@ -1126,12 +1151,30 @@
                "    }\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()) {
@@ -1264,16 +1307,6 @@
                .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" +
@@ -1312,6 +1345,7 @@
        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);