package com.linghu.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.linghu.model.common.ResponseResult; import com.linghu.model.entity.Keyword; import com.linghu.model.vo.*; import com.linghu.model.vo.KeywordStaticsListVO; import com.linghu.service.KeywordService; import com.linghu.mapper.KeywordMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author xy * @description 针对表【keyword】的数据库操作Service实现 * @createDate 2025-07-04 20:17:33 */ @Service public class KeywordServiceImpl extends ServiceImpl implements KeywordService { @Autowired private KeywordMapper keywordMapper; @Override public ResponseResult statics(Integer keywordId, Integer questionId) { KeywordStaticsListVO vo = new KeywordStaticsListVO(); // 1.关键词是否存在 Keyword keyword = this.getById(keywordId); if (keyword == null) { return ResponseResult.error("关键词不存在"); } if (!"completed".equals(keyword.getStatus())) { return ResponseResult.error("关键词采集未完成"); } List statics = this.getBaseMapper().statics(keywordId, questionId, keyword.getNum()); vo.setNowRecord(statics); if (keyword.getNum() != 0) { statics = this.getBaseMapper().statics(keywordId, questionId, keyword.getNum() - 1); vo.setBeforeRecord(statics); } return ResponseResult.success(vo); } @Override public ResponseResult> getResultByTypeId(Integer keywordId, Integer questionId, Integer typeId) { // 1.关键词是否存在 Keyword keyword = this.getById(keywordId); if (keyword == null) { return ResponseResult.error("关键词不存在"); } if (!"completed".equals(keyword.getStatus())) { return ResponseResult.error("关键词采集未完成"); } List result = this.getBaseMapper().getResultByTypeId(keywordId, questionId, keyword.getNum(), typeId); return ResponseResult.success(result); } @Override public ResponseResult> getResultByPlatformId(Integer keywordId, Integer questionId, Integer platformId) { // 1.关键词是否存在 Keyword keyword = this.getById(keywordId); if (keyword == null) { return ResponseResult.error("关键词不存在"); } if (!"completed".equals(keyword.getStatus())) { return ResponseResult.error("关键词采集未完成"); } List result = this.getBaseMapper().getResultByPlatformId(keywordId, questionId, keyword.getNum(), platformId); return ResponseResult.success(result); } @Override public List getKeywordsByOrderId(String orderId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Keyword::getOrder_id, orderId); return keywordMapper.selectList(queryWrapper); } @Override public Boolean saveKeywords(String keywords, String order_id) { if (StringUtils.hasText(keywords)) { List keywordList = new ArrayList<>(); String[] keywordArray = keywords.split("\\n"); for (String keyword : keywordArray) { Keyword newKeyword = new Keyword(); newKeyword.setKeyword_name(keyword); newKeyword.setOrder_id(order_id); newKeyword.setStatus("notSubmitted"); keywordList.add(newKeyword); } return this.saveBatch(keywordList); }else { return false; } } }