diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java index fda46010..e16eecf0 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java @@ -1,12 +1,18 @@ package com.qs.serve.modules.bir.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.aliyun.oss.OSS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.config.properties.AliYunOssProperties; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.IdUtil; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.bir.entity.BirActivityCenterGoods; @@ -23,6 +29,7 @@ import com.qs.serve.modules.bms.service.BmsChannelPointService; import com.qs.serve.modules.bms.service.BmsChannelService; import com.qs.serve.modules.bms.service.BmsSupplierChannelService; import com.qs.serve.modules.his.service.HisUserChannelPointService; +import com.qs.serve.modules.oss.service.OssService; import com.qs.serve.modules.tbs.entity.TbsActivityChannel; import com.qs.serve.modules.tbs.service.TbsActivityChannelService; import lombok.AllArgsConstructor; @@ -31,7 +38,10 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.io.*; +import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -46,6 +56,8 @@ import java.util.stream.Collectors; @RequestMapping("bir/centerGoods") public class BirActivityCenterGoodsController { + private OssService ossService; + private AliYunOssProperties aliYunOSSProperties; private BirActivityCenterGoodsService centerGoodsService; /** @@ -77,7 +89,7 @@ public class BirActivityCenterGoodsController { */ @GetMapping("/export") @PreAuthorize("hasRole('bms:channel:query')") - public R> export(BirActivityCenterGoods param){ + public R export(BirActivityCenterGoods param){ LambdaQueryWrapper channelWrapper = new LambdaQueryWrapper<>(param); if(param.getKeyNumStart()!=null){ Integer keyNumStart = Integer.parseInt(param.getKeyNumStart().replace("-","")); @@ -88,7 +100,36 @@ public class BirActivityCenterGoodsController { channelWrapper.le(BirActivityCenterGoods::getKeyNum,keyNumEnd); } List list = centerGoodsService.list(channelWrapper); - return R.ok(list); + + String templateFileName = "tempFiles"; + InputStream inputStream = null; + try { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ExcelWriter excelWriter = EasyExcel.write().withTemplate(templateFileName).file(os).build(); + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + excelWriter.fill(list, writeSheet); + excelWriter.finish(); + byte[] buffer = os.toByteArray(); + inputStream = new ByteArrayInputStream(buffer); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM/dd"); + String prefix = aliYunOSSProperties.getPrefix(); + String dir = prefix + "/" + sdf.format(new Date())+"/"; + String fileName = dir + IdUtil.getSnowflakeNextId() + ".xlsx"; + OSS oss = ossService.getOSSClient(); + oss.putObject(aliYunOSSProperties.getBucket(),fileName,inputStream); + return R.ok(fileName,"ok"); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if(inputStream!=null){ + inputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return R.error(); } } diff --git a/src/main/java/com/qs/serve/modules/oss/service/OssService.java b/src/main/java/com/qs/serve/modules/oss/service/OssService.java index 7d2d457d..34c0b5f7 100644 --- a/src/main/java/com/qs/serve/modules/oss/service/OssService.java +++ b/src/main/java/com/qs/serve/modules/oss/service/OssService.java @@ -1,5 +1,6 @@ package com.qs.serve.modules.oss.service; +import com.aliyun.oss.OSS; import com.qs.serve.modules.oss.entity.OssPolicySignVo; /** @@ -14,5 +15,6 @@ public interface OssService { */ OssPolicySignVo getPolicySign(); + OSS getOSSClient(); } diff --git a/src/main/java/com/qs/serve/modules/oss/service/impl/OssServiceImpl.java b/src/main/java/com/qs/serve/modules/oss/service/impl/OssServiceImpl.java index b1cc8577..87f32cec 100644 --- a/src/main/java/com/qs/serve/modules/oss/service/impl/OssServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oss/service/impl/OssServiceImpl.java @@ -25,6 +25,19 @@ public class OssServiceImpl implements OssService { AliYunOssProperties aliYunOSSProperties; + @Override + public OSS getOSSClient() { + // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。 + String endpoint = aliYunOSSProperties.getEndpoint(); + // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 + String accessKeyId = aliYunOSSProperties.getAccessKeyId(); + String accessKeySecret = aliYunOSSProperties.getAccessKeySecret(); + // 填写Bucket名称,例如examplebucket。 + String bucketName = aliYunOSSProperties.getBucket(); + // 创建OSSClient实例。 + return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + } + @Override public OssPolicySignVo getPolicySign() { // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。 diff --git a/src/main/resources/mapper/exl/ExlTableConfMapper.xml b/src/main/resources/mapper/exl/ExlTableConfMapper.xml index 08458a96..8259591a 100644 --- a/src/main/resources/mapper/exl/ExlTableConfMapper.xml +++ b/src/main/resources/mapper/exl/ExlTableConfMapper.xml @@ -35,21 +35,25 @@ + and ${item.column} <= #{item.value} + and ${item.column} >= #{item.value} + and ${item.column} = #{item.value} + and ${item.column} like concat('%', #{item.value} ,'%')