mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
update
This commit is contained in:
@@ -593,4 +593,40 @@ public class LianLianController extends ThirdPartyBaseController {
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询订单结算信息
|
||||
* @param request
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/v1/query_order_settlement_info")
|
||||
public CommonResult<?> query_order_settlement_info(HttpServletRequest request, @RequestBody CommonParamsDTO dto) {
|
||||
try {
|
||||
// 校验令牌
|
||||
if (!verifyToken(request.getHeader("Authorization"))) {
|
||||
// 校验失败
|
||||
return CommonResult.failed(ThirdPartyReturnCodeEnum.TOKEN_ERROR);
|
||||
}
|
||||
|
||||
// 校验签名
|
||||
if (!verifySignature(dto)) {
|
||||
// 签名错误
|
||||
return CommonResult.failed(ThirdPartyReturnCodeEnum.SIGN_ERROR);
|
||||
}
|
||||
|
||||
// 解析入参
|
||||
PushOrderSettlementDTO pushOrderSettlementDTO = parseParamsDTO(dto, PushOrderSettlementDTO.class);
|
||||
|
||||
// 执行逻辑
|
||||
Map<String, String> map = platformLogic.queryOrderSettlementInfo(pushOrderSettlementDTO);
|
||||
logger.info("查询订单结算信息 result:{}", JSON.toJSONString(map));
|
||||
return CommonResult.success(0, "查询订单结算信息成功!", map.get("Data"), map.get("Sig"));
|
||||
} catch (Exception e) {
|
||||
logger.error("查询订单结算信息 error:", e);
|
||||
}
|
||||
return CommonResult.failed("查询订单结算信息发生异常");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
62
jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/vo/OrderSettlementVO.java
vendored
Normal file
62
jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/vo/OrderSettlementVO.java
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
package com.jsowell.thirdparty.lianlian.vo;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
public class OrderSettlementVO {
|
||||
|
||||
/**
|
||||
* 充电订单号
|
||||
*/
|
||||
@JSONField(name = "StartChargeSeq")
|
||||
private String startChargeSeq;
|
||||
|
||||
/**
|
||||
* 充电设备接口编码
|
||||
*/
|
||||
@JSONField(name = "ConnectorID")
|
||||
private String connectorID;
|
||||
|
||||
/**
|
||||
* 累计充电量
|
||||
*/
|
||||
@JSONField(name = "TotalPower")
|
||||
private BigDecimal totalPower;
|
||||
|
||||
/**
|
||||
* 累计总金额
|
||||
*/
|
||||
@JSONField(name = "TotalMoney")
|
||||
private BigDecimal totalMoney;
|
||||
|
||||
/**
|
||||
* 是否出租车订单
|
||||
*/
|
||||
@JSONField(name = "TaxiOrder")
|
||||
private int taxiOrder;
|
||||
|
||||
/**
|
||||
* 结算金额
|
||||
*/
|
||||
@JSONField(name = "SettlementMoney")
|
||||
private BigDecimal settlementMoney;
|
||||
|
||||
/**
|
||||
* 优惠类型
|
||||
*/
|
||||
@JSONField(name = "DiscountType")
|
||||
private int discountType;
|
||||
|
||||
/**
|
||||
* 优惠金额
|
||||
*/
|
||||
@JSONField(name = "DiscountMoney")
|
||||
private BigDecimal discountMoney;
|
||||
|
||||
|
||||
}
|
||||
@@ -188,6 +188,14 @@ public class OrderInfo {
|
||||
@JSONField(name = "SumPeriod")
|
||||
private Integer sumPeriod;
|
||||
|
||||
/**
|
||||
* 订单类型 Y
|
||||
* 1,充电订单
|
||||
* 2,放电订单
|
||||
*/
|
||||
@JSONField(name = "OrderType")
|
||||
private Integer orderType;
|
||||
|
||||
/**
|
||||
* 充电明细信息 Y
|
||||
*/
|
||||
|
||||
@@ -251,6 +251,15 @@ public interface ThirdPartyPlatformService extends InitializingBean {
|
||||
throw new UnsupportedOperationException("This method is not yet implemented");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单结算信息 query_order_settlement_info
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
default Map<String, String> queryOrderSettlementInfo(PushOrderSettlementDTO dto) {
|
||||
throw new UnsupportedOperationException("This method is not yet implemented");
|
||||
}
|
||||
|
||||
|
||||
// =================================================================================== //
|
||||
// ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 由对方平台实现此接口,我方平台调用的通知接口 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ //
|
||||
|
||||
@@ -915,21 +915,21 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService {
|
||||
* @throws UnsupportedOperationException 未实现异常
|
||||
*/
|
||||
@Override
|
||||
public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO secretInfoVO) {
|
||||
public String notificationChargeOrderInfo(String orderCode) {
|
||||
|
||||
// 根据订单号查询出信息
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||
|
||||
// 通过站点id查询相关配置信息
|
||||
// ThirdPartySecretInfoVO thirdPartySecretInfoVO = getLianLianPlatformSecretInfo();
|
||||
ThirdPartySecretInfoVO thirdPartySecretInfoVO = getLianLianPlatformSecretInfo();
|
||||
|
||||
String operatorId = Constants.OPERATORID_LIANLIAN;
|
||||
String operatorSecret = secretInfoVO.getTheirOperatorSecret();
|
||||
String signSecret = secretInfoVO.getTheirSigSecret();
|
||||
String dataSecret = secretInfoVO.getTheirDataSecret();
|
||||
String dataSecretIv = secretInfoVO.getTheirDataSecretIv();
|
||||
String urlAddress = secretInfoVO.getTheirUrlPrefix();
|
||||
String operatorSecret = thirdPartySecretInfoVO.getTheirOperatorSecret();
|
||||
String signSecret = thirdPartySecretInfoVO.getTheirSigSecret();
|
||||
String dataSecret = thirdPartySecretInfoVO.getTheirDataSecret();
|
||||
String dataSecretIv = thirdPartySecretInfoVO.getTheirDataSecretIv();
|
||||
String urlAddress = thirdPartySecretInfoVO.getTheirUrlPrefix();
|
||||
|
||||
String url = urlAddress + "notification_orderInfo";
|
||||
|
||||
@@ -949,6 +949,7 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService {
|
||||
.startTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeStartTime()))
|
||||
.endTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, orderBasicInfo.getChargeEndTime()))
|
||||
.paymentAmount(orderBasicInfo.getPayAmount())
|
||||
.orderType(Constants.one)
|
||||
// .payChannel()
|
||||
.stopReason(0)
|
||||
// .chargeDetails()
|
||||
@@ -1040,6 +1041,52 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 6.9 推送充电订单信息
|
||||
* @param orderCode
|
||||
* @param thirdPartySecretInfoVO
|
||||
* @return
|
||||
*/
|
||||
public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO thirdPartySecretInfoVO) {
|
||||
OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||
|
||||
String operatorId = Constants.OPERATORID_LIANLIAN;
|
||||
String operatorSecret = thirdPartySecretInfoVO.getTheirOperatorSecret();
|
||||
String signSecret = thirdPartySecretInfoVO.getTheirSigSecret();
|
||||
String dataSecret = thirdPartySecretInfoVO.getTheirDataSecret();
|
||||
String dataSecretIv = thirdPartySecretInfoVO.getTheirDataSecretIv();
|
||||
String urlAddress = thirdPartySecretInfoVO.getTheirUrlPrefix();
|
||||
|
||||
String url = urlAddress + BusinessInformationExchangeEnum.NOTIFICATION_CHARGE_ORDER_INFO.getValue();
|
||||
Date chargeStartTime = orderBasicInfo.getChargeStartTime();
|
||||
if (chargeStartTime == null) {
|
||||
chargeStartTime = orderBasicInfo.getCreateTime();
|
||||
}
|
||||
Date chargeEndTime = orderBasicInfo.getChargeEndTime();
|
||||
if (chargeEndTime == null) {
|
||||
chargeEndTime = orderBasicInfo.getCreateTime();
|
||||
}
|
||||
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("StartChargeSeq", orderCode);
|
||||
json.put("ConnectorID", orderBasicInfo.getPileConnectorCode());
|
||||
json.put("StartTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, chargeStartTime));
|
||||
json.put("EndTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, chargeEndTime));
|
||||
json.put("TotalPower", orderDetail.getTotalUsedElectricity().setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
json.put("TotalElecMoney", orderDetail.getTotalElectricityAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
json.put("TotalSeviceMoney", orderDetail.getTotalServiceAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
json.put("TotalMoney", orderDetail.getTotalOrderAmount().setScale(2, BigDecimal.ROUND_HALF_UP));
|
||||
json.put("StopReason", 2); // 2:BMS 停止充电
|
||||
|
||||
String jsonString = JSON.toJSONString(json);
|
||||
log.info("请求参数:{}", jsonString);
|
||||
|
||||
String token = getToken(urlAddress, operatorId, operatorSecret, dataSecretIv, signSecret, dataSecret);
|
||||
String result = HttpRequestUtil.sendPost(token, jsonString, url, dataSecret, dataSecretIv, operatorId, signSecret);
|
||||
|
||||
return result;
|
||||
}
|
||||
// @Override
|
||||
// public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO secretInfoVO) {
|
||||
//
|
||||
@@ -1155,6 +1202,9 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService {
|
||||
// return result;
|
||||
// }
|
||||
|
||||
//TODO 5.10 推送站点累计电量接口( notification_station_electStatsInfo)
|
||||
|
||||
|
||||
/**
|
||||
* 站点费率变化推送 notification_stationFee
|
||||
*
|
||||
@@ -1279,6 +1329,41 @@ public class LianLianPlatformServiceImpl implements ThirdPartyPlatformService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单结算信息 query_order_settlement_info
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> queryOrderSettlementInfo(PushOrderSettlementDTO dto) {
|
||||
String orderCode = dto.getStartChargeSeq();
|
||||
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode);
|
||||
OrderDetail orderDetail = orderBasicInfoService.getOrderDetailByOrderCode(orderCode);
|
||||
|
||||
if (orderInfo == null || orderDetail == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
ThirdPartySecretInfoVO lianLianPlatformSecretInfo = getLianLianPlatformSecretInfo();
|
||||
|
||||
// 封装数据
|
||||
OrderSettlementVO vo = OrderSettlementVO.builder()
|
||||
.startChargeSeq(orderCode)
|
||||
.connectorID(orderInfo.getPileConnectorCode())
|
||||
.totalPower(orderDetail.getTotalUsedElectricity()) //累计电量
|
||||
.totalMoney(orderDetail.getTotalOrderAmount()) //累计金额
|
||||
.taxiOrder(Constants.zero) //是否为出租车,默认0不是
|
||||
.settlementMoney(orderInfo.getSettleAmount()) //结算金额
|
||||
.discountType(Constants.zero) // 优惠类型
|
||||
.discountMoney(BigDecimal.ZERO) // 优惠金额
|
||||
.build();
|
||||
// 加密数据
|
||||
Map<String, String> resultMap = ThirdPartyPlatformUtils.generateResultMapV2(vo, lianLianPlatformSecretInfo.getOurDataSecret(),
|
||||
lianLianPlatformSecretInfo.getOurDataSecretIv(), lianLianPlatformSecretInfo.getTheirSigSecret());
|
||||
return resultMap;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送订单结算信息 notification_order_settlement_info
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user