package com.linghu.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.linghu.model.common.ResponseResult; import com.linghu.model.dto.KeywordDto; import com.linghu.model.entity.Question; import com.linghu.model.excel.KeywordExcel; import com.linghu.service.QuestionService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping("/question") @Api(value = "提问词相关接口", tags = "订单管理-提问词") public class QuestionController { @Autowired private QuestionService questionService; @PostMapping @ApiOperation(value = "添加提问词") @Transactional public ResponseResult> add(@RequestBody KeywordDto keywordDto) { List questionList = Arrays.stream(keywordDto.getQuestions().split("\\n")) .filter(q -> !q.trim().isEmpty()) .map(q -> { Question question = new Question(); question.setKeyword_id(keywordDto.getKeyword_id()); question.setQuestion(q.trim()); question.setStatus("pending"); return question; }).collect(Collectors.toList()); boolean success = questionService.saveBatch(questionList); if (success) { return ResponseResult.success(questionList); } return ResponseResult.error("添加提问词失败"); } @DeleteMapping("/{questionId}") @ApiOperation(value = "删除提问词") public ResponseResult delete(@PathVariable Integer questionId) { boolean success = questionService.removeById(questionId); if (success) { return ResponseResult.success(); } return ResponseResult.error("删除提问词失败"); } // @PutMapping // @Transactional // public ResponseResult update(@RequestBody List questions) { // boolean success = questionService.updateBatchById(questions); // // 不存在的问题id就新增 // List newQuestions = questions.stream() // .filter(q -> q.getQuestion_id() == null) // .collect(Collectors.toList()); // if (!newQuestions.isEmpty()) { // questionService.saveBatch(newQuestions); // } // if (success) { // return ResponseResult.success(); // } // return ResponseResult.error("更新提问词失败"); // } @PutMapping @ApiOperation(value = "修改提问词") public ResponseResult update(@RequestBody Question questions) { boolean success = questionService.updateById(questions); if (success) { return ResponseResult.success(); } return ResponseResult.error("更新提问词失败"); } // @DeleteMapping("/batch") // @Transactional // public ResponseResult batchDelete(@RequestBody List // questionIds) { // List questions = questionIds.stream().map(id -> { // Question question = new Question(); // question.setQuestion_id(id); // return question; // }).collect(Collectors.toList()); // boolean success = questionService.updateBatchById(questions); // if (success) { // return ResponseResult.success(); // } // return ResponseResult.error("批量删除提问词失败"); // } @GetMapping("/list") @ApiOperation("根据关键词查询提问词列表") public ResponseResult> list(Integer keyword_id) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Question::getKeyword_id, keyword_id); List list = questionService.list(queryWrapper); return ResponseResult.success(list); } }