From b03e37ac2c5fe95d9d52ecd5bc01b22f9b52e761 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 28 Feb 2025 20:50:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E6=AD=A3=E5=85=83=E8=B7=A8=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E3=80=81=E5=A4=96=E6=9D=A5=E4=BA=BA=E5=91=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ZyForeignGetRegionIdByTokenDto.java | 6 + .../ZyForeignSyncNativeCardTradeInfoDto.java | 6 + .../dto/zy/mer/ZyMerGetTokenDto.java | 6 + .../dto/zy/mer/ZyMerSyncAccClassInfoDto.java | 6 + .../dto/zy/mer/ZyMerSyncAccountInfoDto.java | 6 + .../zy/self/ZySelfCheckSystemStatusDto.java | 6 + .../dto/zy/self/ZySelfCorrectDto.java | 6 + .../dto/zy/self/ZySelfGetTokenDto.java | 6 + .../thirdparty/dto/zy/self/ZySelfPayDto.java | 6 + .../zy/stride/ZyStrideAuthenticationDto.java | 6 + .../dto/zy/stride/ZyStrideConsumptionDto.java | 6 + .../dto/zy/stride/ZyStrideCorrectDto.java | 6 + .../service/impl/ZyForeignService.java | 16 +++ .../thirdparty/service/impl/ZyMerService.java | 2 +- .../service/impl/ZyStrideService.java | 23 ++++ .../service/impl/zy/ZyForeignServiceImpl.java | 76 ++++++++++++ .../service/impl/zy/ZyMerServiceImpl.java | 19 +-- .../service/impl/zy/ZyStrideServiceImpl.java | 108 ++++++++++++++++++ .../thirdparty/utils/zy/api/ZyApi.java | 16 +-- .../thirdparty/utils/zy/api/ZyApiTool.java | 1 - .../java/com/bsd/pjcloud/admin/ZyTest.java | 85 ++++++++++++-- 21 files changed, 387 insertions(+), 31 deletions(-) diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignGetRegionIdByTokenDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignGetRegionIdByTokenDto.java index 035d77329..c553d1a61 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignGetRegionIdByTokenDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignGetRegionIdByTokenDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.foreign; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 获取区域编码 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyForeignGetRegionIdByTokenDto { } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignSyncNativeCardTradeInfoDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignSyncNativeCardTradeInfoDto.java index bb377f4db..28ffaf720 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignSyncNativeCardTradeInfoDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/foreign/ZyForeignSyncNativeCardTradeInfoDto.java @@ -1,12 +1,18 @@ package com.bsd.pjcloud.thirdparty.dto.zy.foreign; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.math.BigDecimal; /** * 本地一卡通交易数据同步 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyForeignSyncNativeCardTradeInfoDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerGetTokenDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerGetTokenDto.java index 1da71a2ec..732a2c839 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerGetTokenDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerGetTokenDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.mer; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 获取token */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyMerGetTokenDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccClassInfoDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccClassInfoDto.java index 7709a21ce..ae16a119d 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccClassInfoDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccClassInfoDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.mer; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 身份信息同步 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyMerSyncAccClassInfoDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccountInfoDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccountInfoDto.java index 073c59a16..2b6fd506a 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccountInfoDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/mer/ZyMerSyncAccountInfoDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.mer; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 账户信息同步 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyMerSyncAccountInfoDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCheckSystemStatusDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCheckSystemStatusDto.java index 31695e104..be086f75e 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCheckSystemStatusDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCheckSystemStatusDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.self; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 第三方url健康探测 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZySelfCheckSystemStatusDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCorrectDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCorrectDto.java index 0e0d491a2..0875e78e7 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCorrectDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfCorrectDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.self; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 第三方一卡通系统提供冲正接口 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZySelfCorrectDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfGetTokenDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfGetTokenDto.java index f94193ba5..64fa4c3e4 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfGetTokenDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfGetTokenDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.self; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 第三方提供获取token */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZySelfGetTokenDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfPayDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfPayDto.java index fb673523d..338cc1fb9 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfPayDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/self/ZySelfPayDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.self; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 第三方一卡通系统提供扣费接口 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZySelfPayDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideAuthenticationDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideAuthenticationDto.java index 810a8d15c..e1c15f6a8 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideAuthenticationDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideAuthenticationDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.stride; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 统一身份验证功能 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyStrideAuthenticationDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideConsumptionDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideConsumptionDto.java index 66958b231..66721c08c 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideConsumptionDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideConsumptionDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.stride; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 智慧园区通刷平台提供消费接口 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyStrideConsumptionDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideCorrectDto.java b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideCorrectDto.java index 15ad858b4..39de2e402 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideCorrectDto.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-api/src/main/java/com/bsd/pjcloud/thirdparty/dto/zy/stride/ZyStrideCorrectDto.java @@ -1,10 +1,16 @@ package com.bsd.pjcloud.thirdparty.dto.zy.stride; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 智慧园区通刷平台提供冲正接口 */ +@Builder +@AllArgsConstructor +@NoArgsConstructor @Data public class ZyStrideCorrectDto { diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyForeignService.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyForeignService.java index 1cc265553..88644de6a 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyForeignService.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyForeignService.java @@ -1,4 +1,20 @@ package com.bsd.pjcloud.thirdparty.service.impl; +import com.bsd.pjcloud.thirdparty.dto.zy.foreign.ZyForeignGetRegionIdByTokenDto; +import com.bsd.pjcloud.thirdparty.dto.zy.foreign.ZyForeignSyncNativeCardTradeInfoDto; +import com.bsd.pjcloud.thirdparty.vo.zy.foreign.ZyForeignGetRegionIdByTokenVo; +import com.bsd.pjcloud.thirdparty.vo.zy.foreign.ZyForeignSyncNativeCardTradeInfoVo; + public interface ZyForeignService { + + /** + * 本地一卡通交易数据同步 + */ + ZyForeignSyncNativeCardTradeInfoVo syncNativeCardTradeInfoApi(ZyForeignSyncNativeCardTradeInfoDto dto); + + /** + * 获取区域编码 + */ + ZyForeignGetRegionIdByTokenVo getRegionIdByToken(ZyForeignGetRegionIdByTokenDto dto); + } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyMerService.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyMerService.java index afe80813f..44f2111f1 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyMerService.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyMerService.java @@ -26,6 +26,6 @@ public interface ZyMerService { /** * 身份信息同步 */ - ZyMerSyncAccClassInfoVo syncAccClassInfo(ZyMerSyncAccClassInfoDto dto); + ZyMerSyncAccClassInfoVo syncAccClassInfoApi(ZyMerSyncAccClassInfoDto dto); } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyStrideService.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyStrideService.java index be6ca45b4..c104f9f66 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyStrideService.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/ZyStrideService.java @@ -1,4 +1,27 @@ package com.bsd.pjcloud.thirdparty.service.impl; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideAuthenticationDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideConsumptionDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideCorrectDto; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideAuthenticationVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideConsumptionVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideCorrectVo; + public interface ZyStrideService { + + /** + * 统一身份验证功能 + */ + ZyStrideAuthenticationVo authenticationApi(ZyStrideAuthenticationDto dto); + + /** + * 智慧园区通刷平台提供消费接口 + */ + ZyStrideConsumptionVo consumptionApi(ZyStrideConsumptionDto dto); + + /** + * 智慧园区通刷平台提供冲正接口 + */ + ZyStrideCorrectVo correctApi(ZyStrideCorrectDto dto); + } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyForeignServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyForeignServiceImpl.java index fafc7401c..70eb8eef5 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyForeignServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyForeignServiceImpl.java @@ -1,15 +1,91 @@ package com.bsd.pjcloud.thirdparty.service.impl.zy; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; +import com.bsd.pjcloud.thirdparty.config.ZyConfig; +import com.bsd.pjcloud.thirdparty.dto.zy.foreign.ZyForeignGetRegionIdByTokenDto; +import com.bsd.pjcloud.thirdparty.dto.zy.foreign.ZyForeignSyncNativeCardTradeInfoDto; import com.bsd.pjcloud.thirdparty.service.impl.ZyForeignService; +import com.bsd.pjcloud.thirdparty.utils.zy.api.ZyApi; +import com.bsd.pjcloud.thirdparty.utils.zy.api.ZyApiTool; +import com.bsd.pjcloud.thirdparty.vo.zy.foreign.ZyForeignGetRegionIdByTokenVo; +import com.bsd.pjcloud.thirdparty.vo.zy.foreign.ZyForeignSyncNativeCardTradeInfoVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.HashMap; +import java.util.Map; + @Service @Validated @Slf4j @RequiredArgsConstructor public class ZyForeignServiceImpl implements ZyForeignService { + private final String TAG = "正元跨部门api"; + + private final ZyConfig zyConfig; + + private final ZyApiTool zyApiTool; + + /** + * 本地一卡通交易数据同步 + */ + @Override + public ZyForeignSyncNativeCardTradeInfoVo syncNativeCardTradeInfoApi(ZyForeignSyncNativeCardTradeInfoDto dto) { + String url = zyConfig.getBaseUrl() + ZyApi.Foreign.SYNC_NATIVE_CARD_TRADE_INFO; + try { + url = String.format(url, zyApiTool.getToken()); + Map encryptionBody = new HashMap<>(); + encryptionBody.put("regionCode", dto); + String body = zyApiTool.getEncryptionDto(encryptionBody); + String res = HttpRequest.post(url) + .body(body) + .execute() + .body(); + if (ObjectUtil.isEmpty(res)) { + throw new RuntimeException("response is empty"); + } + ZyForeignSyncNativeCardTradeInfoVo vo = JSONUtil.toBean(res, ZyForeignSyncNativeCardTradeInfoVo.class); + if (!vo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, url, body)); + } + return vo; + } catch (Exception e) { + log.error("|{}||syncNativeCardTradeInfoApi|意外的错误error|{}|", TAG, e.getMessage()); + } + return null; + } + + /** + * 获取区域编码 + */ + @Override + public ZyForeignGetRegionIdByTokenVo getRegionIdByToken(ZyForeignGetRegionIdByTokenDto dto) { + String url = zyConfig.getBaseUrl() + ZyApi.Foreign.GET_REGION_ID_BY_TOKEN; + try { + url = String.format(url, zyApiTool.getToken()); + Map encryptionBody = new HashMap<>(); + encryptionBody.put("accClasses", dto); + String body = zyApiTool.getEncryptionDto(encryptionBody); + String res = HttpRequest.post(url) + .body(body) + .execute() + .body(); + if (ObjectUtil.isEmpty(res)) { + throw new RuntimeException("response is empty"); + } + ZyForeignGetRegionIdByTokenVo vo = JSONUtil.toBean(res, ZyForeignGetRegionIdByTokenVo.class); + if (!vo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, url, body)); + } + return vo; + } catch (Exception e) { + log.error("|{}||getRegionIdByToken|意外的错误error|{}|", TAG, e.getMessage()); + } + return null; + } } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyMerServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyMerServiceImpl.java index 645ff09d0..eb40c5867 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyMerServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyMerServiceImpl.java @@ -1,10 +1,8 @@ package com.bsd.pjcloud.thirdparty.service.impl.zy; -import cn.hutool.core.lang.Pair; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONUtil; -import com.bsd.pjcloud.common.core.constant.CacheConstants; import com.bsd.pjcloud.thirdparty.config.ZyConfig; import com.bsd.pjcloud.thirdparty.dto.zy.mer.ZyMerSyncAccClassInfoDto; import com.bsd.pjcloud.thirdparty.dto.zy.mer.ZyMerSyncAccountInfoDto; @@ -16,24 +14,19 @@ import com.bsd.pjcloud.thirdparty.utils.zy.api.ZyApiTool; import com.bsd.pjcloud.thirdparty.vo.zy.mer.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import java.nio.charset.StandardCharsets; -import java.util.Base64; import java.util.HashMap; import java.util.Map; -import static org.apache.commons.codec.digest.DigestUtils.md5Hex; - @Service @Validated @Slf4j @RequiredArgsConstructor public class ZyMerServiceImpl implements ZyMerService { - private final String TAG = "ZyMerServiceImpl"; + private final String TAG = "正元商户api"; private final ZyConfig zyConfig; @@ -63,7 +56,7 @@ public class ZyMerServiceImpl implements ZyMerService { } return vo; } catch (Exception e) { - log.error("|{}||syncDealerInfo|意外的错误error|{}|", TAG, e.getMessage()); + log.error("|{}||syncDealerInfoApi|意外的错误error|{}|", TAG, e.getMessage()); } return null; } @@ -92,7 +85,7 @@ public class ZyMerServiceImpl implements ZyMerService { } return vo; } catch (Exception e) { - log.error("|{}||syncEnterpriseInfo|意外的错误error|{}|", TAG, e.getMessage()); + log.error("|{}||syncEnterpriseInfoApi|意外的错误error|{}|", TAG, e.getMessage()); } return null; } @@ -121,7 +114,7 @@ public class ZyMerServiceImpl implements ZyMerService { } return vo; } catch (Exception e) { - log.error("|{}||syncAccountInfo|意外的错误error|{}|", TAG, e.getMessage()); + log.error("|{}||syncAccountInfoApi|意外的错误error|{}|", TAG, e.getMessage()); } return null; } @@ -130,7 +123,7 @@ public class ZyMerServiceImpl implements ZyMerService { * 身份信息同步 */ @Override - public ZyMerSyncAccClassInfoVo syncAccClassInfo(ZyMerSyncAccClassInfoDto dto) { + public ZyMerSyncAccClassInfoVo syncAccClassInfoApi(ZyMerSyncAccClassInfoDto dto) { String url = zyConfig.getBaseUrl() + ZyApi.Mer.SYNC_ACC_CLASS_INFO; try { url = String.format(url, zyApiTool.getToken()); @@ -150,7 +143,7 @@ public class ZyMerServiceImpl implements ZyMerService { } return vo; } catch (Exception e) { - log.error("|{}||syncAccClassInfo|意外的错误error|{}|", TAG, e.getMessage()); + log.error("|{}||syncAccClassInfoApi|意外的错误error|{}|", TAG, e.getMessage()); } return null; } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyStrideServiceImpl.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyStrideServiceImpl.java index 7b0280c95..ad8c5c936 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyStrideServiceImpl.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/service/impl/zy/ZyStrideServiceImpl.java @@ -1,15 +1,123 @@ package com.bsd.pjcloud.thirdparty.service.impl.zy; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.json.JSONUtil; +import com.bsd.pjcloud.thirdparty.config.ZyConfig; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideAuthenticationDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideConsumptionDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideCorrectDto; import com.bsd.pjcloud.thirdparty.service.impl.ZyStrideService; +import com.bsd.pjcloud.thirdparty.utils.zy.api.ZyApi; +import com.bsd.pjcloud.thirdparty.utils.zy.api.ZyApiTool; +import com.bsd.pjcloud.thirdparty.vo.zy.mer.ZyMerSyncDealerInfoVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideAuthenticationVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideConsumptionVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideCorrectVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.HashMap; +import java.util.Map; + @Service @Validated @Slf4j @RequiredArgsConstructor public class ZyStrideServiceImpl implements ZyStrideService { + private final String TAG = "正元外来人员api"; + + private final ZyConfig zyConfig; + + private final ZyApiTool zyApiTool; + + /** + * 统一身份验证功能 + */ + @Override + public ZyStrideAuthenticationVo authenticationApi(ZyStrideAuthenticationDto dto) { + String url = zyConfig.getBaseUrl() + ZyApi.Stride.AUTHENTICATION; + try { + url = String.format(url, zyApiTool.getToken()); + Map encryptionBody = new HashMap<>(); + encryptionBody.put("dealers", dto); + String body = zyApiTool.getEncryptionDto(encryptionBody); + String res = HttpRequest.post(url) + .body(body) + .execute() + .body(); + if (ObjectUtil.isEmpty(res)) { + throw new RuntimeException("response is empty"); + } + ZyStrideAuthenticationVo vo = JSONUtil.toBean(res, ZyStrideAuthenticationVo.class); + if (!vo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, url, body)); + } + return vo; + } catch (Exception e) { + log.error("|{}||authenticationApi|意外的错误error|{}|", TAG, e.getMessage()); + } + return null; + } + + /** + * 智慧园区通刷平台提供消费接口 + */ + @Override + public ZyStrideConsumptionVo consumptionApi(ZyStrideConsumptionDto dto) { + String url = zyConfig.getBaseUrl() + ZyApi.Stride.CONSUMPTION; + try { + url = String.format(url, zyApiTool.getToken()); + Map encryptionBody = new HashMap<>(); + encryptionBody.put("dealers", dto); + String body = zyApiTool.getEncryptionDto(encryptionBody); + String res = HttpRequest.post(url) + .body(body) + .execute() + .body(); + if (ObjectUtil.isEmpty(res)) { + throw new RuntimeException("response is empty"); + } + ZyStrideConsumptionVo vo = JSONUtil.toBean(res, ZyStrideConsumptionVo.class); + if (!vo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, url, body)); + } + return vo; + } catch (Exception e) { + log.error("|{}||consumptionApi|意外的错误error|{}|", TAG, e.getMessage()); + } + return null; + } + + /** + * 智慧园区通刷平台提供冲正接口 + */ + @Override + public ZyStrideCorrectVo correctApi(ZyStrideCorrectDto dto) { + String url = zyConfig.getBaseUrl() + ZyApi.Stride.CORRECT; + try { + url = String.format(url, zyApiTool.getToken()); + Map encryptionBody = new HashMap<>(); + encryptionBody.put("dealers", dto); + String body = zyApiTool.getEncryptionDto(encryptionBody); + String res = HttpRequest.post(url) + .body(body) + .execute() + .body(); + if (ObjectUtil.isEmpty(res)) { + throw new RuntimeException("response is empty"); + } + ZyStrideCorrectVo vo = JSONUtil.toBean(res, ZyStrideCorrectVo.class); + if (!vo.isSuccess()) { + throw new RuntimeException(String.format("请求错误res|%s|url|%s|body|%s|", res, url, body)); + } + return vo; + } catch (Exception e) { + log.error("|{}||correctApi|意外的错误error|{}|", TAG, e.getMessage()); + } + return null; + } } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApi.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApi.java index c37f9e508..5457b156f 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApi.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApi.java @@ -24,19 +24,19 @@ public class ZyApi { // 统一身份验证功能 public class Stride { // 统一身份验证功能 - public static final String AUTHENTICATION = "/authentication?access_token={access_token}"; + public static final String AUTHENTICATION = "/api/authentication?access_token=%s"; // 智慧园区通刷平台提供消费接口 - public static final String CONSUMPTION = "/consumption?access_token={access_token}"; + public static final String CONSUMPTION = "/api/consumption?access_token=%s"; // 智慧园区通刷平台提供冲正接口 - public static final String CORRECT = "/correct?access_token={access_token}"; + public static final String CORRECT = "/api/correct?access_token=%s"; } // 本地一卡通交易数据同步 public static class Foreign { // 本地一卡通交易数据同步 - public static final String SYNC_NATIVE_CARD_TRADE_INFO = "/getToken/syncNativeCardTradeInfo?access_token={access_token}"; + public static final String SYNC_NATIVE_CARD_TRADE_INFO = "/api/getToken/syncNativeCardTradeInfo?access_token=%s"; // 获取区域编码 - public static final String GET_REGION_ID_BY_TOKEN = "/getRegionIdByToken?access_token={access_token}"; + public static final String GET_REGION_ID_BY_TOKEN = "/api/getRegionIdByToken?access_token=%s"; } // 第三方需提供的接口 @@ -44,11 +44,11 @@ public class ZyApi { // 第三方url健康探测 public static final String CHECK_SYSTEM_STATUS = "/checkSystemStatus"; // 第三方一卡通系统提供冲正接口 - public static final String CORRECT = "/correct?access_token={access_token}"; + public static final String CORRECT = "/correct?access_token=%s"; // 第三方一卡通系统提供扣费接口 - public static final String PAY = "/pay?access_token={access_token}"; + public static final String PAY = "/pay?access_token=%s"; // 第三方提供获取token - public static final String GET_TOKEN = "/getToken?appId={appid}&appSecret={appsecret}_1730169197889"; + public static final String GET_TOKEN = "/getToken?appId=%s&appSecret=%s"; } } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java index 9daf770e2..8d2cdd8d1 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/utils/zy/api/ZyApiTool.java @@ -10,7 +10,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.nio.charset.StandardCharsets; diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java index da980b754..6197eb9ee 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/test/java/com/bsd/pjcloud/admin/ZyTest.java @@ -2,13 +2,25 @@ package com.bsd.pjcloud.admin; import cn.hutool.json.JSONUtil; import com.bsd.pjcloud.thirdparty.ThirdPartyApp; +import com.bsd.pjcloud.thirdparty.dto.zy.foreign.ZyForeignGetRegionIdByTokenDto; +import com.bsd.pjcloud.thirdparty.dto.zy.foreign.ZyForeignSyncNativeCardTradeInfoDto; import com.bsd.pjcloud.thirdparty.dto.zy.mer.ZyMerSyncAccClassInfoDto; import com.bsd.pjcloud.thirdparty.dto.zy.mer.ZyMerSyncAccountInfoDto; import com.bsd.pjcloud.thirdparty.dto.zy.mer.ZyMerSyncDealerInfoDto; import com.bsd.pjcloud.thirdparty.dto.zy.mer.ZyMerSyncEnterpriseInfoDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideAuthenticationDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideConsumptionDto; +import com.bsd.pjcloud.thirdparty.dto.zy.stride.ZyStrideCorrectDto; +import com.bsd.pjcloud.thirdparty.service.impl.ZyForeignService; import com.bsd.pjcloud.thirdparty.service.impl.ZyMerService; +import com.bsd.pjcloud.thirdparty.service.impl.ZyStrideService; import com.bsd.pjcloud.thirdparty.utils.zy.api.ZyApiTool; +import com.bsd.pjcloud.thirdparty.vo.zy.foreign.ZyForeignGetRegionIdByTokenVo; +import com.bsd.pjcloud.thirdparty.vo.zy.foreign.ZyForeignSyncNativeCardTradeInfoVo; import com.bsd.pjcloud.thirdparty.vo.zy.mer.*; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideAuthenticationVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideConsumptionVo; +import com.bsd.pjcloud.thirdparty.vo.zy.stride.ZyStrideCorrectVo; import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -22,10 +34,14 @@ import java.util.Map; public class ZyTest { @Resource - private ZyMerService zyMerService; + private ZyApiTool zyApiTool; @Resource - private ZyApiTool zyApiTool; + private ZyMerService zyMerService; + @Resource + private ZyForeignService zyForeignService; + @Resource + private ZyStrideService zyStrideService; /************************** start mer start **************************/ @@ -59,7 +75,7 @@ public class ZyTest { * 记账单位同步 */ @Test - public void merSyncEnterpriseInfo(){ + public void merSyncEnterpriseInfo() { ZyMerSyncEnterpriseInfoDto dto = new ZyMerSyncEnterpriseInfoDto(); ZyMerSyncEnterpriseInfoVo vo = zyMerService.syncEnterpriseInfoApi(dto); System.out.println(vo); @@ -69,7 +85,7 @@ public class ZyTest { * 账户信息同步 */ @Test - public void merSyncAccountInfoApi(){ + public void merSyncAccountInfoApi() { ZyMerSyncAccountInfoDto dto = new ZyMerSyncAccountInfoDto(); ZyMerSyncAccountInfoVo vo = zyMerService.syncAccountInfoApi(dto); System.out.println(vo); @@ -79,21 +95,74 @@ public class ZyTest { * 身份信息同步 */ @Test - public void merSyncAccClassInfo(){ + public void merSyncAccClassInfo() { ZyMerSyncAccClassInfoDto dto = new ZyMerSyncAccClassInfoDto(); - ZyMerSyncAccClassInfoVo vo = zyMerService.syncAccClassInfo(dto); + ZyMerSyncAccClassInfoVo vo = zyMerService.syncAccClassInfoApi(dto); System.out.println(vo); } /************************** end mer end **************************/ - /************************** start mer start **************************/ + /************************** start foreign start **************************/ + + /** + * 身份信息同步 + */ + @Test + public void foreignSyncAccClassInfo() { + ZyForeignSyncNativeCardTradeInfoDto dto = new ZyForeignSyncNativeCardTradeInfoDto(); + ZyForeignSyncNativeCardTradeInfoVo vo = zyForeignService.syncNativeCardTradeInfoApi(dto); + System.out.println(vo); + } + + /** + * 身份信息同步 + */ + @Test + public void foreignGetRegionIdByToken() { + ZyForeignGetRegionIdByTokenDto dto = new ZyForeignGetRegionIdByTokenDto(); + ZyForeignGetRegionIdByTokenVo vo = zyForeignService.getRegionIdByToken(dto); + System.out.println(vo); + } + + /************************** end foreign end **************************/ + /************************** start stride start **************************/ - /************************** end mer end **************************/ + /** + * 统一身份验证功能 + */ + @Test + public void strideAuthenticationApi() { + ZyStrideAuthenticationDto dto = new ZyStrideAuthenticationDto(); + ZyStrideAuthenticationVo vo = zyStrideService.authenticationApi(dto); + System.out.println(vo); + } + /** + * 智慧园区通刷平台提供消费接口 + */ + @Test + public void strideConsumptionApi() { + ZyStrideConsumptionDto dto = new ZyStrideConsumptionDto(); + ZyStrideConsumptionVo vo = zyStrideService.consumptionApi(dto); + System.out.println(vo); + } + + /** + * 智慧园区通刷平台提供冲正接口 + */ + @Test + public void strideCorrectApi() { + ZyStrideCorrectDto dto = new ZyStrideCorrectDto(); + ZyStrideCorrectVo vo = zyStrideService.correctApi(dto); + System.out.println(vo); + } + + + /************************** end stride end **************************/ @Test public void encryption() { From 37d1b006741e9e634630a31073193d2e78e40c9f Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 28 Feb 2025 20:56:25 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E6=AD=A3=E5=85=83=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bsd/pjcloud/thirdparty/config/ZyConfig.java | 6 ++++++ .../src/main/resources/application.yml | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/config/ZyConfig.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/config/ZyConfig.java index f7e1a9805..06c702cba 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/config/ZyConfig.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/config/ZyConfig.java @@ -16,4 +16,10 @@ public class ZyConfig { private String appSecret; + private String selfBaseUrl; + + private String selfAppId; + + private String selfAppSecret; + } diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml index 041447b11..d47c081c7 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/resources/application.yml @@ -46,4 +46,7 @@ oauth2: zy: base-url: http://60.191.37.212:18079 app-id: 03D9608D1735D424F984733BA71321C6 - app-secret: 65497A86DB1401B252FEA6DE0A080766 \ No newline at end of file + app-secret: 65497A86DB1401B252FEA6DE0A080766 + self-base-url: http://60.191.37.212:18079 + self-app-id: 03D9608D1735D424F984733BA71321C6 + self-app-secret: 03D9608D1735D424F984733BA71321C6 \ No newline at end of file