151 lines
3.7 KiB
PHP
151 lines
3.7 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
|
// +----------------------------------------------------------------------
|
|
namespace app\services\system;
|
|
|
|
use app\model\system\Dictionary;
|
|
use app\model\system\DictionaryType;
|
|
use Xin\Support\Arr;
|
|
|
|
class DictionaryService{
|
|
/**
|
|
* @title 获取字典
|
|
*
|
|
* @return void
|
|
*/
|
|
public function getDictionary($request){
|
|
$param = $request->param();
|
|
$map = [];
|
|
if(isset($param['code']) && $param['code']){
|
|
$map[] = ['dic_type', '=', $param['code']];
|
|
}
|
|
if(isset($param['name']) && $param['name']){
|
|
$map[] = ['dic_type', '=', $param['name']];
|
|
}
|
|
$list = Dictionary::where($map)->order('id desc')->paginate($request->pageConfig);
|
|
return $list;
|
|
}
|
|
/**
|
|
* @title 获取字典明细
|
|
*
|
|
* @return void
|
|
*/
|
|
public function getDictionaryDetail($request){
|
|
$param = $request->param();
|
|
$map = [];
|
|
if(isset($param['name']) && $param['name']){
|
|
$map[] = ['dic_type', '=', $param['name']];
|
|
}
|
|
$list = Dictionary::where($map)->order('id desc')->select();
|
|
return $list;
|
|
}
|
|
/**
|
|
* @title 获取字典分类
|
|
*
|
|
* @param [type] $request
|
|
* @return void
|
|
*/
|
|
public function getTree($request){
|
|
$list = DictionaryType::select()->toArray();
|
|
|
|
$tree = Arr::tree($list, null, 0, ['id'=>'id', 'parent' => 'parent_id', 'child' => 'children']);
|
|
return $tree;
|
|
}
|
|
/**
|
|
* @title 添加字段分类
|
|
*
|
|
* @param [type] $request
|
|
* @return void
|
|
*/
|
|
public function addcate($request){
|
|
$data = $request->param();
|
|
return DictionaryType::create($data);
|
|
}
|
|
/**
|
|
* @title 修改字段分类
|
|
*
|
|
* @param [type] $request
|
|
* @return void
|
|
*/
|
|
public function editcate($request){
|
|
$data = $request->param();
|
|
$dicType = DictionaryType::find($data['id']);
|
|
if($data['parent_id'] == $data['id']){
|
|
throw new \think\Exception('上级不能为自己!', 100);
|
|
}
|
|
//更新树下字段明细
|
|
$dic = Dictionary::where('dic_type', '=', $dicType['code'])->select();
|
|
$dicSave = [];
|
|
if($dic){
|
|
foreach ($dic as $key => $value) {
|
|
$dicSave[] = ['id' => $value['id'], 'dic_type' => $data['code']];
|
|
}
|
|
}
|
|
if($dicSave){
|
|
(new Dictionary())->saveAll($dicSave);
|
|
}
|
|
return $dicType->save($data);
|
|
}
|
|
/**
|
|
* @title 删除字段分类
|
|
*
|
|
* @param [type] $request
|
|
* @return void
|
|
*/
|
|
public function deleteCategory($request){
|
|
$map = [];
|
|
$id = $request->param('id');
|
|
if(is_array($id)){
|
|
$map[] = ['id', 'IN', $id];
|
|
}else{
|
|
$map[] = ['id', '=', $id];
|
|
}
|
|
DictionaryType::destroy(function($q) use($map){
|
|
$q->where($map);
|
|
});
|
|
}
|
|
/**
|
|
* @title 创建字段明细
|
|
*
|
|
* @return void
|
|
*/
|
|
public function createDic($request){
|
|
$data = $request->param();
|
|
return Dictionary::create($data);
|
|
}
|
|
/**
|
|
* @title 更新字典明细
|
|
*
|
|
* @param [type] $request
|
|
* @return void
|
|
*/
|
|
public function updateDic($request){
|
|
$data = $request->param();
|
|
$dic = Dictionary::find($data['id']);
|
|
$dic->save($data);
|
|
return $dic;
|
|
}
|
|
/**
|
|
* @title 删除字典明细
|
|
*
|
|
* @param [type] $request
|
|
* @return void
|
|
*/
|
|
public function deleteDic($request){
|
|
$map = [];
|
|
$id = $request->param('id');
|
|
if(is_array($id)){
|
|
$map[] = ['id', 'IN', $id];
|
|
}else{
|
|
$map[] = ['id', '=', $id];
|
|
}
|
|
Dictionary::destroy(function($q) use($map){
|
|
$q->where($map);
|
|
});
|
|
}
|
|
} |