package com.ruoyi.device.domain.impl; import com.ruoyi.device.config.DeviceCacheConfig; import com.ruoyi.device.domain.api.IPayloadDomain; import com.ruoyi.device.domain.convert.PayloadConvert; import com.ruoyi.device.domain.model.Payload; import com.ruoyi.device.mapper.PayloadMapper; import com.ruoyi.device.mapper.entity.PayloadEntity; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Component; import java.util.List; /** * 挂载Domain实现 * * @author ruoyi * @date 2026-01-16 */ @Component public class PayloadDomainImpl implements IPayloadDomain { private final PayloadMapper payloadMapper; public PayloadDomainImpl(PayloadMapper payloadMapper) { this.payloadMapper = payloadMapper; } @Override public List selectPayloadList(Payload payload) { PayloadEntity entity = PayloadConvert.to(payload); List entityList = payloadMapper.selectPayloadList(entity); return PayloadConvert.fromList(entityList); } @Override @Cacheable(value = DeviceCacheConfig.PAYLOAD_CACHE, key = "'id:' + #payloadId", unless = "#result == null") public Payload selectPayloadByPayloadId(Long payloadId) { PayloadEntity entity = payloadMapper.selectPayloadByPayloadId(payloadId); return PayloadConvert.from(entity); } @Override @CacheEvict(value = DeviceCacheConfig.PAYLOAD_CACHE, allEntries = true) public int insertPayload(Payload payload) { PayloadEntity entity = PayloadConvert.to(payload); int result = payloadMapper.insertPayload(entity); // MyBatis 会将自增主键回填到 entity 对象,需要同步回 payload 对象 payload.setPayloadId(entity.getPayloadId()); return result; } @Override @CacheEvict(value = DeviceCacheConfig.PAYLOAD_CACHE, key = "'id:' + #payload.payloadId") public int updatePayload(Payload payload) { PayloadEntity entity = PayloadConvert.to(payload); return payloadMapper.updatePayload(entity); } @Override @CacheEvict(value = DeviceCacheConfig.PAYLOAD_CACHE, allEntries = true) public int deletePayloadByPayloadId(Long payloadId) { return payloadMapper.deletePayloadByPayloadId(payloadId); } @Override @CacheEvict(value = DeviceCacheConfig.PAYLOAD_CACHE, allEntries = true) public int deletePayloadByPayloadIds(Long[] payloadIds) { return payloadMapper.deletePayloadByPayloadIds(payloadIds); } }