a-tuoheng-device/src/main/java/com/ruoyi/device/domain/impl/PayloadDomainImpl.java

79 lines
2.5 KiB
Java

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<Payload> selectPayloadList(Payload payload)
{
PayloadEntity entity = PayloadConvert.to(payload);
List<PayloadEntity> 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);
}
}