1
0

提交代码

This commit is contained in:
2020-08-06 14:45:56 +08:00
commit 9d0d5f4be9
361 changed files with 36445 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
<?php
namespace App\Admin\Actions;
use App\Models\Card;
use App\Models\CardOrder;
use App\Models\User;
use Encore\Admin\Actions\Action;
use Illuminate\Http\Request;
class AllotCard extends Action
{
protected $selector = '.report-posts';
public function handle(Request $request)
{
$request->validate([
'startNum' => 'required|integer|min:1|lte:endNum',
'endNum' => 'required|integer|min:1',
], [
'startNum.required' => '开始号码必须填写',
'startNum.integer' => '开始号码必须是整数',
'startNum.min' => '开始号码最小为1',
'startNum.lte' => '开始号码要小于结束号码',
'endNum.required' => '结束号码必须填写',
'endNum.integer' => '结束号码必须是整数',
'endNum.min' => '结束号码最小为1',
]);
$response = $this->response();
$startNum = $request->startNum ?: 0;
$endNum = $request->endNum ?: 0;
$order_id = $request->order_id ?: 0;
$company = $request->company;
$number = $request->number;
$order = CardOrder::where('status', 1)->find($order_id);
if (!$order) {
$response->status = false;
return $response->error('订单不存在或状态不正确');
}
$startNum = sprintf("%'.08d", $startNum);
$endNum = sprintf("%'.08d", $endNum);
$count = Card::whereBetween('code', [$startNum, $endNum])->count();
if ($order->num != $count) {
$response->status = false;
return $response->error('调拨数量与订单数量不匹配');
}
$isActive = Card::whereBetween('code', [$startNum, $endNum])->where('status', '!=', 1)->value('code');
if ($isActive) {
$response->status = false;
return $response->error($isActive . '卡号状态不正确');
}
if (!$order->user) {
$response->status = false;
return $response->error('用户不存在');
} elseif ($order->user->identity->identity_id < 2) {
$response->status = false;
return $response->error($order->user->username . '用户不是代理');
}
$order->status = 2;
$order->save();
$order->deliver($company, $number);
Card::whereBetween('code', [$startNum, $endNum])->update([
'user_id' => $order->user_id,
'order_id' => $order->id,
'status' => 3,
]);
return $response->success('卡分配完毕')->refresh();
}
public function form()
{
$orders = CardOrder::where('status', 1)->get();
$orderData = array();
foreach ($orders as $key => $order) {
$orderData[$order->id] = '单号:' . $order->order_id . '(用户账号:' . $order->user->username . ',数量:' . $order->num . '';
}
$options = deliver_list();
$this->select('order_id', '订单号')->options($orderData)->rules('required');
$this->text('startNum', '开始')->rules('required|integer|min:1');
$this->text('endNum', '结束')->rules('required|integer|min:1');
$this->select('company', '物流名称')->options($options)->required();
$this->text('number', '物流单号')->required();
}
public function html()
{
return "<a class='report-posts btn btn-sm btn-danger'><i class='fa fa-info-circle'></i>分配卡</a>";
}
}