...
|
...
|
@@ -157,6 +157,9 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
swd.setType(SellerWalletDetail.Type.RE_CHARGE.getValue());
|
|
|
swd.setCreateTime(TimeUtils.getTimeStampSecond());
|
|
|
swd.setUpdateTime(0);
|
|
|
swd.setAvailAmount(orderInfo.getAmount());
|
|
|
swd.setLockAmount(BigDecimal.ZERO);
|
|
|
swd.setIsSet(1);
|
|
|
JSONObject att = new JSONObject();
|
|
|
att.put("payment", orderInfo.getPayment());
|
|
|
swd.setAttachValue(att.toJSONString());
|
...
|
...
|
@@ -389,7 +392,7 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
// 支付保证金:明细记录+orders_pay记录
|
|
|
public void useEarnestAddWalletDetail(SellerWallet sw, List<OrderInfo> orderList) {
|
|
|
for(OrderInfo oi : orderList) {
|
|
|
SellerWalletDetail swd = addWalletDetail(sw, oi.getOrderCode(), oi.getAmount(), 1, SellerWalletDetail.Type.PUBLISH);
|
|
|
SellerWalletDetail swd = addWalletDetail(sw, oi.getOrderCode(), oi.getAmount(), SellerWalletDetail.Type.PUBLISH);
|
|
|
addOrdersPay(swd);
|
|
|
}
|
|
|
}
|
...
|
...
|
@@ -403,7 +406,7 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
} else {
|
|
|
t = SellerWalletDetail.Type.SUBTRACT_PRICE;
|
|
|
}
|
|
|
SellerWalletDetail swd = addWalletDetail(sw, oi.getOrderCode(), oi.getAmount(), 1, t);
|
|
|
SellerWalletDetail swd = addWalletDetail(sw, oi.getOrderCode(), oi.getAmount(), t);
|
|
|
changePriceUpdateOrdersPay(swd);
|
|
|
}
|
|
|
}
|
...
|
...
|
@@ -411,7 +414,7 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
// 下架商品(卖家+系统):明细记录+退款表记录
|
|
|
public void unshelveAddWalletDetail(SellerWallet sw, List<OrderInfo> orderList, SellerWalletDetail.Type type) {
|
|
|
for(OrderInfo oi : orderList) {
|
|
|
SellerWalletDetail swd = addWalletDetail(sw, oi.getOrderCode(), oi.getAmount(), 1, type);
|
|
|
SellerWalletDetail swd = addWalletDetail(sw, oi.getOrderCode(), oi.getAmount(), type);
|
|
|
addRefundRecord(swd, oi.getAmount());
|
|
|
}
|
|
|
}
|
...
|
...
|
@@ -465,6 +468,9 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
swd.setIsBatch(0);
|
|
|
swd.setCreateTime(TimeUtils.getTimeStampSecond());
|
|
|
swd.setUpdateTime(0);
|
|
|
swd.setAvailAmount(BigDecimal.ZERO);
|
|
|
swd.setLockAmount(BigDecimal.ZERO);
|
|
|
swd.setIsSet(1);
|
|
|
logger.info("商家退出,退还保证金,钱包归零处理,增加扣减明细,bean={}", swd);
|
|
|
sellerWalletDetailMapper.insert(swd);
|
|
|
|
...
|
...
|
@@ -472,7 +478,7 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
}
|
|
|
|
|
|
// 增加:明细
|
|
|
private SellerWalletDetail addWalletDetail(SellerWallet sw, long orderCode, BigDecimal amount, Integer isBatch, SellerWalletDetail.Type type) {
|
|
|
private SellerWalletDetail addWalletDetail(SellerWallet sw, long orderCode, BigDecimal amount, SellerWalletDetail.Type type) {
|
|
|
Integer uid = sw.getUid();
|
|
|
SellerWalletDetail swd = new SellerWalletDetail();
|
|
|
swd.setOrderCode(orderCode);
|
...
|
...
|
@@ -480,7 +486,7 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
swd.setUid(uid);
|
|
|
swd.setWalletId(sw.getId());
|
|
|
swd.setAmount(amount);
|
|
|
swd.setIsBatch(isBatch);
|
|
|
swd.setIsBatch(1);
|
|
|
swd.setCreateTime(TimeUtils.getTimeStampSecond());
|
|
|
swd.setUpdateTime(0);
|
|
|
logger.info("增加保证金明细({}),bean={}", type.getName(), swd);
|
...
|
...
|
@@ -511,34 +517,39 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
return null;
|
|
|
}
|
|
|
|
|
|
sw.setAmount(null);
|
|
|
sw.setLockAmount(null);
|
|
|
BigDecimal beforeAvailAmount = sw.getAmount();
|
|
|
BigDecimal beforeLockAmount = sw.getLockAmount();
|
|
|
BigDecimal availAmount = null;
|
|
|
BigDecimal lockAmount = null;
|
|
|
|
|
|
// 减去保证金
|
|
|
if (type == SellerWalletDetail.Type.PUBLISH
|
|
|
|| type == SellerWalletDetail.Type.ADD_PRICE
|
|
|
|| type == SellerWalletDetail.Type.SUBTRACT_PRICE) {
|
|
|
sw.setAmount(money.multiply(new BigDecimal("-1")));
|
|
|
sw.setLockAmount(money);
|
|
|
availAmount = money.multiply(new BigDecimal("-1"));
|
|
|
lockAmount = money;
|
|
|
} else if (type == SellerWalletDetail.Type.SELLER_OFF
|
|
|
|| type == SellerWalletDetail.Type.SYSTEM_OFF
|
|
|
|| type == SellerWalletDetail.Type.APPRAISE_OK
|
|
|
|| type == SellerWalletDetail.Type.BUYER_CANCEL_DELIVERY
|
|
|
|| type == SellerWalletDetail.Type.BUYER_CANCEL_NO_DELIVERY) {
|
|
|
// 增加保证金
|
|
|
sw.setAmount(money);
|
|
|
sw.setLockAmount(money.multiply(new BigDecimal("-1")));
|
|
|
availAmount = money;
|
|
|
lockAmount = money.multiply(new BigDecimal("-1"));
|
|
|
} else if (type == SellerWalletDetail.Type.SELLER_CANCEL
|
|
|
|| type == SellerWalletDetail.Type.SELLER_OVER_TIME
|
|
|
|| type == SellerWalletDetail.Type.APPRAISE_FAIL) {
|
|
|
// 处罚保证金
|
|
|
sw.setLockAmount(money.multiply(new BigDecimal("-1")));
|
|
|
lockAmount = money.multiply(new BigDecimal("-1"));
|
|
|
}
|
|
|
|
|
|
sw.setAmount(availAmount);
|
|
|
sw.setLockAmount(lockAmount);
|
|
|
sw.setUpdateTime(TimeUtils.getTimeStampSecond());
|
|
|
logger.info("{}修改钱包表余额,bean={}", sw);
|
|
|
if (sellerWalletMapper.addMoney(sw) == 0) {
|
|
|
logger.error(message + "失败,(并发)更新表返回0,uid={}", uid);
|
|
|
CommonAlarmEventPublisher.publish(message + "失败", "ufo.order.changePrice", "(并发)更新表返回0,uid=" + uid + ", 金额为:"+ money);
|
|
|
logger.error(message + "失败,(并发)更新表返回0,bean={}", sw);
|
|
|
CommonAlarmEventPublisher.publish(message + "失败", "ufo.order.changePrice", "(并发)更新表返回0,uid=" + uid + ", bean为:"+ sw);
|
|
|
return null;
|
|
|
}
|
|
|
logger.info("{}修改钱包表余额成功,bean={}", sw);
|
...
|
...
|
@@ -550,9 +561,14 @@ public class MerchantOrderPaymentService extends AbstractOrderPaymentService { |
|
|
swd.setWalletId(sw.getId());
|
|
|
swd.setAmount(money);
|
|
|
swd.setIsBatch(0);
|
|
|
swd.setAttachValue(attach);
|
|
|
swd.setCreateTime(TimeUtils.getTimeStampSecond());
|
|
|
swd.setUpdateTime(0);
|
|
|
//////////////////////////
|
|
|
swd.setAttachValue(attach);
|
|
|
swd.setAvailAmount(availAmount == null ? beforeAvailAmount : beforeAvailAmount.add(availAmount));
|
|
|
swd.setLockAmount(lockAmount == null ? beforeLockAmount : beforeLockAmount.add(lockAmount));
|
|
|
swd.setIsSet(0);
|
|
|
/////////////////////////
|
|
|
logger.info("增加钱包明细汇总记录,bean={}", swd);
|
|
|
sellerWalletDetailMapper.insert(swd);
|
|
|
logger.info("增加钱包明细汇总记录成功,bean={}", swd);
|
...
|
...
|
|