Files
sentos/app/services/system/DictionaryService.php
2023-10-21 21:18:46 +08:00

165 lines
4.0 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 getDictionaryAll(){
$list = Dictionary::where([])->select();
$data = [];
foreach($list as $value){
$data[$value['dic_type']][] = $value->toArray();
}
return $data;
}
/**
* @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);
});
}
}