【添加】字典数据添加
This commit is contained in:
+28
-11
@@ -279,25 +279,42 @@ public class SysDictController {
|
||||
/**
|
||||
* 根据表名——显示字段-存储字段 pid 加载树形数据
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@ApiOperation(value = "字典控制器-根据表名——显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名——显示字段-存储字段 pid 加载树形数据")
|
||||
@ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据")
|
||||
@RequestMapping(value = "/loadTreeData", method = RequestMethod.GET)
|
||||
public Result<List<TreeSelectModel>> loadTreeData(@RequestParam(name="pid") String pid, @RequestParam(name="pidField") String pidField,
|
||||
@RequestParam(name="tableName") String tbname,
|
||||
@RequestParam(name="text") String text,
|
||||
@RequestParam(name="code") String code,
|
||||
@RequestParam(name="hasChildField") String hasChildField,
|
||||
@RequestParam(name="condition") String condition,
|
||||
@RequestParam(value = "sign",required = false) String sign, HttpServletRequest request) {
|
||||
@RequestParam(name="hasChildField", required = false) String hasChildField,
|
||||
@RequestParam(value = "sign", required = false) String sign, HttpServletRequest request) {
|
||||
Result<List<TreeSelectModel>> result = new Result<List<TreeSelectModel>>();
|
||||
Map<String, String> query = null;
|
||||
if(oConvertUtils.isNotEmpty(condition)) {
|
||||
query = JSON.parseObject(condition, Map.class);
|
||||
}
|
||||
|
||||
// SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件)
|
||||
String dictCode = tbname+","+text+","+code+","+condition;
|
||||
String dictCode = tbname +","+ text +","+ code;
|
||||
SqlInjectionUtil.filterContent(dictCode);
|
||||
List<TreeSelectModel> ls = sysDictService.queryTreeList(query,tbname, text, code, pidField, pid,hasChildField);
|
||||
List<TreeSelectModel> ls = sysDictService.queryTreeList(null, tbname, text, code, pidField, pid, hasChildField);
|
||||
result.setSuccess(true);
|
||||
result.setResult(ls);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询后返回树型数据
|
||||
*/
|
||||
@ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 查询数据 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据")
|
||||
@RequestMapping(value = "/queryTreeDataByKeyword", method = RequestMethod.GET)
|
||||
public Result<List<TreeSelectModel>> queryTreeDataByKeyword(@RequestParam(name="pidField") String pidField,
|
||||
@RequestParam(name="tableName") String tbname,
|
||||
@RequestParam(name="text") String text,
|
||||
@RequestParam(name="code") String code,
|
||||
@RequestParam(name="keyword") String keyword,
|
||||
HttpServletRequest request) {
|
||||
Result<List<TreeSelectModel>> result = new Result<List<TreeSelectModel>>();
|
||||
|
||||
// SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件)
|
||||
String dictCode = tbname +","+ text +","+ code + "," + keyword;
|
||||
SqlInjectionUtil.filterContent(dictCode);
|
||||
List<TreeSelectModel> ls = sysDictService.queryTreeDataByKeyword(keyword, tbname, text, code, pidField);
|
||||
result.setSuccess(true);
|
||||
result.setResult(ls);
|
||||
return result;
|
||||
|
||||
+22
-2
@@ -32,6 +32,7 @@ public interface SysDictMapper extends BaseMapper<SysDict> {
|
||||
* @return
|
||||
*/
|
||||
public Long duplicateCheckCountSql(DuplicateCheckVo duplicateCheckVo);
|
||||
|
||||
public Long duplicateCheckCountSqlNoDataId(DuplicateCheckVo duplicateCheckVo);
|
||||
|
||||
public List<DictModel> queryDictItemsByCode(@Param("code") String code);
|
||||
@@ -98,8 +99,27 @@ public interface SysDictMapper extends BaseMapper<SysDict> {
|
||||
* @param hasChildField
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
List<TreeSelectModel> queryTreeList(@Param("query") Map<String, String> query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField,@Param("pid") String pid,@Param("hasChildField") String hasChildField);
|
||||
List<TreeSelectModel> queryTreeList(@Param("query") String query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField,@Param("pid") String pid,@Param("hasChildField") String hasChildField);
|
||||
|
||||
/**
|
||||
* 根据表名、显示字段名、存储字段名 和查询条件拼接树结构
|
||||
* @param query
|
||||
* @param table
|
||||
* @param text
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
List<TreeSelectModel> queryTreeDataByKeyword(@Param("query") String query,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField);
|
||||
|
||||
/**
|
||||
* 根据表名、显示字段名、存储字段名、自身ID查询
|
||||
* @param id
|
||||
* @param table
|
||||
* @param text
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
TreeSelectModel queryTreeDataItemById(@Param("id") String id,@Param("table") String table,@Param("text") String text,@Param("code") String code,@Param("pidField") String pidField);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
|
||||
+22
-3
@@ -87,12 +87,31 @@
|
||||
</otherwise>
|
||||
</choose>
|
||||
<if test="query!= null">
|
||||
<foreach collection="query.entrySet()" item="value" index="key" >
|
||||
and ${key} = #{value}
|
||||
</foreach>
|
||||
and ${text} like concat(concat('%',#{query}),'%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 根据表名、显示字段名、存储字段名、父ID查询树 -->
|
||||
<select id="queryTreeDataByKeyword" parameterType="Object" resultType="com.jero.modules.system.model.TreeSelectModel">
|
||||
select ${text} as "title",
|
||||
${code} as "key",
|
||||
${pidField} as parentId
|
||||
from ${table}
|
||||
where 1 = 1
|
||||
<if test="query!= null">
|
||||
and ${text} like concat(concat('%',#{query}),'%')
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 根据表名、显示字段名、存储字段名、自身ID查询 -->
|
||||
<select id="queryTreeDataItemById" parameterType="Object" resultType="com.jero.modules.system.model.TreeSelectModel">
|
||||
select ${text} as "title",
|
||||
${code} as "key",
|
||||
${pidField} as parentId
|
||||
from ${table}
|
||||
where
|
||||
id = #{id}
|
||||
</select>
|
||||
|
||||
<!-- 分页查询字典表数据 -->
|
||||
<select id="queryDictTablePageList" parameterType="Object" resultType="com.jero.common.system.vo.DictModel">
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.system.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -23,6 +24,8 @@ public class TreeSelectModel implements Serializable {
|
||||
private String value;
|
||||
|
||||
private String code;
|
||||
|
||||
private List<TreeSelectModel> children = new ArrayList<>();
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
@@ -79,8 +82,6 @@ public class TreeSelectModel implements Serializable {
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
private List<TreeSelectModel> children;
|
||||
|
||||
public List<TreeSelectModel> getChildren() {
|
||||
return children;
|
||||
|
||||
+12
-2
@@ -83,6 +83,7 @@ public interface ISysDictService extends IService<SysDict> {
|
||||
* @return
|
||||
*/
|
||||
public List<DictModel> queryLittleTableDictItems(String table, String text, String code,String keyword, int pageSize);
|
||||
|
||||
/**
|
||||
* 根据表名、显示字段名、存储字段名 查询树
|
||||
* @param table
|
||||
@@ -93,8 +94,17 @@ public interface ISysDictService extends IService<SysDict> {
|
||||
* @param hasChildField
|
||||
* @return
|
||||
*/
|
||||
@Deprecated
|
||||
List<TreeSelectModel> queryTreeList(Map<String, String> query,String table, String text, String code, String pidField,String pid,String hasChildField);
|
||||
List<TreeSelectModel> queryTreeList(String query,String table, String text, String code, String pidField,String pid,String hasChildField);
|
||||
|
||||
/**
|
||||
* 根据表名、显示字段名、存储字段名 和查询条件拼接树结构
|
||||
* @param table
|
||||
* @param text
|
||||
* @param code
|
||||
* @param pidField
|
||||
* @return
|
||||
*/
|
||||
List<TreeSelectModel> queryTreeDataByKeyword(String query,String table, String text, String code, String pidField);
|
||||
|
||||
/**
|
||||
* 真实删除
|
||||
|
||||
+47
-2
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -16,6 +17,7 @@ import com.jero.modules.system.mapper.SysDictItemMapper;
|
||||
import com.jero.modules.system.mapper.SysDictMapper;
|
||||
import com.jero.modules.system.model.TreeSelectModel;
|
||||
import com.jero.modules.system.service.ISysDictService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -212,8 +214,51 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TreeSelectModel> queryTreeList(Map<String, String> query,String table, String text, String code, String pidField,String pid,String hasChildField) {
|
||||
return baseMapper.queryTreeList(query,table, text, code, pidField, pid,hasChildField);
|
||||
public List<TreeSelectModel> queryTreeList(String query,String table, String text, String code, String pidField, String pid, String hasChildField) {
|
||||
return baseMapper.queryTreeList(query, table, text, code, pidField, pid,hasChildField);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TreeSelectModel> queryTreeDataByKeyword(String query,String table, String text, String code, String pidField) {
|
||||
// 先查出要查询的数据
|
||||
List<TreeSelectModel> serachTreeNode = this.baseMapper.queryTreeDataByKeyword(query, table, text, code, pidField);
|
||||
|
||||
// 构建一个HashMap,按ID为key存储全部查询出的数据结构
|
||||
HashMap<String, TreeSelectModel> resultMap = new HashMap<>();
|
||||
for (TreeSelectModel treeSelectModel : serachTreeNode){
|
||||
resultMap.put(treeSelectModel.getKey(), treeSelectModel);
|
||||
|
||||
TreeSelectModel copyTreeSelectModel = treeSelectModel;
|
||||
// 叠加的查询父节点
|
||||
while (StringUtils.isNotEmpty(copyTreeSelectModel.getParentId())){
|
||||
if (resultMap.get(copyTreeSelectModel.getParentId()) != null){
|
||||
break;
|
||||
}
|
||||
|
||||
TreeSelectModel newTreeSelectModel = this.baseMapper.queryTreeDataItemById(copyTreeSelectModel.getParentId(), table, text, code, pidField);
|
||||
resultMap.put(newTreeSelectModel.getKey(), newTreeSelectModel);
|
||||
|
||||
copyTreeSelectModel = newTreeSelectModel;
|
||||
}
|
||||
}
|
||||
System.out.println("aaa");
|
||||
|
||||
// 遍历map里全部的节点,取出父节点放入list,并循环添加他的子节点
|
||||
List<TreeSelectModel> treeNodeList = new ArrayList<>();
|
||||
for (String key : resultMap.keySet()){
|
||||
TreeSelectModel curTreeSelectModel = resultMap.get(key);
|
||||
if (StringUtils.isEmpty(curTreeSelectModel.getParentId())){
|
||||
treeNodeList.add(curTreeSelectModel);
|
||||
} else {
|
||||
// 如果有父节点,则找出自己的父节点,把自己添加进父节点的children属性里
|
||||
TreeSelectModel existParentNode = resultMap.get(curTreeSelectModel.getParentId());
|
||||
if (existParentNode != null){
|
||||
existParentNode.getChildren().add(curTreeSelectModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return treeNodeList;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user