From 11ec7ac8f4832c4274cf61a19cc35cda3de9e0e5 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期三, 09 七月 2025 16:04:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/resources/mapper/PlatformMapper.xml | 1 src/main/java/com/linghu/model/entity/Platform.java | 21 +- src/main/java/com/linghu/model/vo/PlatformProportionVO.java | 10 src/main/java/com/linghu/service/PlatformExcelService.java | 1 src/main/resources/mapper/ReferenceMapper.xml | 15 ++ src/main/java/com/linghu/model/excel/ReferenceExcel.java | 5 src/main/resources/mapper/TypeMapper.xml | 1 src/main/java/com/linghu/model/vo/KeywordStaticsVO.java | 6 src/main/java/com/linghu/controller/PlatformController.java | 26 ++- src/main/java/com/linghu/model/entity/Type.java | 9 - src/main/resources/mapper/keywordMapper.xml | 4 src/main/java/com/linghu/controller/OrderController.java | 22 ++- src/main/java/com/linghu/model/dto/OrderDto.java | 4 src/main/java/com/linghu/model/vo/ReferenceVO.java | 4 src/main/java/com/linghu/model/vo/ResultListVO.java | 8 src/main/java/com/linghu/service/OrderService.java | 8 + src/main/java/com/linghu/mapper/ReferenceMapper.java | 5 src/main/java/com/linghu/service/impl/OrderServiceImpl.java | 35 +++++ src/main/java/com/linghu/model/dto/KeywordDto.java | 10 + src/main/java/com/linghu/controller/KeywordController.java | 151 ++++++++++++++++++++----- src/main/java/com/linghu/controller/TypeController.java | 8 - src/main/java/com/linghu/service/impl/TypeServiceImpl.java | 1 22 files changed, 253 insertions(+), 102 deletions(-) diff --git a/src/main/java/com/linghu/controller/KeywordController.java b/src/main/java/com/linghu/controller/KeywordController.java index d875871..f2491a5 100644 --- a/src/main/java/com/linghu/controller/KeywordController.java +++ b/src/main/java/com/linghu/controller/KeywordController.java @@ -3,8 +3,10 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.linghu.listener.KeywordExcelListener; import com.linghu.mapper.KeywordMapper; +import com.linghu.mapper.ReferenceMapper; import com.linghu.model.common.ResponseResult; import com.linghu.model.dto.ExportFeedDTO; @@ -31,16 +33,22 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import javax.xml.bind.ValidationException; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.time.LocalDateTime; import java.io.IOException; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @RequestMapping("/keyword") @@ -54,6 +62,8 @@ @Autowired private ReferenceService referenceService; + @Autowired + private ReferenceMapper referenceMapper; /** * 关键词统计 EChart图 @@ -90,21 +100,15 @@ */ @GetMapping("/getResultByTypeId") @ApiOperation(value = "根据类别查看") - public ResponseResult<ResultByTypeIdVO> getResultByTypeId(@RequestParam("keywordId") Integer keywordId, + public ResponseResult<List<PlatformProportionVO> > getResultByTypeId(@RequestParam("keywordId") Integer keywordId, @RequestParam(value = "questionId", required = false) Integer questionId, - @RequestParam(value = "typeId", required = false) Integer typeId) { - ResultByTypeIdVO vo = new ResultByTypeIdVO(); + @RequestParam(value = "typeId", required = false) Integer typeId, + @RequestParam(value = "isNow") Integer isNow) { Keyword keyword = keywordService.getById(keywordId); - List<PlatformProportionVO> nowList = keywordMapper.getResultByTypeId(keywordId, questionId, - keyword.getNum(), typeId); - vo.setNowList(nowList); - if (keyword.getNum()>1){ - List<PlatformProportionVO> beforeList = keywordMapper.getResultByTypeId(keywordId, questionId, - keyword.getNum()-1, typeId); - vo.setBeforeList(beforeList); - } + List<PlatformProportionVO> result = keywordMapper.getResultByTypeId(keywordId, questionId, + keyword.getNum() - isNow, typeId); - return ResponseResult.success(vo); + return ResponseResult.success(result); } /** @@ -137,30 +141,22 @@ */ @GetMapping("/getResultByPlatformId") @ApiOperation(value = "根据平台查看") - public ResponseResult<ResultByPlatformVO> getResultByPlatformId(@RequestParam("keywordId") Integer keywordId, + public ResponseResult<List<ResultListVO>> getResultByPlatformId(@RequestParam("keywordId") Integer keywordId, @RequestParam(value = "questionId", required = false) Integer questionId, - @RequestParam(value = "platformId", required = false) Integer platformId) { - ResultByPlatformVO vo = new ResultByPlatformVO(); + @RequestParam(value = "platformId", required = false) Integer platformId, + @RequestParam(value = "isNow") Integer isNow) { Keyword keyword = keywordService.getById(keywordId); - - List<ResultListVO> nowList = keywordMapper.getResultByPlatformId(keywordId, questionId, keyword.getNum(), + List<ResultListVO> result = keywordMapper.getResultByPlatformId(keywordId, questionId, keyword.getNum() - isNow, platformId); - vo.setNowList(nowList); - if (keyword.getNum()>1){ - List<ResultListVO> beforeList = keywordMapper.getResultByPlatformId(keywordId, questionId, keyword.getNum()-1, - platformId); - vo.setBeforeList(beforeList); - } - - return ResponseResult.success(vo); + return ResponseResult.success(result); } /** * 根据平台查看 0-当前轮 1-代表前1轮 2-代表前2轮 */ @GetMapping("/exportGetResultByPlatformId") - @ApiOperation(value = "根据平台查看") + @ApiOperation(value = "导出:根据平台查看") public ResponseEntity<byte[]> exportGetResultByPlatformId(@RequestParam("id") Integer keywordId, @RequestParam(value = "questionId", required = false) Integer questionId, @RequestParam(value = "platformId", required = false) Integer platformId, @@ -212,7 +208,40 @@ */ @PostMapping("/importFeed") @ApiOperation("投喂") - public ResponseResult<List<FeedExportExcel>> importTemplate(@RequestParam("file") MultipartFile file) { + public ResponseResult<List<FeedExportExcel>> importTemplate(@RequestParam("file") MultipartFile file,@RequestParam("keywordId") Integer keywordId) { + Keyword keyword = keywordService.getById(keywordId); + //查找出最近一次的结果 + List<FeedExportExcel> references = referenceMapper.importTemplateList(keywordId,keyword.getNum()); + //平台名称 + Map<String, FeedExportExcel> nameMap = references.stream() + .collect(Collectors.toMap( + FeedExportExcel::getPlatform_name, // Key映射 + excel -> excel, // Value映射 + (oldValue, newValue) -> oldValue // 键冲突处理(保留旧值) + )); + //URL + Map<String, FeedExportExcel> urlMap = references.stream() + .collect(Collectors.toMap( + FeedExportExcel::getUrl, // Key映射 + excel -> excel, // Value映射 + (oldValue, newValue) -> oldValue // 键冲突处理(保留旧值) + )); + //title + Map<String, FeedExportExcel> titleMap = references.stream() + .collect(Collectors.toMap( + FeedExportExcel::getTitle, // Key映射 + excel -> excel, // Value映射 + (oldValue, newValue) -> oldValue // 键冲突处理(保留旧值) + )); + + //time + Map<LocalDateTime, FeedExportExcel> timeMap = references.stream() + .collect(Collectors.toMap( + FeedExportExcel::getCreate_time, // Key映射 + excel -> excel, // Value映射 + (oldValue, newValue) -> oldValue // 键冲突处理(保留旧值) + )); + try { // 检查文件是否为空 if (file.isEmpty()) { @@ -242,27 +271,87 @@ errorMessages.add("发布时间不能为空"); continue; } + if (!StringUtils.hasText(excel.getUrl())) { errorMessages.add("发布网址不能为空"); continue; } - //todo 查询出当前这次的结果 做出对比 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dateTime = LocalDateTime.parse(excel.getCreate_time(), formatter); + excel.setCreateTimeAsDateTime(dateTime); + FeedExportExcel feedExportExcel = getFeedExportExcel(excel, nameMap, urlMap, titleMap, timeMap); + result.add(feedExportExcel); } - // 处理错误 if (!errorMessages.isEmpty()) { return ResponseResult.error("数据验证失败: " + String.join("; ", errorMessages)); } + // 返回信息 return ResponseResult.success(result); - } catch (Exception e) { + }catch (DateTimeParseException e) { + return ResponseResult.error("文件解析失败:发布时间格式输入错误"); + } + catch (Exception e) { // 记录详细异常信息 return ResponseResult.error("文件解析失败:" + e.getMessage()); } } + + private FeedExportExcel getFeedExportExcel(ReferenceExcel excel, Map<String, FeedExportExcel> nameMap, Map<String, FeedExportExcel> urlMap, Map<String, FeedExportExcel> titleMap, Map<LocalDateTime, FeedExportExcel> timeMap) { + FeedExportExcel vo=new FeedExportExcel(); + vo.setPlatform_name(excel.getPlatform_name()); + vo.setTitle(excel.getTitle()); + vo.setCreate_time(excel.getCreateTimeAsDateTime()); + vo.setUrl(excel.getUrl()); + vo.setInclusionStatus("未收录"); + vo.setPlatformIs(0); + vo.setTitleIs(0); + vo.setUrlIs(0); + vo.setCreateIs(0); + //平台名称 + if (nameMap.containsKey(excel.getPlatform_name())) { + vo.setPlatformIs(1); + if (urlMap.containsKey(excel.getUrl())) { + vo.setUrlIs(1); + } + if (titleMap.containsKey(excel.getTitle())) { + vo.setTitleIs(1); + } + if (timeMap.containsKey(excel.getCreateTimeAsDateTime())) { + vo.setCreateIs(1); + } + return vo; + } + //网站链接 + if (urlMap.containsKey(excel.getUrl())) { + vo.setUrlIs(1); + if (titleMap.containsKey(excel.getTitle())) { + vo.setTitleIs(1); + } + if (timeMap.containsKey(excel.getCreateTimeAsDateTime())) { + vo.setCreateIs(1); + } + return vo; + } + //标题 + if (titleMap.containsKey(excel.getTitle())) { + vo.setTitleIs(1); + if (timeMap.containsKey(excel.getCreateTimeAsDateTime())) { + vo.setCreateIs(1); + } + } + //时间 + if (timeMap.containsKey(excel.getCreateTimeAsDateTime())) { + vo.setCreateIs(1); + return vo; + } + return vo; + } + /** * 导出投喂结果 @@ -332,7 +421,7 @@ // 下载模板 @PostMapping("/downloadTemplate") - @ApiOperation("下载模板") + @ApiOperation("下载关键词导入模板") public ResponseEntity<byte[]> downloadTemplate() throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); EasyExcel.write(out, KeywordExcel.class).sheet("关键词模板").doWrite(new ArrayList<>()); diff --git a/src/main/java/com/linghu/controller/OrderController.java b/src/main/java/com/linghu/controller/OrderController.java index 8ce2d69..7c9995e 100644 --- a/src/main/java/com/linghu/controller/OrderController.java +++ b/src/main/java/com/linghu/controller/OrderController.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.util.BeanUtil; import com.linghu.model.common.ResponseResult; import com.linghu.model.entity.Orders; +import com.linghu.model.dto.KeywordDto; import com.linghu.model.dto.OrderDto; import com.linghu.service.OrderService; @@ -63,7 +64,7 @@ order.setCreate_time(LocalDateTime.now()); boolean save = orderService.save(order); // 保存关键词 - boolean saveOrderWithKeywords = orderService.saveOrderWithKeywords(orderDto,order.getOrder_id()); + boolean saveOrderWithKeywords = orderService.saveOrderWithKeywords(orderDto, order.getOrder_id()); if (!saveOrderWithKeywords) { return ResponseResult.error("添加关键词失败"); } @@ -136,9 +137,9 @@ */ @GetMapping @ApiOperation("查询订单列表") - public ResponseResult<List<Orders>> list( - @RequestParam(required = false) Integer pageNum, - @RequestParam(required = false) Integer pageSize, + public ResponseResult<Page<Orders>> list( + @RequestParam(required = false,defaultValue = "1") Integer pageNum , + @RequestParam(required = false,defaultValue = "10") Integer pageSize , @RequestParam(required = false) String clientName, @RequestParam(required = false) Integer status, @RequestParam(required = false) String createTime) { @@ -158,14 +159,15 @@ } // 分页查询 - if (pageNum != null && pageSize != null) { Page<Orders> pageInfo = new Page<>(pageNum, pageSize); Page<Orders> result = orderService.page(pageInfo, queryWrapper); - return ResponseResult.success(result.getRecords()); - } + return ResponseResult.success(result); + } - // 不分页 - List<Orders> list = orderService.list(queryWrapper); - return ResponseResult.success(list); + @GetMapping("/{orderId}/keywordList") + @ApiOperation("获取订单关联的关键词及提问词") + public ResponseResult<List<KeywordDto>> getKeywordList(@PathVariable String orderId) { + List<KeywordDto> result = orderService.getKeywordListByOrderId(orderId); + return ResponseResult.success(result); } } \ No newline at end of file diff --git a/src/main/java/com/linghu/controller/PlatformController.java b/src/main/java/com/linghu/controller/PlatformController.java index af1e1c6..5dcb8ff 100644 --- a/src/main/java/com/linghu/controller/PlatformController.java +++ b/src/main/java/com/linghu/controller/PlatformController.java @@ -3,8 +3,10 @@ import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.linghu.mapper.ReferenceMapper; import com.linghu.model.common.ResponseResult; import com.linghu.model.entity.Platform; +import com.linghu.model.entity.Reference; import com.linghu.model.entity.Type; import com.linghu.model.excel.PlatformExcel; import com.linghu.service.PlatformService; @@ -38,6 +40,8 @@ private PlatformService platformService; @Autowired private TypeService typeService; + @Autowired + private ReferenceMapper referenceMapper; @PostMapping @ApiOperation(value = "添加平台") @@ -60,6 +64,11 @@ @DeleteMapping("/{platformId}") @ApiOperation(value = "删除平台") public ResponseResult<Void> delete(@PathVariable Integer platformId) { + //平台被引用了没 + Integer count = referenceMapper.selectCount(new LambdaQueryWrapper<Reference>().eq(Reference::getPlatform_id, platformId)); + if (count > 0) { + return ResponseResult.error("该平台被引用中,不能删除"); + } boolean success = platformService.removeById(platformId); if (success) { return ResponseResult.success(); @@ -96,18 +105,15 @@ } @GetMapping("/list") - @ApiOperation("查询平台列表,不传页数和大小就查全部") - public ResponseResult<List<Platform>> list( - @RequestParam(required = false) Integer page, - @RequestParam(required = false) Integer pageSize) { - if (page != null && pageSize != null) { + @ApiOperation("查询平台列表") + public ResponseResult<Page<Platform>> list( + @RequestParam(required = false,defaultValue = "1") Integer page, + @RequestParam(required = false,defaultValue = "10") Integer pageSize) { + Page<Platform> pageInfo = new Page<>(page, pageSize); Page<Platform> result = platformService.page(pageInfo); - return ResponseResult.success(result.getRecords()); - } else { - List<Platform> list = platformService.list(); - return ResponseResult.success(list); - } + return ResponseResult.success(result); + } @GetMapping("/download") diff --git a/src/main/java/com/linghu/controller/TypeController.java b/src/main/java/com/linghu/controller/TypeController.java index 7980ad9..f3c99e9 100644 --- a/src/main/java/com/linghu/controller/TypeController.java +++ b/src/main/java/com/linghu/controller/TypeController.java @@ -24,7 +24,6 @@ @PostMapping @ApiOperation(value = "添加类型") public ResponseResult<Type> add(@RequestBody Type type) { - type.setDel_flag(0); boolean success = typeService.save(type); if (success) { return ResponseResult.success(type); @@ -35,8 +34,6 @@ @PostMapping("/batch") @ApiOperation(value = "批量添加类型") public ResponseResult<Void> batchAdd(@RequestBody List<Type> types) { - types.forEach(type -> type.setDel_flag(0)); - boolean success = typeService.saveBatch(types); if (success) { return ResponseResult.success(); @@ -49,7 +46,6 @@ public ResponseResult<Void> delete(@PathVariable Integer typeId) { Type type = new Type(); type.setType_id(typeId); - type.setDel_flag(1); boolean success = typeService.updateById(type); if (success) { return ResponseResult.success(); @@ -81,7 +77,7 @@ @ApiOperation(value = "根据ID查询类型") public ResponseResult<Type> getById(@PathVariable Integer typeId) { Type type = typeService.getById(typeId); - if (type != null && type.getDel_flag() != 1) { + if (type != null ) { return ResponseResult.success(type); } return ResponseResult.error("类型不存在"); @@ -93,7 +89,6 @@ List<Type> types = typeIds.stream().map(id -> { Type type = new Type(); type.setType_id(id); - type.setDel_flag(1); return type; }).collect(java.util.stream.Collectors.toList()); boolean success = typeService.updateBatchById(types); @@ -109,7 +104,6 @@ @RequestParam(required = false) Integer page, @RequestParam(required = false) Integer pageSize) { LambdaQueryWrapper<Type> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(Type::getDel_flag, 0); if (page != null && pageSize != null) { Page<Type> pageInfo = new Page<>(page, pageSize); diff --git a/src/main/java/com/linghu/mapper/ReferenceMapper.java b/src/main/java/com/linghu/mapper/ReferenceMapper.java index 4c95eb1..fc8a7c5 100644 --- a/src/main/java/com/linghu/mapper/ReferenceMapper.java +++ b/src/main/java/com/linghu/mapper/ReferenceMapper.java @@ -2,6 +2,10 @@ import com.linghu.model.entity.Reference; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.linghu.model.excel.FeedExportExcel; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author xy @@ -11,6 +15,7 @@ */ public interface ReferenceMapper extends BaseMapper<Reference> { + List<FeedExportExcel> importTemplateList(@Param("keywordId") Integer keywordId, @Param("num")Integer num); } diff --git a/src/main/java/com/linghu/model/dto/KeywordDto.java b/src/main/java/com/linghu/model/dto/KeywordDto.java index a06bdf9..634adc8 100644 --- a/src/main/java/com/linghu/model/dto/KeywordDto.java +++ b/src/main/java/com/linghu/model/dto/KeywordDto.java @@ -1,9 +1,13 @@ package com.linghu.model.dto; - + import lombok.Data; import lombok.EqualsAndHashCode; + +import java.util.List; + import com.linghu.model.entity.Keyword; - +import com.linghu.model.entity.Question; + @EqualsAndHashCode(callSuper = true) @Data public class KeywordDto extends Keyword { @@ -11,4 +15,6 @@ * 提问词列表,用换行符分隔 */ private String questions; + + private List<Question> questionList; } \ No newline at end of file diff --git a/src/main/java/com/linghu/model/dto/OrderDto.java b/src/main/java/com/linghu/model/dto/OrderDto.java index 7d0fc1a..368ca44 100644 --- a/src/main/java/com/linghu/model/dto/OrderDto.java +++ b/src/main/java/com/linghu/model/dto/OrderDto.java @@ -4,6 +4,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 订单数据传输对象,扩展Order实体 */ @@ -14,4 +16,6 @@ * 关键词列表,用换行符分隔 */ private String keywords; + + private List<KeywordDto> keywordList; } \ No newline at end of file diff --git a/src/main/java/com/linghu/model/entity/Platform.java b/src/main/java/com/linghu/model/entity/Platform.java index d2550bc..9eaf05b 100644 --- a/src/main/java/com/linghu/model/entity/Platform.java +++ b/src/main/java/com/linghu/model/entity/Platform.java @@ -7,6 +7,8 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.util.Date; + +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; @@ -21,49 +23,52 @@ * 平台id */ @TableId(type = IdType.AUTO) + @ApiModelProperty("平台id") private Integer platform_id; /** * 类型id */ + @ApiModelProperty("类型id") private Integer type_id; /** * 平台名称 */ + @ApiModelProperty("平台名称") private String platform_name; /** * 平台域名 */ + @ApiModelProperty("平台域名") private String domain; /** * */ + @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS", timezone = "GMT+8") private LocalDateTime create_time; /** * */ + @ApiModelProperty("创建者") private String create_by; /** * */ + @ApiModelProperty("修改时间") @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS", timezone = "GMT+8") private LocalDateTime update_time; /** * */ + @ApiModelProperty("创建者") private String update_by; - - /** - * 0-未删除,1-已删除 - */ - private Integer del_flag; @TableField(exist = false) private static final long serialVersionUID = 1L; @@ -95,9 +100,7 @@ && (this.getUpdate_time() == null ? other.getUpdate_time() == null : this.getUpdate_time().equals(other.getUpdate_time())) && (this.getUpdate_by() == null ? other.getUpdate_by() == null - : this.getUpdate_by().equals(other.getUpdate_by())) - && (this.getDel_flag() == null ? other.getDel_flag() == null - : this.getDel_flag().equals(other.getDel_flag())); + : this.getUpdate_by().equals(other.getUpdate_by())); } @Override @@ -112,7 +115,6 @@ result = prime * result + ((getCreate_by() == null) ? 0 : getCreate_by().hashCode()); result = prime * result + ((getUpdate_time() == null) ? 0 : getUpdate_time().hashCode()); result = prime * result + ((getUpdate_by() == null) ? 0 : getUpdate_by().hashCode()); - result = prime * result + ((getDel_flag() == null) ? 0 : getDel_flag().hashCode()); return result; } @@ -130,7 +132,6 @@ sb.append(", create_by=").append(create_by); sb.append(", update_time=").append(update_time); sb.append(", update_by=").append(update_by); - sb.append(", del_flag=").append(del_flag); sb.append(", serialVersionUID=").append(serialVersionUID); sb.append("]"); return sb.toString(); diff --git a/src/main/java/com/linghu/model/entity/Type.java b/src/main/java/com/linghu/model/entity/Type.java index 0901080..97bb0fe 100644 --- a/src/main/java/com/linghu/model/entity/Type.java +++ b/src/main/java/com/linghu/model/entity/Type.java @@ -25,10 +25,6 @@ */ private String type_name; - /** - * 0-未删除 1-删除 - */ - private Integer del_flag; @TableField(exist = false) private static final long serialVersionUID = 1L; @@ -46,8 +42,7 @@ } Type other = (Type) that; return (this.getType_id() == null ? other.getType_id() == null : this.getType_id().equals(other.getType_id())) - && (this.getType_name() == null ? other.getType_name() == null : this.getType_name().equals(other.getType_name())) - && (this.getDel_flag() == null ? other.getDel_flag() == null : this.getDel_flag().equals(other.getDel_flag())); + && (this.getType_name() == null ? other.getType_name() == null : this.getType_name().equals(other.getType_name())); } @Override @@ -56,7 +51,6 @@ int result = 1; result = prime * result + ((getType_id() == null) ? 0 : getType_id().hashCode()); result = prime * result + ((getType_name() == null) ? 0 : getType_name().hashCode()); - result = prime * result + ((getDel_flag() == null) ? 0 : getDel_flag().hashCode()); return result; } @@ -68,7 +62,6 @@ sb.append("Hash = ").append(hashCode()); sb.append(", type_id=").append(type_id); sb.append(", type_name=").append(type_name); - sb.append(", del_flag=").append(del_flag); sb.append(", serialVersionUID=").append(serialVersionUID); sb.append("]"); return sb.toString(); diff --git a/src/main/java/com/linghu/model/excel/ReferenceExcel.java b/src/main/java/com/linghu/model/excel/ReferenceExcel.java index f86141f..b265109 100644 --- a/src/main/java/com/linghu/model/excel/ReferenceExcel.java +++ b/src/main/java/com/linghu/model/excel/ReferenceExcel.java @@ -6,6 +6,7 @@ import java.time.LocalDateTime; + @Data public class ReferenceExcel { @ExcelProperty("平台名称") @@ -15,9 +16,11 @@ private String title; @ExcelProperty("发布时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime create_time; + private String create_time; @ExcelProperty("发布网址") private String url; + private LocalDateTime createTimeAsDateTime; + } \ No newline at end of file diff --git a/src/main/java/com/linghu/model/vo/KeywordStaticsVO.java b/src/main/java/com/linghu/model/vo/KeywordStaticsVO.java index 06c490e..2ac5c74 100644 --- a/src/main/java/com/linghu/model/vo/KeywordStaticsVO.java +++ b/src/main/java/com/linghu/model/vo/KeywordStaticsVO.java @@ -12,11 +12,11 @@ public class KeywordStaticsVO { @ApiModelProperty("发布平台") @ExcelProperty("发布平台") - private String platformName; + private String platform_name; @ApiModelProperty("重复次数") @ExcelProperty("重复次数") - private Integer totalRepetitions; + private Integer total_repetitions; @ApiModelProperty("平台分布占比") @ExcelProperty("平台分布占比") - private BigDecimal repetitionRatio; + private BigDecimal repetition_ratio; } diff --git a/src/main/java/com/linghu/model/vo/PlatformProportionVO.java b/src/main/java/com/linghu/model/vo/PlatformProportionVO.java index b79ded5..38cfeca 100644 --- a/src/main/java/com/linghu/model/vo/PlatformProportionVO.java +++ b/src/main/java/com/linghu/model/vo/PlatformProportionVO.java @@ -15,22 +15,22 @@ @ApiModelProperty("类型名称") @ExcelProperty("全部类型") - private String typeName; + private String type_name; @ApiModelProperty("平台名称") @ExcelProperty("平台名称") - private String platformName; + private String platform_name; @ApiModelProperty("重复次数") @ExcelProperty("重复次数") - private Integer totalRepetitions; + private Integer total_repetitions; @ApiModelProperty("全平台分布占比") @ExcelProperty("全平台分布占比") - private BigDecimal allPlatformRatio; + private BigDecimal all_platform_ratio; @ApiModelProperty("同类平台分布占比") @ExcelProperty("同类平台分布占比") - private BigDecimal sameTypeRatio; + private BigDecimal same_type_ratio; } diff --git a/src/main/java/com/linghu/model/vo/ReferenceVO.java b/src/main/java/com/linghu/model/vo/ReferenceVO.java new file mode 100644 index 0000000..0f3ab5b --- /dev/null +++ b/src/main/java/com/linghu/model/vo/ReferenceVO.java @@ -0,0 +1,4 @@ +package com.linghu.model.vo; + +public class ReferenceVO { +} diff --git a/src/main/java/com/linghu/model/vo/ResultListVO.java b/src/main/java/com/linghu/model/vo/ResultListVO.java index 7543a91..f3f3152 100644 --- a/src/main/java/com/linghu/model/vo/ResultListVO.java +++ b/src/main/java/com/linghu/model/vo/ResultListVO.java @@ -13,11 +13,11 @@ public class ResultListVO { @ApiModelProperty("结果id") - private Integer referenceId; + private Integer reference_id; @ApiModelProperty("平台名称") @ExcelProperty("全部平台") - private String platformName; + private String platform_name; @ApiModelProperty("标题") @ExcelProperty("标题") @@ -25,12 +25,12 @@ @ApiModelProperty("重复次数") @ExcelProperty("重复次数") - private Integer repetitionNum; + private Integer repetition_num; @ApiModelProperty("发布时间") @ExcelProperty("发布时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; + private LocalDateTime create_time; @ExcelProperty("发布网址") private String url; } diff --git a/src/main/java/com/linghu/service/OrderService.java b/src/main/java/com/linghu/service/OrderService.java index b696d51..3f91ffd 100644 --- a/src/main/java/com/linghu/service/OrderService.java +++ b/src/main/java/com/linghu/service/OrderService.java @@ -1,7 +1,11 @@ package com.linghu.service; import com.linghu.model.entity.Orders; +import com.linghu.model.dto.KeywordDto; import com.linghu.model.dto.OrderDto; + +import java.util.List; + import com.baomidou.mybatisplus.extension.service.IService; /** @@ -18,5 +22,7 @@ * @param orderDto 订单数据传输对象 * @return 是否保存成功 */ - boolean saveOrderWithKeywords(OrderDto orderDto,String order_id); + boolean saveOrderWithKeywords(OrderDto orderDto, String order_id); + + List<KeywordDto> getKeywordListByOrderId(String order_id); } diff --git a/src/main/java/com/linghu/service/PlatformExcelService.java b/src/main/java/com/linghu/service/PlatformExcelService.java index fd0af4a..136a3cc 100644 --- a/src/main/java/com/linghu/service/PlatformExcelService.java +++ b/src/main/java/com/linghu/service/PlatformExcelService.java @@ -62,7 +62,6 @@ platform.setDomain(data.getDomain()); platform.setType_id(type.getType_id()); platform.setCreate_time(LocalDateTime.now()); - platform.setDel_flag(0); platforms.add(platform); // 每100条保存一次 diff --git a/src/main/java/com/linghu/service/impl/OrderServiceImpl.java b/src/main/java/com/linghu/service/impl/OrderServiceImpl.java index c2b03b3..92e7030 100644 --- a/src/main/java/com/linghu/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/linghu/service/impl/OrderServiceImpl.java @@ -1,12 +1,20 @@ package com.linghu.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.linghu.model.dto.KeywordDto; import com.linghu.model.dto.OrderDto; import com.linghu.model.entity.Keyword; import com.linghu.model.entity.Orders; +import com.linghu.model.entity.Question; import com.linghu.service.KeywordService; import com.linghu.service.OrderService; import com.linghu.mapper.OrderMapper; + +import java.util.ArrayList; +import java.util.List; + +import com.linghu.service.QuestionService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,11 +31,12 @@ @Autowired private KeywordService keywordService; + @Autowired + private QuestionService questionService; @Override @Transactional(rollbackFor = Exception.class) - public boolean saveOrderWithKeywords(OrderDto orderDto,String order_id) { - + public boolean saveOrderWithKeywords(OrderDto orderDto, String order_id) { // 如果有关键词,则保存关键词 if (StringUtils.hasText(orderDto.getKeywords())) { @@ -82,4 +91,26 @@ return true; } + + @Override + public List<KeywordDto> getKeywordListByOrderId(String orderId) { + List<Keyword> keywords = keywordService.lambdaQuery() + .eq(Keyword::getOrder_id, orderId) + .list(); + + // 遍历关键词,获取每个关键词对应的提问词 + List<KeywordDto> keywordDtos = new ArrayList<>(); + for (Keyword keyword : keywords) { + KeywordDto dto = new KeywordDto(); + BeanUtils.copyProperties(keyword, dto); + + // 查询该关键词下的所有提问词 + List<Question> questions = questionService.lambdaQuery() + .eq(Question::getKeyword_id, keyword.getKeyword_id()) + .list(); + dto.setQuestionList(questions); + keywordDtos.add(dto); + } + return keywordDtos; + } } diff --git a/src/main/java/com/linghu/service/impl/TypeServiceImpl.java b/src/main/java/com/linghu/service/impl/TypeServiceImpl.java index 742ef35..15029b0 100644 --- a/src/main/java/com/linghu/service/impl/TypeServiceImpl.java +++ b/src/main/java/com/linghu/service/impl/TypeServiceImpl.java @@ -25,7 +25,6 @@ // 查询 LambdaQueryWrapper<Type> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Type::getType_name, typeName); - queryWrapper.eq(Type::getDel_flag, 0); return typeMapper.selectOne(queryWrapper); } diff --git a/src/main/resources/mapper/PlatformMapper.xml b/src/main/resources/mapper/PlatformMapper.xml index 87a815d..73d685e 100644 --- a/src/main/resources/mapper/PlatformMapper.xml +++ b/src/main/resources/mapper/PlatformMapper.xml @@ -13,7 +13,6 @@ <result property="create_by" column="create_by" jdbcType="VARCHAR"/> <result property="update_time" column="update_time" jdbcType="TIMESTAMP"/> <result property="update_by" column="update_by" jdbcType="VARCHAR"/> - <result property="del_flag" column="del_flag" jdbcType="TINYINT"/> </resultMap> <sql id="Base_Column_List"> diff --git a/src/main/resources/mapper/ReferenceMapper.xml b/src/main/resources/mapper/ReferenceMapper.xml index 1fae3f4..d24b266 100644 --- a/src/main/resources/mapper/ReferenceMapper.xml +++ b/src/main/resources/mapper/ReferenceMapper.xml @@ -23,4 +23,19 @@ num,url,domain, task_id </sql> + <select id="importTemplateList" resultType="com.linghu.model.excel.FeedExportExcel"> + SELECT + p.platform_name, + r.title, + r.create_time, + r.url + FROM + `reference` r + LEFT JOIN platform p on r.platform_id = p.platform_id + WHERE + r.keyword_id = #{keywordId} + and + r.num = #{num} + + </select> </mapper> diff --git a/src/main/resources/mapper/TypeMapper.xml b/src/main/resources/mapper/TypeMapper.xml index 2108366..7afb604 100644 --- a/src/main/resources/mapper/TypeMapper.xml +++ b/src/main/resources/mapper/TypeMapper.xml @@ -7,7 +7,6 @@ <resultMap id="BaseResultMap" type="com.linghu.model.entity.Type"> <id property="type_id" column="type_id" jdbcType="INTEGER"/> <result property="type_name" column="type_name" jdbcType="VARCHAR"/> - <result property="del_flag" column="del_flag" jdbcType="TINYINT"/> </resultMap> <sql id="Base_Column_List"> diff --git a/src/main/resources/mapper/keywordMapper.xml b/src/main/resources/mapper/keywordMapper.xml index ec90fa5..82646b1 100644 --- a/src/main/resources/mapper/keywordMapper.xml +++ b/src/main/resources/mapper/keywordMapper.xml @@ -44,7 +44,6 @@ </if> AND r.num = #{num} - AND p.del_flag = 0 GROUP BY p.platform_id, p.platform_name @@ -93,8 +92,6 @@ <if test="typeId != null"> AND p.type_id = #{typeId} </if> - AND p.del_flag = 0 - AND t.del_flag = 0 GROUP BY t.type_id, t.type_name, p.platform_id, p.platform_name ORDER BY @@ -121,7 +118,6 @@ <if test="platformId != null"> AND r.platform_id = #{platformId} </if> - AND p.del_flag = 0 ORDER BY r.create_time DESC </select> -- Gitblit v1.7.1