mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-17 16:28:41 +08:00
Merge branch 'dev' of http://192.168.2.2:8099/jsowell/jsowell-charger-web into dev
This commit is contained in:
@@ -225,7 +225,7 @@ public class TempController extends BaseController {
|
|||||||
public RestApiResponse<?> testCreateBalancePayment(@RequestBody BalancePaymentRequestDTO dto) {
|
public RestApiResponse<?> testCreateBalancePayment(@RequestBody BalancePaymentRequestDTO dto) {
|
||||||
RestApiResponse<?> response = null;
|
RestApiResponse<?> response = null;
|
||||||
try {
|
try {
|
||||||
adapayMemberService.createBalancePaymentRequest(dto.getOutMemberId(), dto.getInMemberId(), dto.getTransAmt());
|
adapayMemberService.createBalancePaymentRequest(dto.getOutMemberId(), dto.getInMemberId(), dto.getTransAmt(), "测试余额支付", "测试余额支付描述");
|
||||||
response = new RestApiResponse<>();
|
response = new RestApiResponse<>();
|
||||||
} catch (BusinessException e) {
|
} catch (BusinessException e) {
|
||||||
logger.warn("测试余额支付接口warn", e);
|
logger.warn("测试余额支付接口warn", e);
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package com.jsowell.adapay.response;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class BalancePaymentResponse {
|
||||||
|
/**
|
||||||
|
* 当前交易结果状态,参见 状态 说明
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
private String error_code;
|
||||||
|
private String error_msg;
|
||||||
|
private String error_type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商户客户号
|
||||||
|
*/
|
||||||
|
private String mer_cust_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 应用ID
|
||||||
|
*/
|
||||||
|
private String app_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单号
|
||||||
|
*/
|
||||||
|
private String order_no;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 交易金额
|
||||||
|
*/
|
||||||
|
private String trans_amt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手续费
|
||||||
|
*/
|
||||||
|
private String fee_amt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 余额支付流水号
|
||||||
|
*/
|
||||||
|
private String balance_seq_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付模式
|
||||||
|
*/
|
||||||
|
private String pay_mode;
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ import com.huifu.adapay.model.*;
|
|||||||
import com.jsowell.adapay.dto.SettleAccountDTO;
|
import com.jsowell.adapay.dto.SettleAccountDTO;
|
||||||
import com.jsowell.adapay.dto.UpdateAccountConfigDTO;
|
import com.jsowell.adapay.dto.UpdateAccountConfigDTO;
|
||||||
import com.jsowell.adapay.dto.WithdrawDTO;
|
import com.jsowell.adapay.dto.WithdrawDTO;
|
||||||
|
import com.jsowell.adapay.response.BalancePaymentResponse;
|
||||||
import com.jsowell.adapay.response.QueryCorpMemberResponse;
|
import com.jsowell.adapay.response.QueryCorpMemberResponse;
|
||||||
import com.jsowell.adapay.response.QueryMemberResponse;
|
import com.jsowell.adapay.response.QueryMemberResponse;
|
||||||
import com.jsowell.adapay.vo.AdapayAccountBalanceVO;
|
import com.jsowell.adapay.vo.AdapayAccountBalanceVO;
|
||||||
@@ -17,6 +18,7 @@ import com.jsowell.adapay.vo.AdapayMemberInfoVO;
|
|||||||
import com.jsowell.adapay.vo.AdapaySettleAccountVO;
|
import com.jsowell.adapay.vo.AdapaySettleAccountVO;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
import com.jsowell.common.enums.DelFlagEnum;
|
import com.jsowell.common.enums.DelFlagEnum;
|
||||||
|
import com.jsowell.common.enums.adapay.AdapayStatusEnum;
|
||||||
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.AdapayUtil;
|
import com.jsowell.common.util.AdapayUtil;
|
||||||
@@ -453,7 +455,7 @@ public class AdapayMemberService {
|
|||||||
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_MEMBER_IS_NULL_ERROR);
|
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_MEMBER_IS_NULL_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提现手续费 每笔固定10元
|
// 提现手续费 每笔固定5元
|
||||||
BigDecimal feeAmt = new BigDecimal("5");
|
BigDecimal feeAmt = new BigDecimal("5");
|
||||||
|
|
||||||
// 实际提现到账金额
|
// 实际提现到账金额
|
||||||
@@ -484,7 +486,7 @@ public class AdapayMemberService {
|
|||||||
String id = (String) settleCount.get("id");
|
String id = (String) settleCount.get("id");
|
||||||
|
|
||||||
// 发起支付手续费请求 inMemberId为0表示本商户
|
// 发起支付手续费请求 inMemberId为0表示本商户
|
||||||
createBalancePaymentRequest(adapayAccountBalanceVO.getAdapayMemberId(), Constants.ZERO, feeAmt.toString());
|
createBalancePaymentRequest(adapayAccountBalanceVO.getAdapayMemberId(), Constants.ZERO, feeAmt.toString(), "提现手续费", "提现单号:" + id);
|
||||||
|
|
||||||
// 保存提现记录
|
// 保存提现记录
|
||||||
ClearingWithdrawInfo record = new ClearingWithdrawInfo();
|
ClearingWithdrawInfo record = new ClearingWithdrawInfo();
|
||||||
@@ -538,7 +540,7 @@ public class AdapayMemberService {
|
|||||||
log.info("更新企业账户param:{}", memberParams);
|
log.info("更新企业账户param:{}", memberParams);
|
||||||
Map<String, Object> member = AdapayCommon.requestAdapayFile(memberParams, file);
|
Map<String, Object> member = AdapayCommon.requestAdapayFile(memberParams, file);
|
||||||
log.info("更新企业账户result:{}", JSON.toJSONString(member));
|
log.info("更新企业账户result:{}", JSON.toJSONString(member));
|
||||||
if (StringUtils.equals((String) member.get("status"), "failed")) {
|
if (AdapayStatusEnum.FAILED.getValue().equals((String) member.get("status"))) {
|
||||||
throw new BusinessException("", (String) member.get("error_msg"));
|
throw new BusinessException("", (String) member.get("error_msg"));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -549,8 +551,10 @@ public class AdapayMemberService {
|
|||||||
* @param outMemberId 出账用户的member_id, 若为商户本身时,请传入0
|
* @param outMemberId 出账用户的member_id, 若为商户本身时,请传入0
|
||||||
* @param inMemberId 入账用户的member_id, 若为商户本身时,请传入0
|
* @param inMemberId 入账用户的member_id, 若为商户本身时,请传入0
|
||||||
* @param transAmt 交易金额, 必须大于0,保留两位小数点,如0.10、100.05等
|
* @param transAmt 交易金额, 必须大于0,保留两位小数点,如0.10、100.05等
|
||||||
|
* @param title 标题
|
||||||
|
* @param desc 描述信息
|
||||||
*/
|
*/
|
||||||
public void createBalancePaymentRequest(String outMemberId, String inMemberId, String transAmt) throws BaseAdaPayException {
|
public BalancePaymentResponse createBalancePaymentRequest(String outMemberId, String inMemberId, String transAmt, String title, String desc) throws BaseAdaPayException {
|
||||||
Map<String, Object> balanceParam = Maps.newHashMap();
|
Map<String, Object> balanceParam = Maps.newHashMap();
|
||||||
balanceParam.put("app_id", ADAPAY_APP_ID);
|
balanceParam.put("app_id", ADAPAY_APP_ID);
|
||||||
balanceParam.put("adapay_func_code", "settle_accounts.balancePay");
|
balanceParam.put("adapay_func_code", "settle_accounts.balancePay");
|
||||||
@@ -558,10 +562,11 @@ public class AdapayMemberService {
|
|||||||
balanceParam.put("out_member_id", outMemberId);
|
balanceParam.put("out_member_id", outMemberId);
|
||||||
balanceParam.put("in_member_id", inMemberId);
|
balanceParam.put("in_member_id", inMemberId);
|
||||||
balanceParam.put("trans_amt", AdapayUtil.formatAmount(transAmt));
|
balanceParam.put("trans_amt", AdapayUtil.formatAmount(transAmt));
|
||||||
balanceParam.put("goods_title", "测试余额支付");
|
balanceParam.put("goods_title", title);
|
||||||
balanceParam.put("goods_desc", "该商品信息用于测试余额支付");
|
balanceParam.put("goods_desc", desc);
|
||||||
Map<String, Object> paymentResult = AdapayCommon.requestAdapay(balanceParam);
|
Map<String, Object> paymentResult = AdapayCommon.requestAdapay(balanceParam);
|
||||||
log.info("创建余额支付param:{}, result:{}", JSON.toJSONString(balanceParam), JSON.toJSONString(paymentResult));
|
log.info("创建余额支付param:{}, result:{}", JSON.toJSONString(balanceParam), JSON.toJSONString(paymentResult));
|
||||||
|
return JSONObject.parseObject(JSON.toJSONString(paymentResult), BalancePaymentResponse.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ import com.huifu.adapay.model.PaymentReverse;
|
|||||||
import com.huifu.adapay.model.Refund;
|
import com.huifu.adapay.model.Refund;
|
||||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
||||||
import com.jsowell.adapay.common.DivMember;
|
import com.jsowell.adapay.common.DivMember;
|
||||||
|
import com.jsowell.adapay.response.BalancePaymentResponse;
|
||||||
import com.jsowell.adapay.response.PaymentConfirmResponse;
|
import com.jsowell.adapay.response.PaymentConfirmResponse;
|
||||||
|
import com.jsowell.adapay.service.AdapayMemberService;
|
||||||
import com.jsowell.adapay.vo.OrderSettleResult;
|
import com.jsowell.adapay.vo.OrderSettleResult;
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
@@ -41,10 +43,8 @@ import com.jsowell.pile.service.*;
|
|||||||
import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
|
import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO;
|
||||||
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
import com.jsowell.pile.transaction.dto.OrderTransactionDTO;
|
||||||
import com.jsowell.pile.transaction.service.TransactionService;
|
import com.jsowell.pile.transaction.service.TransactionService;
|
||||||
import com.jsowell.pile.vo.base.MerchantOrderInfoVO;
|
|
||||||
import com.jsowell.pile.vo.base.OrderAmountDetailVO;
|
|
||||||
import com.jsowell.pile.vo.base.OrderPeriodAmountVO;
|
|
||||||
import com.jsowell.pile.vo.base.PileInfoVO;
|
import com.jsowell.pile.vo.base.PileInfoVO;
|
||||||
|
import com.jsowell.pile.vo.base.*;
|
||||||
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
|
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
|
||||||
import com.jsowell.pile.vo.uniapp.*;
|
import com.jsowell.pile.vo.uniapp.*;
|
||||||
import com.jsowell.pile.vo.web.*;
|
import com.jsowell.pile.vo.web.*;
|
||||||
@@ -167,6 +167,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IPileStationWhitelistService pileStationWhitelistService;
|
private IPileStationWhitelistService pileStationWhitelistService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AdapayMemberService adapayMemberService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 条件查询订单基本信息
|
* 条件查询订单基本信息
|
||||||
*
|
*
|
||||||
@@ -928,11 +931,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
// 执行分账
|
// 执行分账
|
||||||
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
||||||
try {
|
try {
|
||||||
OrderSettleResult orderSettleResult = doPaymentConfirm(orderBasicInfo, adapayMemberAccount);
|
OrderSettleResult orderSettleResult = null;
|
||||||
|
if (PayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) {
|
||||||
|
// 余额支付的订单 只用余额支付转账
|
||||||
|
orderSettleResult = doBalancePayment(orderBasicInfo, adapayMemberAccount);
|
||||||
|
} else {
|
||||||
|
// 在线支付,进行支付确认分账
|
||||||
|
orderSettleResult = doPaymentConfirm(orderBasicInfo, adapayMemberAccount);
|
||||||
|
}
|
||||||
if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) {
|
if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) {
|
||||||
JSONObject jsonObject = JSON.parseObject(orderSettleResult.getDescription());
|
|
||||||
String orderCode = (String) jsonObject.get("orderCode");
|
|
||||||
|
|
||||||
// 应收金额 = 订单结算金额汇总
|
// 应收金额 = 订单结算金额汇总
|
||||||
receivableAmount = receivableAmount.add(orderBasicInfo.getSettleAmount());
|
receivableAmount = receivableAmount.add(orderBasicInfo.getSettleAmount());
|
||||||
// 应清分金额 = 订单产生的电费+服务费实际消费 汇总
|
// 应清分金额 = 订单产生的电费+服务费实际消费 汇总
|
||||||
@@ -948,7 +955,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
|
|
||||||
ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder()
|
ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder()
|
||||||
.clearingBillCode(clearingBillCode)
|
.clearingBillCode(clearingBillCode)
|
||||||
.orderCode(orderCode)
|
.orderCode(orderBasicInfo.getOrderCode())
|
||||||
.createTime(DateUtils.getNowDate())
|
.createTime(DateUtils.getNowDate())
|
||||||
.delFlag(DelFlagEnum.NORMAL.getValue())
|
.delFlag(DelFlagEnum.NORMAL.getValue())
|
||||||
.build();
|
.build();
|
||||||
@@ -1014,28 +1021,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清分账单信息
|
|
||||||
// ClearingBillInfo clearingBillInfo = new ClearingBillInfo();
|
|
||||||
// clearingBillInfo.setBillStatus("1");
|
|
||||||
// String clearingBillCode = "CLE" + IdUtils.getOrderCode();
|
|
||||||
// clearingBillInfo.setClearingBillCode(clearingBillCode);
|
|
||||||
// clearingBillInfo.setClearingTime(DateUtils.getNowDate());
|
|
||||||
// clearingBillInfo.setMerchantId(merchantId);
|
|
||||||
// clearingBillInfo.setOrderSource("1");
|
|
||||||
|
|
||||||
// 应收金额
|
|
||||||
// BigDecimal receivableAmount = BigDecimal.ZERO;
|
|
||||||
// // 应清分金额
|
|
||||||
// BigDecimal shouldClearingAmount = BigDecimal.ZERO;
|
|
||||||
// // 实际清分金额
|
|
||||||
// BigDecimal actualClearingAmount = BigDecimal.ZERO;
|
|
||||||
// // 手续费金额
|
|
||||||
// BigDecimal feeAmount = BigDecimal.ZERO;
|
|
||||||
// // 可提现金额
|
|
||||||
// BigDecimal withdrawableAmount = BigDecimal.ZERO;
|
|
||||||
|
|
||||||
// 清分账单详情列表
|
|
||||||
// List<ClearingBillDetail> billDetailList = Lists.newArrayList();
|
|
||||||
// 执行分账
|
// 执行分账
|
||||||
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
|
||||||
try {
|
try {
|
||||||
@@ -1044,49 +1029,47 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
JSONObject jsonObject = JSON.parseObject(orderSettleResult.getDescription());
|
JSONObject jsonObject = JSON.parseObject(orderSettleResult.getDescription());
|
||||||
String orderCode = (String) jsonObject.get("orderCode");
|
String orderCode = (String) jsonObject.get("orderCode");
|
||||||
|
|
||||||
// 应收金额 = 订单结算金额汇总
|
|
||||||
// receivableAmount = receivableAmount.add(orderBasicInfo.getSettleAmount());
|
|
||||||
// // 应清分金额 = 订单产生的电费+服务费实际消费 汇总
|
|
||||||
// shouldClearingAmount = shouldClearingAmount.add(orderBasicInfo.getSettleAmount());
|
|
||||||
// // 实际清分金额 = 汇付清分接口返回的清分金额
|
|
||||||
// actualClearingAmount = actualClearingAmount.add(new BigDecimal(orderSettleResult.getConfirm_amt()));
|
|
||||||
// // 手续费金额 = 汇付清分接口返回的手续费金额
|
|
||||||
// feeAmount = feeAmount.add(new BigDecimal(orderSettleResult.getFee_amt()));
|
|
||||||
// // 可提现金额 = 实际清分金额 - 手续费金额
|
|
||||||
// withdrawableAmount = withdrawableAmount
|
|
||||||
// .add(new BigDecimal(orderSettleResult.getConfirm_amt()))
|
|
||||||
// .subtract(new BigDecimal(orderSettleResult.getFee_amt()));
|
|
||||||
|
|
||||||
// ClearingBillDetail clearingBillDetail = ClearingBillDetail.builder()
|
|
||||||
// .clearingBillCode(clearingBillCode)
|
|
||||||
// .orderCode(orderCode)
|
|
||||||
// .createTime(DateUtils.getNowDate())
|
|
||||||
// .delFlag(DelFlagEnum.NORMAL.getValue())
|
|
||||||
// .build();
|
|
||||||
// billDetailList.add(clearingBillDetail);
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("订单交易确认失败:{}", orderBasicInfo.getOrderCode(), e);
|
logger.error("订单交易确认失败:{}", orderBasicInfo.getOrderCode(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// clearingBillInfo.setReceivableAmount(receivableAmount);
|
|
||||||
// clearingBillInfo.setShouldClearingAmount(shouldClearingAmount);
|
|
||||||
// clearingBillInfo.setFeeAmount(feeAmount);
|
|
||||||
// clearingBillInfo.setWithdrawableAmount(withdrawableAmount);
|
|
||||||
// clearingBillInfo.setActualClearingAmount(actualClearingAmount);
|
|
||||||
// clearingBillInfo.setCreateTime(DateUtils.getNowDate());
|
|
||||||
// clearingBillInfo.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
|
||||||
|
|
||||||
// 保存清分账单
|
|
||||||
// ClearingBillTransactionDTO dto = new ClearingBillTransactionDTO();
|
|
||||||
// dto.setClearingBillInfo(clearingBillInfo);
|
|
||||||
// dto.setBillDetailList(billDetailList);
|
|
||||||
// transactionService.createClearingBill(dto);
|
|
||||||
}
|
}
|
||||||
logger.info("运营商:{}, 交易日期:{}, 进行分账处理end", merchantId, tradeDate);
|
logger.info("运营商:{}, 交易日期:{}, 进行分账处理end", merchantId, tradeDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 余额支付订单,使用余额支付转账
|
||||||
|
* @param orderBasicInfo
|
||||||
|
* @param adapayMemberAccount
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public OrderSettleResult doBalancePayment(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException {
|
||||||
|
// 计算应该支付金额,和手续费
|
||||||
|
SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(orderBasicInfo.getSettleAmount());
|
||||||
|
BigDecimal feeAmount = splitSettleAmountVO.getFeeAmount();
|
||||||
|
BigDecimal tradeAmount = splitSettleAmountVO.getTradeAmount();
|
||||||
|
|
||||||
|
String orderCode = orderBasicInfo.getOrderCode();
|
||||||
|
// 使用汇付余额支付功能
|
||||||
|
String outMemberId = Constants.ZERO; // 若为商户本身时,请传入0
|
||||||
|
String inMemberId = adapayMemberAccount.getAdapayMemberId();
|
||||||
|
String transAmt = AdapayUtil.formatAmount(tradeAmount);
|
||||||
|
String title = "订单结算入账";
|
||||||
|
String desc = "订单号:" + orderCode + ", 结算金额";
|
||||||
|
BalancePaymentResponse balancePaymentRequest = adapayMemberService.createBalancePaymentRequest(outMemberId, inMemberId, transAmt, title, desc);
|
||||||
|
|
||||||
|
OrderSettleResult result = new OrderSettleResult();
|
||||||
|
result.setConfirm_amt(balancePaymentRequest.getTrans_amt());
|
||||||
|
result.setStatus(balancePaymentRequest.getStatus());
|
||||||
|
result.setFee_amt(feeAmount.toString());
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("orderCode", orderCode);
|
||||||
|
result.setDescription(jsonObject.toJSONString());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 延迟交易订单 交易确认
|
* 延迟交易订单 交易确认
|
||||||
* @param orderBasicInfo 订单
|
* @param orderBasicInfo 订单
|
||||||
@@ -2361,9 +2344,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
settleOrderReport.setTradeDate(tradeDate);
|
settleOrderReport.setTradeDate(tradeDate);
|
||||||
settleOrderReport.setOrderCodes(Joiner.on(",").join(orderCodeList));
|
settleOrderReport.setOrderCodes(Joiner.on(",").join(orderCodeList));
|
||||||
// 计算手续费 = 结算金额 * 0.55%
|
// 计算手续费 = 结算金额 * 0.55%
|
||||||
BigDecimal tradeFee = totalSettleAmount.multiply(new BigDecimal(Constants.FEE_RATES));
|
SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(totalSettleAmount);
|
||||||
settleOrderReport.setTradeFee(tradeFee);
|
settleOrderReport.setTradeFee(splitSettleAmountVO.getFeeAmount());
|
||||||
settleOrderReport.setTradeAmount(totalSettleAmount.subtract(tradeFee));
|
settleOrderReport.setTradeAmount(splitSettleAmountVO.getTradeAmount());
|
||||||
// 根据站点id和交易日期查询
|
// 根据站点id和交易日期查询
|
||||||
SettleOrderReport selectResult = settleOrderReportService.selectByStationIdAndDate(stationId, tradeDate);
|
SettleOrderReport selectResult = settleOrderReportService.selectByStationIdAndDate(stationId, tradeDate);
|
||||||
if (selectResult != null) {
|
if (selectResult != null) {
|
||||||
@@ -2373,6 +2356,24 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
|||||||
settleOrderReportService.insertOrUpdate(settleOrderReport);
|
settleOrderReportService.insertOrUpdate(settleOrderReport);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过结算金额,计算客户到账金额和手续费
|
||||||
|
* @param settleAmount 需要拆分的结算金额
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private SplitSettleAmountVO splitSettleAmount(BigDecimal settleAmount) {
|
||||||
|
SplitSettleAmountVO resultVO = new SplitSettleAmountVO();
|
||||||
|
if (settleAmount == null) {
|
||||||
|
return resultVO;
|
||||||
|
}
|
||||||
|
// 计算手续费 = 结算金额 * 0.55%
|
||||||
|
BigDecimal fee = settleAmount.multiply(new BigDecimal(Constants.FEE_RATES));
|
||||||
|
resultVO.setSettleAmount(settleAmount);
|
||||||
|
resultVO.setFeeAmount(fee);
|
||||||
|
resultVO.setTradeAmount(settleAmount.subtract(fee));
|
||||||
|
return resultVO;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取运营商订单列表
|
* 获取运营商订单列表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.jsowell.pile.vo.base;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class SplitSettleAmountVO {
|
||||||
|
// 结算金额
|
||||||
|
private BigDecimal settleAmount;
|
||||||
|
|
||||||
|
// 手续费 = 结算金额 * 0.55%
|
||||||
|
private BigDecimal feeAmount;
|
||||||
|
|
||||||
|
// 交易金额 = 结算金额 - 手续费
|
||||||
|
private BigDecimal tradeAmount;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user