询单改造
This commit is contained in:
@@ -152,43 +152,22 @@ class CrudUtil
|
||||
* @return Model
|
||||
* @throws BusinessException
|
||||
*/
|
||||
// public static function findByPk(string $modelClass, $id, array $with = []): Model
|
||||
// {
|
||||
// $m = $modelClass::with($with)->find($id);
|
||||
// if (!$m) {
|
||||
// throw new BusinessException("记录 ID={$id} 不存在", 404);
|
||||
// }
|
||||
// return $m;
|
||||
// }
|
||||
public static function findByPk(string $modelClass, $id, array $with = []): Model
|
||||
{
|
||||
$m = $modelClass::with($with)->find($id);
|
||||
if (!$m) {
|
||||
throw new BusinessException("记录 ID={$id} 不存在", 404);
|
||||
}
|
||||
return $m;
|
||||
}
|
||||
|
||||
/**
|
||||
* 任意条件单条查询,支持 dataLimit
|
||||
*
|
||||
* @param string $modelClass
|
||||
* @param array $where
|
||||
* @param array $with
|
||||
* @param array $dataLimit
|
||||
* @param Builder $query
|
||||
* @return Model
|
||||
* @throws BusinessException
|
||||
*/
|
||||
// public static function findOneBy(
|
||||
// string $modelClass,
|
||||
// array $where,
|
||||
// array $with = [],
|
||||
// array $dataLimit = []
|
||||
// ): Model {
|
||||
// $config = compact('modelClass');
|
||||
// $config['model'] = $modelClass;
|
||||
// $config['where'] = $where;
|
||||
// $config['with'] = $with;
|
||||
// $config['dataLimit'] = $dataLimit;
|
||||
|
||||
// $m = self::buildQuery($config)->first();
|
||||
// if (!$m) {
|
||||
// throw new BusinessException("未找到符合条件的记录", 404);
|
||||
// }
|
||||
// return $m;
|
||||
// }
|
||||
public static function findOneBy(Builder $q): Model
|
||||
{
|
||||
return $q->first();
|
||||
@@ -225,43 +204,32 @@ class CrudUtil
|
||||
* @return Model
|
||||
* @throws BusinessException
|
||||
*/
|
||||
// public static function updateByPk(
|
||||
// string $modelClass,
|
||||
// $id,
|
||||
// array $data,
|
||||
// array $dataLimit = []
|
||||
// ): Model {
|
||||
// /** @var Model $m */
|
||||
// $m = $modelClass::find($id);
|
||||
// if (!$m) {
|
||||
// throw new BusinessException("记录 ID={$id} 不存在", 404);
|
||||
// }
|
||||
// // dataLimit 校验
|
||||
// if (!empty($dataLimit)) {
|
||||
// self::applyDataLimitOnMutate($m, $dataLimit, $data);
|
||||
// }
|
||||
// $m->fill($data)->save();
|
||||
// return $m;
|
||||
// }
|
||||
public static function updateByPk(
|
||||
string $modelClass,
|
||||
$id,
|
||||
array $data,
|
||||
array $dataLimit = []
|
||||
): Model {
|
||||
/** @var Model $m */
|
||||
$m = $modelClass::find($id);
|
||||
if (!$m) {
|
||||
throw new BusinessException("记录 ID={$id} 不存在", 404);
|
||||
}
|
||||
// dataLimit 校验
|
||||
if (!empty($dataLimit)) {
|
||||
self::applyDataLimitOnMutate($m, $dataLimit, $data);
|
||||
}
|
||||
$m->fill($data)->save();
|
||||
return $m;
|
||||
}
|
||||
|
||||
/**
|
||||
* 非主键条件更新(批量),支持 dataLimit
|
||||
*
|
||||
* @param string $modelClass
|
||||
* @param array $where
|
||||
* @param Builder $query
|
||||
* @param array $data
|
||||
* @param array $dataLimit
|
||||
* @return int 受影响行数
|
||||
*/
|
||||
// public static function updateBy(
|
||||
// string $modelClass,
|
||||
// array $where,
|
||||
// array $data,
|
||||
// array $dataLimit = []
|
||||
// ): int {
|
||||
// $config = ['model'=>$modelClass, 'where'=>$where, 'dataLimit'=>$dataLimit];
|
||||
// return self::buildQuery($config)->update($data);
|
||||
// }
|
||||
public static function updateBy(Builder $q, array $data): int
|
||||
{
|
||||
return $q->update($data);
|
||||
@@ -274,27 +242,17 @@ class CrudUtil
|
||||
* @param array $ids
|
||||
* @return int 删除条数
|
||||
*/
|
||||
// public static function deleteByPk(string $modelClass, array $ids): int
|
||||
// {
|
||||
// return $modelClass::destroy($ids);
|
||||
// }
|
||||
public static function deleteByPk(string $modelClass, array $ids): int
|
||||
{
|
||||
return $modelClass::destroy($ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 非主键条件删除,支持 dataLimit
|
||||
*
|
||||
* @param string $modelClass
|
||||
* @param array $where
|
||||
* @param array $dataLimit
|
||||
* @param Builder $query
|
||||
* @return int 删除条数
|
||||
*/
|
||||
// public static function deleteBy(
|
||||
// string $modelClass,
|
||||
// array $where,
|
||||
// array $dataLimit = []
|
||||
// ): int {
|
||||
// $config = ['model'=>$modelClass, 'where'=>$where, 'dataLimit'=>$dataLimit];
|
||||
// return self::buildQuery($config)->delete();
|
||||
// }
|
||||
public static function deleteBy(Builder $q): int
|
||||
{
|
||||
return $q->delete();
|
||||
|
||||
Reference in New Issue
Block a user