🎉 修复字典的bug

This commit is contained in:
smallchill 2019-02-27 22:26:22 +08:00
parent 48fe70644b
commit 18babfda4e
3 changed files with 27 additions and 3 deletions

View File

@ -17,6 +17,7 @@ package org.springblade.system.controller;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.cache.CacheNames;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -26,6 +27,7 @@ import org.springblade.system.entity.Dict;
import org.springblade.system.service.IDictService; import org.springblade.system.service.IDictService;
import org.springblade.system.vo.DictVO; import org.springblade.system.vo.DictVO;
import org.springblade.system.wrapper.DictWrapper; import org.springblade.system.wrapper.DictWrapper;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
@ -92,7 +94,7 @@ public class DictController extends BladeController {
@PostMapping("/submit") @PostMapping("/submit")
@ApiOperation(value = "新增或修改", notes = "传入dict", position = 6) @ApiOperation(value = "新增或修改", notes = "传入dict", position = 6)
public R submit(@Valid @RequestBody Dict dict) { public R submit(@Valid @RequestBody Dict dict) {
return R.status(dictService.saveOrUpdate(dict)); return R.status(dictService.submit(dict));
} }
@ -100,6 +102,7 @@ public class DictController extends BladeController {
* 删除 * 删除
*/ */
@PostMapping("/remove") @PostMapping("/remove")
@CacheEvict(cacheNames = {CacheNames.DICT_LIST, CacheNames.DICT_VALUE})
@ApiOperation(value = "物理删除", notes = "传入ids", position = 7) @ApiOperation(value = "物理删除", notes = "传入ids", position = 7)
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(dictService.removeByIds(Func.toIntList(ids))); return R.status(dictService.removeByIds(Func.toIntList(ids)));

View File

@ -63,4 +63,11 @@ public interface IDictService extends IService<Dict> {
*/ */
List<Dict> getList(String code); List<Dict> getList(String code);
/**
* 新增或修改
* @param dict
* @return
*/
boolean submit(Dict dict);
} }

View File

@ -15,7 +15,10 @@
*/ */
package org.springblade.system.service.impl; package org.springblade.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.exceptions.ApiException;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
@ -24,6 +27,7 @@ import org.springblade.system.entity.Dict;
import org.springblade.system.mapper.DictMapper; import org.springblade.system.mapper.DictMapper;
import org.springblade.system.service.IDictService; import org.springblade.system.service.IDictService;
import org.springblade.system.vo.DictVO; import org.springblade.system.vo.DictVO;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -54,8 +58,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements ID
@Override @Override
@Cacheable(cacheNames = DICT_VALUE, key = "#code+'_'+#dictKey") @Cacheable(cacheNames = DICT_VALUE, key = "#code+'_'+#dictKey")
public String getValue(String code, Integer dictKey) { public String getValue(String code, Integer dictKey) {
String value = Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY); return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY);
return value;
} }
@Override @Override
@ -64,4 +67,15 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements ID
return baseMapper.getList(code); return baseMapper.getList(code);
} }
@Override
@CacheEvict(cacheNames = {DICT_LIST, DICT_VALUE})
public boolean submit(Dict dict) {
LambdaQueryWrapper<Dict> lqw = Wrappers.<Dict>query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey());
Integer cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId()));
if (cnt > 0) {
throw new ApiException("当前字典键值已存在!");
}
return saveOrUpdate(dict);
}
} }