package com.zt.modules.sys.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.zt.common.constant.CacheKey;
|
import com.zt.common.constant.Constant;
|
import com.zt.common.db.query.QueryFilter;
|
import com.zt.common.service.BaseService;
|
import com.zt.common.utils.CacheUtils;
|
import com.zt.core.sys.dto.DictItemDto;
|
import com.zt.modules.sys.dao.SysDictDataDao;
|
import com.zt.modules.sys.model.SysDictData;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Comparator;
|
import java.util.List;
|
import java.util.Set;
|
|
/**
|
* 数据字典
|
*
|
* @author hehz
|
*/
|
@Service
|
public class SysDictDataService extends BaseService<SysDictDataDao, SysDictData> {
|
|
@Autowired
|
private SysDictTypeService dictTypeService;
|
|
public List<SysDictData> page(QueryFilter queryFilter) {
|
return query(queryFilter);
|
}
|
|
public List<SysDictData> getByType(Long dictTypeId) {
|
return baseDao.selectList(new QueryWrapper<SysDictData>().eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO)
|
.lambda().eq(SysDictData::getDictTypeId, dictTypeId).orderByAsc(SysDictData::getSort));
|
}
|
|
public List<SysDictData> getByTypes(Set<Long> dictTypeIds) {
|
return baseDao.selectList(new QueryWrapper<SysDictData>().eq(Constant.TableColumn.IS_DELETE, Constant.Bool.NO)
|
.lambda().in(SysDictData::getDictTypeId, dictTypeIds).orderByAsc(SysDictData::getSort));
|
}
|
|
@Transactional(rollbackFor = Exception.class)
|
public void insert(SysDictData entity) {
|
if (entity.getDictValue()==null ||entity.getDictValue()==0) {
|
Integer maxId = 0;
|
List<DictItemDto> dictDataList = dictTypeService.getDictItemsOfDictTree(entity.getDictTypeId());
|
if (dictDataList.size() > 0) {
|
maxId = Integer.parseInt(dictDataList.stream()
|
.max(Comparator.comparingLong(item -> Integer.parseInt(item.getDictValue()))).get().getDictValue());
|
}
|
entity.setDictValue(maxId + 1);// value自动+1
|
}
|
super.insert(entity);
|
CacheUtils.remove(Constant.Cache.SYS, CacheKey.SYS_DICT);// 清除缓存
|
}
|
|
@Override
|
public void update(SysDictData entity) {
|
super.update(entity);
|
|
CacheUtils.remove(Constant.Cache.SYS, CacheKey.SYS_DICT);// 清除缓存
|
}
|
|
@Override
|
public void deleteLogic(Long[] ids) {
|
super.deleteLogic(ids);
|
|
CacheUtils.remove(Constant.Cache.SYS, CacheKey.SYS_DICT);// 清除缓存
|
}
|
}
|