From 2633103050a8daa1c4afacae85683d01b690bbf1 Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期三, 09 七月 2025 17:10:57 +0800 Subject: [PATCH] order列表分页、keyword_num字段,更新接收keywords字段 --- src/main/java/com/linghu/controller/KeywordController.java | 129 ++++++++++++++++++++++++++++++++++++++---- 1 files changed, 115 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/linghu/controller/KeywordController.java b/src/main/java/com/linghu/controller/KeywordController.java index eabba3a..38c5b7b 100644 --- a/src/main/java/com/linghu/controller/KeywordController.java +++ b/src/main/java/com/linghu/controller/KeywordController.java @@ -1,10 +1,16 @@ package com.linghu.controller; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.linghu.listener.KeywordExcelListener; import com.linghu.mapper.KeywordMapper; import com.linghu.model.common.ResponseResult; + import com.linghu.model.entity.Keyword; import com.linghu.model.entity.Reference; +import com.linghu.model.excel.KeywordExcel; +import com.linghu.model.excel.PlatformExcel; import com.linghu.model.vo.KeywordStaticsListVO; import com.linghu.model.vo.KeywordStaticsVO; import com.linghu.model.vo.PlatformProportionVO; @@ -17,10 +23,14 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; @RestController @@ -41,15 +51,17 @@ */ @GetMapping("/statics") @ApiOperation(value = "EChart图") - public ResponseResult<KeywordStaticsListVO> statics(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId) { - return keywordService.statics(keywordId,questionId); + public ResponseResult<KeywordStaticsListVO> statics(@RequestParam("id") Integer keywordId, + @RequestParam(value = "questionId", required = false) Integer questionId) { + return keywordService.statics(keywordId, questionId); } @PostMapping(value = "/exportStatics") @ApiOperation(value = "EChart图导出") - public ResponseEntity<byte[]> exportStatics(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId, HttpServletResponse response) { + public ResponseEntity<byte[]> exportStatics(@RequestParam("id") Integer keywordId, + @RequestParam(value = "questionId", required = false) Integer questionId, HttpServletResponse response) { Keyword keyword = keywordMapper.selectById(keywordId); - List<KeywordStaticsVO> voList = keywordMapper.statics(keywordId,questionId,keyword.getNum()); + List<KeywordStaticsVO> voList = keywordMapper.statics(keywordId, questionId, keyword.getNum()); // 3. 导出Excel ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -63,24 +75,30 @@ .contentType(MediaType.APPLICATION_OCTET_STREAM) .body(out.toByteArray()); } + /** * 根据类别查看 */ @GetMapping("/getResultByTypeId") @ApiOperation(value = "根据类别查看") - public ResponseResult<List<PlatformProportionVO>> getResultByTypeId(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId, @RequestParam(value = "typeId",required = false) Integer typeId) { - return keywordService.getResultByTypeId(keywordId,questionId,typeId); + public ResponseResult<List<PlatformProportionVO>> getResultByTypeId(@RequestParam("id") Integer keywordId, + @RequestParam(value = "questionId", required = false) Integer questionId, + @RequestParam(value = "typeId", required = false) Integer typeId) { + return keywordService.getResultByTypeId(keywordId, questionId, typeId); } - /** * 导出:根据类别查看 */ @PostMapping(value = "/exportGetResultByTypeId") @ApiOperation(value = "导出:根据类别查看") - public ResponseEntity<byte[]> exportGetResultByTypeId(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId, @RequestParam(value = "typeId",required = false) Integer typeId,@RequestParam(value = "isNow") Integer isNow ) { + public ResponseEntity<byte[]> exportGetResultByTypeId(@RequestParam("id") Integer keywordId, + @RequestParam(value = "questionId", required = false) Integer questionId, + @RequestParam(value = "typeId", required = false) Integer typeId, + @RequestParam(value = "isNow") Integer isNow) { Keyword keyword = keywordService.getById(keywordId); - List<PlatformProportionVO> result = keywordMapper.getResultByTypeId(keywordId, questionId, keyword.getNum() - isNow, typeId); + List<PlatformProportionVO> result = keywordMapper.getResultByTypeId(keywordId, questionId, + keyword.getNum() - isNow, typeId); // 3. 导出Excel ByteArrayOutputStream out = new ByteArrayOutputStream(); EasyExcel.write(out, PlatformProportionVO.class) @@ -99,8 +117,10 @@ */ @GetMapping("/getResultByPlatformId") @ApiOperation(value = "根据平台查看") - public ResponseResult<List<ResultListVO>> getResultByPlatformId(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId, @RequestParam(value = "platformId",required = false) Integer platformId) { - return keywordService.getResultByPlatformId(keywordId,questionId,platformId); + public ResponseResult<List<ResultListVO>> getResultByPlatformId(@RequestParam("id") Integer keywordId, + @RequestParam(value = "questionId", required = false) Integer questionId, + @RequestParam(value = "platformId", required = false) Integer platformId) { + return keywordService.getResultByPlatformId(keywordId, questionId, platformId); } /** @@ -108,9 +128,13 @@ */ @GetMapping("/exportGetResultByPlatformId") @ApiOperation(value = "根据平台查看") - public ResponseEntity<byte[]> exportGetResultByPlatformId(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId",required = false) Integer questionId, @RequestParam(value = "platformId",required = false) Integer platformId,@RequestParam(value = "isNow") Integer isNow) { + public ResponseEntity<byte[]> exportGetResultByPlatformId(@RequestParam("id") Integer keywordId, + @RequestParam(value = "questionId", required = false) Integer questionId, + @RequestParam(value = "platformId", required = false) Integer platformId, + @RequestParam(value = "isNow") Integer isNow) { Keyword keyword = keywordService.getById(keywordId); - List<ResultListVO> result = keywordMapper.getResultByPlatformId(keywordId, questionId, keyword.getNum() - isNow, platformId); + List<ResultListVO> result = keywordMapper.getResultByPlatformId(keywordId, questionId, keyword.getNum() - isNow, + platformId); // 3. 导出Excel ByteArrayOutputStream out = new ByteArrayOutputStream(); EasyExcel.write(out, ResultListVO.class) @@ -137,13 +161,90 @@ return ResponseResult.success(reference); } - /** * 投喂 */ + /** + * 批量新增关键词 + */ + @PostMapping("/batchAdd") + @ApiOperation(value = "批量新增关键词") + public ResponseResult<String> batchAdd(String keywords, String order_id) { + Boolean saveKeywords = keywordService.saveKeywords(keywords, order_id); + if (saveKeywords) { + return ResponseResult.success("新增成功"); + } else { + return ResponseResult.error("新增失败"); + } + } + /** + * 根据订单ID查询关键词 + */ + @GetMapping("/getKeywordsByOrderId") + @ApiOperation(value = "根据订单ID查询关键词") + public ResponseResult<List<Keyword>> getKeywordsByOrderId(@RequestParam("orderId") String orderId) { + List<Keyword> keywords = keywordService.getKeywordsByOrderId(orderId); + return ResponseResult.success(keywords); + } + + /** + * 修改关键词 + */ + @PostMapping("/updateKeyword") + @ApiOperation(value = "修改关键词") + public ResponseResult<String> updateKeyword(@RequestBody Keyword keyword) { + keywordService.updateById(keyword); + return ResponseResult.success("修改成功"); + } + + /** + * 删除关键词 + */ + @DeleteMapping("/deleteKeyword") + @ApiOperation(value = "删除关键词") + public ResponseResult<String> deleteKeyword(@RequestParam("keywordId") Integer keywordId) { + keywordService.removeById(keywordId); + return ResponseResult.success("删除成功"); + } + + // 下载模板 + @PostMapping("/downloadTemplate") + @ApiOperation("下载模板") + public ResponseEntity<byte[]> downloadTemplate() throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + EasyExcel.write(out, KeywordExcel.class).sheet("关键词模板").doWrite(new ArrayList<>()); + + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=keyword_template.xlsx") + .contentType(MediaType.APPLICATION_OCTET_STREAM) + .body(out.toByteArray()); + } + + // 导入文件 + @PostMapping("/import") + @ApiOperation("导入关键词数据") + public ResponseResult<String> importPlatforms(@RequestParam("file") MultipartFile file) { + try { + if (file.isEmpty()) { + return ResponseResult.error("上传文件不能为空"); + } + // 创建数据监听器 + KeywordExcelListener listener = new KeywordExcelListener(); + EasyExcel.read(file.getInputStream(), KeywordExcel.class, listener) + .sheet() + .doRead(); + // 获取并合并关键词 + String mergedKeywords = String.join("\n", listener.getMergedKeywords()); + return ResponseResult.success(mergedKeywords); + } catch (IOException e) { + return ResponseResult.error("文件读取失败:" + e.getMessage()); + } catch (Exception e) { + return ResponseResult.error("导入失败:" + e.getMessage()); + } + } } -- Gitblit v1.7.1