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