package com.schisandra.oss.application.controller;

import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.schisandra.oss.application.convert.SchisandraOssHuaweiDTOConverter;
import com.schisandra.oss.application.dto.SchisandraOssHuaweiDTO;
import com.schisandra.oss.common.entity.Result;
import com.schisandra.oss.domain.bo.SchisandraOssHuaweiBO;
import com.schisandra.oss.domain.service.SchisandraOssHuaweiDomainService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 华为云对象存储配置表 controller
 *
 * @author landaiqing
 * @since 2024-06-02 21:59:56
 */
@RestController
@RequestMapping("/oss/huawei/")
@Slf4j
public class SchisandraOssHuaweiController {

    @Resource
    private SchisandraOssHuaweiDomainService schisandraOssHuaweiDomainService;

    /**
     * 新增华为云对象存储配置表
     */
    @RequestMapping("add")
    public Result<Boolean> add(@RequestBody SchisandraOssHuaweiDTO schisandraOssHuaweiDTO) {

        try {
            if (log.isInfoEnabled()) {
                log.info("SchisandraOssHuaweiController.add.dto:{}", JSON.toJSONString(schisandraOssHuaweiDTO));
            }
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getId(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUserId(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getBasePath(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAccessKey(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSecretKey(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndPoint(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getBucketName(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getConnectionTimeout(), "建立HTTP/HTTPS连接的超时时间（单位：毫秒）。默认为60000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIdleConnectionTime(), "如果空闲时间超过此参数的设定值，则关闭连接（单位：毫秒）。默认为30000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxIdleConnections(), "连接池中最大空闲连接数，默认值：1000。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxConnections(), "最大允许的HTTP并发请求数。默认为1000。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxErrorRetry(), "请求失败（请求异常、服务端报500或503错误等）后最大的重试次数。默认3次。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketTimeout(), "Socket层传输数据的超时时间（单位：毫秒）。默认为60000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndpointHttpPort(), "设置HTTP请求的端口号 (默认为80)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndpointHttpsPort(), "定是否使用HTTPS连接OBS (默认为 “true”)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpsOnly(), "定是否使用HTTPS连接OBS (默认为 “true”)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getPathStyle(), "指定是否启用对OBS的路径样式访问。“true” 表示启用了路径样式的访问，而 “false” (默认) 表示启用了虚拟托管样式的访问。注意: 如果启用了路径样式访问，则不支持OBS 3.0的新bucket功能。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpProxy(), "HTTP代理配置。默认为空。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUploadStreamRetryBufferSize(), "上传流对象时使用的缓存大小（单位：字节）。默认为512KB。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getValidateCertificate(), "是否验证服务端证书。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getVerifyResponseContentType(), "是否验证响应头信息的ContentType。默认为true。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getReadBufferSize(), "从Socket流下载对象的缓存大小（单位：字节），-1表示不设置缓存。默认为-1。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getWriteBufferSize(), "上传对象到Socket流时的缓存大小（单位：字节），-1表示不设置缓存。默认为-1。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIsStrictHostnameVerification(), "是否严格验证服务端主机名。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAuthType(), "设置身份验证类型。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketWriteBufferSize(), "Socket发送缓冲区大小（单位：字节），对应java.net.SocketOptions.SO_SNDBUF参数。默认为-1表示不设置。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketReadBufferSize(), "Socket接收缓冲区大小（单位：字节），对应java.net.SocketOptions.SO_RCVBUF参数。默认为-1表示不设置。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getKeepAlive(), "是否使用长连接访问OBS服务。默认为true。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAuthTypeNegotiation(), "指定是否使用协议协商。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCname(), "是否通过自定义域名访问OBS服务。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getDelimiter(), "将文件夹隔离器设置为斜线。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSslProvider(), "SSLContext的Provider，默认使用JDK提供的SSLContext。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpProtocolType(), "访问OBS服务端时使用的HTTP协议类型。默认为HTTP1.1协议。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getRetryOnConnectionFailureInOkhttp(), "是否开启Okhttp中的连接失败重试，默认关闭不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxRetryOnUnexpectedEndException(), "发生异常时最大重试次数不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getPartSize(), "分片大小,默认5MB不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getTaskNum(), "并发线程数,默认等于CPU的核数不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getStatus(), "状态不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getOpenAdvancedSetup(), "是否开启高级设置不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreatedBy(), "创建人不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreatedTime(), "创建时间不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUpdateTime(), "更新时间不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUpdateBy(), "更新人不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIsDeleted(), "是否删除 0 未删除 1已删除不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getExtraJson(), "额外字段不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreateBucket(), "当桶不存在，是否创建不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCheckBucket(), "启动检测桶，是否存在不能为空");
            SchisandraOssHuaweiBO SchisandraOssHuaweiBO = SchisandraOssHuaweiDTOConverter.INSTANCE.convertDTOToBO(schisandraOssHuaweiDTO);
            return Result.ok(schisandraOssHuaweiDomainService.add(SchisandraOssHuaweiBO));
        } catch (Exception e) {
            log.error("SchisandraOssHuaweiController.register.error:{}", e.getMessage(), e);
            return Result.fail("新增华为云对象存储配置表失败");
        }

    }

    /**
     * 修改华为云对象存储配置表
     */
    @RequestMapping("update")
    public Result<Boolean> update(@RequestBody SchisandraOssHuaweiDTO schisandraOssHuaweiDTO) {

        try {
            if (log.isInfoEnabled()) {
                log.info("SchisandraOssHuaweiController.update.dto:{}", JSON.toJSONString(schisandraOssHuaweiDTO));
            }
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getId(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUserId(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getBasePath(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAccessKey(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSecretKey(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndPoint(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getBucketName(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getConnectionTimeout(), "建立HTTP/HTTPS连接的超时时间（单位：毫秒）。默认为60000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIdleConnectionTime(), "如果空闲时间超过此参数的设定值，则关闭连接（单位：毫秒）。默认为30000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxIdleConnections(), "连接池中最大空闲连接数，默认值：1000。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxConnections(), "最大允许的HTTP并发请求数。默认为1000。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxErrorRetry(), "请求失败（请求异常、服务端报500或503错误等）后最大的重试次数。默认3次。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketTimeout(), "Socket层传输数据的超时时间（单位：毫秒）。默认为60000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndpointHttpPort(), "设置HTTP请求的端口号 (默认为80)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndpointHttpsPort(), "定是否使用HTTPS连接OBS (默认为 “true”)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpsOnly(), "定是否使用HTTPS连接OBS (默认为 “true”)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getPathStyle(), "指定是否启用对OBS的路径样式访问。“true” 表示启用了路径样式的访问，而 “false” (默认) 表示启用了虚拟托管样式的访问。注意: 如果启用了路径样式访问，则不支持OBS 3.0的新bucket功能。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpProxy(), "HTTP代理配置。默认为空。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUploadStreamRetryBufferSize(), "上传流对象时使用的缓存大小（单位：字节）。默认为512KB。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getValidateCertificate(), "是否验证服务端证书。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getVerifyResponseContentType(), "是否验证响应头信息的ContentType。默认为true。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getReadBufferSize(), "从Socket流下载对象的缓存大小（单位：字节），-1表示不设置缓存。默认为-1。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getWriteBufferSize(), "上传对象到Socket流时的缓存大小（单位：字节），-1表示不设置缓存。默认为-1。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIsStrictHostnameVerification(), "是否严格验证服务端主机名。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAuthType(), "设置身份验证类型。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketWriteBufferSize(), "Socket发送缓冲区大小（单位：字节），对应java.net.SocketOptions.SO_SNDBUF参数。默认为-1表示不设置。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketReadBufferSize(), "Socket接收缓冲区大小（单位：字节），对应java.net.SocketOptions.SO_RCVBUF参数。默认为-1表示不设置。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getKeepAlive(), "是否使用长连接访问OBS服务。默认为true。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAuthTypeNegotiation(), "指定是否使用协议协商。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCname(), "是否通过自定义域名访问OBS服务。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getDelimiter(), "将文件夹隔离器设置为斜线。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSslProvider(), "SSLContext的Provider，默认使用JDK提供的SSLContext。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpProtocolType(), "访问OBS服务端时使用的HTTP协议类型。默认为HTTP1.1协议。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getRetryOnConnectionFailureInOkhttp(), "是否开启Okhttp中的连接失败重试，默认关闭不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxRetryOnUnexpectedEndException(), "发生异常时最大重试次数不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getPartSize(), "分片大小,默认5MB不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getTaskNum(), "并发线程数,默认等于CPU的核数不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getStatus(), "状态不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getOpenAdvancedSetup(), "是否开启高级设置不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreatedBy(), "创建人不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreatedTime(), "创建时间不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUpdateTime(), "更新时间不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUpdateBy(), "更新人不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIsDeleted(), "是否删除 0 未删除 1已删除不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getExtraJson(), "额外字段不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreateBucket(), "当桶不存在，是否创建不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCheckBucket(), "启动检测桶，是否存在不能为空");
            SchisandraOssHuaweiBO schisandraOssHuaweiBO = SchisandraOssHuaweiDTOConverter.INSTANCE.convertDTOToBO(schisandraOssHuaweiDTO);
            return Result.ok(schisandraOssHuaweiDomainService.update(schisandraOssHuaweiBO));
        } catch (Exception e) {
            log.error("SchisandraOssHuaweiController.update.error:{}", e.getMessage(), e);
            return Result.fail("更新华为云对象存储配置表信息失败");
        }

    }

    /**
     * 删除华为云对象存储配置表
     */
    @RequestMapping("delete")
    public Result<Boolean> delete(@RequestBody SchisandraOssHuaweiDTO schisandraOssHuaweiDTO) {

        try {
            if (log.isInfoEnabled()) {
                log.info("SchisandraOssHuaweiController.delete.dto:{}", JSON.toJSONString(schisandraOssHuaweiDTO));
            }
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getId(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUserId(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getBasePath(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAccessKey(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSecretKey(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndPoint(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getBucketName(), "不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getConnectionTimeout(), "建立HTTP/HTTPS连接的超时时间（单位：毫秒）。默认为60000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIdleConnectionTime(), "如果空闲时间超过此参数的设定值，则关闭连接（单位：毫秒）。默认为30000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxIdleConnections(), "连接池中最大空闲连接数，默认值：1000。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxConnections(), "最大允许的HTTP并发请求数。默认为1000。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxErrorRetry(), "请求失败（请求异常、服务端报500或503错误等）后最大的重试次数。默认3次。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketTimeout(), "Socket层传输数据的超时时间（单位：毫秒）。默认为60000毫秒。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndpointHttpPort(), "设置HTTP请求的端口号 (默认为80)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getEndpointHttpsPort(), "定是否使用HTTPS连接OBS (默认为 “true”)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpsOnly(), "定是否使用HTTPS连接OBS (默认为 “true”)。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getPathStyle(), "指定是否启用对OBS的路径样式访问。“true” 表示启用了路径样式的访问，而 “false” (默认) 表示启用了虚拟托管样式的访问。注意: 如果启用了路径样式访问，则不支持OBS 3.0的新bucket功能。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpProxy(), "HTTP代理配置。默认为空。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUploadStreamRetryBufferSize(), "上传流对象时使用的缓存大小（单位：字节）。默认为512KB。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getValidateCertificate(), "是否验证服务端证书。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getVerifyResponseContentType(), "是否验证响应头信息的ContentType。默认为true。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getReadBufferSize(), "从Socket流下载对象的缓存大小（单位：字节），-1表示不设置缓存。默认为-1。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getWriteBufferSize(), "上传对象到Socket流时的缓存大小（单位：字节），-1表示不设置缓存。默认为-1。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIsStrictHostnameVerification(), "是否严格验证服务端主机名。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAuthType(), "设置身份验证类型。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketWriteBufferSize(), "Socket发送缓冲区大小（单位：字节），对应java.net.SocketOptions.SO_SNDBUF参数。默认为-1表示不设置。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSocketReadBufferSize(), "Socket接收缓冲区大小（单位：字节），对应java.net.SocketOptions.SO_RCVBUF参数。默认为-1表示不设置。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getKeepAlive(), "是否使用长连接访问OBS服务。默认为true。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getAuthTypeNegotiation(), "指定是否使用协议协商。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCname(), "是否通过自定义域名访问OBS服务。默认为false。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getDelimiter(), "将文件夹隔离器设置为斜线。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getSslProvider(), "SSLContext的Provider，默认使用JDK提供的SSLContext。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getHttpProtocolType(), "访问OBS服务端时使用的HTTP协议类型。默认为HTTP1.1协议。不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getRetryOnConnectionFailureInOkhttp(), "是否开启Okhttp中的连接失败重试，默认关闭不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getMaxRetryOnUnexpectedEndException(), "发生异常时最大重试次数不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getPartSize(), "分片大小,默认5MB不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getTaskNum(), "并发线程数,默认等于CPU的核数不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getStatus(), "状态不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getOpenAdvancedSetup(), "是否开启高级设置不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreatedBy(), "创建人不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreatedTime(), "创建时间不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUpdateTime(), "更新时间不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getUpdateBy(), "更新人不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getIsDeleted(), "是否删除 0 未删除 1已删除不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getExtraJson(), "额外字段不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCreateBucket(), "当桶不存在，是否创建不能为空");
            Preconditions.checkNotNull(schisandraOssHuaweiDTO.getCheckBucket(), "启动检测桶，是否存在不能为空");
            SchisandraOssHuaweiBO schisandraOssHuaweiBO = SchisandraOssHuaweiDTOConverter.INSTANCE.convertDTOToBO(schisandraOssHuaweiDTO);
            return Result.ok(schisandraOssHuaweiDomainService.delete(schisandraOssHuaweiBO));
        } catch (Exception e) {
            log.error("SchisandraOssHuaweiController.delete.error:{}", e.getMessage(), e);
            return Result.fail("删除华为云对象存储配置表信息失败");
        }

    }

}
