From 1ca5b1a88527874610eafde6a538281a3616b3c6 Mon Sep 17 00:00:00 2001 From: xiejunyu Date: Mon, 21 Feb 2022 18:17:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=AE=A1=E7=90=86-=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysDictController.java | 134 +++++++++++------- .../service/impl/SysDictServiceImpl.java | 13 +- 2 files changed, 92 insertions(+), 55 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java index 7c26aa593..2dfbcd247 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDictController.java @@ -1,23 +1,15 @@ 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.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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.constant.CacheConstant; import com.jero.common.constant.CommonConstant; import com.jero.common.system.query.QueryGenerator; 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.util.ImportExcelUtil; 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.ISysDictService; 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.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; @@ -72,7 +70,7 @@ public class SysDictController { @RequestMapping(value = "/page", method = RequestMethod.GET) @ApiOperation(value = "字典控制器-分页列表查询", notes = "字典控制器-分页列表查询") public Result> 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> result = new Result>(); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap()); Page page = new Page(pageNo, pageSize); @@ -97,7 +95,7 @@ public class SysDictController { @ApiOperation(value = "字典控制器-树形字典数据", notes = "字典控制器-树形字典数据") @RequestMapping(value = "/treeList", method = RequestMethod.GET) public Result> 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> result = new Result<>(); LambdaQueryWrapper query = new LambdaQueryWrapper<>(); // 构造查询条件 @@ -153,12 +151,12 @@ public class SysDictController { } }else { //字典表 - ls = sysDictService.queryDictItemsByCode(dictCode); + ls = sysDictService.queryDictItemsByCode(dictCode); } - result.setSuccess(true); - result.setResult(ls); - log.debug(result.toString()); + result.setSuccess(true); + result.setResult(ls); + log.debug(result.toString()); } catch (Exception e) { log.error(e.getMessage(),e); result.error500("操作失败"); @@ -194,8 +192,8 @@ public class SysDictController { String text = null; try { text = sysDictService.queryDictTextByKey(dictCode, key); - result.setSuccess(true); - result.setResult(text); + result.setSuccess(true); + result.setResult(text); } catch (Exception e) { log.error(e.getMessage(),e); result.error500("操作失败"); @@ -212,9 +210,9 @@ public class SysDictController { @ApiOperation(value = "字典控制器-通过字典code获取字典数据", notes = "字典控制器-通过字典code获取字典数据") @RequestMapping(value = "/loadDict/{dictCode}", method = RequestMethod.GET) public Result> loadDict(@PathVariable String dictCode, - @RequestParam(name="keyword") String keyword, - @RequestParam(value = "sign",required = false) String sign, - @RequestParam(value = "pageSize", required = false) Integer pageSize) { + @RequestParam(name="keyword") String keyword, + @RequestParam(value = "sign",required = false) String sign, + @RequestParam(value = "pageSize", required = false) Integer pageSize) { log.info(" 加载字典表数据,加载关键字: "+ keyword); Result> result = new Result>(); List ls = null; @@ -282,16 +280,16 @@ public class SysDictController { @ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 pid 加载树形数据") @RequestMapping(value = "/loadTreeData", method = RequestMethod.GET) public Result> 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", required = false) String hasChildField, - @RequestParam(value = "sign", required = false) String sign, HttpServletRequest request) { + @RequestParam(name="tableName") String tbname, + @RequestParam(name="text") String text, + @RequestParam(name="code") String code, + @RequestParam(name="hasChildField", required = false) String hasChildField, + @RequestParam(value = "sign", required = false) String sign, HttpServletRequest request) { Result> result = new Result>(); // SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件) String dictCode = tbname +","+ text +","+ code; - SqlInjectionUtil.filterContent(dictCode); + SqlInjectionUtil.filterContent(dictCode); List ls = sysDictService.queryTreeList(null, tbname, text, code, pidField, pid, hasChildField); result.setSuccess(true); result.setResult(ls); @@ -304,10 +302,10 @@ public class SysDictController { @ApiOperation(value = "字典控制器-根据表名—显示字段-存储字段 加载树形数据", notes = "字典控制器-根据表名—显示字段-存储字段 加载树形数据") @RequestMapping(value = "/queryAllTreeData", method = RequestMethod.GET) public Result> queryAllTreeData(@RequestParam(name="pidField") String pidField, - @RequestParam(name="tableName") String tbname, - @RequestParam(name="text") String text, - @RequestParam(name="code") String code, - HttpServletRequest request) { + @RequestParam(name="tableName") String tbname, + @RequestParam(name="text") String text, + @RequestParam(name="code") String code, + HttpServletRequest request) { Result> result = new Result>(); // SQL注入漏洞 sign签名校验(表名,label字段,val字段,条件) @@ -318,7 +316,18 @@ public class SysDictController { result.setResult(ls); return result; } - + /** + * 查询选项内容--数据字典名称 + * @return + */ + @GetMapping(value = "/deleteList") + public Result> deleteList() { + Result> result = new Result>(); + List list = this.sysDictService.queryDeleteList(); + result.setSuccess(true); + result.setResult(list); + return result; + } /** * @功能:新增 * @param sysDict @@ -354,15 +363,21 @@ public class SysDictController { public Result edit(@RequestBody SysDict sysDict) { Result result = new Result(); SysDict sysdict = sysDictService.getById(sysDict.getId()); - if(sysdict==null) { + if (sysdict == null) { result.error500("未找到对应实体"); - }else { - sysDict.setUpdateTime(new Date()); - boolean ok = sysDictService.updateById(sysDict); - if(ok) { - result.success("编辑成功!"); - //编辑成功后需要刷新缓存 - sysDictService.refreshCache(); + } + else { + if (sysDict.getIsReadOnly() == 1) { + result.error500("固定字段,不能修改"); + } + else{ + sysDict.setUpdateTime(new Date()); + boolean ok = sysDictService.updateById(sysDict); + if (ok) { + result.success("编辑成功!"); + //编辑成功后需要刷新缓存 + sysDictService.refreshCache(); + } } } return result; @@ -378,16 +393,23 @@ public class SysDictController { @DeleteMapping(value = "/delete") @CacheEvict(value=CacheConstant.SYS_DICT_CACHE, allEntries=true) public Result delete(@RequestParam(name="id",required=true) String id) { + Result result = new Result(); - boolean ok = sysDictService.removeById(id); - if(ok) { - result.success("删除成功!"); - }else{ - result.error500("删除失败!"); + SysDict sysDict = sysDictService.queryById(id); + if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) { + if (sysDict.getIsReadOnly() == 1) { + result.error500("固定字段,不可删除"); + } else { + boolean ok = sysDictService.removeById(id); + if (ok) { + result.success("删除成功!"); + } else { + result.error500("删除失败!"); + } + } } return result; } - /** * @功能:批量删除 * @param ids @@ -398,11 +420,18 @@ public class SysDictController { @CacheEvict(value= CacheConstant.SYS_DICT_CACHE, allEntries=true) public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { Result result = new Result(); + SysDict sysDict = sysDictService.queryById(ids); if(oConvertUtils.isEmpty(ids)) { result.error500("参数不识别!"); }else { - sysDictService.removeByIds(Arrays.asList(ids.split(","))); - result.success("删除成功!"); + if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) { + if (sysDict.getIsReadOnly() == 1) { + result.error500("固定字段,不可删除"); + } else { + sysDictService.removeByIds(Arrays.asList(ids.split(","))); + result.success("删除成功!"); + } + } } return result; } @@ -464,7 +493,7 @@ public class SysDictController { @RequiresRoles({"admin"}) @PostMapping(value = "/importExcel") public Result importExcel(HttpServletRequest request, HttpServletResponse response) { - MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 @@ -521,13 +550,10 @@ public class SysDictController { * 查询被删除的列表 * @return */ - @GetMapping(value = "/deleteList") - public Result> deleteList() { - Result> result = new Result>(); - List list = this.sysDictService.queryDeleteList(); - result.setSuccess(true); - result.setResult(list); - return result; + @GetMapping(value = "/queryDictName") + public Result> queryDictName(SysDict sysDict) { + List list =sysDictService.queryDictName(sysDict); + return Result.OK(list); } /** diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java index 3c84f3e5f..6a87911ab 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysDictServiceImpl.java @@ -165,7 +165,7 @@ public class SysDictServiceImpl extends ServiceImpl impl } /** - * 查询展示区域 + * 查询选项内容--数据字典名称 * @return */ @Override @@ -321,4 +321,15 @@ public class SysDictServiceImpl extends ServiceImpl impl redisTemplate.delete(keys5); redisTemplate.delete(keys6); } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public SysDict queryById(String id) { + return getById(id); + } }