From 18343db3b472c7d50e8fe2591babc7c2d0d1a409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BB=81=E6=9D=B0?= <2296477237@qq.com> Date: Mon, 5 Sep 2022 09:28:16 +0800 Subject: [PATCH 1/2] ... --- .../sherly/controller/TenantController.java | 8 ++++ .../guzi/sherly/service/TenantService.java | 31 ++++++++++++++ .../com/guzi/sherly/model/eo/TenantEO.java | 42 +++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java diff --git a/sherly-admin/src/main/java/com/guzi/sherly/controller/TenantController.java b/sherly-admin/src/main/java/com/guzi/sherly/controller/TenantController.java index 6fd143f..4cb2824 100644 --- a/sherly-admin/src/main/java/com/guzi/sherly/controller/TenantController.java +++ b/sherly-admin/src/main/java/com/guzi/sherly/controller/TenantController.java @@ -16,7 +16,9 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.IOException; import java.util.List; import java.util.Objects; @@ -84,4 +86,10 @@ public class TenantController { public Result> listMenu(@RequestParam Long tenantId) { return Result.success(tenantService.listMenu(tenantId)); } + + @GetMapping("/list_export") + @ApiOperation(value = "租户导出", produces = "application/octet-stream") + public void listExport(HttpServletResponse response) throws IOException { + tenantService.listExport(response); + } } diff --git a/sherly-admin/src/main/java/com/guzi/sherly/service/TenantService.java b/sherly-admin/src/main/java/com/guzi/sherly/service/TenantService.java index 8c5943f..43eb63f 100644 --- a/sherly-admin/src/main/java/com/guzi/sherly/service/TenantService.java +++ b/sherly-admin/src/main/java/com/guzi/sherly/service/TenantService.java @@ -2,6 +2,8 @@ package com.guzi.sherly.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.metadata.IPage; import com.guzi.sherly.constants.SqlParam; import com.guzi.sherly.constants.SqlStatement; @@ -12,6 +14,7 @@ import com.guzi.sherly.model.dto.TenantInsertDTO; import com.guzi.sherly.model.dto.TenantMenuUpdateDTO; import com.guzi.sherly.model.dto.TenantPageDTO; import com.guzi.sherly.model.dto.TenantUpdateDTO; +import com.guzi.sherly.model.eo.TenantEO; import com.guzi.sherly.model.exception.BizException; import com.guzi.sherly.model.vo.TenantPageVO; import com.guzi.sherly.modules.security.util.SecurityUtil; @@ -23,6 +26,9 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; import java.util.Collections; import java.util.List; import java.util.Objects; @@ -230,4 +236,29 @@ public class TenantService { return list.stream().map(Menu::getMenuId).collect(Collectors.toList()); } + + /** + * 租户导出 + * @param response + */ + public void listExport(HttpServletResponse response) throws IOException { + List list = tenantManager.list(); + + List result = list.stream().map(e -> { + TenantEO tenantEO = new TenantEO(); + BeanUtils.copyProperties(e, tenantEO); + return tenantEO; + }).collect(Collectors.toList()); + + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("租户列表", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + + EasyExcel.write(response.getOutputStream(), TenantEO.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .sheet("租户列表") + .doWrite(result); + } + } diff --git a/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java b/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java new file mode 100644 index 0000000..0db2161 --- /dev/null +++ b/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java @@ -0,0 +1,42 @@ +package com.guzi.sherly.model.eo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author 李仁杰 + * @date 2022/9/2 + */ +@Data +public class TenantEO { + + /** 租户code */ + @ExcelProperty("租户code") + private String tenantCode; + + /** 租户名称 */ + @ExcelProperty("租户名称") + private String tenantName; + + /** 联系人 */ + @ExcelProperty("联系人") + private String contactUser; + + /** 联系电话 */ + @ExcelProperty("联系电话") + private String contactPhone; + + /** 过期时间 */ + @ExcelProperty(value = "过期时间") + private Date expireTime; + + /** 用户上限 */ + @ExcelProperty("用户上限") + private Long userLimit; + + /** 创建时间 */ + @ExcelProperty(value = "创建时间") + private Date createTime; +} -- Gitee From 43ccc6b9fc31f0f066b2f9fd74410d2e492a1978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BB=81=E6=9D=B0?= <2296477237@qq.com> Date: Mon, 5 Sep 2022 09:52:09 +0800 Subject: [PATCH 2/2] ... --- .../src/main/java/com/guzi/sherly/model/eo/TenantEO.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java b/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java index 0db2161..addc66b 100644 --- a/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java +++ b/sherly-common/src/main/java/com/guzi/sherly/model/eo/TenantEO.java @@ -29,7 +29,7 @@ public class TenantEO { private String contactPhone; /** 过期时间 */ - @ExcelProperty(value = "过期时间") + @ExcelProperty("过期时间") private Date expireTime; /** 用户上限 */ @@ -37,6 +37,6 @@ public class TenantEO { private Long userLimit; /** 创建时间 */ - @ExcelProperty(value = "创建时间") + @ExcelProperty("创建时间") private Date createTime; } -- Gitee