mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-07-04 22:18:02 +08:00
update
This commit is contained in:
@@ -252,6 +252,22 @@ public class SpringBootTestController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private NotificationService notificationService;
|
private NotificationService notificationService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getSnowflakeIdTest() {
|
||||||
|
for (int i = 0; i < 100; i++) {
|
||||||
|
String snowflakeId = SnowflakeIdWorker.getSnowflakeId();
|
||||||
|
System.out.println("第" + i + "个snowflakeId:" + snowflakeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getOrderCodeTest() {
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
String orderCode = IdUtils.getOrderCode();
|
||||||
|
System.out.println("第" + i + 1 + "个orderCode:" + orderCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void notificationStationInfoTest() {
|
public void notificationStationInfoTest() {
|
||||||
String stationId = "19";
|
String stationId = "19";
|
||||||
|
|||||||
@@ -108,6 +108,16 @@
|
|||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alipay.sdk</groupId>
|
||||||
|
<artifactId>alipay-sdk-java</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alipay.sdk</groupId>
|
||||||
|
<artifactId>alipay-easysdk</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -1,29 +1,42 @@
|
|||||||
package com.jsowell.alipay;
|
package com.jsowell.alipay;
|
||||||
|
|
||||||
|
import com.alipay.api.AlipayApiException;
|
||||||
|
import com.alipay.api.AlipayClient;
|
||||||
|
import com.alipay.api.AlipayConfig;
|
||||||
|
import com.alipay.api.DefaultAlipayClient;
|
||||||
|
import com.alipay.api.request.AlipaySystemOauthTokenRequest;
|
||||||
|
import com.alipay.api.response.AlipaySystemOauthTokenResponse;
|
||||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
import com.jsowell.common.exception.BusinessException;
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
|
import com.jsowell.wxpay.service.WxAppletRemoteService;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付宝小程序service
|
* 支付宝小程序service
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class AliAppletRemoteService {
|
public class AliAppletRemoteService {
|
||||||
|
|
||||||
// private static AlipayConfig getAlipayConfig() {
|
private Logger log = LoggerFactory.getLogger(AliAppletRemoteService.class);
|
||||||
// String privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->";
|
|
||||||
// String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->";
|
private static AlipayConfig getAlipayConfig() {
|
||||||
// AlipayConfig alipayConfig = new AlipayConfig();
|
String privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->";
|
||||||
// alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
|
String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->";
|
||||||
// alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
|
AlipayConfig alipayConfig = new AlipayConfig();
|
||||||
// alipayConfig.setPrivateKey(privateKey);
|
alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
|
||||||
// alipayConfig.setFormat("json");
|
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
|
||||||
// alipayConfig.setAlipayPublicKey(alipayPublicKey);
|
alipayConfig.setPrivateKey(privateKey);
|
||||||
// alipayConfig.setCharset("UTF-8");
|
alipayConfig.setFormat("json");
|
||||||
// alipayConfig.setSignType("RSA2");
|
alipayConfig.setAlipayPublicKey(alipayPublicKey);
|
||||||
// return alipayConfig;
|
alipayConfig.setCharset("UTF-8");
|
||||||
// }
|
alipayConfig.setSignType("RSA2");
|
||||||
|
return alipayConfig;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务端获取 access_token、user_id
|
* 服务端获取 access_token、user_id
|
||||||
@@ -37,4 +50,7 @@ public class AliAppletRemoteService {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.jsowell.thirdparty.service.impl;
|
|||||||
|
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.DateUtils;
|
import com.jsowell.common.util.DateUtils;
|
||||||
import com.jsowell.pile.mapper.ThirdPartyStationRelationMapper;
|
import com.jsowell.pile.mapper.ThirdPartyStationRelationMapper;
|
||||||
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
|
import com.jsowell.pile.vo.ThirdPartySecretInfoVO;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import com.google.common.collect.Lists;
|
|||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
|
||||||
|
import com.jsowell.common.enums.lianlian.StationPaymentEnum;
|
||||||
import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum;
|
import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum;
|
||||||
import com.jsowell.common.enums.thirdparty.ThirdPartyOperatorIdEnum;
|
import com.jsowell.common.enums.thirdparty.ThirdPartyOperatorIdEnum;
|
||||||
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum;
|
||||||
@@ -19,10 +20,7 @@ import com.jsowell.common.util.DateUtils;
|
|||||||
import com.jsowell.common.util.JWTUtils;
|
import com.jsowell.common.util.JWTUtils;
|
||||||
import com.jsowell.common.util.PageUtils;
|
import com.jsowell.common.util.PageUtils;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.OrderBasicInfo;
|
import com.jsowell.pile.domain.*;
|
||||||
import com.jsowell.pile.domain.OrderDetail;
|
|
||||||
import com.jsowell.pile.domain.ThirdPartyPlatformConfig;
|
|
||||||
import com.jsowell.pile.domain.ThirdPartyStationRelation;
|
|
||||||
import com.jsowell.pile.dto.PushRealTimeInfoDTO;
|
import com.jsowell.pile.dto.PushRealTimeInfoDTO;
|
||||||
import com.jsowell.pile.dto.QueryEquipChargeStatusDTO;
|
import com.jsowell.pile.dto.QueryEquipChargeStatusDTO;
|
||||||
import com.jsowell.pile.dto.QueryOperatorInfoDTO;
|
import com.jsowell.pile.dto.QueryOperatorInfoDTO;
|
||||||
@@ -44,6 +42,7 @@ import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo;
|
|||||||
import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo;
|
import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo;
|
||||||
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
|
import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO;
|
||||||
import com.jsowell.thirdparty.lianlian.vo.QueryChargingStatusVO;
|
import com.jsowell.thirdparty.lianlian.vo.QueryChargingStatusVO;
|
||||||
|
import com.jsowell.thirdparty.platform.common.StationInfo;
|
||||||
import com.jsowell.thirdparty.platform.domain.*;
|
import com.jsowell.thirdparty.platform.domain.*;
|
||||||
import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService;
|
import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService;
|
||||||
import com.jsowell.thirdparty.platform.factory.ThirdPartyPlatformFactory;
|
import com.jsowell.thirdparty.platform.factory.ThirdPartyPlatformFactory;
|
||||||
@@ -780,4 +779,124 @@ public class NinaXiaPlatformServiceImpl implements ThirdPartyPlatformService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 充电站信息变化推送 notification_stationInfo
|
||||||
|
* 新站需要推送。当站点信息发生变化时,推送新的信息通知到市级平台
|
||||||
|
*
|
||||||
|
* @param stationId 充电站id
|
||||||
|
* @throws UnsupportedOperationException 未实现异常
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String notificationStationInfo(String stationId) {
|
||||||
|
// 通过id查询站点相关信息
|
||||||
|
PileStationInfo pileStationInfo = pileStationInfoService.selectPileStationInfoById(Long.parseLong(stationId));
|
||||||
|
|
||||||
|
// 查询第三方平台配置信息
|
||||||
|
ThirdPartySecretInfoVO thirdPartySecretInfoVO = thirdpartySecretInfoService.queryByThirdPlatformType(thirdPlatformType);
|
||||||
|
if (thirdPartySecretInfoVO == null) {
|
||||||
|
throw new BusinessException("", "无此平台配置信息");
|
||||||
|
}
|
||||||
|
String operatorId = thirdPartySecretInfoVO.getOurOperatorId();
|
||||||
|
String operatorSecret = thirdPartySecretInfoVO.getTheirOperatorSecret();
|
||||||
|
String signSecret = thirdPartySecretInfoVO.getTheirSigSecret();
|
||||||
|
String dataSecret = thirdPartySecretInfoVO.getTheirDataSecret();
|
||||||
|
String dataSecretIv = thirdPartySecretInfoVO.getTheirDataSecretIv();
|
||||||
|
String urlAddress = thirdPartySecretInfoVO.getTheirUrlPrefix();
|
||||||
|
|
||||||
|
// 组装联联平台所需要的数据格式
|
||||||
|
StationInfo info = StationInfo.builder()
|
||||||
|
.stationID(stationId)
|
||||||
|
.operatorID(operatorId)
|
||||||
|
.stationName(pileStationInfo.getStationName())
|
||||||
|
.isAloneApply(Integer.valueOf(pileStationInfo.getAloneApply()))
|
||||||
|
.isPublicParkingLot(Integer.valueOf(pileStationInfo.getPublicParking()))
|
||||||
|
.countryCode(pileStationInfo.getCountryCode())
|
||||||
|
.address(pileStationInfo.getAddress())
|
||||||
|
.serviceTel(pileStationInfo.getStationTel())
|
||||||
|
.stationType(Integer.valueOf(pileStationInfo.getStationType()))
|
||||||
|
.stationStatus(Integer.valueOf(pileStationInfo.getStationStatus()))
|
||||||
|
.parkNums(Integer.valueOf(pileStationInfo.getParkNums()))
|
||||||
|
.stationLng(new BigDecimal(pileStationInfo.getStationLng()))
|
||||||
|
.stationLat(new BigDecimal(pileStationInfo.getStationLat()))
|
||||||
|
.construction(Integer.valueOf(pileStationInfo.getConstruction()))
|
||||||
|
.openAllDay(Integer.valueOf(pileStationInfo.getOpenAllDay()))
|
||||||
|
.minElectricityPrice(new BigDecimal(Constants.ZERO))
|
||||||
|
.electricityFee(Constants.ZERO)
|
||||||
|
.serviceFee(Constants.ZERO)
|
||||||
|
.parkFree(Integer.valueOf(pileStationInfo.getParkFree()))
|
||||||
|
.supportOrder(Integer.valueOf(pileStationInfo.getSupportOrder()))
|
||||||
|
.parkFeeType(0)
|
||||||
|
.toiletFlag(Integer.valueOf(pileStationInfo.getToiletFlag()))
|
||||||
|
.storeFlag(Integer.valueOf(pileStationInfo.getStoreFlag()))
|
||||||
|
.restaurantFlag(Integer.valueOf(pileStationInfo.getRestaurantFlag()))
|
||||||
|
.loungeFlag(Integer.valueOf(pileStationInfo.getLoungeFlag()))
|
||||||
|
.canopyFlag(Integer.valueOf(pileStationInfo.getCanopyFlag()))
|
||||||
|
.printerFlag(Integer.valueOf(pileStationInfo.getPrinterFlag()))
|
||||||
|
.barrierFlag(Integer.valueOf(pileStationInfo.getBarrierFlag()))
|
||||||
|
.parkingLockFlag(Integer.valueOf(pileStationInfo.getParkingLockFlag()))
|
||||||
|
.build();
|
||||||
|
String areaCode = pileStationInfo.getAreaCode(); // 330000,330200,330213
|
||||||
|
// 根据逗号分组
|
||||||
|
String[] split = StringUtils.split(areaCode, ",");
|
||||||
|
// 只取最后一部分 330213
|
||||||
|
String subAreaCode = split[split.length - 1];
|
||||||
|
info.setAreaCode(subAreaCode);
|
||||||
|
// 截取运营商组织机构代码(去除最后一位后的最后九位)
|
||||||
|
String organizationCode = "";
|
||||||
|
if (StringUtils.equals(ThirdPlatformTypeEnum.LIAN_LIAN_PLATFORM.getTypeCode(), thirdPlatformType)) {
|
||||||
|
// 联联平台先使用自己运营商的组织机构代码
|
||||||
|
organizationCode = Constants.OPERATORID_LIANLIAN;
|
||||||
|
info.setEquipmentOwnerID(organizationCode);
|
||||||
|
} else {
|
||||||
|
MerchantInfoVO merchantInfo = pileMerchantInfoService.getMerchantInfoVO(String.valueOf(pileStationInfo.getMerchantId()));
|
||||||
|
organizationCode = merchantInfo.getOrganizationCode();
|
||||||
|
if (StringUtils.isNotBlank(organizationCode) && organizationCode.length() == 18) {
|
||||||
|
String equipmentOwnerId = StringUtils.substring(organizationCode, organizationCode.length() - 10, organizationCode.length() - 1);
|
||||||
|
info.setEquipmentOwnerID(equipmentOwnerId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.equals("36", String.valueOf(pileStationInfo.getMerchantId()))) {
|
||||||
|
// 远大
|
||||||
|
info.setEquipmentOwnerID(Constants.OPERATORID_YUAN_DA);
|
||||||
|
}
|
||||||
|
if (MerchantUtils.isXiXiaoMerchant(String.valueOf(pileStationInfo.getMerchantId()))) {
|
||||||
|
// 如果是希晓运营商,则把equipmentOwnerID换成希晓
|
||||||
|
info.setEquipmentOwnerID(Constants.OPERATORID_XI_XIAO);
|
||||||
|
}
|
||||||
|
String payment = StationPaymentEnum.getPaymentByCode(pileStationInfo.getPayment());
|
||||||
|
info.setPayment(payment);
|
||||||
|
if (StringUtils.isNotBlank(pileStationInfo.getParkingNumber())) {
|
||||||
|
info.setIsPublicParkingLot(1);
|
||||||
|
info.setParkingLotNumber(pileStationInfo.getParkingNumber());
|
||||||
|
}
|
||||||
|
// 户号
|
||||||
|
if (StringUtils.isNotBlank(pileStationInfo.getAccountNumber())) {
|
||||||
|
info.setAccountNumber(pileStationInfo.getAccountNumber());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 容量
|
||||||
|
if (StringUtils.isNotBlank(String.valueOf(pileStationInfo.getCapacity()))) {
|
||||||
|
info.setCapacity(pileStationInfo.getCapacity().setScale(4, BigDecimal.ROUND_HALF_UP));
|
||||||
|
}
|
||||||
|
List<EquipmentInfo> pileList = pileBasicInfoService.getPileListForLianLian(stationId);
|
||||||
|
if (CollectionUtils.isNotEmpty(pileList)) {
|
||||||
|
info.setEquipmentInfos(pileList); // 充电设备信息列表
|
||||||
|
}
|
||||||
|
|
||||||
|
// 调用联联平台接口
|
||||||
|
String url = urlAddress + "supervise_notification_station_info";
|
||||||
|
|
||||||
|
String jsonStr = JSON.toJSONString(info);
|
||||||
|
JSONObject data = new JSONObject();
|
||||||
|
data.put("StationInfo", jsonStr);
|
||||||
|
|
||||||
|
String jsonString = JSON.toJSONString(data);
|
||||||
|
|
||||||
|
// 获取令牌
|
||||||
|
String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret);
|
||||||
|
String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret
|
||||||
|
, dataSecretIv, operatorId, signSecret);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
22
pom.xml
22
pom.xml
@@ -38,6 +38,9 @@
|
|||||||
<mqttv3.version>1.2.5</mqttv3.version>
|
<mqttv3.version>1.2.5</mqttv3.version>
|
||||||
<mqtt-codec.version>1.2.5</mqtt-codec.version>
|
<mqtt-codec.version>1.2.5</mqtt-codec.version>
|
||||||
<huifu.version>1.2.10</huifu.version>
|
<huifu.version>1.2.10</huifu.version>
|
||||||
|
<alipai.sdk.version>4.39.79.ALL</alipai.sdk.version>
|
||||||
|
<alipai.easysdk.version>2.2.3</alipai.easysdk.version>
|
||||||
|
<tencent.sdk.version>3.1.87</tencent.sdk.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<!-- 依赖声明 -->
|
<!-- 依赖声明 -->
|
||||||
@@ -235,11 +238,28 @@
|
|||||||
<version>${mqttv3.version}</version>
|
<version>${mqttv3.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--腾讯SDK-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tencentcloudapi</groupId>
|
<groupId>com.tencentcloudapi</groupId>
|
||||||
<artifactId>tencentcloud-sdk-java</artifactId>
|
<artifactId>tencentcloud-sdk-java</artifactId>
|
||||||
<version>3.1.87</version>
|
<version>${tencent.sdk.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--支付宝SDK-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alipay.sdk</groupId>
|
||||||
|
<artifactId>alipay-sdk-java</artifactId>
|
||||||
|
<version>${alipai.sdk.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alipay.sdk</groupId>
|
||||||
|
<artifactId>alipay-easysdk</artifactId>
|
||||||
|
<version>${alipai.easysdk.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.qcloudsms</groupId>
|
<groupId>com.github.qcloudsms</groupId>
|
||||||
<artifactId>qcloudsms</artifactId>
|
<artifactId>qcloudsms</artifactId>
|
||||||
|
|||||||
Reference in New Issue
Block a user