From 23ac3e4f8fb16db0759ba5c91c4d06d622c67009 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期一, 14 七月 2025 14:49:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/linghu/controller/KeywordController.java |   86 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 82 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/linghu/controller/KeywordController.java b/src/main/java/com/linghu/controller/KeywordController.java
index f5443cf..751c723 100644
--- a/src/main/java/com/linghu/controller/KeywordController.java
+++ b/src/main/java/com/linghu/controller/KeywordController.java
@@ -36,6 +36,7 @@
 import org.apache.poi.ss.usermodel.DataValidationHelper;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.util.CellRangeAddressList;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -49,6 +50,7 @@
 import javax.xml.bind.ValidationException;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.io.IOException;
 import java.time.format.DateTimeFormatter;
@@ -284,8 +286,8 @@
                     dto.getPlatformId());
         }
         //查询所有平台名称
-        List<String> platfromNames = result.stream()
-                .map(ResultListVO::getPlatform_name)
+        List<String> platfromNames = platformService.list().stream()
+                .map(Platform::getPlatform_name)
                 .filter(Objects::nonNull)
                 .collect(Collectors.toList());
         // 3. 导出Excel
@@ -293,6 +295,68 @@
 
         // 3. 使用自定义的SheetWriteHandler来添加数据验证
         ExcelWriter excelWriter = EasyExcel.write(out, ResultListVO.class)
+               /* .registerWriteHandler(new SheetWriteHandler() {
+                    @Override
+                    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder,
+                                                 WriteSheetHolder writeSheetHolder) {
+                        Sheet sheet = writeSheetHolder.getSheet();
+
+                        // 添加数据验证(下拉框)
+                        DataValidationHelper helper = sheet.getDataValidationHelper();
+                        CellRangeAddressList rangeList = new CellRangeAddressList(
+                                1, 65535, 0, 0); // D列(第4列)
+
+                        DataValidationConstraint constraint = helper.createExplicitListConstraint(
+                                platfromNames.toArray(new String[0]));
+                        DataValidation validation = helper.createValidation(constraint, rangeList);
+                        sheet.addValidationData(validation);
+                    }
+                })*/
+                .build();
+
+
+        WriteSheet writeSheet = EasyExcel.writerSheet("平台分布占比").build();
+        excelWriter.write(result, writeSheet);
+        excelWriter.finish();
+
+        // 4. 构建响应
+        return ResponseEntity.ok()
+                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=references_export.xlsx")
+                .contentType(MediaType.APPLICATION_OCTET_STREAM)
+                .body(out.toByteArray());
+    }
+
+    /**
+     * 根据平台查看 0-当前轮 1-代表前1轮 2-代表前2轮
+     */
+    @PostMapping("/exportGetResultByPlatformId2")
+    @ApiOperation(value = "导出:根据平台查看2")
+    public ResponseEntity<byte[]> exportGetResultByPlatformId2(@RequestBody ExportGetResultByPlatformIdDTO dto) {
+        Keyword keyword = keywordService.getById(dto.getKeywordId());
+        List<ResultListVO> result=new ArrayList<>();
+        if (dto.getIsNow()==0){
+            result = keywordMapper.getResultByPlatformId(dto.getKeywordId(), dto.getQuestionId(), keyword.getNum(),
+                    dto.getPlatformId());
+        }else {
+            result = keywordMapper.getResultByPlatformId(dto.getKeywordId(), dto.getQuestionId(), 1,
+                    dto.getPlatformId());
+        }
+        List<ResultList2VO> result2=new ArrayList<>();
+        for (ResultListVO vo : result) {
+            ResultList2VO vo2 = new ResultList2VO();
+            BeanUtils.copyProperties(vo, vo2); // 复制同名同类型的字段
+            result2.add(vo2);
+        }
+        //查询所有平台名称
+        List<String> platfromNames = platformService.list().stream()
+                .map(Platform::getPlatform_name)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+        // 3. 导出Excel
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+        // 3. 使用自定义的SheetWriteHandler来添加数据验证
+        ExcelWriter excelWriter = EasyExcel.write(out, ResultList2VO.class)
                 .registerWriteHandler(new SheetWriteHandler() {
                     @Override
                     public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder,
@@ -314,7 +378,7 @@
 
 
         WriteSheet writeSheet = EasyExcel.writerSheet("平台分布占比").build();
-        excelWriter.write(result, writeSheet);
+        excelWriter.write(result2, writeSheet);
         excelWriter.finish();
 
         // 4. 构建响应
@@ -343,7 +407,21 @@
     @ApiOperation("下载投喂模板")
     public ResponseEntity<byte[]> downTemplate() throws IOException {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
-        EasyExcel.write(out, ReferenceExcel.class).sheet("投喂模板").doWrite(new ArrayList<>());
+        // 创建示例数据(第一行)
+        ReferenceExcel exampleData = new ReferenceExcel();
+        exampleData.setPlatform_name("示例平台");
+        exampleData.setTitle("示例标题");
+        exampleData.setCreate_time(LocalDate.now()); // 设置当前日期作为示例
+        exampleData.setUrl("https://example.com");
+
+        List<ReferenceExcel> excelList=new ArrayList<>();
+        excelList.add(exampleData);
+
+        ExcelWriter excelWriter = EasyExcel.write(out, ReferenceExcel.class).build();
+        WriteSheet writeSheet = EasyExcel.writerSheet("平台分布占比").build();
+        excelWriter.write(excelList, writeSheet);
+        excelWriter.finish();
+
 
         return ResponseEntity.ok()
                 .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=platform_template.xlsx")

--
Gitblit v1.7.1