diff --git a/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php b/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php index 2d6b3de..b117371 100644 --- a/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php +++ b/app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php @@ -2,10 +2,14 @@ namespace App\AdminAgent\Extensions\Grid; use App\Common\OrderStatus; +use App\Common\StatementType; use App\Models\Order; use App\Models\Agent; use App\Models\OrderProductItem; use App\Models\Supplier; +use App\Service\WithdrawalService; +use App\Traits\DemandTraits; +use App\Traits\StatementTraits; use Dcat\Admin\Admin; use Dcat\Admin\Grid\RowAction; use Illuminate\Support\Facades\DB; @@ -44,16 +48,39 @@ class ChangeOrderStatus extends RowAction $order->verify_code = uniqid(); //生成核销码 $order->save(); //扣供应商余额 - $agent->balance = bcsub($agent->balance,$order->price,6); + $service = new WithdrawalService(); + $agentPrice = bcsub($agent->balance,$order->price,6); + $agent->balance = $agentPrice; $agent->save(); - + $statementCreate[] = $service->createByOrder( + bcmul($agentPrice, -1, 6), + StatementType::ORDER, + $order->agent_id, + DemandTraits::$col[0], + $order->id, + StatementTraits::$type[0] + ); + $orderItem = OrderProductItem::query()->where('order_id',$order->id)->get(); foreach ($orderItem as $item) { $supplier = Supplier::query()->where('id',$item->supplier_id)->lockForUpdate()->first(); $supplier->balance = bcadd($supplier->balance,$item->price,6); $supplier->save(); + $statementCreate[] = $service->createByOrder( + $item->price, + StatementType::ORDER, + $item->supplier_id, + DemandTraits::$col[1], + $order->id, + StatementTraits::$type[0] + ); + } + + if (!empty($statementCreate)) { + $order->statement()->createMany($statementCreate); } + DB::commit(); return $this->response()->success("操作成功,已设置为“线下已付款”")->refresh(); } catch (\Exception $e) { diff --git a/app/Http/Controllers/Api/VerificationController.php b/app/Http/Controllers/Api/VerificationController.php index 48c6dfb..b89dba1 100644 --- a/app/Http/Controllers/Api/VerificationController.php +++ b/app/Http/Controllers/Api/VerificationController.php @@ -163,7 +163,7 @@ class VerificationController extends Controller ->where('order_id', $order->id) ->with('supplier') ->select('*') - ->selectRaw('sum(price) as sum_price,sum(service_persons * num) as sum_persons') + ->selectRaw('sum(price) as sum_price,sum(single_deposit * num) as sum_persons') ->groupBy('supplier_id') ->get(); foreach ($orderItem as $v) { @@ -208,9 +208,9 @@ class VerificationController extends Controller $supplier = Supplier::query()->where('id', $v->supplier_id)->lockForUpdate()->first(); //处理交易金 - if ($order->single_price > 0 && $v->sum_persons > 0) { + if ($v->sum_persons > 0) { //计算交易金 - $deposit = bcmul($order->single_price,$v->sum_persons,6); + $deposit = $v->sum_persons; //流水 $statementCreate[] = $service->createByOrder( bcmul($deposit, -1, 6),