diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 148490142..a94e0a3d5 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -314,8 +314,11 @@ public enum ErrorCodeEnum { MESSAGE_NOT_HANDLED(1610008,"当前消息无需处理,请确认消息处理类型!",null), MESSAGE_PUBLISH(1610009,"您选择通知任务正在发布中,请稍后重试!",null), - NOT_FLAGSHIP_STORE(1610010,"非直营店,无法跳过缴费阶段!",null), - NOT_FLAGSHIP_STORE_NOT_EXIST(1610011,"当前阶段加盟类型不能变更!",null), + NOT_FLAGSHIP_STORE(16100005,"非直营店,无法跳过缴费阶段!",null), + NOT_FLAGSHIP_STORE_NOT_EXIST(16100006,"当前阶段加盟类型不能变更!",null), + + API_ERROR(1610007,"第三方API请求异常",null), + JOIN_MODE_NOT_ALLOW_OPERATE(1610012,"加盟部人员只能新建加盟店或联营店,请确认!",null), STORE_NOT_FIND(1610013,"门店不存在",null), SHOP_NAME_INVALID(1610014, "门店名称包含禁止关键词",null), diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java index 421f396b0..933d5dfc4 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CommonService.java @@ -133,7 +133,7 @@ public class CommonService { return; } List signNameList = new ArrayList<>(); - signNameList.add("酷店掌"); + signNameList.add("杭州好多店智能科技"); AsyncClient client = null; try { StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder() diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/iot/ThirdIotService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/iot/ThirdIotService.java new file mode 100644 index 000000000..6e42bdbc5 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/iot/ThirdIotService.java @@ -0,0 +1,19 @@ +package com.cool.store.service.iot; + +import java.util.Map; + +/** + *

+ * 第三方Iot + *

+ * + * @author wangff + * @since 2025/10/20 + */ +public interface ThirdIotService { + + /** + * 获取token + */ + Map getToken(); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/iot/impl/ThirdIotServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/iot/impl/ThirdIotServiceImpl.java new file mode 100644 index 000000000..0f1e5335e --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/iot/impl/ThirdIotServiceImpl.java @@ -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; + +/** + *

+ * 第三方Iot 服务类 + *

+ * + * @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 getToken() { + String url = BASE_URL + "/system/third-party/auth?timestamp={0}&appId={1}&sign={2}"; + Long timestamp = System.currentTimeMillis() / 1000; + HashMap 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 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(); + } +} diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ThirdIotController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ThirdIotController.java new file mode 100644 index 000000000..61e08485a --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ThirdIotController.java @@ -0,0 +1,35 @@ +package com.cool.store.controller.webb; + +import com.cool.store.service.iot.ThirdIotService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + *

+ * 第三方Iot 前端控制器 + *

+ * + * @author wangff + * @since 2025/10/20 + */ +@RestController +@RequestMapping("/pc/third/iot") +@Api(tags = "第三方Iot") +@Slf4j +@RequiredArgsConstructor +public class ThirdIotController { + private final ThirdIotService thirdIotService; + + @ApiOperation("获取token") + @PostMapping("/token") + public Map getToken() { + return thirdIotService.getToken(); + } +} diff --git a/coolstore-partner-web/src/main/resources/application-ab.properties b/coolstore-partner-web/src/main/resources/application-ab.properties index 4c2403baf..86b0fa708 100644 --- a/coolstore-partner-web/src/main/resources/application-ab.properties +++ b/coolstore-partner-web/src/main/resources/application-ab.properties @@ -147,6 +147,8 @@ hqt.token.grant_type=client_credentials hqt.token.client.id=WrPffdGpcWkcPsbN hqt.token.client.secret=rYe9Cwug5LwQNIBJAiW0a7weF9CAhYCD +zx.iot.appId=p-ts3PhNyf +zx.iot.appSecret=X4cVmfxM+ #fuwuhao appId wechat.mp.appId=wx4a18ef8bb41aa55c wechat.mp.appSecret=793904b58f4ecdead3bbe4312c5f5c45 diff --git a/coolstore-partner-web/src/main/resources/application-hd.properties b/coolstore-partner-web/src/main/resources/application-hd.properties index 335d6cf18..2eb87200c 100644 --- a/coolstore-partner-web/src/main/resources/application-hd.properties +++ b/coolstore-partner-web/src/main/resources/application-hd.properties @@ -85,3 +85,6 @@ enterprise.dingCorpId=wpayJeDAAAklx_q1jGhyGUd4yEh8vV_g qywx.task.notice.url2=https://store-h5.coolstore.cn/?corpId=%s&appType=%s#/notice?target=%s¬iceType=zx&corpId=%s&appType=%s&eid=%s + +zx.iot.appId=p-ts3PhNyf +zx.iot.appSecret=X4cVmfxM+ \ No newline at end of file diff --git a/coolstore-partner-web/src/main/resources/application-local.properties b/coolstore-partner-web/src/main/resources/application-local.properties index 9487f444e..86cd2a019 100644 --- a/coolstore-partner-web/src/main/resources/application-local.properties +++ b/coolstore-partner-web/src/main/resources/application-local.properties @@ -143,6 +143,9 @@ hqt.token.grant_type=client_credentials hqt.token.client.id=WrPffdGpcWkcPsbN hqt.token.client.secret=rYe9Cwug5LwQNIBJAiW0a7weF9CAhYCD +zx.iot.appId=p-ts3PhNyf +zx.iot.appSecret=X4cVmfxM+ + wallet.url=https://api.dev.wenmatech.com:443 wallet.api.yzt.key=360155690205317 cool.api.rsa.private.key=MIIEpQIBAAKCAQEA0erPAWesjkp9J4htmfCyqKS9npmT9dW3KqWTfb4c7x/QBUtKuokWOO0XikHd4bGUa9kl+twSv/5A3kYz1B9eg6wRuDJoads+G5U7rVQjzdoUtLaf3lNXkuSehl4uHUPQfNa6vcmvzraXPxJjEpYzj9WZh7uJqq2oSgw42H1qdbFCXSaE5BwsOb+2vZXjzh4RO10Sy3Qb1UqGsoZoxVzrtDeEctCjrecFyQr96L2UtYa4NTxSTfu4rgObrwIOMvqqnLsXEzK/rd6kIHYjkZYQCOa48AedWp2YKQ7Ldclj+VMLnXvl42J9exVkbs++8k3P5sI9fdZX4Ey2RBjnSoAo/QIDAQABAoIBACbBGi8I+CE77M+13wAu4RkD8xL7CQc3ic2ojGqIRPi7r5CuphD6mpzvXqtyfhd7DKr9h8bAxwBlnQ28ObjVgsI96/aM7dxvMs/uVPpqwIJyWuTDG5A05EPVC9REQnC6Mp09mnPL7rZz3Mfy6dIGY2YQWfwmWiPl1B45k+wZ+WPZPI0JVnvRzM881kf4aAhEAt08i9VoihylwVAjWIPmLuhf6ZcqI5q8iUsjfO22wZJsudVTCA/dsJdNxv+1RDKeYnSLJL79cZQcodqEhFqTy6vnn2dMsaHH7dpphU27barxUjeL482SR7kFfMqEXn5sltRn/3ep+3sf4Ph2vMtoZeECgYEA6gXzEtT9ZOeAMp4BRGmfNZ0TQLprPPVSwudz/uUBE4j/vyhfXkh9p7hqwyoxN+Z8b65yINvx8yP6hge6ek/MyAwBCZyfIRxZAPZu1eEGoYKl391ubFt2EIVqrN2DtAvzHMr5B/E2VHBq6AJm/rERFX5oKsg6zHS9tPLhgGnWVd0CgYEA5aFWOrtiqZJlp1MHQ4OeWBJatBSynkORdxCW7ic0CKbkYus0NSz1SsvskpbnfEXNB53x98qJxRhSopg/DC4m7XqxjSf9lY3HH4Y/9907olj33yGAnLWC88GivVndt577u/XhYRCk33vOQ3GoibEdjnpMOkWmOfwYG/FsRWWQvaECgYEA1N2siEisZIgel+wZAv2AD+hchtgKi1wqd5bIb+Yl4HsRBfPXK4+MnG6mzfcm5c4FCiEHNtRZc+waCKgm+vJzNtOUbgXEyP1cCAAgOPOCcI7CCqsDshRPhB+XNL4Y+kCUVnBZrNu/q3bGB1uIC8tL2t0sKx4OPcNCe8EhVQjwKRECgYEA4uothdhKRPtwDIsVsHfN74Yjr7SMVay7gIcaPrjqyGnzYnS+oJWOx50AaFNK6Rko5JAF3jF9NxE0B4yfMPAic6Y88hpEkpcJ4HMPn2Y1WdbFCu/WYgVUJICCys6VNLCcXj85umtyIY38Y9VbEMW/SV49GZBeFQqy4FoP/fvBrkECgYEAnfjTDYwgdmJdsUqyNzAocwcJXG2rVtYc7Txrl0TltcwuJmgoSywdzyOP2R9+NZsfoxWDzG0/yr15ApMvUcnnTwHN/8bGQ9SLatFLKqS4EtdwDKKS1JvNbs7V1myQGpt7jbShZOI0e6Fs4xP8ujxsLeGgiq9mZrS9UdRj5XKDoVM= diff --git a/coolstore-partner-web/src/main/resources/application-online.properties b/coolstore-partner-web/src/main/resources/application-online.properties index 80f7eb457..c08956131 100644 --- a/coolstore-partner-web/src/main/resources/application-online.properties +++ b/coolstore-partner-web/src/main/resources/application-online.properties @@ -140,6 +140,9 @@ hqt.token.grant_type=client_credentials hqt.token.client.id=WrPffdGpcWkcPsbN hqt.token.client.secret=rYe9Cwug5LwQNIBJAiW0a7weF9CAhYCD +zx.iot.appId=p-ts3PhNyf +zx.iot.appSecret=X4cVmfxM+ + #fuwuhao appId wechat.mp.appId=wx4a18ef8bb41aa55c wechat.mp.appSecret=793904b58f4ecdead3bbe4312c5f5c45 diff --git a/coolstore-partner-web/src/main/resources/application-test.properties b/coolstore-partner-web/src/main/resources/application-test.properties index e4ab053cd..11ba13f83 100644 --- a/coolstore-partner-web/src/main/resources/application-test.properties +++ b/coolstore-partner-web/src/main/resources/application-test.properties @@ -145,6 +145,8 @@ hqt.token.grant_type=client_credentials hqt.token.client.id=WrPffdGpcWkcPsbN hqt.token.client.secret=rYe9Cwug5LwQNIBJAiW0a7weF9CAhYCD +zx.iot.appId=p-ts3PhNyf +zx.iot.appSecret=X4cVmfxM+ #fuwuhao appId wechat.mp.appId=wx4a18ef8bb41aa55c @@ -152,9 +154,6 @@ wechat.mp.appSecret=793904b58f4ecdead3bbe4312c5f5c45 #xiaochengxu appid wechat.miniapp.appId=wxd77a2761c1911ee1 -zx.iot.appId=p-ts3PhNyf -zx.iot.appSecret=X4cVmfxM+ - huoMa.token.url = https://www.huoMayunping.com/api/SAASLogin/merchant huoMa.id.url = https://www.huomayunping.com/api/reportCenter/executeSql