Commit 0d49691aa0ef78146addd1de334cf1ca85373905

Authored by YunaiV
1 parent d83e0413

代码生成:增加 crud 单表示例

Showing 22 changed files with 381 additions and 592 deletions
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/enums/ErrorCodeConstants.java
... ... @@ -58,13 +58,7 @@ public interface ErrorCodeConstants {
58 58 // ========== 数据源配置 1-001-107-000 ==========
59 59 ErrorCode DEMO_STUDENT_NOT_EXISTS = new ErrorCode(1_001_107_000, "学生不存在");
60 60  
61   - // ========== 学生(CodegenTemplateTypeEnum.ONE 示例) 1-001-201-000 ==========
62   - ErrorCode DEMO01_STUDENT_NOT_EXISTS = new ErrorCode(1_001_200_000, "学生不存在");
63   -
64   - // ========== 学生(CodegenTemplateTypeEnum.MASTER_NORMAL 示例) 1-001-211-000 ==========
65   - ErrorCode DEMO11_STUDENT_NOT_EXISTS = new ErrorCode(1_001_211_000, "学生不存在");
66   -
67   - // ========== 学生(CodegenTemplateTypeEnum.MASTER_INNER 示例) 1-001-213-000 ==========
68   - ErrorCode DEMO12_STUDENT_NOT_EXISTS = new ErrorCode(1_001_213_000, "学生不存在");
  61 + // ========== 学生 1-001-201-000 ==========
  62 + ErrorCode DEMO01_CONTACT_NOT_EXISTS = new ErrorCode(1_001_201_000, "示例联系人不存在");
69 63  
70 64 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/Demo01ContactController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  8 +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
  9 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO;
  10 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactRespVO;
  11 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO;
  12 +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO;
  13 +import cn.iocoder.yudao.module.infra.service.demo.demo01.Demo01ContactService;
  14 +import io.swagger.v3.oas.annotations.Operation;
  15 +import io.swagger.v3.oas.annotations.Parameter;
  16 +import io.swagger.v3.oas.annotations.tags.Tag;
  17 +import org.springframework.security.access.prepost.PreAuthorize;
  18 +import org.springframework.validation.annotation.Validated;
  19 +import org.springframework.web.bind.annotation.*;
  20 +
  21 +import javax.annotation.Resource;
  22 +import javax.servlet.http.HttpServletResponse;
  23 +import javax.validation.Valid;
  24 +import java.io.IOException;
  25 +import java.util.List;
  26 +
  27 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  28 +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
  29 +
  30 +@Tag(name = "管理后台 - 示例联系人")
  31 +@RestController
  32 +@RequestMapping("/infra/demo01-contact")
  33 +@Validated
  34 +public class Demo01ContactController {
  35 +
  36 + @Resource
  37 + private Demo01ContactService demo01ContactService;
  38 +
  39 + @PostMapping("/create")
  40 + @Operation(summary = "创建示例联系人")
  41 + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:create')")
  42 + public CommonResult<Long> createDemo01Contact(@Valid @RequestBody Demo01ContactSaveReqVO createReqVO) {
  43 + return success(demo01ContactService.createDemo01Contact(createReqVO));
  44 + }
  45 +
  46 + @PutMapping("/update")
  47 + @Operation(summary = "更新示例联系人")
  48 + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:update')")
  49 + public CommonResult<Boolean> updateDemo01Contact(@Valid @RequestBody Demo01ContactSaveReqVO updateReqVO) {
  50 + demo01ContactService.updateDemo01Contact(updateReqVO);
  51 + return success(true);
  52 + }
  53 +
  54 + @DeleteMapping("/delete")
  55 + @Operation(summary = "删除示例联系人")
  56 + @Parameter(name = "id", description = "编号", required = true)
  57 + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:delete')")
  58 + public CommonResult<Boolean> deleteDemo01Contact(@RequestParam("id") Long id) {
  59 + demo01ContactService.deleteDemo01Contact(id);
  60 + return success(true);
  61 + }
  62 +
  63 + @GetMapping("/get")
  64 + @Operation(summary = "获得示例联系人")
  65 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  66 + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:query')")
  67 + public CommonResult<Demo01ContactRespVO> getDemo01Contact(@RequestParam("id") Long id) {
  68 + Demo01ContactDO demo01Contact = demo01ContactService.getDemo01Contact(id);
  69 + return success(BeanUtils.toBean(demo01Contact, Demo01ContactRespVO.class));
  70 + }
  71 +
  72 + @GetMapping("/page")
  73 + @Operation(summary = "获得示例联系人分页")
  74 + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:query')")
  75 + public CommonResult<PageResult<Demo01ContactRespVO>> getDemo01ContactPage(@Valid Demo01ContactPageReqVO pageReqVO) {
  76 + PageResult<Demo01ContactDO> pageResult = demo01ContactService.getDemo01ContactPage(pageReqVO);
  77 + return success(BeanUtils.toBean(pageResult, Demo01ContactRespVO.class));
  78 + }
  79 +
  80 + @GetMapping("/export-excel")
  81 + @Operation(summary = "导出示例联系人 Excel")
  82 + @PreAuthorize("@ss.hasPermission('infra:demo01-contact:export')")
  83 + @OperateLog(type = EXPORT)
  84 + public void exportDemo01ContactExcel(@Valid Demo01ContactPageReqVO pageReqVO,
  85 + HttpServletResponse response) throws IOException {
  86 + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
  87 + List<Demo01ContactDO> list = demo01ContactService.getDemo01ContactPage(pageReqVO).getList();
  88 + // 导出 Excel
  89 + ExcelUtils.write(response, "示例联系人.xls", "数据", Demo01ContactRespVO.class,
  90 + BeanUtils.toBean(list, Demo01ContactRespVO.class));
  91 + }
  92 +
  93 +}
0 94 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactPageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.v3.oas.annotations.media.Schema;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +import java.time.LocalDateTime;
  9 +
  10 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  11 +
  12 +@Schema(description = "管理后台 - 示例联系人分页 Request VO")
  13 +@Data
  14 +@EqualsAndHashCode(callSuper = true)
  15 +@ToString(callSuper = true)
  16 +public class Demo01ContactPageReqVO extends PageParam {
  17 +
  18 + @Schema(description = "名字", example = "张三")
  19 + private String name;
  20 +
  21 + @Schema(description = "性别", example = "1")
  22 + private Integer sex;
  23 +
  24 + @Schema(description = "创建时间")
  25 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  26 + private LocalDateTime[] createTime;
  27 +
  28 +}
0 29 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.*;
  5 +import java.util.*;
  6 +import java.util.*;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +import java.time.LocalDateTime;
  9 +import com.alibaba.excel.annotation.*;
  10 +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
  11 +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
  12 +
  13 +@Schema(description = "管理后台 - 示例联系人 Response VO")
  14 +@Data
  15 +@ExcelIgnoreUnannotated
  16 +public class Demo01ContactRespVO {
  17 +
  18 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21555")
  19 + @ExcelProperty("编号")
  20 + private Long id;
  21 +
  22 + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  23 + @ExcelProperty("名字")
  24 + private String name;
  25 +
  26 + @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  27 + @ExcelProperty(value = "性别", converter = DictConvert.class)
  28 + @DictFormat("system_user_sex") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
  29 + private Integer sex;
  30 +
  31 + @Schema(description = "出生年", requiredMode = Schema.RequiredMode.REQUIRED)
  32 + @ExcelProperty("出生年")
  33 + private LocalDateTime birthday;
  34 +
  35 + @Schema(description = "简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  36 + @ExcelProperty("简介")
  37 + private String description;
  38 +
  39 + @Schema(description = "头像")
  40 + @ExcelProperty("头像")
  41 + private String avatar;
  42 +
  43 + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
  44 + @ExcelProperty("创建时间")
  45 + private LocalDateTime createTime;
  46 +
  47 +}
0 48 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/demo01/vo/Demo01ContactSaveReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +import javax.validation.constraints.NotEmpty;
  7 +import javax.validation.constraints.NotNull;
  8 +import java.time.LocalDateTime;
  9 +
  10 +@Schema(description = "管理后台 - 示例联系人新增/修改 Request VO")
  11 +@Data
  12 +public class Demo01ContactSaveReqVO {
  13 +
  14 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21555")
  15 + private Long id;
  16 +
  17 + @Schema(description = "名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  18 + @NotEmpty(message = "名字不能为空")
  19 + private String name;
  20 +
  21 + @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  22 + @NotNull(message = "性别不能为空")
  23 + private Integer sex;
  24 +
  25 + @Schema(description = "出生年", requiredMode = Schema.RequiredMode.REQUIRED)
  26 + @NotNull(message = "出生年不能为空")
  27 + private LocalDateTime birthday;
  28 +
  29 + @Schema(description = "简介", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
  30 + @NotEmpty(message = "简介不能为空")
  31 + private String description;
  32 +
  33 + @Schema(description = "头像")
  34 + private String avatar;
  35 +
  36 +}
0 37 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/demo/package-info.java 0 → 100644
  1 +/**
  2 + * 代码生成示例
  3 + *
  4 + * 1. demo01:单表(增删改查)
  5 + * 2. demo02:单表(树形结构)
  6 + * 3.1 demo03/normal:主子表(标准模式)
  7 + * 3.2 demo03/erp:主子表(ERP 模式)
  8 + * 3.3 demo03/inner:主子表(内嵌模式)
  9 + */
  10 +package cn.iocoder.yudao.module.infra.controller.admin.demo;
0 11 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo11/InfraDemo11StudentDO.java renamed to yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo11;
  1 +package cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
5 5 import java.time.LocalDateTime;
6 6 import java.time.LocalDateTime;
  7 +import java.time.LocalDateTime;
7 8 import com.baomidou.mybatisplus.annotation.*;
8 9 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
9 10  
10 11 /**
11   - * 学生 DO
  12 + * 示例联系人 DO
12 13 *
13 14 * @author 芋道源码
14 15 */
15   -@TableName("infra_demo11_student")
16   -@KeySequence("infra_demo11_student_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  16 +@TableName("infra_demo01_contact")
  17 +@KeySequence("infra_demo01_contact_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
17 18 @Data
18 19 @EqualsAndHashCode(callSuper = true)
19 20 @ToString(callSuper = true)
20 21 @Builder
21 22 @NoArgsConstructor
22 23 @AllArgsConstructor
23   -public class InfraDemo11StudentDO extends BaseDO {
  24 +public class Demo01ContactDO extends BaseDO {
24 25  
25 26 /**
26 27 * 编号
... ... @@ -32,36 +33,22 @@ public class InfraDemo11StudentDO extends BaseDO {
32 33 */
33 34 private String name;
34 35 /**
35   - * 简介
36   - */
37   - private String description;
38   - /**
39   - * 出生日期
40   - */
41   - private LocalDateTime birthday;
42   - /**
43 36 * 性别
44 37 *
45 38 * 枚举 {@link TODO system_user_sex 对应的类}
46 39 */
47 40 private Integer sex;
48 41 /**
49   - * 是否有效
50   - *
51   - * 枚举 {@link TODO infra_boolean_string 对应的类}
52   - */
53   - private Boolean enabled;
54   - /**
55   - * 头像
  42 + * 出生年
56 43 */
57   - private String avatar;
  44 + private LocalDateTime birthday;
58 45 /**
59   - * 附件
  46 + * 简介
60 47 */
61   - private String video;
  48 + private String description;
62 49 /**
63   - * 备注
  50 + * 头像
64 51 */
65   - private String memo;
  52 + private String avatar;
66 53  
67 54 }
68 55 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo01/InfraDemo01StudentDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo01;
2   -
3   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import com.baomidou.mybatisplus.annotation.KeySequence;
5   -import com.baomidou.mybatisplus.annotation.TableId;
6   -import com.baomidou.mybatisplus.annotation.TableName;
7   -import lombok.*;
8   -
9   -import java.time.LocalDateTime;
10   -
11   -/**
12   - * 学生 DO
13   - *
14   - * @author 芋道源码
15   - */
16   -@TableName("infra_demo01_student")
17   -@KeySequence("infra_demo01_student_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
18   -@Data
19   -@EqualsAndHashCode(callSuper = true)
20   -@ToString(callSuper = true)
21   -@Builder
22   -@NoArgsConstructor
23   -@AllArgsConstructor
24   -public class InfraDemo01StudentDO extends BaseDO {
25   -
26   - /**
27   - * 编号
28   - */
29   - @TableId
30   - private Long id;
31   - /**
32   - * 名字
33   - */
34   - private String name;
35   - /**
36   - * 简介
37   - */
38   - private String description;
39   - /**
40   - * 出生日期
41   - */
42   - private LocalDateTime birthday;
43   - /**
44   - * 性别
45   - *
46   - * 枚举 {@link TODO system_user_sex 对应的类}
47   - */
48   - private Integer sex;
49   - /**
50   - * 是否有效
51   - *
52   - * 枚举 {@link TODO infra_boolean_string 对应的类}
53   - */
54   - private Boolean enabled;
55   - /**
56   - * 头像
57   - */
58   - private String avatar;
59   - /**
60   - * 附件
61   - */
62   - private String video;
63   - /**
64   - * 备注
65   - */
66   - private String memo;
67   -
68   -}
69 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo02/InfraDemoStudentAddressDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo02;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import com.baomidou.mybatisplus.annotation.*;
6   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7   -
8   -/**
9   - * 学生地址 DO
10   - *
11   - * @author 芋道源码
12   - */
13   -@TableName("infra_demo_student_address")
14   -@KeySequence("infra_demo_student_address_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
15   -@Data
16   -@EqualsAndHashCode(callSuper = true)
17   -@ToString(callSuper = true)
18   -@Builder
19   -@NoArgsConstructor
20   -@AllArgsConstructor
21   -public class InfraDemoStudentAddressDO extends BaseDO {
22   -
23   - /**
24   - * 编号
25   - */
26   - @TableId
27   - private Long id;
28   - /**
29   - * 学生编号
30   - */
31   - private Long studentId;
32   - /**
33   - * 明细
34   - */
35   - private String detail;
36   -
37   -}
38 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo02/InfraDemoStudentContactDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo02;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import com.baomidou.mybatisplus.annotation.*;
6   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7   -
8   -/**
9   - * 学生联系人 DO
10   - *
11   - * @author 芋道源码
12   - */
13   -@TableName("infra_demo_student_contact")
14   -@KeySequence("infra_demo_student_contact_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
15   -@Data
16   -@EqualsAndHashCode(callSuper = true)
17   -@ToString(callSuper = true)
18   -@Builder
19   -@NoArgsConstructor
20   -@AllArgsConstructor
21   -public class InfraDemoStudentContactDO extends BaseDO {
22   -
23   - /**
24   - * 编号
25   - */
26   - @TableId
27   - private Long id;
28   - /**
29   - * 学生编号
30   - */
31   - private Long studentId;
32   - /**
33   - * 名字
34   - */
35   - private String name;
36   -
37   -}
38 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo02/InfraDemoStudentDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo02;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import com.baomidou.mybatisplus.annotation.*;
6   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7   -
8   -/**
9   - * 学生 DO
10   - *
11   - * @author 芋道源码
12   - */
13   -@TableName("infra_demo_student")
14   -@KeySequence("infra_demo_student_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
15   -@Data
16   -@EqualsAndHashCode(callSuper = true)
17   -@ToString(callSuper = true)
18   -@Builder
19   -@NoArgsConstructor
20   -@AllArgsConstructor
21   -public class InfraDemoStudentDO extends BaseDO {
22   -
23   - /**
24   - * 编号
25   - */
26   - @TableId
27   - private Long id;
28   -
29   -}
30 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo11/InfraDemo11StudentContactDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo11;
2   -
3   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4   -import com.baomidou.mybatisplus.annotation.KeySequence;
5   -import com.baomidou.mybatisplus.annotation.TableId;
6   -import com.baomidou.mybatisplus.annotation.TableName;
7   -import lombok.*;
8   -
9   -import java.time.LocalDateTime;
10   -
11   -/**
12   - * 学生联系人 DO
13   - *
14   - * @author 芋道源码
15   - */
16   -@TableName("infra_demo11_student_contact")
17   -@KeySequence("infra_demo11_student_contact_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
18   -@Data
19   -@EqualsAndHashCode(callSuper = true)
20   -@ToString(callSuper = true)
21   -@Builder
22   -@NoArgsConstructor
23   -@AllArgsConstructor
24   -public class InfraDemo11StudentContactDO extends BaseDO {
25   -
26   - /**
27   - * 编号
28   - */
29   - @TableId
30   - private Long id;
31   - /**
32   - * 学生编号
33   - */
34   - private Long studentId;
35   - /**
36   - * 名字
37   - */
38   - private String name;
39   - /**
40   - * 简介
41   - */
42   - private String description;
43   - /**
44   - * 出生日期
45   - */
46   - private LocalDateTime birthday;
47   - /**
48   - * 性别
49   - *
50   - * 枚举 {@link TODO system_user_sex 对应的类}
51   - */
52   - private Integer sex;
53   - /**
54   - * 是否有效
55   - *
56   - * 枚举 {@link TODO infra_boolean_string 对应的类}
57   - */
58   - private Boolean enabled;
59   - /**
60   - * 头像
61   - */
62   - private String avatar;
63   - /**
64   - * 附件
65   - */
66   - private String video;
67   - /**
68   - * 备注
69   - */
70   - private String memo;
71   -
72   -}
73 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo11/InfraDemo11StudentTeacherDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo11;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import java.time.LocalDateTime;
6   -import java.time.LocalDateTime;
7   -import com.baomidou.mybatisplus.annotation.*;
8   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
9   -
10   -/**
11   - * 学生班主任 DO
12   - *
13   - * @author 芋道源码
14   - */
15   -@TableName("infra_demo11_student_teacher")
16   -@KeySequence("infra_demo11_student_teacher_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
17   -@Data
18   -@EqualsAndHashCode(callSuper = true)
19   -@ToString(callSuper = true)
20   -@Builder
21   -@NoArgsConstructor
22   -@AllArgsConstructor
23   -public class InfraDemo11StudentTeacherDO extends BaseDO {
24   -
25   - /**
26   - * 编号
27   - */
28   - @TableId
29   - private Long id;
30   - /**
31   - * 学生编号
32   - */
33   - private Long studentId;
34   - /**
35   - * 名字
36   - */
37   - private String name;
38   - /**
39   - * 简介
40   - */
41   - private String description;
42   - /**
43   - * 出生日期
44   - */
45   - private LocalDateTime birthday;
46   - /**
47   - * 性别
48   - *
49   - * 枚举 {@link TODO system_user_sex 对应的类}
50   - */
51   - private Integer sex;
52   - /**
53   - * 是否有效
54   - *
55   - * 枚举 {@link TODO infra_boolean_string 对应的类}
56   - */
57   - private Boolean enabled;
58   - /**
59   - * 头像
60   - */
61   - private String avatar;
62   - /**
63   - * 附件
64   - */
65   - private String video;
66   - /**
67   - * 备注
68   - */
69   - private String memo;
70   -
71   -}
72 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo12/InfraDemo12StudentContactDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo12;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import java.time.LocalDateTime;
6   -import java.time.LocalDateTime;
7   -import com.baomidou.mybatisplus.annotation.*;
8   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
9   -
10   -/**
11   - * 学生联系人 DO
12   - *
13   - * @author 芋道源码
14   - */
15   -@TableName("infra_demo12_student_contact")
16   -@KeySequence("infra_demo12_student_contact_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
17   -@Data
18   -@EqualsAndHashCode(callSuper = true)
19   -@ToString(callSuper = true)
20   -@Builder
21   -@NoArgsConstructor
22   -@AllArgsConstructor
23   -public class InfraDemo12StudentContactDO extends BaseDO {
24   -
25   - /**
26   - * 编号
27   - */
28   - @TableId
29   - private Long id;
30   - /**
31   - * 学生编号
32   - */
33   - private Long studentId;
34   - /**
35   - * 名字
36   - */
37   - private String name;
38   - /**
39   - * 简介
40   - */
41   - private String description;
42   - /**
43   - * 出生日期
44   - */
45   - private LocalDateTime birthday;
46   - /**
47   - * 性别
48   - *
49   - * 枚举 {@link TODO system_user_sex 对应的类}
50   - */
51   - private Integer sex;
52   - /**
53   - * 是否有效
54   - *
55   - * 枚举 {@link TODO infra_boolean_string 对应的类}
56   - */
57   - private Boolean enabled;
58   - /**
59   - * 头像
60   - */
61   - private String avatar;
62   - /**
63   - * 附件
64   - */
65   - private String video;
66   - /**
67   - * 备注
68   - */
69   - private String memo;
70   -
71   -}
72 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo12/InfraDemo12StudentDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo12;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import java.time.LocalDateTime;
6   -import java.time.LocalDateTime;
7   -import com.baomidou.mybatisplus.annotation.*;
8   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
9   -
10   -/**
11   - * 学生 DO
12   - *
13   - * @author 芋道源码
14   - */
15   -@TableName("infra_demo12_student")
16   -@KeySequence("infra_demo12_student_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
17   -@Data
18   -@EqualsAndHashCode(callSuper = true)
19   -@ToString(callSuper = true)
20   -@Builder
21   -@NoArgsConstructor
22   -@AllArgsConstructor
23   -public class InfraDemo12StudentDO extends BaseDO {
24   -
25   - /**
26   - * 编号
27   - */
28   - @TableId
29   - private Long id;
30   - /**
31   - * 名字
32   - */
33   - private String name;
34   - /**
35   - * 简介
36   - */
37   - private String description;
38   - /**
39   - * 出生日期
40   - */
41   - private LocalDateTime birthday;
42   - /**
43   - * 性别
44   - *
45   - * 枚举 {@link TODO system_user_sex 对应的类}
46   - */
47   - private Integer sex;
48   - /**
49   - * 是否有效
50   - *
51   - * 枚举 {@link TODO infra_boolean_string 对应的类}
52   - */
53   - private Boolean enabled;
54   - /**
55   - * 头像
56   - */
57   - private String avatar;
58   - /**
59   - * 附件
60   - */
61   - private String video;
62   - /**
63   - * 备注
64   - */
65   - private String memo;
66   -
67   -}
68 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo12/InfraDemo12StudentTeacherDO.java deleted
1   -package cn.iocoder.yudao.module.infra.dal.dataobject.demo12;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import java.time.LocalDateTime;
6   -import java.time.LocalDateTime;
7   -import com.baomidou.mybatisplus.annotation.*;
8   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
9   -
10   -/**
11   - * 学生班主任 DO
12   - *
13   - * @author 芋道源码
14   - */
15   -@TableName("infra_demo12_student_teacher")
16   -@KeySequence("infra_demo12_student_teacher_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
17   -@Data
18   -@EqualsAndHashCode(callSuper = true)
19   -@ToString(callSuper = true)
20   -@Builder
21   -@NoArgsConstructor
22   -@AllArgsConstructor
23   -public class InfraDemo12StudentTeacherDO extends BaseDO {
24   -
25   - /**
26   - * 编号
27   - */
28   - @TableId
29   - private Long id;
30   - /**
31   - * 学生编号
32   - */
33   - private Long studentId;
34   - /**
35   - * 名字
36   - */
37   - private String name;
38   - /**
39   - * 简介
40   - */
41   - private String description;
42   - /**
43   - * 出生日期
44   - */
45   - private LocalDateTime birthday;
46   - /**
47   - * 性别
48   - *
49   - * 枚举 {@link TODO system_user_sex 对应的类}
50   - */
51   - private Integer sex;
52   - /**
53   - * 是否有效
54   - *
55   - * 枚举 {@link TODO infra_boolean_string 对应的类}
56   - */
57   - private Boolean enabled;
58   - /**
59   - * 头像
60   - */
61   - private String avatar;
62   - /**
63   - * 附件
64   - */
65   - private String video;
66   - /**
67   - * 备注
68   - */
69   - private String memo;
70   -
71   -}
72 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo01/Demo01ContactMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.dal.mysql.demo.demo01;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  6 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO;
  7 +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +
  10 +/**
  11 + * 示例联系人 Mapper
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +@Mapper
  16 +public interface Demo01ContactMapper extends BaseMapperX<Demo01ContactDO> {
  17 +
  18 + default PageResult<Demo01ContactDO> selectPage(Demo01ContactPageReqVO reqVO) {
  19 + return selectPage(reqVO, new LambdaQueryWrapperX<Demo01ContactDO>()
  20 + .likeIfPresent(Demo01ContactDO::getName, reqVO.getName())
  21 + .eqIfPresent(Demo01ContactDO::getSex, reqVO.getSex())
  22 + .betweenIfPresent(Demo01ContactDO::getCreateTime, reqVO.getCreateTime())
  23 + .orderByDesc(Demo01ContactDO::getId));
  24 + }
  25 +
  26 +}
0 27 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.service.demo.demo01;
  2 +
  3 +import javax.validation.*;
  4 +
  5 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO;
  6 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO;
  7 +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +
  10 +/**
  11 + * 示例联系人 Service 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface Demo01ContactService {
  16 +
  17 + /**
  18 + * 创建示例联系人
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createDemo01Contact(@Valid Demo01ContactSaveReqVO createReqVO);
  24 +
  25 + /**
  26 + * 更新示例联系人
  27 + *
  28 + * @param updateReqVO 更新信息
  29 + */
  30 + void updateDemo01Contact(@Valid Demo01ContactSaveReqVO updateReqVO);
  31 +
  32 + /**
  33 + * 删除示例联系人
  34 + *
  35 + * @param id 编号
  36 + */
  37 + void deleteDemo01Contact(Long id);
  38 +
  39 + /**
  40 + * 获得示例联系人
  41 + *
  42 + * @param id 编号
  43 + * @return 示例联系人
  44 + */
  45 + Demo01ContactDO getDemo01Contact(Long id);
  46 +
  47 + /**
  48 + * 获得示例联系人分页
  49 + *
  50 + * @param pageReqVO 分页查询
  51 + * @return 示例联系人分页
  52 + */
  53 + PageResult<Demo01ContactDO> getDemo01ContactPage(Demo01ContactPageReqVO pageReqVO);
  54 +
  55 +}
0 56 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo01/Demo01ContactServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.service.demo.demo01;
  2 +
  3 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactPageReqVO;
  4 +import cn.iocoder.yudao.module.infra.controller.admin.demo.demo01.vo.Demo01ContactSaveReqVO;
  5 +import org.springframework.stereotype.Service;
  6 +import javax.annotation.Resource;
  7 +import org.springframework.validation.annotation.Validated;
  8 +
  9 +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo01.Demo01ContactDO;
  10 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  11 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  12 +
  13 +import cn.iocoder.yudao.module.infra.dal.mysql.demo.demo01.Demo01ContactMapper;
  14 +
  15 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  16 +import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*;
  17 +
  18 +/**
  19 + * 示例联系人 Service 实现类
  20 + *
  21 + * @author 芋道源码
  22 + */
  23 +@Service
  24 +@Validated
  25 +public class Demo01ContactServiceImpl implements Demo01ContactService {
  26 +
  27 + @Resource
  28 + private Demo01ContactMapper demo01ContactMapper;
  29 +
  30 + @Override
  31 + public Long createDemo01Contact(Demo01ContactSaveReqVO createReqVO) {
  32 + // 插入
  33 + Demo01ContactDO demo01Contact = BeanUtils.toBean(createReqVO, Demo01ContactDO.class);
  34 + demo01ContactMapper.insert(demo01Contact);
  35 + // 返回
  36 + return demo01Contact.getId();
  37 + }
  38 +
  39 + @Override
  40 + public void updateDemo01Contact(Demo01ContactSaveReqVO updateReqVO) {
  41 + // 校验存在
  42 + validateDemo01ContactExists(updateReqVO.getId());
  43 + // 更新
  44 + Demo01ContactDO updateObj = BeanUtils.toBean(updateReqVO, Demo01ContactDO.class);
  45 + demo01ContactMapper.updateById(updateObj);
  46 + }
  47 +
  48 + @Override
  49 + public void deleteDemo01Contact(Long id) {
  50 + // 校验存在
  51 + validateDemo01ContactExists(id);
  52 + // 删除
  53 + demo01ContactMapper.deleteById(id);
  54 + }
  55 +
  56 + private void validateDemo01ContactExists(Long id) {
  57 + if (demo01ContactMapper.selectById(id) == null) {
  58 + throw exception(DEMO01_CONTACT_NOT_EXISTS);
  59 + }
  60 + }
  61 +
  62 + @Override
  63 + public Demo01ContactDO getDemo01Contact(Long id) {
  64 + return demo01ContactMapper.selectById(id);
  65 + }
  66 +
  67 + @Override
  68 + public PageResult<Demo01ContactDO> getDemo01ContactPage(Demo01ContactPageReqVO pageReqVO) {
  69 + return demo01ContactMapper.selectPage(pageReqVO);
  70 + }
  71 +
  72 +}
0 73 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/demo01/InfraDemo01StudentMapper.xml deleted
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3   -<mapper namespace="cn.iocoder.yudao.module.infra.dal.mysql.demo01.InfraDemo01StudentMapper">
4   -
5   - <!--
6   - 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
7   - 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
8   - 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
9   - 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
10   - -->
11   -
12   -</mapper>
13 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/demo11/InfraDemo11StudentMapper.xml deleted
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3   -<mapper namespace="cn.iocoder.yudao.module.infra.dal.mysql.demo11.InfraDemo11StudentMapper">
4   -
5   - <!--
6   - 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
7   - 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
8   - 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
9   - 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
10   - -->
11   -
12   -</mapper>
13 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/main/resources/mapper/demo12/InfraDemo12StudentMapper.xml deleted
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3   -<mapper namespace="cn.iocoder.yudao.module.infra.dal.mysql.demo12.InfraDemo12StudentMapper">
4   -
5   - <!--
6   - 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
7   - 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
8   - 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
9   - 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
10   - -->
11   -
12   -</mapper>
13 0 \ No newline at end of file