Files
smartDriveEE/src/main/java/com/rj/controller/LbThirdIntegrationConfigController.java
2026-05-30 08:26:47 +08:00

139 lines
6.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.rj.controller;
import com.rj.dto.LbThirdIntegrationCredentialUpdateRequest;
import com.rj.entity.LbThirdIntegrationConfig;
import com.rj.service.ILbThirdIntegrationConfigService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 租户第三方集成配置控制器
*/
@Slf4j
@RestController
@RequestMapping("/api/lbThirdIntegrationConfig")
@Tag(name = "租户第三方集成配置", description = "lb_third_integration_config 增删改查与分页")
public class LbThirdIntegrationConfigController {
@Autowired
private ILbThirdIntegrationConfigService lbThirdIntegrationConfigService;
@PostMapping("/add")
@Operation(summary = "新增")
public ResponseEntity<Map<String, Object>> add(
@Parameter(description = "配置实体(凭证请传 *Plain 明文字段)", required = true)
@RequestBody LbThirdIntegrationConfig entity) {
Map<String, Object> result = lbThirdIntegrationConfigService.add(entity);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
return ResponseEntity.badRequest().body(result);
}
@PutMapping("/update")
@Operation(summary = "更新")
public ResponseEntity<Map<String, Object>> update(
@Parameter(description = "配置实体(仅传需修改字段;凭证 *Plain 非空时才轮换)", required = true)
@RequestBody LbThirdIntegrationConfig entity) {
Map<String, Object> result = lbThirdIntegrationConfigService.update(entity);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
return ResponseEntity.badRequest().body(result);
}
@DeleteMapping("/delete/{id}")
@Operation(summary = "删除")
public ResponseEntity<Map<String, Object>> delete(
@Parameter(description = "主键ID", required = true) @PathVariable String id) {
Map<String, Object> result = lbThirdIntegrationConfigService.deleteById(id);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
return ResponseEntity.badRequest().body(result);
}
@GetMapping("/list")
@Operation(summary = "分页查询")
public ResponseEntity<Map<String, Object>> list(
@RequestParam(defaultValue = "1") Integer current,
@RequestParam(defaultValue = "10") Integer size,
@RequestParam(required = false) String tenantId,
@RequestParam(required = false) String providerCode,
@RequestParam(required = false) Integer enabled) {
Map<String, Object> result = lbThirdIntegrationConfigService.pageQuery(
current, size, tenantId, providerCode, enabled);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
return ResponseEntity.internalServerError().body(result);
}
@GetMapping("/get/{id}")
@Operation(summary = "按ID查询")
public ResponseEntity<Map<String, Object>> getById(
@Parameter(description = "主键ID", required = true) @PathVariable String id) {
Map<String, Object> result = lbThirdIntegrationConfigService.getDetailById(id);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
if ("记录不存在".equals(result.get("message"))) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.badRequest().body(result);
}
@GetMapping("/credential/{tenantId}")
@Operation(
summary = "查询租户凭证(含明文)",
description = "按 tenantId 解密返回 cookie、phpsid、goodsApiToken、goodsApiAppStr 明文,便于管理查看")
public ResponseEntity<Map<String, Object>> getCredentialStatus(
@Parameter(description = "租户 id", required = true) @PathVariable String tenantId) {
Map<String, Object> result = lbThirdIntegrationConfigService.getCredentialStatusByTenantId(tenantId);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
if ("该租户未配置第三方集成".equals(result.get("message"))) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.badRequest().body(result);
}
@PostMapping("/credential/{tenantId}")
@Operation(
summary = "更新租户凭证",
description =
"仅更新 cookie/phpsid/goodsApiToken/goodsApiAppStr 凭证列;"
+ "传明文则加密入库并 credential_version+1"
+ "传 clear* 为 true 则清除对应密文;至少操作一项")
public ResponseEntity<Map<String, Object>> updateCredential(
@Parameter(description = "租户 id", required = true) @PathVariable String tenantId,
@Parameter(description = "凭证更新请求", required = true)
@RequestBody
LbThirdIntegrationCredentialUpdateRequest request) {
Map<String, Object> result =
lbThirdIntegrationConfigService.updateCredentialByTenantId(tenantId, request);
Boolean success = (Boolean) result.get("success");
if (success != null && success) {
return ResponseEntity.ok(result);
}
if ("该租户未配置第三方集成,请先新增配置".equals(result.get("message"))) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.badRequest().body(result);
}
}