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> add( @Parameter(description = "配置实体(凭证请传 *Plain 明文字段)", required = true) @RequestBody LbThirdIntegrationConfig entity) { Map 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> update( @Parameter(description = "配置实体(仅传需修改字段;凭证 *Plain 非空时才轮换)", required = true) @RequestBody LbThirdIntegrationConfig entity) { Map 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> delete( @Parameter(description = "主键ID", required = true) @PathVariable String id) { Map 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> 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 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> getById( @Parameter(description = "主键ID", required = true) @PathVariable String id) { Map 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> getCredentialStatus( @Parameter(description = "租户 id", required = true) @PathVariable String tenantId) { Map 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> updateCredential( @Parameter(description = "租户 id", required = true) @PathVariable String tenantId, @Parameter(description = "凭证更新请求", required = true) @RequestBody LbThirdIntegrationCredentialUpdateRequest request) { Map 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); } }