package cn.iocoder.yudao.module.system.service.storage; import cn.iocoder.yudao.module.system.controller.admin.storage.vo.SystemStorageAttachmentListReqVO; import cn.iocoder.yudao.module.system.controller.admin.storage.vo.SystemStorageAttachmentSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.storage.vo.SystemStorageBlobRespVO; import cn.iocoder.yudao.module.system.enums.storage.StorageApplicationTypeEnum; import cn.iocoder.yudao.module.system.enums.storage.StorageRecordTypeEnum; import cn.iocoder.yudao.module.system.util.storage.StorageFileUtil; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * 文件关联表 Service 实现类 * * @author 芋道源码 */ @Service @RequiredArgsConstructor public class SystemStorageAttachmentServiceImpl implements SystemStorageAttachmentService { private final StorageFileUtil fileUtil; @Override @Transactional(rollbackFor = Exception.class) public void bindAttachments(SystemStorageAttachmentSaveReqVO reqVO) { fileUtil.saveStorageAttachmentByRecordTypeAndRecordId( reqVO.getApplication(), StorageRecordTypeEnum.getByType(reqVO.getRecordType()), reqVO.getRecordId(), reqVO.getBlobItems() ); } @Override public List listAttachments(SystemStorageAttachmentListReqVO reqVO) { return fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId( reqVO.getApplication(), reqVO.getRecordType(), reqVO.getRecordId() ); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAttachments(List ids) { fileUtil.deleteStorageAttachmentsByStorageAttachmentIds(ids); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAttachmentsByApplicationAndRecordTypeAndRecordId(String application, String recordType, Long recordId) { fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordId(application, recordType, recordId); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAttachmentsByRecordTypeAndRecordId(String recordType, Long recordId) { fileUtil.deleteStorageAttachmentsByRecordTypeAndRecordId(recordType, recordId); } @Override @Transactional(rollbackFor = Exception.class) public void deleteAttachmentsByApplicationAndRecordTypeAndRecordIds(String application, String recordType, List recordIds) { fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(application, recordType, recordIds); } }