|
|
@@ -2,9 +2,13 @@
|
|
|
|
|
|
namespace hd\controllers;
|
|
|
|
|
|
+use bizHd\custom\classes\CustomClass;
|
|
|
+use bizHd\custom\classes\HdClass;
|
|
|
use bizHd\order\classes\OrderClass;
|
|
|
use bizHd\order\classes\SettleClass;
|
|
|
+use bizHd\recharge\classes\RechargeClass;
|
|
|
use common\components\dict;
|
|
|
+use common\components\orderSn;
|
|
|
use common\components\util;
|
|
|
use Yii;
|
|
|
|
|
|
@@ -24,11 +28,77 @@ class SettleController extends BaseController
|
|
|
$staff = $this->shopAdmin;
|
|
|
$payWay = $post['payWay'] ?? dict::getDict('payWay', 'wxPay');
|
|
|
$id = $post['id'] ?? '';
|
|
|
+ $customId = $post['customId'] ?? 0;
|
|
|
+ $custom = CustomClass::getLockById($customId);
|
|
|
+ if (empty($custom)) {
|
|
|
+ util::fail('没有找到客户');
|
|
|
+ }
|
|
|
+ $hdId = $custom->hdId ?? 0;
|
|
|
+ $hd = HdClass::getlockById($hdId);
|
|
|
+ if (empty($hd)) {
|
|
|
+ util::fail('客户信息缺失');
|
|
|
+ }
|
|
|
+
|
|
|
+ //1、先充值
|
|
|
+ $rechargeAmount = 0;
|
|
|
if (is_numeric($id)) {
|
|
|
$order = OrderClass::getById($id, true);
|
|
|
if (empty($order)) {
|
|
|
util::fail('没有找到订单');
|
|
|
}
|
|
|
+ $rechargeAmount = $order->remainDebtPrice ?? 0;
|
|
|
+ } else {
|
|
|
+ $idArr = json_decode($id, true);
|
|
|
+ $ids = array_column($idArr, 'id');
|
|
|
+ $orderList = OrderClass::getAllByCondition(['id' => ['in', $ids]], null, '*', null, true);
|
|
|
+ if (!empty($orderList)) {
|
|
|
+ foreach ($orderList as $order) {
|
|
|
+ $remainDebtPrice = $order->remainDebtPrice ?? 0;
|
|
|
+ $rechargeAmount = bcadd($rechargeAmount, $remainDebtPrice, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (empty($rechargeAmount)) {
|
|
|
+ util::fail('不需要销账');
|
|
|
+ }
|
|
|
+ $staffId = $this->shopAdminId;
|
|
|
+ $staffName = $this->shopAdminName;
|
|
|
+ $customName = $custom->name ?? '';
|
|
|
+ $hdName = $hd->name;
|
|
|
+ $shopId = $this->shopId;
|
|
|
+ $mainId = $this->mainId;
|
|
|
+ $orderSn = orderSn::getRechargeSn();
|
|
|
+ $rechargeData = [
|
|
|
+ 'orderSn' => $orderSn,
|
|
|
+ 'modPrice' => 1,
|
|
|
+ 'payWay' => $payWay,
|
|
|
+ 'shopId' => $shopId,
|
|
|
+ 'mainId' => $mainId,
|
|
|
+ 'hdId' => $hdId,
|
|
|
+ 'hdName' => $hdName,
|
|
|
+ 'onlinePay' => 1,
|
|
|
+ 'amount' => $rechargeAmount,
|
|
|
+ 'staffId' => $staffId,
|
|
|
+ 'staffName' => $staffName,
|
|
|
+ 'payStatus' => 0,
|
|
|
+ 'payTime' => '0000-00-00 00:00:00',
|
|
|
+ 'status' => 0,
|
|
|
+ 'remark' => '',
|
|
|
+ 'customId' => $customId,
|
|
|
+ 'customName' => $customName,
|
|
|
+ ];
|
|
|
+ $respond = RechargeClass::addRecharge($rechargeData);
|
|
|
+ $id = $respond->id;
|
|
|
+ $recharge = RechargeClass::getLockById($id);
|
|
|
+ $params = [
|
|
|
+ 'onlinePay' => 1,
|
|
|
+ 'side' => 0,
|
|
|
+ ];
|
|
|
+ RechargeClass::complete($recharge, $payWay, $params);
|
|
|
+
|
|
|
+ //2、再销账
|
|
|
+ if (is_numeric($id)) {
|
|
|
+ $order = OrderClass::getById($id, true);
|
|
|
OrderClass::valid($order, $this->mainId);
|
|
|
SettleClass::confirmSettle($order, $payWay, $staff);
|
|
|
} else {
|