ludc
2023-11-07 e61a898fe563214cb13e97c08804534a61aad46b
Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/DictBizServiceImpl.java
@@ -31,6 +31,7 @@
import org.springblade.core.cache.utils.CacheUtil;
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;
@@ -116,4 +117,37 @@
      List<DictBiz> list = this.list(Condition.getQueryWrapper(dict, DictBiz.class).lambda().ne(DictBiz::getId, parentId).eq(DictBiz::getCode, parentDict.getCode()).orderByAsc(DictBiz::getSort));
      return DictBizWrapper.build().listNodeVO(list);
   }
   @Override
   public R checkOrInsert(DictBiz dictBiz) {
      LambdaQueryWrapper<DictBiz> wrapper = Wrappers.<DictBiz>query().lambda().eq(DictBiz::getCode, dictBiz.getCode()).eq(DictBiz::getDictKey, dictBiz.getDictKey()).eq(DictBiz::getDictValue, dictBiz.getDictValue());
      // Long cnt = baseMapper.selectCount((Func.isEmpty(dictBiz.getId())) ? lqw : lqw.notIn(DictBiz::getId, dictBiz.getId()));
      Long cnt = baseMapper.selectCount(wrapper);
      if (cnt > 0L) {
         return R.fail("字典已经存在!");
      }
      // 根据code先查询是否已存在该字典,存在就需要将当前字典添加到该code下面
      LambdaQueryWrapper<DictBiz> wrappers = Wrappers.<DictBiz>query()
         .lambda().eq(DictBiz::getCode, dictBiz.getCode())
         .eq(DictBiz::getParentId,BladeConstant.TOP_PARENT_ID)
         .last("limit 1");
      DictBiz dbDictBiz = baseMapper.selectOne(wrappers);
      // 当前code已存在,作为当前父字典
      if(Func.isNotEmpty(dbDictBiz)){
         dictBiz.setParentId(dbDictBiz.getId());
      }
      // 是否为顶层字典
      if (Func.isEmpty(dictBiz.getParentId())) {
         dictBiz.setParentId(BladeConstant.TOP_PARENT_ID);
      }
      dictBiz.setIsSealed(0);
      dictBiz.setIsDeleted(BladeConstant.DB_NOT_DELETED);
      CacheUtil.clear(DICT_CACHE);
      if(saveOrUpdate(dictBiz) == true){
         return R.success("操作成功!");
      }
      return R.fail("操作失败!");
   }
}