mirror of https://gitee.com/stylefeng/roses
Merge remote-tracking branch 'origin/group1-dict'
commit
71a2d44aed
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.stylefeng.roses.kernel.dict.modular.controller;
|
package cn.stylefeng.roses.kernel.dict.modular.controller;
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
|
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService;
|
import cn.stylefeng.roses.kernel.dict.modular.service.DictTypeService;
|
||||||
|
@ -13,6 +14,7 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||||
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.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -79,6 +81,12 @@ public class DictTypeController {
|
||||||
return new SuccessResponseData();
|
return new SuccessResponseData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetResource(name = "获取字典类型详情", path = "/dictType/getDictDetail", requiredPermission = false)
|
||||||
|
public ResponseData getDictDetail(@RequestParam("dictTypeId") Long dictTypeId) {
|
||||||
|
SysDictType detail = this.dictTypeService.findDetail(dictTypeId);
|
||||||
|
return new SuccessResponseData(detail);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取字典类型列表
|
* 获取字典类型列表
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package cn.stylefeng.roses.kernel.dict.modular.mapper;
|
package cn.stylefeng.roses.kernel.dict.modular.mapper;
|
||||||
|
|
||||||
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
|
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
@ -16,6 +17,16 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface DictTypeMapper extends BaseMapper<SysDictType> {
|
public interface DictTypeMapper extends BaseMapper<SysDictType> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取字典类型详情
|
||||||
|
*
|
||||||
|
* @param dictTypeId 类型id
|
||||||
|
* @return
|
||||||
|
* @author huangyao
|
||||||
|
* @date 2021/1/10 17:25
|
||||||
|
*/
|
||||||
|
SysDictType findDetail(@Param("dictTypeId") Long dictTypeId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取字典类型列表
|
* 获取字典类型列表
|
||||||
*
|
*
|
||||||
|
|
|
@ -2,6 +2,21 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="cn.stylefeng.roses.kernel.dict.modular.mapper.DictTypeMapper">
|
<mapper namespace="cn.stylefeng.roses.kernel.dict.modular.mapper.DictTypeMapper">
|
||||||
|
|
||||||
|
<select id="findDetail" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType" parameterType="long">
|
||||||
|
SELECT dict_type_id AS dictTypeId,
|
||||||
|
dict_type_class AS dictTypeClass,
|
||||||
|
dict_type_bus_code AS dictTypeBusCode,
|
||||||
|
dict_type_code AS dictTypeCode,
|
||||||
|
dict_type_name AS dictTypeName,
|
||||||
|
dict_type_name_pinyin AS dictTypeNamePinyin,
|
||||||
|
dict_type_desc AS dictTypeDesc,
|
||||||
|
status_flag AS statusFlag,
|
||||||
|
dict_type_sort AS dictTypeSort
|
||||||
|
FROM sys_dict_type
|
||||||
|
WHERE del_flag = 'N'
|
||||||
|
AND dict_type_id = #{dictTypeId}
|
||||||
|
</select>
|
||||||
|
|
||||||
<!--查询字典类型列表-->
|
<!--查询字典类型列表-->
|
||||||
<select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType">
|
<select id="findList" resultType="cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType">
|
||||||
SELECT dict_type_id AS dictTypeId,
|
SELECT dict_type_id AS dictTypeId,
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cn.stylefeng.roses.kernel.dict.modular.service;
|
||||||
|
|
||||||
|
|
||||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||||
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDict;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
import cn.stylefeng.roses.kernel.dict.modular.entity.SysDictType;
|
||||||
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
|
import cn.stylefeng.roses.kernel.dict.modular.pojo.request.DictTypeRequest;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
@ -82,4 +83,13 @@ public interface DictTypeService extends IService<SysDictType> {
|
||||||
*/
|
*/
|
||||||
boolean validateCodeAvailable(DictTypeRequest dictTypeRequest);
|
boolean validateCodeAvailable(DictTypeRequest dictTypeRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取字典详情
|
||||||
|
*
|
||||||
|
* @param dictTypeId 类型id
|
||||||
|
* @return
|
||||||
|
* @author huangyao
|
||||||
|
* @date 2021/1/10 17:27
|
||||||
|
*/
|
||||||
|
SysDictType findDetail(Long dictTypeId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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<>();
|
||||||
|
|
|
@ -170,6 +170,11 @@ public class DictTypeServiceImpl extends ServiceImpl<DictTypeMapper, SysDictType
|
||||||
return selectCount <= 0;
|
return selectCount <= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysDictType findDetail(Long dictTypeId) {
|
||||||
|
return this.baseMapper.findDetail(dictTypeId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验dictTypeClass是否是系统字典,如果是系统字典只能超级管理员操作
|
* 校验dictTypeClass是否是系统字典,如果是系统字典只能超级管理员操作
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue