|
|
@@ -3,19 +3,16 @@
|
|
|
namespace bizHd\custom\classes;
|
|
|
|
|
|
use biz\wx\classes\WxMessageClass;
|
|
|
-use bizGhs\shop\classes\TotalDebtChangeClass;
|
|
|
use bizHd\balance\classes\BalanceChangeClass;
|
|
|
use bizHd\balance\classes\BalanceGiveChangeClass;
|
|
|
use bizHd\balance\classes\BalancePayChangeClass;
|
|
|
use bizHd\member\classes\MemberChangeClass;
|
|
|
use bizHd\member\classes\MemberWealClass;
|
|
|
+use bizHd\order\classes\OrderClass;
|
|
|
use bizHd\order\classes\SettleClass;
|
|
|
-use bizHd\shop\classes\MainClass;
|
|
|
use bizHd\shop\classes\ShopClass;
|
|
|
-use bizMall\user\classes\UserClass;
|
|
|
use common\components\dict;
|
|
|
use common\components\imgUtil;
|
|
|
-use common\components\noticeUtil;
|
|
|
use common\components\stringUtil;
|
|
|
use common\components\util;
|
|
|
use Yii;
|
|
|
@@ -454,32 +451,33 @@ class CustomClass extends BaseClass
|
|
|
$hdId = $custom->hdId ?? 0;
|
|
|
$hd = HdClass::getLockById($hdId);
|
|
|
if (empty($hd)) {
|
|
|
- util::fail('花店信息缺失,编号520');
|
|
|
+ util::fail('花店信息缺失,编号5362');
|
|
|
}
|
|
|
-
|
|
|
$customBalance = bcadd($custom->balance, $amount, 2);
|
|
|
$custom->balance = $customBalance;
|
|
|
if ($custom->balance < 0) {
|
|
|
$custom->isDebt = 1;
|
|
|
}
|
|
|
$custom->save();
|
|
|
-
|
|
|
$hdBalance = bcadd($hd->balance, $amount, 2);
|
|
|
$hd->balance = $hdBalance;
|
|
|
if ($hd->balance < 0) {
|
|
|
$hd->debt = 2;
|
|
|
}
|
|
|
$hd->save();
|
|
|
-
|
|
|
if (floatval($customBalance) !== floatval($hdBalance)) {
|
|
|
util::fail('余额错误,请联系管理员,编号' . $hdId);
|
|
|
}
|
|
|
-
|
|
|
$relateId = $refund->id ?? 0;
|
|
|
$customId = $custom->id ?? 0;
|
|
|
$refundSn = $refund->refundSn ?? '';
|
|
|
$orderSn = $refund->orderSn ?? '';
|
|
|
$orderId = $refund->orderId ?? 0;
|
|
|
+ $order = OrderClass::getLockById($orderId);
|
|
|
+ if (empty($order)) {
|
|
|
+ util::fail('没有找到订单哈!');
|
|
|
+ }
|
|
|
+ $currentPayWay = $order->payWay ?? 0;
|
|
|
$staffId = $refund->shopAdminId ?? 0;
|
|
|
$staffName = $refund->shopAdminName ?? '';
|
|
|
$capitalType = dict::getDict('capitalType', 'hdRefund', 'id');
|
|
|
@@ -510,6 +508,101 @@ class CustomClass extends BaseClass
|
|
|
'remark' => '',
|
|
|
];
|
|
|
BalanceChangeClass::add($change, true);
|
|
|
+
|
|
|
+ // 多处需要同步修改 balance_pay_give
|
|
|
+ $mustUseGiveAmount = 0;
|
|
|
+ $buyAmount = 0;
|
|
|
+ if ($currentPayWay == 3) {
|
|
|
+ //如果是欠款的售后,不退款到赠送的余额里
|
|
|
+ $buyAmount = $amount;
|
|
|
+ } elseif ($currentPayWay == 2) {
|
|
|
+ //这个是总消费的余额
|
|
|
+ $actPrice = $order->actPrice ?? 0;
|
|
|
+ //这个是总消费余额中赠送余额部分
|
|
|
+ $giveBalance = $order->giveBalance ?? 0;
|
|
|
+ //这个是总消费余额中充值余额部分
|
|
|
+ $payBalance = bcsub($actPrice, $giveBalance, 2);
|
|
|
+ //这个是累计已经退还的余额
|
|
|
+ $tkPrice = $order->tkPrice ?? 0;
|
|
|
+ //这个是当前流程走完后累计退还的余额
|
|
|
+ $totalTkPrice = bcadd($tkPrice, $amount, 2);
|
|
|
+ //累计退还的余额如果超过了充值余额的话,说明要开始退还赠送的余额了
|
|
|
+ if ($totalTkPrice > $payBalance) {
|
|
|
+ $diffAmount = bcsub($totalTkPrice, $payBalance, 2);
|
|
|
+ if ($diffAmount > $amount) {
|
|
|
+ $mustUseGiveAmount = $amount;
|
|
|
+ } else {
|
|
|
+ $buyAmount = bcsub($amount, $diffAmount, 2);
|
|
|
+ $mustUseGiveAmount = bcsub($amount, $buyAmount, 2);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $buyAmount = $amount;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ util::fail('无效的支付方式!编号69880');
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($buyAmount > 0) {
|
|
|
+ $customBalancePay = bcadd($custom->balancePay, $buyAmount, 2);
|
|
|
+ $custom->balancePay = $customBalancePay;
|
|
|
+ $custom->save();
|
|
|
+ $hdBalancePay = bcadd($hd->balancePay, $buyAmount, 2);
|
|
|
+ $hd->balancePay = $hdBalancePay;
|
|
|
+ $hd->save();
|
|
|
+ $payChange = [
|
|
|
+ 'customId' => $customId,
|
|
|
+ 'customName' => $customName,
|
|
|
+ 'relateId' => $relateId,
|
|
|
+ 'relateSn' => $refundSn,
|
|
|
+ 'onlinePay' => $onlinePay,
|
|
|
+ 'capitalType' => $capitalType,
|
|
|
+ 'amount' => $buyAmount,
|
|
|
+ 'balance' => $hdBalancePay,
|
|
|
+ 'io' => 1,
|
|
|
+ 'side' => $side,
|
|
|
+ 'payWay' => $payWay,
|
|
|
+ 'event' => $event,
|
|
|
+ 'staffId' => $staffId,
|
|
|
+ 'staffName' => $staffName,
|
|
|
+ 'shopId' => $refund->shopId,
|
|
|
+ 'mainId' => $refund->mainId,
|
|
|
+ 'refundOrderId' => $orderId,
|
|
|
+ 'refundOrderSn' => $orderSn,
|
|
|
+ 'remark' => '',
|
|
|
+ ];
|
|
|
+ BalancePayChangeClass::add($payChange, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($mustUseGiveAmount > 0) {
|
|
|
+ $customBalanceGive = bcadd($custom->balanceGive, $mustUseGiveAmount, 2);
|
|
|
+ $custom->balanceGive = $customBalanceGive;
|
|
|
+ $custom->save();
|
|
|
+ $hdBalanceGive = bcadd($hd->balanceGive, $mustUseGiveAmount, 2);
|
|
|
+ $hd->balanceGive = $hdBalanceGive;
|
|
|
+ $hd->save();
|
|
|
+ $giveChange = [
|
|
|
+ 'customId' => $customId,
|
|
|
+ 'customName' => $customName,
|
|
|
+ 'relateId' => $relateId,
|
|
|
+ 'relateSn' => $refundSn,
|
|
|
+ 'onlinePay' => $onlinePay,
|
|
|
+ 'capitalType' => $capitalType,
|
|
|
+ 'amount' => $mustUseGiveAmount,
|
|
|
+ 'balance' => $hdBalanceGive,
|
|
|
+ 'io' => 1,
|
|
|
+ 'side' => $side,
|
|
|
+ 'payWay' => $payWay,
|
|
|
+ 'event' => $event,
|
|
|
+ 'staffId' => $staffId,
|
|
|
+ 'staffName' => $staffName,
|
|
|
+ 'shopId' => $refund->shopId,
|
|
|
+ 'mainId' => $refund->mainId,
|
|
|
+ 'refundOrderId' => $orderId,
|
|
|
+ 'refundOrderSn' => $orderSn,
|
|
|
+ 'remark' => '',
|
|
|
+ ];
|
|
|
+ BalanceGiveChangeClass::add($giveChange, true);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//添加客户 ssh 2021.2.28
|