|
@@ -1,10 +1,7 @@
|
|
|
package com.fs.ecall.service.impl;
|
|
package com.fs.ecall.service.impl;
|
|
|
|
|
|
|
|
import com.fs.ecall.config.EcallProperties;
|
|
import com.fs.ecall.config.EcallProperties;
|
|
|
-import com.fs.ecall.domain.ECallResponse;
|
|
|
|
|
-import com.fs.ecall.domain.MemberMembershipRequest;
|
|
|
|
|
-import com.fs.ecall.domain.MemberTerminateRequest;
|
|
|
|
|
-import com.fs.ecall.domain.ModifyTboxPhoneRequest;
|
|
|
|
|
|
|
+import com.fs.ecall.domain.*;
|
|
|
import com.fs.ecall.service.IECallService;
|
|
import com.fs.ecall.service.IECallService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
@@ -25,6 +22,7 @@ public class ECallServiceImpl implements IECallService {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 会员备案更新接口
|
|
* 会员备案更新接口
|
|
|
|
|
+ *
|
|
|
* @param restTemplate
|
|
* @param restTemplate
|
|
|
* @param ecallProperties
|
|
* @param ecallProperties
|
|
|
*/
|
|
*/
|
|
@@ -47,7 +45,6 @@ public class ECallServiceImpl implements IECallService {
|
|
|
headers.set("Authorization", authCode);
|
|
headers.set("Authorization", authCode);
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
// 4. 构建 Entity 并发送 POST 请求
|
|
// 4. 构建 Entity 并发送 POST 请求
|
|
|
HttpEntity<MemberMembershipRequest> entity = new HttpEntity<>(request, headers);
|
|
HttpEntity<MemberMembershipRequest> entity = new HttpEntity<>(request, headers);
|
|
|
String url = env.getUrl().getMembership();
|
|
String url = env.getUrl().getMembership();
|
|
@@ -57,13 +54,14 @@ public class ECallServiceImpl implements IECallService {
|
|
|
return restTemplate.postForObject(url, entity, ECallResponse.class);
|
|
return restTemplate.postForObject(url, entity, ECallResponse.class);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("E-Call 接口调用失败", e);
|
|
log.error("E-Call 接口调用失败", e);
|
|
|
- return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
|
|
|
|
+ return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 会员终止服务
|
|
* 会员终止服务
|
|
|
|
|
+ *
|
|
|
* @param request
|
|
* @param request
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
@@ -91,13 +89,14 @@ public class ECallServiceImpl implements IECallService {
|
|
|
return restTemplate.postForObject(url, entity, ECallResponse.class);
|
|
return restTemplate.postForObject(url, entity, ECallResponse.class);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("E-Call 接口调用失败", e);
|
|
log.error("E-Call 接口调用失败", e);
|
|
|
- return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
|
|
|
|
+ return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 修改设备电话接口
|
|
* 修改设备电话接口
|
|
|
|
|
+ *
|
|
|
* @param request
|
|
* @param request
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
@@ -117,7 +116,39 @@ public class ECallServiceImpl implements IECallService {
|
|
|
|
|
|
|
|
// 4. 构建 Entity 并发送 POST 请求
|
|
// 4. 构建 Entity 并发送 POST 请求
|
|
|
HttpEntity<ModifyTboxPhoneRequest> entity = new HttpEntity<>(request, headers);
|
|
HttpEntity<ModifyTboxPhoneRequest> entity = new HttpEntity<>(request, headers);
|
|
|
- String url = env.getUrl().getTerminate();
|
|
|
|
|
|
|
+ String url = env.getUrl().getModifyPhone();
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ log.info("调用 E-Call 设备电话接口, URL: {}, ExtenalId: {}", url, request.getExtenalId());
|
|
|
|
|
+ return restTemplate.postForObject(url, entity, ECallResponse.class);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("E-Call 接口调用失败", e);
|
|
|
|
|
+ return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 会员续费接口
|
|
|
|
|
+ * @param request 续费请求参数(含 extenalId, channelId, month)
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ECallResponse extendMembership(MemberExtensionRequest request) {
|
|
|
|
|
+ EcallProperties.EnvConfig env = ecallProperties.getEnv();
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 生成 Authorization: MD5(appkey + appsecret) -> UpperCase
|
|
|
|
|
+ String rawKey = env.getAppKey() + env.getAppSecret();
|
|
|
|
|
+ String authCode = DigestUtils.md5DigestAsHex(rawKey.getBytes()).toUpperCase();
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 设置 HTTP Header
|
|
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
|
+ headers.set("Authorization", authCode);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 4. 构建 Entity 并发送 POST 请求
|
|
|
|
|
+ HttpEntity<MemberExtensionRequest> entity = new HttpEntity<>(request, headers);
|
|
|
|
|
+ String url = env.getUrl().getExtension();
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
log.info("调用 E-Call 会员备案接口, URL: {}, ExtenalId: {}", url, request.getExtenalId());
|
|
log.info("调用 E-Call 会员备案接口, URL: {}, ExtenalId: {}", url, request.getExtenalId());
|
|
@@ -127,4 +158,36 @@ public class ECallServiceImpl implements IECallService {
|
|
|
return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 2.1 救援工单请求(E-Call 报警)接口实现
|
|
|
|
|
+ * @param request
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public ECallResponse sendWorkOrder(ECallWorkOrderRequest request) {
|
|
|
|
|
+ EcallProperties.EnvConfig env = ecallProperties.getEnv();
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 生成 Authorization: MD5(appkey + appsecret) -> UpperCase
|
|
|
|
|
+ String rawKey = env.getAppKey() + env.getAppSecret();
|
|
|
|
|
+ String authCode = DigestUtils.md5DigestAsHex(rawKey.getBytes()).toUpperCase();
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 设置 HTTP Header
|
|
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
|
|
+ headers.set("Authorization", authCode);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 4. 构建 Entity 并发送 POST 请求
|
|
|
|
|
+ HttpEntity<ECallWorkOrderRequest> entity = new HttpEntity<>(request, headers);
|
|
|
|
|
+ String url = env.getUrl().getExtension();
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ log.info("调用 E-Call 救援工单接口, URL: {}, ExtenalId: {}", url, request.getExtenalId());
|
|
|
|
|
+ return restTemplate.postForObject(url, entity, ECallResponse.class);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("E-Call 接口调用失败", e);
|
|
|
|
|
+ return new ECallResponse("03", "系统异常: " + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|