Springcloud学习笔记35--文件存储信息删除和批量功能(delete方式提交,接收map形式的数据,使用@RequestBody 接收)
1.Controller
@Api(tags="bs_file_store") @RestController @RequestMapping("/test/bsFileStore") @Slf4j public class BsFileStoreController extends JeecgController<BsFileStore, IBsFileStoreService> { @Autowired private IBsFileStoreService bsFileStoreService; /** * 通过id和storeType删除 * * @param id * @return */ @AutoLog(value = "bs_file_store-通过id和storeType删除") @ApiOperation(value="bs_file_store-通过id删除", notes="bs_file_store-通过id和storeType删除") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name="id",required=true) String id,@RequestParam(name="storeType",required=true) String storeType) { return bsFileStoreService.deleteByIdAndType(id,storeType)?Result.OK("删除成功"):Result.error("删除失败"); } /** * 批量删除 * * @param map * @return */ @AutoLog(value = "bs_file_store-批量删除") @ApiOperation(value="bs_file_store-批量删除", notes="bs_file_store-批量删除") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(Map<String,String> map) { return bsFileStoreService.batchDeleteByIdAndType(map)?Result.OK("批量删除成功!"):Result.error("批量删除失败"); } }
2.service
@Service @DS("multi-datasource1") @Slf4j public class BsFileStoreServiceImpl extends ServiceImpl<BsFileStoreMapper, BsFileStore> implements IBsFileStoreService { @Autowired private BsFileStoreMapper bsFileStoreMapper; @Autowired private PmOsInfoMapper pmOsInfoMapper; @Autowired private PmLocalstoreInfoMapper pmLocalstoreInfoMapper; @Autowired private PmOsClustersMapper pmOsClustersMapper; @Autowired private PmOsBucketMapper pmOsBucketMapper; private final String LOCAL=StoreTypeEnum.LOCAL.getCode(); //loacl=2 private final String OSS=StoreTypeEnum.OSS.getCode();//oss=1 @Override @Transactional(rollbackFor = Exception.class) public boolean deleteByIdAndType(String id,String type){ if(OSS.equals(type)){ //01 获取存储名称osName String osName=pmOsInfoMapper.selectById(id).getOsName(); //02 桶删除(根据存储名称删除) LambdaQueryWrapper<PmOsBucket> bucketLambdaQueryWrapper=new LambdaQueryWrapper<>(); bucketLambdaQueryWrapper.eq(PmOsBucket::getOsName,osName); pmOsBucketMapper.delete(bucketLambdaQueryWrapper); //03 对象存储平台关系表删除 LambdaQueryWrapper<PmOsClusters> wrapper=new LambdaQueryWrapper<>(); wrapper.eq(PmOsClusters::getOsName,osName); pmOsClustersMapper.delete(wrapper); //04 对象存储表删除 pmOsInfoMapper.deleteById(id); } if(LOCAL.equals(type)){ pmLocalstoreInfoMapper.deleteById(id); } return true; } @Override public boolean batchDeleteByIdAndType(Map<String, String> map) { try { for (Map.Entry<String, String> entry : map.entrySet()) { deleteByIdAndType(entry.getKey(),entry.getValue() ); } } catch (Exception e) { log.error(e.getMessage()); throw new JeecgBootException("批量删除失败"); } return true; } }
3.postman模拟前端测试
http://127.0.0.1:7009/test/bsFileStore/deleteBatch
数据库表删除前:
数据库表删除后:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)