|
|
@@ -1,16 +1,27 @@
|
|
|
package com.yhlxj.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
+import com.tencentcloudapi.common.AbstractModel;
|
|
|
+import com.tencentcloudapi.common.Credential;
|
|
|
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
|
|
|
+import com.tencentcloudapi.common.profile.ClientProfile;
|
|
|
+import com.tencentcloudapi.common.profile.HttpProfile;
|
|
|
+import com.tencentcloudapi.dnspod.v20210323.DnspodClient;
|
|
|
+import com.tencentcloudapi.dnspod.v20210323.models.CreateRecordRequest;
|
|
|
+import com.tencentcloudapi.dnspod.v20210323.models.CreateRecordResponse;
|
|
|
import com.yhlxj.dao.mapper.WebInfoMapper;
|
|
|
import com.yhlxj.dao.model.entity.WebInfo;
|
|
|
import com.yhlxj.service.WebInfoService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
@RequiredArgsConstructor
|
|
|
public class WebInfoServiceImpl implements WebInfoService {
|
|
|
|
|
|
@@ -89,7 +100,7 @@ public class WebInfoServiceImpl implements WebInfoService {
|
|
|
if (checkAccountExists(webInfo.getAccount())) {
|
|
|
throw new IllegalArgumentException("账号已存在");
|
|
|
}
|
|
|
-
|
|
|
+ createRecord(webInfo.getPrefix());
|
|
|
webInfoMapper.insert(webInfo);
|
|
|
return webInfo;
|
|
|
}
|
|
|
@@ -104,4 +115,39 @@ public class WebInfoServiceImpl implements WebInfoService {
|
|
|
}
|
|
|
return webInfo;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public void createRecord(String prefix) {
|
|
|
+ try {
|
|
|
+ // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
|
|
+ // 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性
|
|
|
+ // 以下代码示例仅供参考,建议采用更安全的方式来使用密钥
|
|
|
+ // 请参见:https://cloud.tencent.com/document/product/1278/85305
|
|
|
+ // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
|
|
+ Credential cred = new Credential("AKIDmZ9WmqhNuKbhfTEqFVZQ3WvJbq2CMNOG", "jT6XyGNHyTnuoZ8UedSI1YFpOn26zg9R");
|
|
|
+ // 使用临时密钥示例
|
|
|
+ // Credential cred = new Credential("SecretId", "SecretKey", "Token");
|
|
|
+ // 实例化一个http选项,可选的,没有特殊需求可以跳过
|
|
|
+ HttpProfile httpProfile = new HttpProfile();
|
|
|
+ httpProfile.setEndpoint("dnspod.tencentcloudapi.com");
|
|
|
+ // 实例化一个client选项,可选的,没有特殊需求可以跳过
|
|
|
+ ClientProfile clientProfile = new ClientProfile();
|
|
|
+ clientProfile.setHttpProfile(httpProfile);
|
|
|
+ // 实例化要请求产品的client对象,clientProfile是可选的
|
|
|
+ DnspodClient client = new DnspodClient(cred, "", clientProfile);
|
|
|
+ // 实例化一个请求对象,每个接口都会对应一个request对象
|
|
|
+ CreateRecordRequest req = new CreateRecordRequest();
|
|
|
+ req.setDomain("galaxydvd.com");
|
|
|
+ req.setRecordType("A");
|
|
|
+ req.setRecordLine("默认");
|
|
|
+ req.setSubDomain("jj");
|
|
|
+ req.setValue("147.79.20.183");
|
|
|
+ // 返回的resp是一个CreateRecordResponse的实例,与请求对象对应
|
|
|
+ CreateRecordResponse resp = client.CreateRecord(req);
|
|
|
+ // 输出json格式的字符串回包
|
|
|
+ log.info("添加解析result:{}",AbstractModel.toJsonString(resp));
|
|
|
+ } catch (TencentCloudSDKException e) {
|
|
|
+ throw BusinessRuntimeException.getInstance(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|