mirror of https://github.com/alibaba/easyexcel
15 changed files with 980 additions and 0 deletions
@ -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 方法用到才复制 别全复制 参考:<a href="https://aliyuque.antfin.com/ctoo-pic/rd/ixq0lu">...</a> |
||||
* |
||||
* @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<Long> create(@Valid @RequestBody DemoCreateRequest request) { |
||||
return AtaPojoResult.of(demoCoreService.create(demoWebConverter.request2param(request))); |
||||
} |
||||
|
||||
/** |
||||
* 查询一条数据 |
||||
* |
||||
* @param id 主键 |
||||
* @return |
||||
*/ |
||||
@GetMapping("query") |
||||
public AtaPojoResult<DemoQueryVO> 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<DemoPageQueryVO> 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); |
||||
} |
||||
|
||||
} |
@ -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); |
||||
|
||||
} |
@ -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; |
||||
} |
@ -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; |
||||
} |
@ -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; |
||||
} |
@ -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; |
||||
|
||||
} |
@ -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 方法用到才复制 别全复制 参考:<a href="https://aliyuque.antfin.com/ctoo-pic/rd/ixq0lu">...</a> |
||||
* |
||||
* 思考: |
||||
* 关于 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<DemoDTO> listQuery(@Nullable List<Long> idList, @Nullable DemoSelector selector); |
||||
|
||||
/** |
||||
* 根据参数查询列表数据 |
||||
* |
||||
* @param param 查询参数 |
||||
* @param selector 选择器 |
||||
* @return 返回查询数据,最多500条 |
||||
*/ |
||||
List<DemoDTO> listQuery(@Valid @NotNull DemoQueryParam param, @Nullable DemoSelector selector); |
||||
|
||||
/** |
||||
* 根据参数分页查询列表数据 |
||||
* |
||||
* @param param 查询参数 |
||||
* @param selector 选择器 |
||||
* @return 返回分页查询数据 |
||||
*/ |
||||
AtaPageResult<DemoDTO> pageQuery(@Valid @NotNull DemoPageQueryParam param, @Nullable DemoSelector selector); |
||||
|
||||
/** |
||||
* 根据参数分页查询列表数据,只会查询有权限的数据 |
||||
* |
||||
* @param param 查询参数 |
||||
* @param selector 选择器 |
||||
* @return 返回分页查询数据 |
||||
*/ |
||||
AtaPageResult<DemoDTO> pageQueryWithPermission(@Valid @NotNull DemoPageQueryParam param, |
||||
@Nullable DemoSelector selector); |
||||
|
||||
/** |
||||
* 综合搜索 |
||||
* 慎用,一般涉及到join |
||||
* |
||||
* @param param 查询参数 |
||||
* @param selector 选择器 |
||||
* @return 返回分页查询数据 |
||||
*/ |
||||
AtaPageResult<DemoDTO> comprehensivePageQuery(@Valid @NotNull DemoComprehensivePageQueryParam param, |
||||
@Nullable DemoSelector selector); |
||||
|
||||
} |
||||
|
@ -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; |
||||
|
||||
} |
@ -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<String> { |
||||
|
||||
/** |
||||
* 草稿 |
||||
*/ |
||||
DRAFT("草稿"), |
||||
|
||||
/** |
||||
* 线上 |
||||
*/ |
||||
RELEASE("线上"), |
||||
; |
||||
|
||||
final String description; |
||||
|
||||
DemoStatusEnum(String description) { |
||||
this.description = description; |
||||
} |
||||
|
||||
@Override |
||||
public String getCode() { |
||||
return this.name(); |
||||
} |
||||
} |
@ -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<Long> userIdList; |
||||
} |
@ -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; |
||||
} |
@ -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<Long> idList; |
||||
|
||||
/** |
||||
* 用户id |
||||
* 传null会报错 |
||||
*/ |
||||
@NonNull |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 用户id |
||||
* 传null不查询 |
||||
*/ |
||||
private Long userIdWhenPresent; |
||||
|
||||
/** |
||||
* 用户id列表 |
||||
* 传null不查询 |
||||
*/ |
||||
@NonNull |
||||
private List<Long> 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; |
||||
} |
||||
} |
||||
} |
@ -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<Long> idList; |
||||
|
||||
/** |
||||
* 用户id |
||||
* 传null会报错 |
||||
*/ |
||||
@NonNull |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 用户id |
||||
* 传null不查询 |
||||
*/ |
||||
private Long userIdWhenPresent; |
||||
|
||||
/** |
||||
* 用户id列表 |
||||
* 传null不查询 |
||||
*/ |
||||
@NonNull |
||||
private List<Long> userIdList; |
||||
|
||||
} |
@ -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; |
||||
} |
@ -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; |
||||
|
||||
} |
Loading…
Reference in new issue