|
@@ -39,7 +39,7 @@ public class SplitAccountService extends BaseService {
|
|
|
@Resource
|
|
|
private NewShopOrderDao newShopOrderDao;
|
|
|
|
|
|
- @Transactional(readOnly = false,rollbackFor = Exception.class)
|
|
|
+ @Transactional(readOnly = false, rollbackFor = Exception.class)
|
|
|
public void SplitAccount(String shopOrderIds) {
|
|
|
logger.info("【手动分账开始】>>>>>>>>>>手动分账");
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
@@ -47,7 +47,7 @@ public class SplitAccountService extends BaseService {
|
|
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
String currentTime = format.format(calendar.getTime());
|
|
|
// 查询未分账已支付收款
|
|
|
- List<OrderReceiptRelationPo> orderRelations = newOrderDao.getUndividedPaidReceipt(currentTime,shopOrderIds);
|
|
|
+ List<OrderReceiptRelationPo> orderRelations = newOrderDao.getUndividedPaidReceipt(currentTime, shopOrderIds);
|
|
|
if (null != orderRelations && orderRelations.size() > 0) {
|
|
|
for (OrderReceiptRelationPo orderRelation : orderRelations) {
|
|
|
logger.info("【分账】>>>>>>>>>>子订单id:" + orderRelation.getShopOrderId() + "进入分账");
|
|
@@ -68,6 +68,13 @@ public class SplitAccountService extends BaseService {
|
|
|
if (8 == orderRelation.getPayType() || 13 == orderRelation.getPayType() || 15 == orderRelation.getPayType()) {
|
|
|
payParam.setPayWay("WX");
|
|
|
}
|
|
|
+ //快捷支付 借记卡支付28,贷记卡支付29
|
|
|
+ if (28 == orderRelation.getPayType()) {
|
|
|
+ payParam.setPayWay("DEBIT");
|
|
|
+ }
|
|
|
+ if (29 == orderRelation.getPayType()) {
|
|
|
+ payParam.setPayWay("CREDIT");
|
|
|
+ }
|
|
|
List<SplitAccountPo> splitBillDetail = setSplitAccountDetail(shopOrder, payParam);
|
|
|
HashMap<String, BigDecimal> sbm = new HashMap<>();
|
|
|
for (SplitAccountPo splitAccountPo : splitBillDetail) {
|
|
@@ -96,7 +103,7 @@ public class SplitAccountService extends BaseService {
|
|
|
splitBillRule.setSplitBillAmount(value);
|
|
|
splitBillRule.setSplitBillMerchantNo(key);
|
|
|
splitBillRules.add(splitBillRule);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 成本分账处理
|
|
|
// 子订单的splitcode和分账对象的splitcode一样的是留在账户里的钱,实际在付款完成后,付款状态就为已付款,分账状态就为已分账
|
|
|
// 为维持业务完整性,保持原来的分账流程不变
|
|
@@ -268,6 +275,16 @@ public class SplitAccountService extends BaseService {
|
|
|
} else if ("WX".equals(payParam.getPayWay())) {
|
|
|
//微信0.65%
|
|
|
procedureFee = MathUtil.mul(payAmount, 0.0065, 2).doubleValue();
|
|
|
+ } else if ("DEBIT".equals(payParam.getPayWay())) {
|
|
|
+ procedureFee = MathUtil.mul(payAmount, 0.003, 2).doubleValue();
|
|
|
+ if (procedureFee < 0.1) {
|
|
|
+ procedureFee = 0.1;
|
|
|
+ }
|
|
|
+ } else if ("CREDIT".equals(payParam.getPayWay())) {
|
|
|
+ procedureFee = MathUtil.mul(payAmount, 0.006, 2).doubleValue();
|
|
|
+ if (procedureFee < 0.1) {
|
|
|
+ procedureFee = 0.1;
|
|
|
+ }
|
|
|
} else {
|
|
|
//手续费 其他0.25%
|
|
|
procedureFee = MathUtil.mul(payAmount, 0.0025, 2).doubleValue();
|