feat: #20220804 商品流程测试修改

This commit is contained in:
赵世界 2022-08-04 13:55:28 +08:00
parent 9553c73c42
commit 088c41cee9

View File

@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use App\Http\Requests\GoodsRequest; use App\Http\Requests\GoodsRequest;
use App\Http\Requests\GoodsSkuRequest; use App\Http\Requests\GoodsSkuRequest;
use App\Models\Goods; use App\Models\Goods;
use App\Models\Log;
use App\Models\Log as LogModel; use App\Models\Log as LogModel;
use App\Utils\FormatUtils; use App\Utils\FormatUtils;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -36,10 +37,20 @@ class GoodsSkusController extends Controller
$goods = Goods::query()->filter()->get()->toArray(); $goods = Goods::query()->filter()->get()->toArray();
$goodsIds = array_column($goods, 'id'); $goodsIds = array_column($goods, 'id');
// 状态变更时间查询,日志 // 状态变更时间查询,日志
$ids = [];
if ($request->get('keyword_type', '') && $request->get('keyword_value', '')) {
$ids = Log::query()->where('target_type', 'sku')
->where('target_field', $request->keyword_type)
->whereBetween('created_at', explode(' - ', $request->keyword_value))
->pluck('sku_id')
->toArray();
}
$day = FormatUtils::date(); $day = FormatUtils::date();
$goodsSkus = GoodsSku::query() $goodsSkus = GoodsSku::query()
->whereIn('goods_id', $goodsIds) ->whereIn('goods_id', $goodsIds)
->when($ids, function ($query, $ids) {
return $query->whereIn('id', $ids);
})
->filter() ->filter()
->with(['goods' => function ($query) { ->with(['goods' => function ($query) {
$query->with(['type:id,name', 'brand:id,name']); $query->with(['type:id,name', 'brand:id,name']);
@ -133,11 +144,13 @@ class GoodsSkusController extends Controller
'user_id' => $request->user()->id 'user_id' => $request->user()->id
]; ];
// 成本 // 成本
$goodsSku = GoodsSku::query()->where('id', $sku['id'])->first(['id', 'cost']); $goodsSku = GoodsSku::query()->where('id', $sku['id'])->first(['id', 'cost', 'stock', 'num']);
$costLog['target_field'] = 'cost'; $costLog['target_field'] = 'cost';
$costLog['before_update'] = $goodsSku->cost; $costLog['before_update'] = $goodsSku->cost;
$goodsSku->cost = $sku['cost']; $goodsSku->cost = $sku['cost'];
$goodsSku->reference_price = $sku['cost'] * 1.5; $goodsSku->reference_price = $sku['cost'] * 1.5;
$goodsSku->stock += $sku['arrived_today_num'];
$goodsSku->num += $sku['arrived_today_num'];
$goodsSku->save(); $goodsSku->save();
$costLog['after_update'] = $goodsSku->cost; $costLog['after_update'] = $goodsSku->cost;
$logs[] = $costLog; $logs[] = $costLog;
@ -145,7 +158,7 @@ class GoodsSkusController extends Controller
$record = DailyStockRecord::query()->where('sku_id', $sku['id'])->where('day', FormatUtils::date())->first(['id', 'arrived_today_num']); $record = DailyStockRecord::query()->where('sku_id', $sku['id'])->where('day', FormatUtils::date())->first(['id', 'arrived_today_num']);
$arrivedLog['target_field'] = 'arrived_today_num'; $arrivedLog['target_field'] = 'arrived_today_num';
$arrivedLog['before_update'] = $record->arrived_today_num; $arrivedLog['before_update'] = $record->arrived_today_num;
$record->arrived_today_num = $sku['arrived_today_num']; $record->arrived_today_num += $sku['arrived_today_num'];
$record->save(); $record->save();
$arrivedLog['after_update'] = $record->arrived_today_num; $arrivedLog['after_update'] = $record->arrived_today_num;
$logs[] = $arrivedLog; $logs[] = $arrivedLog;
@ -207,7 +220,7 @@ class GoodsSkusController extends Controller
$update = reset($skus); $update = reset($skus);
DB::beginTransaction(); DB::beginTransaction();
try { try {
$sku = GoodsSku::query()->where('id', $update['id'])->get(['id', 'two_days_ago_num', 'yesterday_num']); $sku = GoodsSku::query()->where('id', $update['id'])->get(['id', 'two_days_ago_num', 'yesterday_num', 'num', 'stock']);
$record = DailyStockRecord::query() $record = DailyStockRecord::query()
->where('sku_id', $sku->id) ->where('sku_id', $sku->id)
->where('day', FormatUtils::date()) ->where('day', FormatUtils::date())
@ -215,10 +228,12 @@ class GoodsSkusController extends Controller
$this->setBeforeUpdate([ $this->setBeforeUpdate([
'two_days_ago_num' => $sku->two_days_ago_num, 'two_days_ago_num' => $sku->two_days_ago_num,
'yesterday_num' => $sku->yesterday_num, 'yesterday_num' => $sku->yesterday_num,
'num' => $sku->num,
'arrived_today_num' => $record->arrived_today_num, 'arrived_today_num' => $record->arrived_today_num,
]); ]);
$sku->two_days_ago_num = $update['two_days_ago_num']; $sku->two_days_ago_num = $update['two_days_ago_num'];
$sku->yesterday_num = $update['two_days_ago_num']; $sku->yesterday_num = $update['yesterday_num'];
$sku->num = $update['two_days_ago_num'] + $update['yesterday_num'] + $sku->stock;
$sku->save(); $sku->save();
$record->arrived_today_num = $update['arrived_today_num']; $record->arrived_today_num = $update['arrived_today_num'];
$record->save(); $record->save();
@ -284,12 +299,21 @@ class GoodsSkusController extends Controller
->where('sku_id', $id) ->where('sku_id', $id)
->where('day', FormatUtils::date()) ->where('day', FormatUtils::date())
->first(['id', 'loss_num']); ->first(['id', 'loss_num']);
$this->log->message = $request->input('reason', ''); $this->log->message = $request->get('reason');
$this->setBeforeUpdate($model->loss_num);
$model->loss_num += $request->loss_num;
} else { } else {
$model = GoodsSku::query()->find($id); $model = GoodsSku::query()->find($id);
}
$this->setBeforeUpdate($model->$updateField); $this->setBeforeUpdate($model->$updateField);
if ('reserve' === $updateField) {
$changeNum = $model->reserve - $request->reserve;
$model->stock += $changeNum;
$model->reserve = $request->reserve;
$model->num += $changeNum;
} else {
$model->$updateField = $request->$updateField; $model->$updateField = $request->$updateField;
}
}
$model->save(); $model->save();
$this->setAfterUpdate($model->$updateField); $this->setAfterUpdate($model->$updateField);
$this->addLog($id, $updateField); $this->addLog($id, $updateField);