You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.4 KiB
69 lines
1.4 KiB
3 years ago
|
<?php
|
||
|
/**
|
||
|
*
|
||
|
* DateDelete.php
|
||
|
* User: ChenLong
|
||
|
* DateTime: 2020/4/13 13:50
|
||
|
*/
|
||
|
|
||
|
|
||
|
namespace app\common\traits\admin;
|
||
|
|
||
|
use app\common\BaseModel;
|
||
|
use app\common\ResponseJson;
|
||
|
use app\common\SdException;
|
||
|
use think\db\Query;
|
||
|
use think\facade\Db;
|
||
|
use think\Model;
|
||
|
|
||
|
/**
|
||
|
* 数据删除
|
||
|
* @method Query|Model|BaseModel getModel
|
||
|
* Trait DateDelete
|
||
|
* @package app\common\controller\traits
|
||
|
* @author chenlong <vip_chenlong@163.com>
|
||
|
*/
|
||
|
trait DataDelete
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* 数据删除
|
||
|
* @param array $id
|
||
|
* @return \think\response\Json
|
||
|
* @throws \Throwable
|
||
|
*/
|
||
|
public function del($id = [])
|
||
|
{
|
||
|
Db::startTrans();
|
||
|
try {
|
||
|
$this->beforeDelete($id);
|
||
|
if (method_exists(static::class, 'delete')) {
|
||
|
$this->delete($id);
|
||
|
} else {
|
||
|
if (!is_array($id)) $id = [$id];
|
||
|
$this->getModel()::softDelete([$this->primary => $id]);
|
||
|
}
|
||
|
$this->afterDelete($id);
|
||
|
Db::commit();
|
||
|
} catch (\Throwable $exception) {
|
||
|
Db::rollback();
|
||
|
throw $exception;
|
||
|
}
|
||
|
|
||
|
return ResponseJson::mixin(true);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 删除之前的数据处理
|
||
|
* @param $id
|
||
|
*/
|
||
|
public function beforeDelete(&$id){}
|
||
|
|
||
|
/**
|
||
|
* 删除后的代码执行
|
||
|
* @param $id
|
||
|
*/
|
||
|
public function afterDelete($id){}
|
||
|
}
|
||
|
|