73 lines
1.8 KiB
PHP
73 lines
1.8 KiB
PHP
<?php
|
|
|
|
|
|
|
|
namespace app\common\repositories\store\parameter;
|
|
|
|
use app\common\dao\store\parameter\ParameterDao;
|
|
use app\common\repositories\BaseRepository;
|
|
|
|
class ParameterRepository extends BaseRepository
|
|
{
|
|
/**
|
|
* @var ParameterDao
|
|
*/
|
|
protected $dao;
|
|
|
|
|
|
/**
|
|
* ParameterRepository constructor.
|
|
* @param ParameterDao $dao
|
|
*/
|
|
public function __construct(ParameterDao $dao)
|
|
{
|
|
$this->dao = $dao;
|
|
}
|
|
|
|
/**
|
|
* TODO 更新或者添加参数
|
|
* @param $id
|
|
* @param $merId
|
|
* @param $data
|
|
* @author Qinii
|
|
* @day 2022/11/22
|
|
*/
|
|
public function createOrUpdate($id, $merId, $data)
|
|
{
|
|
foreach ($data as $datum) {
|
|
if (isset($datum['parameter_id']) && $datum['parameter_id']) {
|
|
$update = [
|
|
'name' => $datum['name'],
|
|
'value' => $datum['value'],
|
|
'sort' => $datum['sort'],
|
|
];
|
|
$this->dao->update($datum['parameter_id'], $update);
|
|
$changeKey[] = $datum['parameter_id'];
|
|
} else {
|
|
$create[] = [
|
|
'template_id' => $id,
|
|
'name' => $datum['name'],
|
|
'value' => $datum['value'],
|
|
'sort' => $datum['sort'],
|
|
'mer_id' => $merId
|
|
];
|
|
}
|
|
}
|
|
if (!empty($create)) $this->dao->insertAll($create);
|
|
}
|
|
|
|
/**
|
|
* TODO 更新差异的删除操作
|
|
* @param int $id
|
|
* @param array $params
|
|
* @author Qinii
|
|
* @day 2022/11/22
|
|
*/
|
|
public function diffDelete(int $id, array $params)
|
|
{
|
|
$paramsKey = array_unique(array_column($params,'parameter_id'));
|
|
$this->dao->getSearch([])->where('template_id',$id)->whereNotIn('parameter_id',$paramsKey)->delete();
|
|
}
|
|
}
|
|
|