支付订单也加入memberId数据;汇付支付成功回调保存member_adapay_record

This commit is contained in:
2023-08-10 14:41:23 +08:00
parent 043f525da4
commit aa11800f59
3 changed files with 60 additions and 34 deletions

View File

@@ -107,6 +107,9 @@ public class OrderService {
@Autowired @Autowired
private ClearingWithdrawInfoService clearingWithdrawInfoService; private ClearingWithdrawInfoService clearingWithdrawInfoService;
@Autowired
private MemberAdapayRecordService memberAdapayRecordService;
/** /**
* 生成订单 * 生成订单
* *
@@ -136,8 +139,7 @@ public class OrderService {
* @param dto * @param dto
*/ */
public Map<String, Object> payOrder(PayOrderDTO dto) throws Exception { public Map<String, Object> payOrder(PayOrderDTO dto) throws Exception {
Map<String, Object> resultMap = orderBasicInfoService.payOrder(dto); return orderBasicInfoService.payOrder(dto);
return resultMap;
} }
/** /**
@@ -1009,6 +1011,15 @@ public class OrderService {
dto.setUpdatePrincipalBalance(amount); dto.setUpdatePrincipalBalance(amount);
memberBasicInfoService.updateMemberBalance(dto); memberBasicInfoService.updateMemberBalance(dto);
} }
// 保存MemberAdapayRecord
MemberAdapayRecord memberAdapayRecord = new MemberAdapayRecord();
memberAdapayRecord.setMemberId(memberId);
memberAdapayRecord.setPaymentId(adapayCallbackRecord.getPaymentId());
memberAdapayRecord.setPaymentOrderNo(adapayCallbackRecord.getOrderNo());
memberAdapayRecord.setScenarioType(ScenarioEnum.BALANCE.getValue());
memberAdapayRecord.setPayAmt(amount);
memberAdapayRecordService.insertSelective(memberAdapayRecord);
} }
/** /**

View File

@@ -1,9 +1,9 @@
package com.jsowell.pile.service; package com.jsowell.pile.service;
import java.util.List;
import com.jsowell.pile.domain.MemberAdapayRecord; import com.jsowell.pile.domain.MemberAdapayRecord;
public interface MemberAdapayRecordService{
import java.util.List;
public interface MemberAdapayRecordService{
int insertSelective(MemberAdapayRecord record); int insertSelective(MemberAdapayRecord record);

View File

@@ -669,9 +669,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
} }
} }
// 查询订单详情 修改订单数据
OrderDetail orderDetail = getOrderDetailByOrderCode(orderCode);
// 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail // 把交易记录中的用电量,金额等信息 更新到orderBasicInfo和orderDetail
orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额 orderBasicInfo.setVirtualAmount(virtualAmount); // 虚拟金额
orderBasicInfo.setSettleAmount(orderAmount.subtract(virtualAmount)); // 结算金额 orderBasicInfo.setSettleAmount(orderAmount.subtract(virtualAmount)); // 结算金额
@@ -680,7 +677,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间 orderBasicInfo.setSettlementTime(DateUtils.getNowDate()); // 结算时间
orderBasicInfo.setRefundAmount(residue); // 结算退款金额 orderBasicInfo.setRefundAmount(residue); // 结算退款金额
// 更新订单详情 // 更新订单详情 查询订单详情 修改订单数据
OrderDetail orderDetail = getOrderDetailByOrderCode(orderCode);
try { try {
// 总电费金额 // 总电费金额
BigDecimal totalElectricityAmount = BigDecimal.ZERO; BigDecimal totalElectricityAmount = BigDecimal.ZERO;
@@ -763,28 +761,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
transactionService.doUpdateOrder(dto); transactionService.doUpdateOrder(dto);
logger.info("结算订单end:{} OrderTransactionDTO:{}", orderCode, JSONObject.toJSONString(dto)); logger.info("结算订单end:{} OrderTransactionDTO:{}", orderCode, JSONObject.toJSONString(dto));
try { // 将卡/vin状态解锁
// 将卡/vin状态解锁 if (!StringUtils.equals("0000000000000000", data.getLogicCard())) {
if (!StringUtils.equals("0000000000000000", data.getLogicCard())) { cardStatusUnlocked(orderBasicInfo.getLogicCard());
// 根据物理卡号查出当前为锁定状态的卡 }
PileAuthCard cardInfo = pileAuthCardService.selectSomeStatusCardInfo(CardStatusEnum.START_LOCK.getCode(), orderBasicInfo.getLogicCard());
if (cardInfo != null) { // 如果是vin启动将启动锁定状态改为正常
// orderBasicInfo.setMemberId(cardInfo.getMemberId()); if (StringUtils.equals(data.getTransactionIdentifier(), "05")) {
// 将此卡状态改为正常 vinStatusUnlocked(data.getVinCode());
cardInfo.setStatus(CardStatusEnum.NORMAL.getCode());
pileAuthCardService.updatePileAuthCard(cardInfo);
}
}
// 如果是vin启动将启动锁定状态改为正常
if (StringUtils.equals(data.getTransactionIdentifier(), "05")) {
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(data.getVinCode());
if (plateInfo != null && (StringUtils.equals(plateInfo.getVinStatus(), "2"))) {
plateInfo.setVinStatus("1");
memberPlateNumberRelationService.updateMemberPlateNumberRelation(plateInfo);
}
}
} catch (Exception e) {
logger.error("解锁卡/vin状态 error,", e);
} }
// 发送停止充电订阅消息 // 发送停止充电订阅消息
@@ -794,6 +778,39 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderCode); realTimeMonitorDataRedis2DB(orderBasicInfo.getTransactionCode(), orderCode);
} }
/**
* 卡状态解锁
*/
private void cardStatusUnlocked(String logicCard) {
try {
// 根据物理卡号查出当前为锁定状态的卡
PileAuthCard cardInfo = pileAuthCardService.selectSomeStatusCardInfo(CardStatusEnum.START_LOCK.getCode(), logicCard);
if (cardInfo != null) {
// 将此卡状态改为正常
cardInfo.setStatus(CardStatusEnum.NORMAL.getCode());
pileAuthCardService.updatePileAuthCard(cardInfo);
}
} catch (Exception e) {
logger.error("解锁卡状态 error,", e);
}
}
/**
* 解锁vin状态
* @param vinCode
*/
private void vinStatusUnlocked(String vinCode) {
try {
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode);
if (plateInfo != null && (StringUtils.equals(plateInfo.getVinStatus(), "2"))) {
plateInfo.setVinStatus("1");
memberPlateNumberRelationService.updateMemberPlateNumberRelation(plateInfo);
}
} catch (Exception e) {
logger.error("解锁vin状态 error,", e);
}
}
/** /**
* 订单退款逻辑 * 订单退款逻辑
* @param orderBasicInfo 订单信息 * @param orderBasicInfo 订单信息
@@ -2460,10 +2477,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
* *
* @param dto * @param dto
* @return * @return
* @throws Exception
*/ */
@Override @Override
public Map<String, Object> payOrder(PayOrderDTO dto) throws Exception { public Map<String, Object> payOrder(PayOrderDTO dto) {
OrderBasicInfo orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode()); OrderBasicInfo orderInfo = this.getOrderInfoByOrderCode(dto.getOrderCode());
if (orderInfo == null) { if (orderInfo == null) {
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR); throw new BusinessException(ReturnCodeEnum.CODE_QUERY_ORDER_NULL_ERROR);
@@ -2485,8 +2501,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 返回微信支付参数 // 返回微信支付参数
resultMap.put("weixinMap", weixinMap); resultMap.put("weixinMap", weixinMap);
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_ALIPAY.getValue())) { // 支付宝支付
// TODO 返回支付宝支付参数
} else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue())) { // 白名单支付 } else if (StringUtils.equals(dto.getPayMode(), OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue())) { // 白名单支付
// 白名单支付可以直接调支付回调方法 // 白名单支付可以直接调支付回调方法
dto.setPayAmount(new BigDecimal("500")); dto.setPayAmount(new BigDecimal("500"));
@@ -2617,6 +2631,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
map.put("type", ScenarioEnum.ORDER.getValue()); map.put("type", ScenarioEnum.ORDER.getValue());
map.put("orderCode", dto.getOrderCode()); map.put("orderCode", dto.getOrderCode());
map.put("payMode", payMode); map.put("payMode", payMode);
map.put("memberId", dto.getMemberId());
createAdaPaymentParam.setDescription(JSON.toJSONString(map)); createAdaPaymentParam.setDescription(JSON.toJSONString(map));
// 异步通知地址url为http/https路径服务器POST回调URL 上请勿附带参数 // 异步通知地址url为http/https路径服务器POST回调URL 上请勿附带参数
createAdaPaymentParam.setNotify_url(ADAPAY_CALLBACK_URL); createAdaPaymentParam.setNotify_url(ADAPAY_CALLBACK_URL);