From d4e4dc4a180cea919dfc86a1a3e5af0abe8b6d36 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 20 十月 2025 18:48:14 +0800 Subject: [PATCH] 无形广告资产接口 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java | 40 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 38 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java index fccb633..44a79ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetAdController.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.api; +import cn.idev.excel.FastExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.R; @@ -31,7 +32,12 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.Collections; +import java.util.List; /** * <p> @@ -79,13 +85,43 @@ public R<AssetAdDetailVO> getDetail(@ApiParam(name = "id", value = "广告无形资产ID") @PathVariable Integer id) { return R.ok(assetAdService.getDetail(id)); } + + @ApiOperation("下载导入模板") + @GetMapping("/template") + public void getTemplate(HttpServletResponse response){ + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = null; + try { + fileName = URLEncoder.encode("广告无形资产导入模板", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + FastExcel.write(response.getOutputStream(), AssetAdDTO.class) + .sheet("广告无形资产") + .doWrite(Collections.emptyList()); + } catch (IOException e) { + log.error("下载导入模板异常", e); + } + } + @ApiOperation("导入") @Log(title = "导入广告无形资产", businessType = BusinessType.IMPORT) @PostMapping("/import") public R<?> importAssetAd(@RequestPart("file") MultipartFile file){ - //TODO 待完成 - return R.ok(); + if (file.isEmpty()) { + return R.fail("请选择一个文件上传!"); + } + try { + List<AssetAdDTO> list = FastExcel.read(file.getInputStream()).head(AssetAdDTO.class) + .sheet() + .doReadSync(); + assetAdService.importAssetAd(list); + return R.ok(); + } catch (IOException e) { + log.error("文件处理失败", e); + return R.fail("文件处理失败!"); + } } + @ApiOperation("删除") @Transactional(rollbackFor = Exception.class) @DeleteMapping("/{id}") -- Gitblit v1.7.1