Browse Source

导出待测试

v1.0
Yen 2 years ago
parent
commit
c7d42936a2
  1. 45
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  2. 2
      src/main/java/com/qs/serve/modules/oss/service/OssService.java
  3. 13
      src/main/java/com/qs/serve/modules/oss/service/impl/OssServiceImpl.java
  4. 4
      src/main/resources/mapper/exl/ExlTableConfMapper.xml

45
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<List<BirActivityCenterGoods>> export(BirActivityCenterGoods param){
public R<?> export(BirActivityCenterGoods param){
LambdaQueryWrapper<BirActivityCenterGoods> 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<BirActivityCenterGoods> 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();
}
}

2
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();
}

13
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请按实际情况填写。

4
src/main/resources/mapper/exl/ExlTableConfMapper.xml

@ -35,21 +35,25 @@
<sql id="exlBaseWhere">
<where>
<if test="query.leList!=null and query.leList.size > 0">
and
<foreach collection="query.leList" item ="item" index="i" separator="and">
${item.column} &lt;= #{item.value}
</foreach>
</if>
<if test="query.geList!=null and query.geList.size > 0">
and
<foreach collection="query.geList" item ="item" index="i" separator="and">
${item.column} &gt;= #{item.value}
</foreach>
</if>
<if test="query.eqList!=null and query.eqList.size > 0">
and
<foreach collection="query.eqList" item ="item" index="i" separator="and">
${item.column} = #{item.value}
</foreach>
</if>
<if test="query.likeList!=null and query.likeList.size > 0">
and
<foreach collection="query.likeList" item ="item" index="i" separator="and">
${item.column} like concat('%', #{item.value} ,'%')
</foreach>

Loading…
Cancel
Save