From 7409c58d51d8c290d1caf744eb068db6da33b247 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Wed, 3 Jul 2024 21:41:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Edemo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../c/demo/DemoController.java | 90 +++++++++ .../c/demo/DemoWebConverter.java | 58 ++++++ .../c/demo/request/DemoCreateRequest.java | 49 +++++ .../c/demo/request/DemoPageQueryRequest.java | 25 +++ .../c/demo/vo/DemoPageQueryVO.java | 35 ++++ .../c/demo/vo/DemoQueryVO.java | 71 ++++++++ .../s/demo/DemoCoreService.java | 171 ++++++++++++++++++ .../easytools-common/s/demo/DemoDTO.java | 141 +++++++++++++++ .../s/demo/enums/DemoStatusEnum.java | 36 ++++ .../DemoComprehensivePageQueryParam.java | 32 ++++ .../s/demo/param/DemoCreateParam.java | 47 +++++ .../s/demo/param/DemoPageQueryParam.java | 68 +++++++ .../s/demo/param/DemoQueryParam.java | 48 +++++ .../s/demo/param/DemoSelector.java | 50 +++++ .../s/demo/param/DemoUpdateParam.java | 59 ++++++ 15 files changed, 980 insertions(+) create mode 100644 easyexcel-test/easytools-common/c/demo/DemoController.java create mode 100644 easyexcel-test/easytools-common/c/demo/DemoWebConverter.java create mode 100644 easyexcel-test/easytools-common/c/demo/request/DemoCreateRequest.java create mode 100644 easyexcel-test/easytools-common/c/demo/request/DemoPageQueryRequest.java create mode 100644 easyexcel-test/easytools-common/c/demo/vo/DemoPageQueryVO.java create mode 100644 easyexcel-test/easytools-common/c/demo/vo/DemoQueryVO.java create mode 100644 easyexcel-test/easytools-common/s/demo/DemoCoreService.java create mode 100644 easyexcel-test/easytools-common/s/demo/DemoDTO.java create mode 100644 easyexcel-test/easytools-common/s/demo/enums/DemoStatusEnum.java create mode 100644 easyexcel-test/easytools-common/s/demo/param/DemoComprehensivePageQueryParam.java create mode 100644 easyexcel-test/easytools-common/s/demo/param/DemoCreateParam.java create mode 100644 easyexcel-test/easytools-common/s/demo/param/DemoPageQueryParam.java create mode 100644 easyexcel-test/easytools-common/s/demo/param/DemoQueryParam.java create mode 100644 easyexcel-test/easytools-common/s/demo/param/DemoSelector.java create mode 100644 easyexcel-test/easytools-common/s/demo/param/DemoUpdateParam.java diff --git a/easyexcel-test/easytools-common/c/demo/DemoController.java b/easyexcel-test/easytools-common/c/demo/DemoController.java new file mode 100644 index 00000000..7f7b4a68 --- /dev/null +++ b/easyexcel-test/easytools-common/c/demo/DemoController.java @@ -0,0 +1,90 @@ +package com.alibaba.atasuper.web.controller.demo; + +import javax.annotation.Resource; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.param.DemoPageQueryParam; +import com.alibaba.atasuper.api.demo.param.DemoPageQueryParam.OrderCondition; +import com.alibaba.atasuper.api.demo.param.DemoSelector; +import com.alibaba.atasuper.api.demo.DemoCoreService; +import com.alibaba.atasuper.api.user.param.DomainUserSelector; +import com.alibaba.atasuper.tools.base.wrapper.result.AtaPageResult; +import com.alibaba.atasuper.tools.base.wrapper.result.AtaPojoResult; +import com.alibaba.atasuper.web.controller.demo.request.DemoCreateRequest; +import com.alibaba.atasuper.web.controller.demo.request.DemoPageQueryRequest; +import com.alibaba.atasuper.web.controller.demo.vo.DemoPageQueryVO; +import com.alibaba.atasuper.web.controller.demo.vo.DemoQueryVO; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * TODO 模板的Controller 方法用到才复制 别全复制 参考:... + * + * @author 是仪 + */ +@RestController +@RequestMapping(path = "/api/v1/demo") +@Slf4j +public class DemoController { + + private static final DemoSelector DEMO_SELECTOR_GET = DemoSelector.builder() + .user(Boolean.TRUE) + .userDomainUserSelector(DomainUserSelector.builder() + .medals(Boolean.TRUE) + .build()) + .image(Boolean.TRUE) + .build(); + + private static final DemoSelector DEMO_SELECTOR_PAGE_QUERY = DemoSelector.builder() + .createUser(Boolean.TRUE) + .build(); + + @Resource + private DemoCoreService demoCoreService; + @Resource + private DemoWebConverter demoWebConverter; + + /** + * 创建一条数据 + * + * @param request 创建参数 + * @return id + */ + @PostMapping("create") + public AtaPojoResult create(@Valid @RequestBody DemoCreateRequest request) { + return AtaPojoResult.of(demoCoreService.create(demoWebConverter.request2param(request))); + } + + /** + * 查询一条数据 + * + * @param id 主键 + * @return + */ + @GetMapping("query") + public AtaPojoResult query(@Valid @NotNull Long id) { + return AtaPojoResult.of( + demoWebConverter.dto2voQuery(demoCoreService.queryExistentWithPermission(id, DEMO_SELECTOR_GET))); + } + + /** + * 分页查询列表数据 + * + * @param request request + * @return + */ + @GetMapping("page-query") + public AtaPageResult pageQuery(@Valid DemoPageQueryRequest request) { + DemoPageQueryParam demoPageQueryParam = demoWebConverter.request2param(request); + demoPageQueryParam.orderBy(OrderCondition.GMT_MODIFIED_DESC); + return demoCoreService.pageQueryWithPermission(demoPageQueryParam, DEMO_SELECTOR_PAGE_QUERY) + .map(demoWebConverter::dto2voPageQuery); + } + +} diff --git a/easyexcel-test/easytools-common/c/demo/DemoWebConverter.java b/easyexcel-test/easytools-common/c/demo/DemoWebConverter.java new file mode 100644 index 00000000..0ff88f2b --- /dev/null +++ b/easyexcel-test/easytools-common/c/demo/DemoWebConverter.java @@ -0,0 +1,58 @@ +package com.alibaba.atasuper.web.controller.demo; + +import com.alibaba.atasuper.api.demo.DemoDTO; +import com.alibaba.atasuper.api.demo.param.DemoCreateParam; +import com.alibaba.atasuper.api.demo.param.DemoPageQueryParam; +import com.alibaba.atasuper.web.controller.demo.request.DemoCreateRequest; +import com.alibaba.atasuper.web.controller.demo.request.DemoPageQueryRequest; +import com.alibaba.atasuper.web.controller.demo.vo.DemoPageQueryVO; +import com.alibaba.atasuper.web.controller.demo.vo.DemoQueryVO; + +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; + +/** + * 转换器 + * + * @author 是仪 + */ +@Mapper(componentModel = "spring") +public abstract class DemoWebConverter { + + /** + * 转换 + * + * @param request + * @return + */ + public abstract DemoCreateParam request2param(DemoCreateRequest request); + + /** + * 转换 + * + * @param dto + * @return + */ + public abstract DemoQueryVO dto2voQuery(DemoDTO dto); + + /** + * 转换 + * + * @param dto + * @return + */ + public abstract DemoPageQueryVO dto2voPageQuery(DemoDTO dto); + + /** + * 转换 + * + * @param request + * @return + */ + @Mappings({ + @Mapping(target = "userIdWhenPresent", source = "userId"), + }) + public abstract DemoPageQueryParam request2param(DemoPageQueryRequest request); + +} diff --git a/easyexcel-test/easytools-common/c/demo/request/DemoCreateRequest.java b/easyexcel-test/easytools-common/c/demo/request/DemoCreateRequest.java new file mode 100644 index 00000000..3380ec39 --- /dev/null +++ b/easyexcel-test/easytools-common/c/demo/request/DemoCreateRequest.java @@ -0,0 +1,49 @@ +package com.alibaba.atasuper.web.controller.demo.request; + +import java.util.Date; + +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.enums.DemoStatusEnum; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 创建对象 + * + * @author 是仪 + */ + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DemoCreateRequest { + + /** + * 用户id + */ + @NotNull + private Long userId; + + + /** + * 状态,一般非空,还要有默认值 + * + * @see DemoStatusEnum + */ + private String status; + + /** + * 图片的key, 图片存储一般存储key,别存储连接。 + */ + private String imageKey; + + /** + * 加入时间,必须gmt开头,日期字段没办法默认值,直接默认空 + */ + private Date gmtJoin; +} diff --git a/easyexcel-test/easytools-common/c/demo/request/DemoPageQueryRequest.java b/easyexcel-test/easytools-common/c/demo/request/DemoPageQueryRequest.java new file mode 100644 index 00000000..408aafae --- /dev/null +++ b/easyexcel-test/easytools-common/c/demo/request/DemoPageQueryRequest.java @@ -0,0 +1,25 @@ +package com.alibaba.atasuper.web.controller.demo.request; + +import com.alibaba.atasuper.tools.base.wrapper.request.WebPageRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 列表对象 + * + * @author 是仪 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DemoPageQueryRequest extends WebPageRequest { + + /** + * 用户id + */ + private String userId; +} diff --git a/easyexcel-test/easytools-common/c/demo/vo/DemoPageQueryVO.java b/easyexcel-test/easytools-common/c/demo/vo/DemoPageQueryVO.java new file mode 100644 index 00000000..10964b58 --- /dev/null +++ b/easyexcel-test/easytools-common/c/demo/vo/DemoPageQueryVO.java @@ -0,0 +1,35 @@ +package com.alibaba.atasuper.web.controller.demo.vo; + +import com.alibaba.atasuper.api.user.vo.UserVO; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 列表对象 + * + * @author 是仪 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DemoPageQueryVO { + + /** + * 主键 + */ + private Long id; + + /** + * 姓名,字符串字段一般默认空字符串,不建议使用非空 + */ + private String name; + + /** + * 创建人 + */ + private UserVO createUser; +} diff --git a/easyexcel-test/easytools-common/c/demo/vo/DemoQueryVO.java b/easyexcel-test/easytools-common/c/demo/vo/DemoQueryVO.java new file mode 100644 index 00000000..9f208145 --- /dev/null +++ b/easyexcel-test/easytools-common/c/demo/vo/DemoQueryVO.java @@ -0,0 +1,71 @@ +package com.alibaba.atasuper.web.controller.demo.vo; + +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.enums.DemoStatusEnum; +import com.alibaba.atasuper.api.demo.param.DemoSelector; +import com.alibaba.atasuper.api.image.vo.ImageVO; +import com.alibaba.atasuper.api.user.param.DomainUserSelector; +import com.alibaba.atasuper.api.user.vo.UserVO; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 单个对象 + * + * @author 是仪 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DemoQueryVO { + + /** + * 主键 + */ + private Long id; + + /** + * 用户id + */ + @NotNull + private String userId; + + /** + * 用户 + * + * @see DemoSelector#setUser(Boolean) + * @see DemoSelector#setUserDomainUserSelector(DomainUserSelector) + */ + @NotNull + private UserVO user; + + /** + * 状态,一般非空,还要有默认值 + * + * @see DemoStatusEnum + */ + private String status; + + /** + * 图片的key, 图片存储一般存储key,别存储连接。 + */ + private String imageKey; + + /** + * 图片 + * + * @see DemoSelector#setImage(Boolean) + */ + private ImageVO image; + + /** + * 姓名,字符串字段一般默认空字符串,不建议使用非空 + */ + private String name; + +} diff --git a/easyexcel-test/easytools-common/s/demo/DemoCoreService.java b/easyexcel-test/easytools-common/s/demo/DemoCoreService.java new file mode 100644 index 00000000..1b192e9f --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/DemoCoreService.java @@ -0,0 +1,171 @@ +package com.alibaba.atasuper.api.demo; + +import java.util.List; + +import javax.annotation.Nullable; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.param.DemoComprehensivePageQueryParam; +import com.alibaba.atasuper.api.demo.param.DemoCreateParam; +import com.alibaba.atasuper.api.demo.param.DemoPageQueryParam; +import com.alibaba.atasuper.api.demo.param.DemoQueryParam; +import com.alibaba.atasuper.api.demo.param.DemoSelector; +import com.alibaba.atasuper.api.demo.param.DemoUpdateParam; +import com.alibaba.atasuper.tools.base.exception.DataNotExistsBusinessException; +import com.alibaba.atasuper.tools.base.exception.NoPermissionBusinessException; +import com.alibaba.atasuper.tools.base.wrapper.result.AtaPageResult; + +/** + * TODO 模板的service 方法用到才复制 别全复制 参考:... + * + * 思考: + * 关于 create vs createWithPermission ,修改类似 + * 如果仅仅只是获取用户登陆信息 可以直接用:create + * 如果需要获取用户登陆信息,还需要获取用户的权限信息,必须用:createWithPermission + * + * @author 是仪 + */ +public interface DemoCoreService { + + /** + * 创建一条数据 + * + * @param param 创建参数 + * @return id + */ + Long create(@Valid @NotNull DemoCreateParam param); + + /** + * 创建一条数据,没有权限会抛出异常 + * + * @param param 创建参数 + * @return id + * @throws NoPermissionBusinessException 没有查询这条数据的权限 + */ + Long createWithPermission(@Valid @NotNull DemoCreateParam param); + + /** + * 根据主键修改一条数据 + * + * @param param 修改参数 + * @return id + */ + Long update(@Valid @NotNull DemoUpdateParam param); + + /** + * 根据主键修改一条数据,没有权限会抛出异常 + * + * @param param 修改参数 + * @return id + * @throws NoPermissionBusinessException 没有修改这条数据的权限 + */ + Long updateWithPermission(@Valid @NotNull DemoUpdateParam param); + + /** + * 根据主键删除一条数据 + * + * @param id 主键id + * @return id + */ + Long delete(@Valid @NotNull Long id); + + /** + * 根据主键删除一条数据,没有权限会抛出异常 + * + * @param id 主键id + * @return id + * @throws NoPermissionBusinessException 没有查询这条数据的权限 + */ + Long deleteWithPermission(@Valid @NotNull Long id); + + /** + * 查询一条数据,不存在会抛出异常 + * + * @param id 主键id + * @param selector 选择器 + * @return 必定返回一条数据 + * @throws DataNotExistsBusinessException 找不到数据的异常 + */ + DemoDTO queryExistent(@Valid @NotNull Long id, @Nullable DemoSelector selector); + + /** + * 查询一条数据,不存在或者没有权限会抛出异常 + * + * @param id 主键id + * @param selector 选择器 + * @return 必定返回一条数据 + * @throws DataNotExistsBusinessException 找不到数据的异常 + * @throws NoPermissionBusinessException 没有查询这条数据的权限 + */ + DemoDTO queryExistentWithPermission(@Valid @NotNull Long id, @Nullable DemoSelector selector); + + /** + * 查询一条数据 + * + * @param id 主键id + * @param selector 选择器 + * @return 返回一条数据,可能为空 + */ + DemoDTO query(@Nullable Long id, @Nullable DemoSelector selector); + + /** + * 查询一条数据,没有权限会抛出异常 + * + * @param id 主键id + * @param selector 选择器 + * @return 返回一条数据,可能为空 + * @throws NoPermissionBusinessException 没有查询这条数据的权限 + */ + DemoDTO queryWithPermission(@Nullable Long id, @Nullable DemoSelector selector); + + /** + * 根据id列表查询列表数据 + * + * @param idList 主键id列表 + * @param selector 选择器 + * @return 返回全部查询到的数据 + */ + List listQuery(@Nullable List idList, @Nullable DemoSelector selector); + + /** + * 根据参数查询列表数据 + * + * @param param 查询参数 + * @param selector 选择器 + * @return 返回查询数据,最多500条 + */ + List listQuery(@Valid @NotNull DemoQueryParam param, @Nullable DemoSelector selector); + + /** + * 根据参数分页查询列表数据 + * + * @param param 查询参数 + * @param selector 选择器 + * @return 返回分页查询数据 + */ + AtaPageResult pageQuery(@Valid @NotNull DemoPageQueryParam param, @Nullable DemoSelector selector); + + /** + * 根据参数分页查询列表数据,只会查询有权限的数据 + * + * @param param 查询参数 + * @param selector 选择器 + * @return 返回分页查询数据 + */ + AtaPageResult pageQueryWithPermission(@Valid @NotNull DemoPageQueryParam param, + @Nullable DemoSelector selector); + + /** + * 综合搜索 + * 慎用,一般涉及到join + * + * @param param 查询参数 + * @param selector 选择器 + * @return 返回分页查询数据 + */ + AtaPageResult comprehensivePageQuery(@Valid @NotNull DemoComprehensivePageQueryParam param, + @Nullable DemoSelector selector); + +} + diff --git a/easyexcel-test/easytools-common/s/demo/DemoDTO.java b/easyexcel-test/easytools-common/s/demo/DemoDTO.java new file mode 100644 index 00000000..f9a8da3d --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/DemoDTO.java @@ -0,0 +1,141 @@ +package com.alibaba.atasuper.api.demo; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.enums.DemoStatusEnum; +import com.alibaba.atasuper.api.demo.param.DemoSelector; +import com.alibaba.atasuper.api.image.dto.ImageDTO; +import com.alibaba.atasuper.api.user.dto.DomainUserDTO; +import com.alibaba.atasuper.api.user.param.DomainUserSelector; +import com.alibaba.easytools.base.constant.EasyToolsConstant; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * TODO 示例对象 仅放需要使用的字段 + * + * @author 是仪 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class DemoDTO implements Serializable { + + @Serial + private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID; + + /** + * 主键 + */ + private Long id; + + /** + * 用户id + */ + @NotNull + private Long userId; + + /** + * 用户 + * + * @see DemoSelector#setUser(Boolean) + * @see DemoSelector#setUserDomainUserSelector(DomainUserSelector) + */ + @NotNull + private DomainUserDTO user; + + /** + * 状态,一般非空,还要有默认值 + * + * @see DemoStatusEnum + */ + private String status; + + /** + * 图片的key, 图片存储一般存储key,别存储连接。 + */ + private String imageKey; + + /** + * 图片 + * + * @see DemoSelector#setImage(Boolean) + */ + private ImageDTO image; + + /** + * 姓名,字符串字段一般默认空字符串,不建议使用非空 + */ + private String name; + + /** + * 加入时间,必须gmt开头,日期字段没办法默认值,直接默认空 + */ + private Date gmtJoin; + + /** + * 被访问次数,统计型的数据一般默认0,建议使用bigint代替int,设置非空 + */ + private Long viewedCount; + + /** + * 角色id, 这种外键没有的情况下用空 别用0 + */ + private Long roleId; + + /** + * 是否同意协议 ,布尔值 + */ + private Boolean agreeProtocol; + + /** + * 创建时间 + */ + private Date gmtCreate; + + /** + * 创建人用户id + */ + private Long createUserId; + + /** + * 创建人 + * + * @see DemoSelector#setCreateUser(Boolean) + */ + private DomainUserDTO createUser; + + /** + * 修改人用户id + */ + private Long modifiedUserId; + + /** + * 修改人 + * + * @see DemoSelector#setModifiedUser(Boolean) + */ + private DomainUserDTO modifiedUser; + + /** + * 备注字段,一般设置可以为空 + * + * @see DemoSelector#setWithBlobs(Boolean) + */ + private String remark; + + /** + * 是否已经被删除 + * 这个只有在 {@code fill} 时才不会为空 其他任何情况都会为空 + */ + private Boolean deleted; + +} diff --git a/easyexcel-test/easytools-common/s/demo/enums/DemoStatusEnum.java b/easyexcel-test/easytools-common/s/demo/enums/DemoStatusEnum.java new file mode 100644 index 00000000..79ec5aff --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/enums/DemoStatusEnum.java @@ -0,0 +1,36 @@ +package com.alibaba.atasuper.api.demo.enums; + +import com.alibaba.easytools.base.enums.BaseEnum; + +import lombok.Getter; + +/** + * TODO 示例状态枚举 + * + * @author 是仪 + */ +@Getter +public enum DemoStatusEnum implements BaseEnum { + + /** + * 草稿 + */ + DRAFT("草稿"), + + /** + * 线上 + */ + RELEASE("线上"), + ; + + final String description; + + DemoStatusEnum(String description) { + this.description = description; + } + + @Override + public String getCode() { + return this.name(); + } +} diff --git a/easyexcel-test/easytools-common/s/demo/param/DemoComprehensivePageQueryParam.java b/easyexcel-test/easytools-common/s/demo/param/DemoComprehensivePageQueryParam.java new file mode 100644 index 00000000..f71b098f --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/param/DemoComprehensivePageQueryParam.java @@ -0,0 +1,32 @@ +package com.alibaba.atasuper.api.demo.param; + +import java.util.List; + +import com.alibaba.atasuper.tools.base.wrapper.param.CorePageQueryParam; + +import lombok.Data; +import lombok.NonNull; + +/** + * 综合搜索 + * 慎用,一般涉及到join + * + * @author 是仪 + */ +@Data +public class DemoComprehensivePageQueryParam extends CorePageQueryParam { + + /** + * 用户id + * 传null会报错 + */ + @NonNull + private Long userId; + + /** + * 用户id + * 传null会报错 + */ + @NonNull + private List userIdList; +} diff --git a/easyexcel-test/easytools-common/s/demo/param/DemoCreateParam.java b/easyexcel-test/easytools-common/s/demo/param/DemoCreateParam.java new file mode 100644 index 00000000..a455cc13 --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/param/DemoCreateParam.java @@ -0,0 +1,47 @@ +package com.alibaba.atasuper.api.demo.param; + +import java.util.Date; + +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.enums.DemoStatusEnum; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 创建对象 + * + * @author 是仪 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DemoCreateParam { + + /** + * 用户id + */ + @NotNull + private Long userId; + + /** + * 状态,一般非空,还要有默认值 + * + * @see DemoStatusEnum + */ + private String status; + + /** + * 图片的key, 图片存储一般存储key,别存储连接。 + */ + private String imageKey; + + /** + * 加入时间,必须gmt开头,日期字段没办法默认值,直接默认空 + */ + private Date gmtJoin; +} diff --git a/easyexcel-test/easytools-common/s/demo/param/DemoPageQueryParam.java b/easyexcel-test/easytools-common/s/demo/param/DemoPageQueryParam.java new file mode 100644 index 00000000..59edeaad --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/param/DemoPageQueryParam.java @@ -0,0 +1,68 @@ +package com.alibaba.atasuper.api.demo.param; + +import java.util.List; + +import com.alibaba.atasuper.tools.base.wrapper.param.CorePageQueryParam; +import com.alibaba.easytools.base.wrapper.param.OrderBy; + +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.NonNull; + +/** + * 单表分页查询 + * + * @author 是仪 + */ +@Data +@NoArgsConstructor +public class DemoPageQueryParam extends CorePageQueryParam { + + /** + * id列表 + * 传null会报错 + */ + @NonNull + private List idList; + + /** + * 用户id + * 传null会报错 + */ + @NonNull + private Long userId; + + /** + * 用户id + * 传null不查询 + */ + private Long userIdWhenPresent; + + /** + * 用户id列表 + * 传null不查询 + */ + @NonNull + private List userIdList; + + /** + * 关键字搜索 + */ + private String keywordWhenPresent; + + @Getter + public enum OrderCondition implements com.alibaba.easytools.base.wrapper.param.OrderCondition { + /** + * 修改时间降序 + */ + GMT_MODIFIED_DESC(OrderBy.asc("GMTMODIFIED")), + + ; + final OrderBy orderBy; + + OrderCondition(OrderBy orderBy) { + this.orderBy = orderBy; + } + } +} diff --git a/easyexcel-test/easytools-common/s/demo/param/DemoQueryParam.java b/easyexcel-test/easytools-common/s/demo/param/DemoQueryParam.java new file mode 100644 index 00000000..21aa8e4b --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/param/DemoQueryParam.java @@ -0,0 +1,48 @@ +package com.alibaba.atasuper.api.demo.param; + +import java.util.List; + +import com.alibaba.atasuper.tools.base.wrapper.param.CoreQueryParam; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; + +/** + * 单表普通查询 + * 最多返回500条 + * + * @author 是仪 + */ +@Data +@NoArgsConstructor +public class DemoQueryParam extends CoreQueryParam { + + /** + * id列表 + * 传null会报错 + */ + @NonNull + private List idList; + + /** + * 用户id + * 传null会报错 + */ + @NonNull + private Long userId; + + /** + * 用户id + * 传null不查询 + */ + private Long userIdWhenPresent; + + /** + * 用户id列表 + * 传null不查询 + */ + @NonNull + private List userIdList; + +} diff --git a/easyexcel-test/easytools-common/s/demo/param/DemoSelector.java b/easyexcel-test/easytools-common/s/demo/param/DemoSelector.java new file mode 100644 index 00000000..75c084cc --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/param/DemoSelector.java @@ -0,0 +1,50 @@ +package com.alibaba.atasuper.api.demo.param; + +import com.alibaba.atasuper.api.user.param.DomainUserSelector; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 选择器 + * + * @author 是仪 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DemoSelector { + + /** + * 用户 + */ + private Boolean user; + + /** + * 用户 + */ + private DomainUserSelector userDomainUserSelector; + + /** + * 图片 + */ + private Boolean image; + + /** + * 创建人 + */ + private Boolean createUser; + + /** + * 修改人 + */ + private Boolean modifiedUser; + + /** + * 查询withBlobs + */ + private Boolean withBlobs; +} diff --git a/easyexcel-test/easytools-common/s/demo/param/DemoUpdateParam.java b/easyexcel-test/easytools-common/s/demo/param/DemoUpdateParam.java new file mode 100644 index 00000000..e5f5a2ba --- /dev/null +++ b/easyexcel-test/easytools-common/s/demo/param/DemoUpdateParam.java @@ -0,0 +1,59 @@ +package com.alibaba.atasuper.api.demo.param; + +import java.util.Date; + +import javax.validation.constraints.NotNull; + +import com.alibaba.atasuper.api.demo.enums.DemoStatusEnum; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 创建对象 + * + * @author 是仪 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DemoUpdateParam { + + /** + * 主键 + */ + @NotNull + private Long id; + + /** + * 用户id + */ + private Long userId; + + /** + * 状态,一般非空,还要有默认值 + * + * @see DemoStatusEnum + */ + private String status; + + /** + * 图片的key, 图片存储一般存储key,别存储连接。 + */ + private String imageKey; + + /** + * 加入时间,必须gmt开头,日期字段没办法默认值,直接默认空 + */ + private Date gmtJoin; + + /** + * 当加入时间为空时删除加入时间 + * 默认为空false + */ + private Boolean deleteGmtJoinWhenNull; + +}