mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-09 10:00:30 +08:00
feat(m6): add CRUD dialogs for environments and product lines
This commit is contained in:
+39
@@ -1,14 +1,21 @@
|
||||
package cn.craftlabs.platform.api.integration;
|
||||
|
||||
import cn.craftlabs.platform.api.service.IntegrationCatalogService;
|
||||
import cn.craftlabs.platform.api.web.dto.IntegrationEnvironmentRequest;
|
||||
import cn.craftlabs.platform.api.web.dto.IntegrationEnvironmentResponse;
|
||||
import cn.craftlabs.platform.api.web.dto.PageResponse;
|
||||
import cn.craftlabs.platform.api.web.dto.ProductLineRequest;
|
||||
import cn.craftlabs.platform.api.web.dto.ProductLineResponse;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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.RequestParam;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -49,4 +56,36 @@ public class IntegrationCatalogController {
|
||||
public IntegrationEnvironmentResponse getEnvironment(@PathVariable("id") long id) {
|
||||
return integrationCatalogService.getEnvironment(id);
|
||||
}
|
||||
|
||||
@PostMapping("/environments")
|
||||
public IntegrationEnvironmentResponse createEnvironment(@Valid @RequestBody IntegrationEnvironmentRequest body) {
|
||||
return integrationCatalogService.createEnvironment(body);
|
||||
}
|
||||
|
||||
@PutMapping("/environments/{id}")
|
||||
public IntegrationEnvironmentResponse updateEnvironment(
|
||||
@PathVariable("id") long id, @Valid @RequestBody IntegrationEnvironmentRequest body) {
|
||||
return integrationCatalogService.updateEnvironment(id, body);
|
||||
}
|
||||
|
||||
@DeleteMapping("/environments/{id}")
|
||||
public void deleteEnvironment(@PathVariable("id") long id) {
|
||||
integrationCatalogService.deleteEnvironment(id);
|
||||
}
|
||||
|
||||
@PostMapping("/product-lines")
|
||||
public ProductLineResponse createProductLine(@Valid @RequestBody ProductLineRequest body) {
|
||||
return integrationCatalogService.createProductLine(body);
|
||||
}
|
||||
|
||||
@PutMapping("/product-lines/{id}")
|
||||
public ProductLineResponse updateProductLine(
|
||||
@PathVariable("id") long id, @Valid @RequestBody ProductLineRequest body) {
|
||||
return integrationCatalogService.updateProductLine(id, body);
|
||||
}
|
||||
|
||||
@DeleteMapping("/product-lines/{id}")
|
||||
public void deleteProductLine(@PathVariable("id") long id) {
|
||||
integrationCatalogService.deleteProductLine(id);
|
||||
}
|
||||
}
|
||||
|
||||
+68
@@ -4,8 +4,10 @@ import cn.craftlabs.platform.api.persistence.integration.PlatformIntegrationEnvi
|
||||
import cn.craftlabs.platform.api.persistence.integration.PlatformIntegrationEnvironmentMapper;
|
||||
import cn.craftlabs.platform.api.persistence.integration.PlatformProductLine;
|
||||
import cn.craftlabs.platform.api.persistence.integration.PlatformProductLineMapper;
|
||||
import cn.craftlabs.platform.api.web.dto.IntegrationEnvironmentRequest;
|
||||
import cn.craftlabs.platform.api.web.dto.IntegrationEnvironmentResponse;
|
||||
import cn.craftlabs.platform.api.web.dto.PageResponse;
|
||||
import cn.craftlabs.platform.api.web.dto.ProductLineRequest;
|
||||
import cn.craftlabs.platform.api.web.dto.ProductLineResponse;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -70,6 +72,72 @@ public class IntegrationCatalogService {
|
||||
return toEnvironment(row);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public ProductLineResponse createProductLine(ProductLineRequest req) {
|
||||
PlatformProductLine row = new PlatformProductLine();
|
||||
row.setCode(req.getCode());
|
||||
row.setName(req.getName());
|
||||
row.setDescription(req.getDescription());
|
||||
row.setEnabled(req.getEnabled() != null ? req.getEnabled() : Boolean.TRUE);
|
||||
productLineMapper.insert(row);
|
||||
return toProductLine(row);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public ProductLineResponse updateProductLine(long id, ProductLineRequest req) {
|
||||
PlatformProductLine row = productLineMapper.selectById(id);
|
||||
if (row == null) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "product line not found");
|
||||
}
|
||||
row.setCode(req.getCode());
|
||||
row.setName(req.getName());
|
||||
row.setDescription(req.getDescription());
|
||||
row.setEnabled(req.getEnabled() != null ? req.getEnabled() : Boolean.TRUE);
|
||||
productLineMapper.updateById(row);
|
||||
return toProductLine(row);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void deleteProductLine(long id) {
|
||||
if (productLineMapper.selectById(id) == null) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "product line not found");
|
||||
}
|
||||
productLineMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public IntegrationEnvironmentResponse createEnvironment(IntegrationEnvironmentRequest req) {
|
||||
PlatformIntegrationEnvironment row = new PlatformIntegrationEnvironment();
|
||||
row.setCode(req.getCode());
|
||||
row.setName(req.getName());
|
||||
row.setBitanswerBaseUrl(req.getBitanswerBaseUrl());
|
||||
row.setKind(req.getKind());
|
||||
environmentMapper.insert(row);
|
||||
return toEnvironment(row);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public IntegrationEnvironmentResponse updateEnvironment(long id, IntegrationEnvironmentRequest req) {
|
||||
PlatformIntegrationEnvironment row = environmentMapper.selectById(id);
|
||||
if (row == null) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "integration environment not found");
|
||||
}
|
||||
row.setCode(req.getCode());
|
||||
row.setName(req.getName());
|
||||
row.setBitanswerBaseUrl(req.getBitanswerBaseUrl());
|
||||
row.setKind(req.getKind());
|
||||
environmentMapper.updateById(row);
|
||||
return toEnvironment(row);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void deleteEnvironment(long id) {
|
||||
if (environmentMapper.selectById(id) == null) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "integration environment not found");
|
||||
}
|
||||
environmentMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private ProductLineResponse toProductLine(PlatformProductLine row) {
|
||||
ProductLineResponse r = new ProductLineResponse();
|
||||
r.setId(row.getId());
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package cn.craftlabs.platform.api.web.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
public class IntegrationEnvironmentRequest {
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 64)
|
||||
private String code;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 256)
|
||||
private String name;
|
||||
|
||||
@Size(max = 512)
|
||||
private String bitanswerBaseUrl;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 16)
|
||||
private String kind;
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getBitanswerBaseUrl() {
|
||||
return bitanswerBaseUrl;
|
||||
}
|
||||
|
||||
public void setBitanswerBaseUrl(String bitanswerBaseUrl) {
|
||||
this.bitanswerBaseUrl = bitanswerBaseUrl;
|
||||
}
|
||||
|
||||
public String getKind() {
|
||||
return kind;
|
||||
}
|
||||
|
||||
public void setKind(String kind) {
|
||||
this.kind = kind;
|
||||
}
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package cn.craftlabs.platform.api.web.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
public class ProductLineRequest {
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 64)
|
||||
private String code;
|
||||
|
||||
@NotBlank
|
||||
@Size(max = 256)
|
||||
private String name;
|
||||
|
||||
@Size(max = 1024)
|
||||
private String description;
|
||||
|
||||
private Boolean enabled;
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public Boolean getEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(Boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user