Lemon 4 years ago
parent
commit
082f2fa77f
  1. 31
      app/AdminAgent/Extensions/Grid/ChangeOrderStatus.php
  2. 6
      app/Http/Controllers/Api/VerificationController.php

31
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) {

6
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),

Loading…
Cancel
Save