order-rep
parent
2c93553f51
commit
e3041d1401
|
|
@ -2,9 +2,13 @@
|
||||||
|
|
||||||
namespace App\Admin\Controllers\Store;
|
namespace App\Admin\Controllers\Store;
|
||||||
|
|
||||||
|
use App\Models\Admin\Administrator;
|
||||||
use App\Models\Store\{Store, StockLog, ProductSku};
|
use App\Models\Store\{Store, StockLog, ProductSku};
|
||||||
|
use App\Models\User;
|
||||||
|
use Carbon\Carbon;
|
||||||
use Dcat\Admin\{Form, Grid, Admin, Show};
|
use Dcat\Admin\{Form, Grid, Admin, Show};
|
||||||
use Dcat\Admin\Http\Controllers\AdminController;
|
use Dcat\Admin\Http\Controllers\AdminController;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||||
|
|
||||||
class StockController extends AdminController
|
class StockController extends AdminController
|
||||||
{
|
{
|
||||||
|
|
@ -30,9 +34,9 @@ class StockController extends AdminController
|
||||||
});
|
});
|
||||||
$grid->column('balance');
|
$grid->column('balance');
|
||||||
$grid->column('operator', '操作人')->display(function ($v) {
|
$grid->column('operator', '操作人')->display(function ($v) {
|
||||||
if ($v instanceof \App\Models\Admin\Administrator) {
|
if ($v instanceof Administrator) {
|
||||||
return $v->name . '<span class="label bg-primary">管理员</span>';
|
return $v->name . '<span class="label bg-primary">管理员</span>';
|
||||||
} else if ($v instanceof \App\Models\User) {
|
} else if ($v instanceof User) {
|
||||||
return $v->phone . '<span class="label bg-info">员工</span>';
|
return $v->phone . '<span class="label bg-info">员工</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -49,7 +53,31 @@ class StockController extends AdminController
|
||||||
$grid->filter(function (Grid\Filter $filter) {
|
$grid->filter(function (Grid\Filter $filter) {
|
||||||
$filter->panel();
|
$filter->panel();
|
||||||
$filter->equal('store_id')->select(Store::pluck('title', 'id'))->width(3);
|
$filter->equal('store_id')->select(Store::pluck('title', 'id'))->width(3);
|
||||||
|
$filter->like('productSku.name', '商品')->width(3);
|
||||||
$filter->equal('tag_id', '类目')->select(StockLog::tags()->pluck('name', 'id'))->width(3);
|
$filter->equal('tag_id', '类目')->select(StockLog::tags()->pluck('name', 'id'))->width(3);
|
||||||
|
$filter->where('operator', function ($q) {
|
||||||
|
$input = $this->input;
|
||||||
|
$condition = '%'.$input.'%';
|
||||||
|
$q->whereHasMorph('operator', [Administrator::class, User::class], function ($q1, $type) use ($condition) {
|
||||||
|
$column = $type === Administrator::class ? 'name' : 'phone';
|
||||||
|
|
||||||
|
$q1->where($column, 'like', $condition);
|
||||||
|
});
|
||||||
|
})->placeholder('管理员姓名/员工手机号')->width(3);
|
||||||
|
$filter->whereBetween('created_at', function ($q) {
|
||||||
|
$start = data_get($this->input, 'start');
|
||||||
|
$start = $start ? Carbon::createFromFormat('Y-m-d', $start) : null;
|
||||||
|
$end = data_get($this->input, 'end');
|
||||||
|
$end = $end ? Carbon::createFromFormat('Y-m-d', $end) : null;
|
||||||
|
if ($start) {
|
||||||
|
if ($end) {
|
||||||
|
$q->whereBetween('created_at', [$start, $end]);
|
||||||
|
}
|
||||||
|
$q->where('created_at', '>=', $start);
|
||||||
|
} elseif ($end) {
|
||||||
|
$q->where('created_at', '<=', $end);
|
||||||
|
}
|
||||||
|
}, '操作时间')->date()->width(3);
|
||||||
});
|
});
|
||||||
return $grid;
|
return $grid;
|
||||||
}
|
}
|
||||||
|
|
@ -91,7 +119,7 @@ class StockController extends AdminController
|
||||||
|
|
||||||
// 操作人
|
// 操作人
|
||||||
$administrator = Admin::user();
|
$administrator = Admin::user();
|
||||||
$form->input('operator_type', get_class($administrator));
|
$form->input('operator_type', $administrator->getMorphClass());
|
||||||
$form->input('operator_id', $administrator->id);
|
$form->input('operator_id', $administrator->id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
namespace App\Endpoint\Api\Http\Controllers\Order;
|
namespace App\Endpoint\Api\Http\Controllers\Order;
|
||||||
|
|
||||||
use App\Endpoint\Api\Http\Controllers\Controller;
|
use App\Endpoint\Api\Http\Controllers\Controller;
|
||||||
|
use App\Endpoint\Api\Http\Resources\OrderPreResource;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\{Order, OrderPre, ProductSku};
|
use App\Models\{Order, OrderPre, ProductSku};
|
||||||
use App\Models\Store\Store;
|
use App\Models\Store\Store;
|
||||||
|
|
@ -99,6 +100,13 @@ class OrderPreController extends Controller
|
||||||
throw new BizException('生成失败, 请稍后再试');
|
throw new BizException('生成失败, 请稍后再试');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
$info = OrderPre::findOrFail($id);
|
||||||
|
|
||||||
|
return OrderPreResource::make($info);
|
||||||
|
}
|
||||||
|
|
||||||
public function storeOrder(Request $request)
|
public function storeOrder(Request $request)
|
||||||
{
|
{
|
||||||
$id = $request->input('id');
|
$id = $request->input('id');
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ class UnlineController extends Controller
|
||||||
'amount' => $product->pivot->amount - $amount
|
'amount' => $product->pivot->amount - $amount
|
||||||
]);
|
]);
|
||||||
$store->stockLogs()->create([
|
$store->stockLogs()->create([
|
||||||
'operator_type' => get_class($user),
|
'operator_type' => $user->getMorphClass(),
|
||||||
'operator_id' => $user->id,
|
'operator_id' => $user->id,
|
||||||
'source_type' => Order::class,
|
'source_type' => Order::class,
|
||||||
'source_id' => $order->id,
|
'source_id' => $order->id,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Endpoint\Api\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class OrderPreResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||||
|
*/
|
||||||
|
public function toArray($request)
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'store_id' => $this->store_id,
|
||||||
|
'user_id' => $this->user_id,
|
||||||
|
'products' => $this->products,
|
||||||
|
'others' => $this->others,
|
||||||
|
'created_at' => $this->created_at->timestamp,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -232,6 +232,7 @@ Route::group([
|
||||||
|
|
||||||
// 门店下单
|
// 门店下单
|
||||||
Route::group(['middleware' => ['auth:api', \App\Endpoint\Api\Http\Middleware\CheckUserStatus::class]], function () {
|
Route::group(['middleware' => ['auth:api', \App\Endpoint\Api\Http\Middleware\CheckUserStatus::class]], function () {
|
||||||
|
Route::get('order-pre/{id}', [App\Endpoint\Api\Http\Controllers\Order\OrderPreController::class, 'show']);
|
||||||
Route::post('order-pre', [App\Endpoint\Api\Http\Controllers\Order\OrderPreController::class, 'store']);
|
Route::post('order-pre', [App\Endpoint\Api\Http\Controllers\Order\OrderPreController::class, 'store']);
|
||||||
Route::post('order-pre/order', [App\Endpoint\Api\Http\Controllers\Order\OrderPreController::class, 'storeOrder']);
|
Route::post('order-pre/order', [App\Endpoint\Api\Http\Controllers\Order\OrderPreController::class, 'storeOrder']);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue