new-admin-api/app/common/repositories/store/parameter/ParameterRepository.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();
}
}