package com.ruoyi.device.domain.impl; import com.ruoyi.device.config.DeviceCacheConfig; import com.ruoyi.device.domain.api.IDockAircraftDomain; import com.ruoyi.device.domain.convert.DockAircraftConvert; import com.ruoyi.device.domain.model.DockAircraft; import com.ruoyi.device.mapper.DockAircraftMapper; import com.ruoyi.device.mapper.entity.DockAircraftEntity; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Component; import java.util.List; /** * 机场无人机关联Domain实现 * * @author ruoyi * @date 2026-01-16 */ @Component public class DockAircraftDomainImpl implements IDockAircraftDomain { private final DockAircraftMapper dockAircraftMapper; public DockAircraftDomainImpl(DockAircraftMapper dockAircraftMapper) { this.dockAircraftMapper = dockAircraftMapper; } @Override public List selectDockAircraftList(DockAircraft dockAircraft) { DockAircraftEntity entity = DockAircraftConvert.to(dockAircraft); List entityList = dockAircraftMapper.selectDockAircraftList(entity); return DockAircraftConvert.fromList(entityList); } @Override @Cacheable(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, key = "'id:' + #id", unless = "#result == null") public DockAircraft selectDockAircraftById(Long id) { DockAircraftEntity entity = dockAircraftMapper.selectDockAircraftById(id); return DockAircraftConvert.from(entity); } @Override @Cacheable(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, key = "'dockId:' + #dockId", unless = "#result == null") public List selectDockAircraftByDockId(Long dockId) { List entityList = dockAircraftMapper.selectDockAircraftListByDockId(dockId); return DockAircraftConvert.fromList(entityList); } @Override @Cacheable(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, key = "'aircraftId:' + #aircraftId", unless = "#result == null") public List selectDockAircraftByAircraftId(Long aircraftId) { List entityList = dockAircraftMapper.selectDockAircraftListByAircraftId(aircraftId); return DockAircraftConvert.fromList(entityList); } @Override @CacheEvict(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, allEntries = true) public int insertDockAircraft(DockAircraft dockAircraft) { DockAircraftEntity entity = DockAircraftConvert.to(dockAircraft); int result = dockAircraftMapper.insertDockAircraft(entity); // MyBatis 会将自增主键回填到 entity 对象,需要同步回 dockAircraft 对象 dockAircraft.setId(entity.getId()); return result; } @Override @Caching(evict = { @CacheEvict(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, key = "'id:' + #dockAircraft.id"), @CacheEvict(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, key = "'dockId:' + #dockAircraft.dockId"), @CacheEvict(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, key = "'aircraftId:' + #dockAircraft.aircraftId") }) public int updateDockAircraft(DockAircraft dockAircraft) { DockAircraftEntity entity = DockAircraftConvert.to(dockAircraft); return dockAircraftMapper.updateDockAircraft(entity); } @Override @CacheEvict(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, allEntries = true) public int deleteDockAircraftById(Long id) { return dockAircraftMapper.deleteDockAircraftById(id); } @Override @CacheEvict(value = DeviceCacheConfig.DOCK_AIRCRAFT_CACHE, allEntries = true) public int deleteDockAircraftByIds(Long[] ids) { return dockAircraftMapper.deleteDockAircraftByIds(ids); } }