mirror of https://gitee.com/stylefeng/roses
parent
c7e145d607
commit
8a7dbedb3c
|
@ -40,6 +40,14 @@
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!--系统api模块-->
|
||||||
|
<!--用在业务,系统常量-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>system-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--数据库sdk-->
|
<!--数据库sdk-->
|
||||||
<!--数据库初始化-->
|
<!--数据库初始化-->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -11,10 +11,12 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
|
import cn.stylefeng.roses.kernel.system.pojo.ztree.ZTreeNode;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -154,4 +156,18 @@ public class DictController {
|
||||||
return new SuccessResponseData(flag);
|
return new SuccessResponseData(flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典树列表
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
* @author huangyao
|
||||||
|
* @date 2021/1/10 17:31
|
||||||
|
*/
|
||||||
|
@GetResource(name = "获取zTree形式的字典树(layui版本)", path = "/dict/zTree")
|
||||||
|
@ResponseBody
|
||||||
|
public List<ZTreeNode> layuiSelectParentMenuTreeList(@Validated(DictRequest.dictZTree.class) DictRequest dictRequest) {
|
||||||
|
return this.dictService.dictZTree(dictRequest);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class DictRequest extends BaseRequest {
|
||||||
/**
|
/**
|
||||||
* 字典类型编码
|
* 字典类型编码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "字典类型编码不能为空", groups = {add.class, edit.class, treeList.class})
|
@NotBlank(message = "字典类型编码不能为空", groups = {add.class, edit.class, treeList.class, dictZTree.class})
|
||||||
private String dictTypeCode;
|
private String dictTypeCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,4 +119,11 @@ public class DictRequest extends BaseRequest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验ztree必备参数
|
||||||
|
*/
|
||||||
|
public @interface dictZTree {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import cn.stylefeng.roses.kernel.dict.api.DictApi;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
|
import cn.stylefeng.roses.kernel.dict.modular.pojo.TreeDictInfo;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
|
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictRequest;
|
||||||
|
import cn.stylefeng.roses.kernel.system.pojo.ztree.ZTreeNode;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -113,4 +114,13 @@ public interface DictService extends IService<SysDict>, DictApi {
|
||||||
*/
|
*/
|
||||||
List<SysDict> getDictListExcludeSub(Long dictId);
|
List<SysDict> getDictListExcludeSub(Long dictId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取字典的ztree列表
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
* @author huangyao
|
||||||
|
* @date 2021/1/12 14:27
|
||||||
|
*/
|
||||||
|
List<ZTreeNode> dictZTree(DictRequest dictRequest);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@ import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||||
import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory;
|
import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory;
|
||||||
|
import cn.stylefeng.roses.kernel.system.constants.SystemConstants;
|
||||||
|
import cn.stylefeng.roses.kernel.system.pojo.ztree.ZTreeNode;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
@ -153,7 +155,15 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SysDict findDetail(Long dictId) {
|
public SysDict findDetail(Long dictId) {
|
||||||
return this.baseMapper.findDetail(dictId);
|
SysDict dict = this.baseMapper.findDetail(dictId);
|
||||||
|
// 获取父节点字典名称
|
||||||
|
if (dict.getDictParentId().equals(SystemConstants.DEFAULT_PARENT_ID)) {
|
||||||
|
dict.setParentName("顶级");
|
||||||
|
} else {
|
||||||
|
SysDict parentDict = this.getById(dict.getDictParentId());
|
||||||
|
dict.setParentName(ObjectUtil.isNotEmpty(parentDict) ? parentDict.getDictName() : "");
|
||||||
|
}
|
||||||
|
return dict;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -228,6 +238,38 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, SysDict> implements
|
||||||
return baseMapper.findList(null, new DictRequest());
|
return baseMapper.findList(null, new DictRequest());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ZTreeNode> dictZTree(DictRequest dictRequest) {
|
||||||
|
// 根据字典类型编码获取字典
|
||||||
|
LambdaQueryWrapper<SysDict> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysDict::getDictTypeCode, dictRequest.getDictTypeCode());
|
||||||
|
List<SysDict> dictList = this.list(queryWrapper);
|
||||||
|
|
||||||
|
// 构建ztree
|
||||||
|
ArrayList<ZTreeNode> zTreeNodes = new ArrayList<>();
|
||||||
|
for (SysDict dict : dictList) {
|
||||||
|
ZTreeNode zTreeNode = new ZTreeNode();
|
||||||
|
zTreeNode.setId(dict.getDictId());
|
||||||
|
zTreeNode.setpId(dict.getDictParentId());
|
||||||
|
zTreeNode.setName(dict.getDictName());
|
||||||
|
zTreeNode.setOpen(true);
|
||||||
|
zTreeNodes.add(zTreeNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建顶级节点
|
||||||
|
zTreeNodes.add(ZTreeNode.createParent());
|
||||||
|
|
||||||
|
// 构建已选中的状态
|
||||||
|
if (ObjectUtil.isNotEmpty(dictRequest.getDictId())) {
|
||||||
|
for (ZTreeNode zTreeNode : zTreeNodes) {
|
||||||
|
if (zTreeNode.getId().equals(dictRequest.getDictId())) {
|
||||||
|
zTreeNode.setChecked(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return zTreeNodes;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDictNameByDictCode(String dictCode) {
|
public String getDictNameByDictCode(String dictCode) {
|
||||||
LambdaQueryWrapper<SysDict> sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysDict> sysDictLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|
Loading…
Reference in New Issue