From adf9ab0da4f56bda205cc3b5f3adfc95da51e61e Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Thu, 5 Sep 2019 22:35:35 +0800 Subject: [PATCH] =?utf8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BA=94=E7=94=A8?= =?utf8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E7=9A=84api?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../v1/admin/AdminApplicationController.java | 165 ++++++++++++++++++ .../vo/request/ApplicationCreateRequest.java | 21 +++ .../ApplicationDeleteBatchRequest.java | 21 +++ .../vo/request/ApplicationQueryRequest.java | 40 +++++ .../vo/request/ApplicationUpdateRequest.java | 28 +++ .../ApplicationCreateResponseData.java | 33 ++++ .../ApplicationDeleteBatchResponseData.java | 35 ++++ .../response/ApplicationLoadResponseData.java | 33 ++++ .../ApplicationQueryResponseData.java | 80 +++++++++ .../ApplicationRemoveResponseData.java | 34 ++++ .../ApplicationUpdateResponseData.java | 34 ++++ 11 files changed, 524 insertions(+) create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminApplicationController.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationCreateRequest.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationDeleteBatchRequest.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationQueryRequest.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationUpdateRequest.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationCreateResponseData.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationDeleteBatchResponseData.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationLoadResponseData.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationQueryResponseData.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationRemoveResponseData.java create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationUpdateResponseData.java diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminApplicationController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminApplicationController.java new file mode 100644 index 0000000..41a23bb --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminApplicationController.java @@ -0,0 +1,165 @@ +package com.supwisdom.institute.backend.base.api.v1.admin; + +import java.util.List; + +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.http.HttpStatus; +import org.springframework.util.MimeTypeUtils; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import com.supwisdom.institute.backend.base.api.vo.request.ApplicationCreateRequest; +import com.supwisdom.institute.backend.base.api.vo.request.ApplicationDeleteBatchRequest; +import com.supwisdom.institute.backend.base.api.vo.request.ApplicationQueryRequest; +import com.supwisdom.institute.backend.base.api.vo.request.ApplicationUpdateRequest; +import com.supwisdom.institute.backend.base.api.vo.response.ApplicationCreateResponseData; +import com.supwisdom.institute.backend.base.api.vo.response.ApplicationDeleteBatchResponseData; +import com.supwisdom.institute.backend.base.api.vo.response.ApplicationLoadResponseData; +import com.supwisdom.institute.backend.base.api.vo.response.ApplicationQueryResponseData; +import com.supwisdom.institute.backend.base.api.vo.response.ApplicationRemoveResponseData; +import com.supwisdom.institute.backend.base.api.vo.response.ApplicationUpdateResponseData; +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.base.domain.service.ApplicationService; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse; + +@Api(value = "BaseAdminApplication", tags = { "BaseAdminApplication" }, description = "路由信息的操作接口") +@Slf4j +@RestController +@RequestMapping("/v1/admin/applications") +public class AdminApplicationController { + + @Autowired + private ApplicationService applicationService; + + + @GetMapping(produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse query(ApplicationQueryRequest queryRequest) { + + Page page = applicationService.selectPageList( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy()); + + ApplicationQueryResponseData data = ApplicationQueryResponseData.of(queryRequest).build(page); + + return new DefaultApiResponse(data); + } + + @GetMapping(path = "/{id}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse load(@PathVariable("id") String id) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException + } + + Application application = applicationService.selectById(id); + + if (application == null) { + throw new RuntimeException("exception.get.domain.not.exist"); // FIXME: RestException + } + + ApplicationLoadResponseData data = ApplicationLoadResponseData.of(application); + + return new DefaultApiResponse(data); + } + + @PostMapping(consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse create( + @RequestBody ApplicationCreateRequest createRequest) { + + // FIXME: 验证数据有效性 + + Application application = createRequest.getEntity(); + + Application ret = applicationService.insert(application); + + ApplicationCreateResponseData data = ApplicationCreateResponseData.build(ret); + + return new DefaultApiResponse(data); + } + + @PutMapping(path = "/{id}", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse update( + @PathVariable("id") String id, + @RequestBody ApplicationUpdateRequest updateRequest) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.update.id.must.not.empty"); + } + + Application tmp = applicationService.selectById(id); + if (tmp == null) { + throw new RuntimeException("exception.update.domain.not.exist"); + } + + Application application = updateRequest.getEntity(); + application.setId(id); + + application = EntityUtils.merge(tmp, application); + + Application ret = applicationService.update(application); + + ApplicationUpdateResponseData data = ApplicationUpdateResponseData.build(ret); + + return new DefaultApiResponse(data); + } + + @DeleteMapping(path = "/{id}", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse delete( + @PathVariable("id") String id) { + + if (id == null || id.length() == 0) { + throw new RuntimeException("exception.delete.id.must.not.empty"); // FIXME: RestException + } + + Application tmp = applicationService.selectById(id); + if (tmp == null) { + throw new RuntimeException("exception.delete.domain.not.exist"); // FIXME: RestException + } + + applicationService.deleteById(id); + + ApplicationRemoveResponseData data = ApplicationRemoveResponseData.build(tmp); + return new DefaultApiResponse(data); + } + + @DeleteMapping(path = "/batch", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse deleteBatch( + @RequestBody ApplicationDeleteBatchRequest deleteBatchRequest) { + + List ids = deleteBatchRequest.getIds(); + + applicationService.deleteBatch(ids); + + ApplicationDeleteBatchResponseData data = ApplicationDeleteBatchResponseData.build(ids); + return new DefaultApiResponse(data); + } + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationCreateRequest.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationCreateRequest.java new file mode 100644 index 0000000..26ad39a --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationCreateRequest.java @@ -0,0 +1,21 @@ +package com.supwisdom.institute.backend.base.api.vo.request; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiCreateRequest; + +/** + * @author loie + */ +public class ApplicationCreateRequest extends Application implements IApiCreateRequest { + + /** + * + */ + private static final long serialVersionUID = 7619506409619195684L; + + public Application getEntity() { + return EntityUtils.copy(this, new Application()); + } + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationDeleteBatchRequest.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationDeleteBatchRequest.java new file mode 100644 index 0000000..b309abd --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationDeleteBatchRequest.java @@ -0,0 +1,21 @@ +package com.supwisdom.institute.backend.base.api.vo.request; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiRequest; + +public class ApplicationDeleteBatchRequest implements IApiRequest { + + /** + * + */ + private static final long serialVersionUID = -8296636817441994821L; + + @Getter + @Setter + private List ids; + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationQueryRequest.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationQueryRequest.java new file mode 100644 index 0000000..0f3ed04 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationQueryRequest.java @@ -0,0 +1,40 @@ +package com.supwisdom.institute.backend.base.api.vo.request; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; + +import io.swagger.annotations.ApiModelProperty; + +/** + * @author loie + */ +public class ApplicationQueryRequest implements IApiQueryRequest { + + /** + * + */ + private static final long serialVersionUID = -4728297863070197861L; + + @Getter + @Setter + private boolean loadAll = false; + @Getter + @Setter + private int pageIndex = 0; + @Getter + @Setter + private int pageSize = 20; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map mapBean; + @Getter + @Setter + @ApiModelProperty(hidden = true) + private Map orderBy; + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationUpdateRequest.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationUpdateRequest.java new file mode 100644 index 0000000..02b0c9d --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/request/ApplicationUpdateRequest.java @@ -0,0 +1,28 @@ +package com.supwisdom.institute.backend.base.api.vo.request; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiUpdateRequest; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class ApplicationUpdateRequest extends Application implements IApiUpdateRequest { + + /** + * + */ + private static final long serialVersionUID = -2370390240675594737L; + + @Getter + @Setter + private String id; + + public Application getEntity() { + return EntityUtils.copy(this, new Application()); + } + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationCreateResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationCreateResponseData.java new file mode 100644 index 0000000..08effc9 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationCreateResponseData.java @@ -0,0 +1,33 @@ +package com.supwisdom.institute.backend.base.api.vo.response; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiCreateResponseData; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class ApplicationCreateResponseData extends Application implements IApiCreateResponseData { + + /** + * + */ + private static final long serialVersionUID = -5986639173730939508L; + + @Getter + @Setter + private String id; + + private ApplicationCreateResponseData() { + + } + + public static ApplicationCreateResponseData build(Application entity) { + ApplicationCreateResponseData data = new ApplicationCreateResponseData(); + + return EntityUtils.copy(entity, data); + } +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationDeleteBatchResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationDeleteBatchResponseData.java new file mode 100644 index 0000000..6157b32 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationDeleteBatchResponseData.java @@ -0,0 +1,35 @@ +package com.supwisdom.institute.backend.base.api.vo.response; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +/** + * @author loie + */ +public class ApplicationDeleteBatchResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -1441419457044931039L; + + @Getter + @Setter + private List ids; + + private ApplicationDeleteBatchResponseData() { + + } + + public static ApplicationDeleteBatchResponseData build(List ids) { + ApplicationDeleteBatchResponseData data = new ApplicationDeleteBatchResponseData(); + data.setIds(ids); + + return data; + } + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationLoadResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationLoadResponseData.java new file mode 100644 index 0000000..a56ced3 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationLoadResponseData.java @@ -0,0 +1,33 @@ +package com.supwisdom.institute.backend.base.api.vo.response; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiLoadResponseData; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class ApplicationLoadResponseData extends Application implements IApiLoadResponseData { + + /** + * + */ + private static final long serialVersionUID = -4866881763278414027L; + + @Getter + @Setter + private String id; + + private ApplicationLoadResponseData() { + + } + + public static ApplicationLoadResponseData of(Application entity) { + ApplicationLoadResponseData data = new ApplicationLoadResponseData(); + return EntityUtils.copy(entity, data); + } + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationQueryResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationQueryResponseData.java new file mode 100644 index 0000000..040dcf3 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationQueryResponseData.java @@ -0,0 +1,80 @@ +package com.supwisdom.institute.backend.base.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.domain.Page; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.vo.request.IApiQueryRequest; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiQueryResponseData; + +/** + * @author loie + */ +public class ApplicationQueryResponseData implements IApiQueryResponseData { + + /** + * + */ + private static final long serialVersionUID = 1355060716641084862L; + + private ApplicationQueryResponseData(boolean loadAll, int pageIndex, int pageSize, Map mapBean, Map orderBy) { + this.loadAll = loadAll; + this.pageIndex = pageIndex; + this.pageSize = pageSize; + this.mapBean = mapBean; + this.orderBy = orderBy; + } + + public static ApplicationQueryResponseData of(IApiQueryRequest queryRequest) { + ApplicationQueryResponseData configQueryResponse = new ApplicationQueryResponseData( + queryRequest.isLoadAll(), + queryRequest.getPageIndex(), + queryRequest.getPageSize(), + queryRequest.getMapBean(), + queryRequest.getOrderBy() + ); + + return configQueryResponse; + } + + public ApplicationQueryResponseData build(Page page) { + this.currentItemCount = page.getNumberOfElements(); + this.pageCount = page.getTotalPages(); + this.recordCount = page.getTotalElements(); + this.items = page.getContent(); + + return this; + } + + @Getter + private boolean loadAll; + @Getter + private int pageIndex; + @Getter + private int pageSize; + @Getter + private Map mapBean; + @Getter + private Map orderBy; + + @Getter + @Setter + private int pageCount; + @Getter + @Setter + private long recordCount; + + @Getter + @Setter + private int currentItemCount; + + @Getter + @Setter + private List items; + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationRemoveResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationRemoveResponseData.java new file mode 100644 index 0000000..277c2b8 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationRemoveResponseData.java @@ -0,0 +1,34 @@ +package com.supwisdom.institute.backend.base.api.vo.response; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiRemoveResponseData; + +/** + * @author loie + */ +public class ApplicationRemoveResponseData implements IApiRemoveResponseData { + + /** + * + */ + private static final long serialVersionUID = -8179059520857121842L; + + @Getter + @Setter + private String id; + + private ApplicationRemoveResponseData() { + + } + + public static ApplicationRemoveResponseData build(Application entity) { + ApplicationRemoveResponseData data = new ApplicationRemoveResponseData(); + + return EntityUtils.copy(entity, data); + } + +} diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationUpdateResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationUpdateResponseData.java new file mode 100644 index 0000000..2d2ee40 --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/vo/response/ApplicationUpdateResponseData.java @@ -0,0 +1,34 @@ +package com.supwisdom.institute.backend.base.api.vo.response; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.entity.EntityUtils; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiUpdateResponseData; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author loie + */ +public class ApplicationUpdateResponseData extends Application implements IApiUpdateResponseData { + + /** + * + */ + private static final long serialVersionUID = -2690439553701722798L; + + @Getter + @Setter + private String id; + + private ApplicationUpdateResponseData() { + + } + + public static ApplicationUpdateResponseData build(Application entity) { + ApplicationUpdateResponseData data = new ApplicationUpdateResponseData(); + + return EntityUtils.copy(entity, data); + } + +} -- 2.17.1