直接使用业务字典完成功能,检查字典是否存在,存在即返回,不存在新增
已修改3个文件
38 ■■■■■ 文件已修改
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/DictController.java
@@ -192,5 +192,16 @@
        return R.data(list);
    }
    /**
     * 检查字典是否存在,存在即返回,不存在新增
     */
    @PostMapping("/check")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入dict")
    public R checkOrInsert(@Valid @RequestBody Dict dict) {
        CacheUtil.clear(DICT_CACHE, Boolean.FALSE);
        return dictService.checkOrInsert(dict);
    }
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IDictService.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.system.entity.Dict;
import org.springblade.system.vo.DictVO;
@@ -106,4 +107,11 @@
     */
    List<DictVO> childList(Map<String, Object> dict, Long parentId);
    /**
     * 新增或修改
     *
     * @param dict
     * @return
     */
    R checkOrInsert(Dict dict);
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DictServiceImpl.java
@@ -25,6 +25,7 @@
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.Func;
@@ -122,4 +123,22 @@
        List<Dict> list = this.list(Condition.getQueryWrapper(dict, Dict.class).lambda().ne(Dict::getId, parentId).eq(Dict::getCode, parentDict.getCode()).orderByAsc(Dict::getSort));
        return DictWrapper.build().listNodeVO(list);
    }
    @Override
    public R checkOrInsert(Dict dict) {
        LambdaQueryWrapper<Dict> lqw = Wrappers.<Dict>query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey());
        Long cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId()));
        if (cnt > 0L) {
            R.fail("字典已经存在!");
        }
        if (Func.isEmpty(dict.getParentId())) {
            dict.setParentId(BladeConstant.TOP_PARENT_ID);
        }
        dict.setIsDeleted(BladeConstant.DB_NOT_DELETED);
        CacheUtil.clear(DICT_CACHE, Boolean.FALSE);
        if(saveOrUpdate(dict) == true){
            return R.success("操作成功!");
        }
        return R.fail("操作失败!");
    }
}