6
0
Fork 0
jiqu-library-server/app/Admin/Repositories/CouponSendTask.php

96 lines
2.3 KiB
PHP

<?php
namespace App\Admin\Repositories;
use App\Models\CouponSendTask as Model;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Repositories\EloquentRepository;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
class CouponSendTask extends EloquentRepository
{
/**
* Model.
*
* @var string
*/
protected $eloquentClass = Model::class;
/**
* 新增记录.
*
* @param Form $form
* @return mixed
*/
public function store(Form $form)
{
$result = null;
DB::transaction(function () use ($form, &$result) {
$model = $this->model();
$updates = $form->updates();
[$relations, $relationKeyMap] = $this->getRelationInputs($model, $updates);
if ($relations) {
$updates = Arr::except($updates, array_keys($relationKeyMap));
}
foreach ($updates as $column => $value) {
$model->setAttribute($column, $value);
}
$model->setAttribute('administrator_id', Admin::user()->id);
$result = $model->save();
$this->updateRelation($form, $model, $relations, $relationKeyMap);
});
return $this->model()->getKey();
}
/**
* 更新数据.
*
* @param Form $form
* @return bool
*/
public function update(Form $form)
{
/* @var EloquentModel $builder */
$model = $this->model();
if (! $model->getKey()) {
$model->exists = true;
$model->setAttribute($model->getKeyName(), $form->getKey());
}
$result = null;
DB::transaction(function () use ($form, $model, &$result) {
$updates = $form->updates();
[$relations, $relationKeyMap] = $this->getRelationInputs($model, $updates);
if ($relations) {
$updates = Arr::except($updates, array_keys($relationKeyMap));
}
foreach ($updates as $column => $value) {
/* @var EloquentModel $model */
$model->setAttribute($column, $value);
}
$model->setAttribute('administrator_id', Admin::user()->id);
$result = $model->update();
$this->updateRelation($form, $model, $relations, $relationKeyMap);
});
return $result;
}
}