@@ -0,0 +1,219 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
/**
|
||||
* 附件分类模型
|
||||
* Class AttachmentNavModel
|
||||
* @package app\common\model
|
||||
*/
|
||||
class AttachmentNavModel extends Model
|
||||
{
|
||||
protected $name = 'attachment_nav';
|
||||
|
||||
/**
|
||||
* 获取全部分类
|
||||
* @return false|\PDOStatement|string|\think\Collection
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function getNavList()
|
||||
{
|
||||
$field = ['id' => 'value', 'name' => 'label'];
|
||||
$navList = Db::name('attachment_nav')
|
||||
->where(['pid' => 0, 'status' => 1])
|
||||
->field($field)
|
||||
->select();
|
||||
if (!empty($navList)) {
|
||||
foreach ($navList as &$v) {
|
||||
$v['children'] = Db::name('attachment_nav')
|
||||
->where(['pid' => $v['value'], 'status' => 1])
|
||||
->field($field)
|
||||
->select();
|
||||
}
|
||||
}
|
||||
|
||||
return $navList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索栏目
|
||||
* @param $keyword
|
||||
* @return array|false|\PDOStatement|string|\think\Collection
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function searchNav($keyword)
|
||||
{
|
||||
if (empty($keyword)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$field = ['id' => 'value', 'name' => 'label'];
|
||||
$navList = Db::name('attachment_nav')
|
||||
->where(['name' => ['LIKE', '%' . $keyword . '%'], 'status' => 1])
|
||||
->field($field)
|
||||
->select();
|
||||
|
||||
if (!empty($navList)) {
|
||||
foreach ($navList as &$v) {
|
||||
$v['children'] = Db::name('attachment_nav')
|
||||
->where(['pid' => $v['value'], 'status' => 1])
|
||||
->field($field)
|
||||
->select();
|
||||
}
|
||||
}
|
||||
|
||||
return $navList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列表
|
||||
* @param $params
|
||||
* @param int $rows
|
||||
* @param int $page
|
||||
* @param string $fields
|
||||
* @return array
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function getLists($params, $rows = 20, $page = 1, $fields = '*')
|
||||
{
|
||||
// 条件搜索
|
||||
if (!empty($params['where'])) {
|
||||
$this->where($params['where']);
|
||||
} else {
|
||||
if (!empty($params['keyword'])) {
|
||||
switch ($params['type']) {
|
||||
case 1 :
|
||||
$this->where(['name' => ['LIKE', '%' . $params['keyword'] . '%']]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!empty($params['status'])) {
|
||||
$this->where(['status' => $params['status']]);
|
||||
}
|
||||
// 时间范围查询
|
||||
if (!empty($params['start_time'])) {
|
||||
$this->where('createtime', '>=', $params['start_time']);
|
||||
}
|
||||
if (!empty($params['end_time'])) {
|
||||
$this->where('createtime', '<=', $params['end_time']);
|
||||
}
|
||||
}
|
||||
|
||||
// 排序
|
||||
$order = !empty($params['order']) ? $params['order'] : 'id DESC';
|
||||
$result = $this
|
||||
->field($fields)
|
||||
->order($order)
|
||||
->paginate($rows, false, [
|
||||
'page' => $page
|
||||
]);
|
||||
|
||||
$arr = [
|
||||
'list' => [],
|
||||
'total' => 0,
|
||||
'page' => 1,
|
||||
'pageSize' => $rows
|
||||
];
|
||||
// 格式化数据信息
|
||||
if (!$result->isEmpty()) {
|
||||
$arr = [
|
||||
'list' => $result->items(),
|
||||
'total' => $result->total(),
|
||||
'page' => $result->currentPage(),
|
||||
'pageSize' => $result->listRows()
|
||||
];
|
||||
}
|
||||
|
||||
return $arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* @param $data
|
||||
* @return bool|int|string
|
||||
*/
|
||||
public function add($data)
|
||||
{
|
||||
if (empty($data) || !is_array($data)) {
|
||||
$this->error = '参数不正确';
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->transaction(function () use ($data) {
|
||||
$id = $this->insertGetId($data);
|
||||
|
||||
if (empty($data['sort'])) {
|
||||
$this->update([
|
||||
'id' => $id,
|
||||
'sort' => $id
|
||||
]);
|
||||
}
|
||||
|
||||
return $id;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取某条记录
|
||||
* @param $where
|
||||
* @return array|bool|false|\PDOStatement|string|Model
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function getItem($where)
|
||||
{
|
||||
if (empty($where)) {
|
||||
$this->error = '参数不正确。';
|
||||
return false;
|
||||
}
|
||||
if (floor($where) > 0) {
|
||||
$where = ['id' => $where];
|
||||
}
|
||||
|
||||
return $this->where($where)->find();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param $data
|
||||
* @return bool
|
||||
*/
|
||||
public function edit($data)
|
||||
{
|
||||
if (empty($data) || !is_array($data)) {
|
||||
$this->error = '参数不正确';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->update($data)) {
|
||||
return true;
|
||||
} else {
|
||||
$this->error = '编辑出错了,请重新尝试。';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 删除
|
||||
public function del($where)
|
||||
{
|
||||
if (empty($where)) {
|
||||
$this->error = '参数不正确';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->where($where)->delete()) {
|
||||
return true;
|
||||
} else {
|
||||
$this->error = '删除出错了,请重新尝试。';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户