This commit is contained in:
molong
2022-05-24 16:10:50 +08:00
parent a37870c93b
commit d8e43f9e93
63 changed files with 2169 additions and 230 deletions

View File

@@ -0,0 +1,151 @@
<?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 sent\tree\Tree;
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 = (new Tree())->listToTree($list, 'id', 'parent_id', '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);
});
}
}