标签管理-标签内容

This commit is contained in:
xiejunyu
2022-02-21 18:17:19 +08:00
parent 8c92e28fc3
commit 1ca5b1a885
2 changed files with 92 additions and 55 deletions
@@ -1,23 +1,15 @@
package com.jero.modules.system.controller; package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.authz.annotation.RequiresRoles;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.CommonConstant; import com.jero.common.constant.CommonConstant;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.DictQuery;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.ImportExcelUtil;
import com.jero.common.util.SqlInjectionUtil; import com.jero.common.util.SqlInjectionUtil;
@@ -29,6 +21,12 @@ import com.jero.modules.system.model.TreeSelectModel;
import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysDictItemService;
import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.vo.SysDictPage; import com.jero.modules.system.vo.SysDictPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.jeecgframework.poi.excel.ExcelImportCheckUtil; import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -72,7 +70,7 @@ public class SysDictController {
@RequestMapping(value = "/page", method = RequestMethod.GET) @RequestMapping(value = "/page", method = RequestMethod.GET)
@ApiOperation(value = "字典控制器-分页列表查询", notes = "字典控制器-分页列表查询") @ApiOperation(value = "字典控制器-分页列表查询", notes = "字典控制器-分页列表查询")
public Result<IPage<SysDict>> queryPageList(SysDict sysDict, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Result<IPage<SysDict>> queryPageList(SysDict sysDict, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
Result<IPage<SysDict>> result = new Result<IPage<SysDict>>(); Result<IPage<SysDict>> result = new Result<IPage<SysDict>>();
QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap()); QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap());
Page<SysDict> page = new Page<SysDict>(pageNo, pageSize); Page<SysDict> page = new Page<SysDict>(pageNo, pageSize);
@@ -97,7 +95,7 @@ public class SysDictController {
@ApiOperation(value = "字典控制器-树形字典数据", notes = "字典控制器-树形字典数据") @ApiOperation(value = "字典控制器-树形字典数据", notes = "字典控制器-树形字典数据")
@RequestMapping(value = "/treeList", method = RequestMethod.GET) @RequestMapping(value = "/treeList", method = RequestMethod.GET)
public Result<List<SysDictTree>> treeList(SysDict sysDict, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, public Result<List<SysDictTree>> treeList(SysDict sysDict, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
Result<List<SysDictTree>> result = new Result<>(); Result<List<SysDictTree>> result = new Result<>();
LambdaQueryWrapper<SysDict> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysDict> query = new LambdaQueryWrapper<>();
// 构造查询条件 // 构造查询条件
@@ -153,12 +151,12 @@ public class SysDictController {
} }
}else { }else {
//字典表 //字典表
ls = sysDictService.queryDictItemsByCode(dictCode); ls = sysDictService.queryDictItemsByCode(dictCode);
} }
result.setSuccess(true); result.setSuccess(true);
result.setResult(ls); result.setResult(ls);
log.debug(result.toString()); log.debug(result.toString());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
result.error500("操作失败"); result.error500("操作失败");
@@ -194,8 +192,8 @@ public class SysDictController {
String text = null; String text = null;
try { try {
text = sysDictService.queryDictTextByKey(dictCode, key); text = sysDictService.queryDictTextByKey(dictCode, key);
result.setSuccess(true); result.setSuccess(true);
result.setResult(text); result.setResult(text);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
result.error500("操作失败"); result.error500("操作失败");
@@ -212,9 +210,9 @@ public class SysDictController {
@ApiOperation(value = "字典控制器-通过字典code获取字典数据", notes = "字典控制器-通过字典code获取字典数据") @ApiOperation(value = "字典控制器-通过字典code获取字典数据", notes = "字典控制器-通过字典code获取字典数据")
@RequestMapping(value = "/loadDict/{dictCode}", method = RequestMethod.GET) @RequestMapping(value = "/loadDict/{dictCode}", method = RequestMethod.GET)
public Result<List<DictModel>> loadDict(@PathVariable String dictCode, public Result<List<DictModel>> loadDict(@PathVariable String dictCode,
@RequestParam(name="keyword") String keyword, @RequestParam(name="keyword") String keyword,
@RequestParam(value = "sign",required = false) String sign, @RequestParam(value = "sign",required = false) String sign,
@RequestParam(value = "pageSize", required = false) Integer pageSize) { @RequestParam(value = "pageSize", required = false) Integer pageSize) {
log.info(" 加载字典表数据,加载关键字: "+ keyword); log.info(" 加载字典表数据,加载关键字: "+ keyword);
Result<List<DictModel>> result = new Result<List<DictModel>>(); Result<List<DictModel>> result = new Result<List<DictModel>>();
List<DictModel> ls = null; List<DictModel> ls = null;
@@ -282,16 +280,16 @@ public class SysDictController {
@ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据") @ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据")
@RequestMapping(value = "/loadTreeData", method = RequestMethod.GET) @RequestMapping(value = "/loadTreeData", method = RequestMethod.GET)
public Result<List<TreeSelectModel>> loadTreeData(@RequestParam(name="pid") String pid, @RequestParam(name="pidField") String pidField, public Result<List<TreeSelectModel>> loadTreeData(@RequestParam(name="pid") String pid, @RequestParam(name="pidField") String pidField,
@RequestParam(name="tableName") String tbname, @RequestParam(name="tableName") String tbname,
@RequestParam(name="text") String text, @RequestParam(name="text") String text,
@RequestParam(name="code") String code, @RequestParam(name="code") String code,
@RequestParam(name="hasChildField", required = false) String hasChildField, @RequestParam(name="hasChildField", required = false) String hasChildField,
@RequestParam(value = "sign", required = false) String sign, HttpServletRequest request) { @RequestParam(value = "sign", required = false) String sign, HttpServletRequest request) {
Result<List<TreeSelectModel>> result = new Result<List<TreeSelectModel>>(); Result<List<TreeSelectModel>> result = new Result<List<TreeSelectModel>>();
// SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件) // SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件)
String dictCode = tbname +","+ text +","+ code; String dictCode = tbname +","+ text +","+ code;
SqlInjectionUtil.filterContent(dictCode); SqlInjectionUtil.filterContent(dictCode);
List<TreeSelectModel> ls = sysDictService.queryTreeList(null, tbname, text, code, pidField, pid, hasChildField); List<TreeSelectModel> ls = sysDictService.queryTreeList(null, tbname, text, code, pidField, pid, hasChildField);
result.setSuccess(true); result.setSuccess(true);
result.setResult(ls); result.setResult(ls);
@@ -304,10 +302,10 @@ public class SysDictController {
@ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 加载树形数据") @ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 加载树形数据")
@RequestMapping(value = "/queryAllTreeData", method = RequestMethod.GET) @RequestMapping(value = "/queryAllTreeData", method = RequestMethod.GET)
public Result<List<TreeSelectModel>> queryAllTreeData(@RequestParam(name="pidField") String pidField, public Result<List<TreeSelectModel>> queryAllTreeData(@RequestParam(name="pidField") String pidField,
@RequestParam(name="tableName") String tbname, @RequestParam(name="tableName") String tbname,
@RequestParam(name="text") String text, @RequestParam(name="text") String text,
@RequestParam(name="code") String code, @RequestParam(name="code") String code,
HttpServletRequest request) { HttpServletRequest request) {
Result<List<TreeSelectModel>> result = new Result<List<TreeSelectModel>>(); Result<List<TreeSelectModel>> result = new Result<List<TreeSelectModel>>();
// SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件) // SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件)
@@ -318,7 +316,18 @@ public class SysDictController {
result.setResult(ls); result.setResult(ls);
return result; return result;
} }
/**
* 查询选项内容--数据字典名称
* @return
*/
@GetMapping(value = "/deleteList")
public Result<List<SysDict>> deleteList() {
Result<List<SysDict>> result = new Result<List<SysDict>>();
List<SysDict> list = this.sysDictService.queryDeleteList();
result.setSuccess(true);
result.setResult(list);
return result;
}
/** /**
* @功能:新增 * @功能:新增
* @param sysDict * @param sysDict
@@ -354,15 +363,21 @@ public class SysDictController {
public Result<SysDict> edit(@RequestBody SysDict sysDict) { public Result<SysDict> edit(@RequestBody SysDict sysDict) {
Result<SysDict> result = new Result<SysDict>(); Result<SysDict> result = new Result<SysDict>();
SysDict sysdict = sysDictService.getById(sysDict.getId()); SysDict sysdict = sysDictService.getById(sysDict.getId());
if(sysdict==null) { if (sysdict == null) {
result.error500("未找到对应实体"); result.error500("未找到对应实体");
}else { }
sysDict.setUpdateTime(new Date()); else {
boolean ok = sysDictService.updateById(sysDict); if (sysDict.getIsReadOnly() == 1) {
if(ok) { result.error500("固定字段,不能修改");
result.success("编辑成功!"); }
//编辑成功后需要刷新缓存 else{
sysDictService.refreshCache(); sysDict.setUpdateTime(new Date());
boolean ok = sysDictService.updateById(sysDict);
if (ok) {
result.success("编辑成功!");
//编辑成功后需要刷新缓存
sysDictService.refreshCache();
}
} }
} }
return result; return result;
@@ -378,16 +393,23 @@ public class SysDictController {
@DeleteMapping(value = "/delete") @DeleteMapping(value = "/delete")
@CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true) @CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true)
public Result<SysDict> delete(@RequestParam(name="id",required=true) String id) { public Result<SysDict> delete(@RequestParam(name="id",required=true) String id) {
Result<SysDict> result = new Result<SysDict>(); Result<SysDict> result = new Result<SysDict>();
boolean ok = sysDictService.removeById(id); SysDict sysDict = sysDictService.queryById(id);
if(ok) { if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) {
result.success("删除成功!"); if (sysDict.getIsReadOnly() == 1) {
}else{ result.error500("固定字段,不可删除");
result.error500("删除失败!"); } else {
boolean ok = sysDictService.removeById(id);
if (ok) {
result.success("删除成功!");
} else {
result.error500("删除失败!");
}
}
} }
return result; return result;
} }
/** /**
* @功能:批量删除 * @功能:批量删除
* @param ids * @param ids
@@ -398,11 +420,18 @@ public class SysDictController {
@CacheEvict(value= CacheConstant.SYS_DICT_CACHE, allEntries=true) @CacheEvict(value= CacheConstant.SYS_DICT_CACHE, allEntries=true)
public Result<SysDict> deleteBatch(@RequestParam(name="ids",required=true) String ids) { public Result<SysDict> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
Result<SysDict> result = new Result<SysDict>(); Result<SysDict> result = new Result<SysDict>();
SysDict sysDict = sysDictService.queryById(ids);
if(oConvertUtils.isEmpty(ids)) { if(oConvertUtils.isEmpty(ids)) {
result.error500("参数不识别!"); result.error500("参数不识别!");
}else { }else {
sysDictService.removeByIds(Arrays.asList(ids.split(","))); if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) {
result.success("删除成功!"); if (sysDict.getIsReadOnly() == 1) {
result.error500("固定字段,不可删除");
} else {
sysDictService.removeByIds(Arrays.asList(ids.split(",")));
result.success("删除成功!");
}
}
} }
return result; return result;
} }
@@ -464,7 +493,7 @@ public class SysDictController {
@RequiresRoles({"admin"}) @RequiresRoles({"admin"})
@PostMapping(value = "/importExcel") @PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象 MultipartFile file = entity.getValue();// 获取上传文件对象
@@ -521,13 +550,10 @@ public class SysDictController {
* 查询被删除的列表 * 查询被删除的列表
* @return * @return
*/ */
@GetMapping(value = "/deleteList") @GetMapping(value = "/queryDictName")
public Result<List<SysDict>> deleteList() { public Result<List<SysDict>> queryDictName(SysDict sysDict) {
Result<List<SysDict>> result = new Result<List<SysDict>>(); List<SysDict> list =sysDictService.queryDictName(sysDict);
List<SysDict> list = this.sysDictService.queryDeleteList(); return Result.OK(list);
result.setSuccess(true);
result.setResult(list);
return result;
} }
/** /**
@@ -165,7 +165,7 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
} }
/** /**
* 查询展示区域 * 查询选项内容--数据字典名称
* @return * @return
*/ */
@Override @Override
@@ -321,4 +321,15 @@ public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> impl
redisTemplate.delete(keys5); redisTemplate.delete(keys5);
redisTemplate.delete(keys6); redisTemplate.delete(keys6);
} }
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public SysDict queryById(String id) {
return getById(id);
}
} }