package com.vincent.rsf.server.system.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.vincent.rsf.server.common.event.DictDataChangedEvent;
|
import com.vincent.rsf.server.system.entity.DictData;
|
import com.vincent.rsf.server.system.mapper.DictDataMapper;
|
import com.vincent.rsf.server.system.service.DictDataService;
|
import org.springframework.context.ApplicationEventPublisher;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.io.Serializable;
|
import java.util.Collection;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service("dictDataService")
|
public class DictDataServiceImpl extends ServiceImpl<DictDataMapper, DictData> implements DictDataService {
|
|
@Resource
|
private ApplicationEventPublisher applicationEventPublisher;
|
|
@Override
|
public boolean save(DictData entity) {
|
boolean result = super.save(entity);
|
if (result && entity.getDictTypeCode() != null) {
|
applicationEventPublisher.publishEvent(new DictDataChangedEvent(this, entity.getDictTypeCode()));
|
}
|
return result;
|
}
|
|
@Override
|
public boolean updateById(DictData entity) {
|
boolean result = super.updateById(entity);
|
if (result && entity.getDictTypeCode() != null) {
|
applicationEventPublisher.publishEvent(new DictDataChangedEvent(this, entity.getDictTypeCode()));
|
}
|
return result;
|
}
|
|
@Override
|
public boolean removeByIds(Collection<? extends Serializable> list) {
|
if (list == null || list.isEmpty()) {
|
return true;
|
}
|
List<DictData> before = listByIds(list);
|
boolean result = super.removeByIds(list);
|
if (result && before != null) {
|
for (String dictTypeCode : before.stream().map(DictData::getDictTypeCode).filter(c -> c != null).distinct().collect(Collectors.toList())) {
|
applicationEventPublisher.publishEvent(new DictDataChangedEvent(this, dictTypeCode));
|
}
|
}
|
return result;
|
}
|
}
|