Merge #16 into master from cc_20250916_new

大屏Iot获取token接口

* cc_20250916_new: (6 commits squashed)

  - feat:第三方Iot接口对接

  - Merge branch 'refs/heads/master' into cc_20250916_new
    
    # Conflicts:
    #	coolstore-partner-web/src/main/resources/application-local.properties

  - fix

  - fix:修改http请求工具

  - Merge branch 'refs/heads/master' into cc_20250916_new
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-web/src/main/resources/application-ab.properties
    #	coolstore-partner-web/src/main/resources/application-local.properties
    #	coolstore-partner-web/src/main/resources/application-online.properties
    #	coolstore-partner-web/src/main/resources/application-test.properties

  - fix:短信签名修改

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Reviewed-by: 苏竹红 <570057076@qq.com>
Merged-by: 苏竹红 <570057076@qq.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/16
This commit is contained in:
王非凡
2025-12-19 09:07:35 +00:00
committed by 苏竹红
parent bd2d97130a
commit 32ae1b7315
10 changed files with 131 additions and 6 deletions

View File

@@ -133,7 +133,7 @@ public class CommonService {
return;
}
List<String> signNameList = new ArrayList<>();
signNameList.add("酷店掌");
signNameList.add("杭州好多店智能科技");
AsyncClient client = null;
try {
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()

View File

@@ -0,0 +1,19 @@
package com.cool.store.service.iot;
import java.util.Map;
/**
* <p>
* 第三方Iot
* </p>
*
* @author wangff
* @since 2025/10/20
*/
public interface ThirdIotService {
/**
* 获取token
*/
Map<String, Object> getToken();
}

View File

@@ -0,0 +1,58 @@
package com.cool.store.service.iot.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.service.iot.ThirdIotService;
import com.cool.store.utils.Md5Utils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.text.MessageFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 第三方Iot 服务类
* </p>
*
* @author wangff
* @since 2025/10/20
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class ThirdIotServiceImpl implements ThirdIotService {
private final HttpRestTemplateService restTemplateService;
@Value("${zx.iot.appId}")
private String appId;
@Value("${zx.iot.appSecret}")
private String appSecret;
public static final String BASE_URL = "https://zhengxin.ks.osvlabs.com:31310/api";
@Override
public Map<String, Object> getToken() {
String url = BASE_URL + "/system/third-party/auth?timestamp={0}&appId={1}&sign={2}";
Long timestamp = System.currentTimeMillis() / 1000;
HashMap<String, Object> params = new HashMap<>();
params.put("appId", appId);
params.put("timestamp", timestamp);
String sign = sign(params, appSecret);
log.info("send request");
Map result = restTemplateService.postForObject(MessageFormat.format(url, String.valueOf(timestamp), appId, sign), null, Map.class);
log.info("response:{}", JSONObject.toJSONString(result));
return result;
}
private static String sign(Map<String, Object> param, String appSecret) {
String paramStr = param.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.map(entry -> entry.getKey() + "=" + entry.getValue())
.collect(Collectors.joining("&"));
return Md5Utils.md5(paramStr + appSecret).toUpperCase();
}
}