添加分类的controller
This commit is contained in:
0
src/main/java/com/qingqiu/interview/AiInterviewApplication.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/AiInterviewApplication.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/entity/Message.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/entity/Message.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/AIClientFactory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/AIClientFactory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/AIClientManager.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/AIClientManager.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/DeepSeekClientFactory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/DeepSeekClientFactory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/QwenClientFactory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/factory/QwenClientFactory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/service/AIClientService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/service/AIClientService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/service/impl/DeepSeekClientServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/service/impl/DeepSeekClientServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/service/impl/QwenClientServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/ai/service/impl/QwenClientServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/constants/AIStrategyConstant.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/constants/AIStrategyConstant.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/constants/CommonConstant.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/constants/CommonConstant.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/constants/QwenModelConstant.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/constants/QwenModelConstant.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/enums/CommonStateEnum.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/enums/CommonStateEnum.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/ex/ApiException.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/ex/ApiException.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/ex/GlobalErrorHandler.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/ex/GlobalErrorHandler.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/res/IErrorCode.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/res/IErrorCode.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/res/R.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/res/R.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/res/ResultCode.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/res/ResultCode.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/service/HttpService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/service/HttpService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/service/impl/HttpServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/service/impl/HttpServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/utils/AIUtils.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/utils/AIUtils.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/utils/SpringApplicationContextUtil.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/utils/SpringApplicationContextUtil.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/utils/TreeUtil.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/common/utils/TreeUtil.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/DashScopeConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/DashScopeConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/JacksonConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/JacksonConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/MyBatisPlusConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/MyBatisPlusConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/WebClientConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/config/WebClientConfig.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/AiSessionLogController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/AiSessionLogController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/DashboardController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/DashboardController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/InterviewController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/InterviewController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/InterviewQuestionProgressController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/InterviewQuestionProgressController.java
Normal file → Executable file
148
src/main/java/com/qingqiu/interview/controller/QuestionCategoryController.java
Normal file → Executable file
148
src/main/java/com/qingqiu/interview/controller/QuestionCategoryController.java
Normal file → Executable file
@@ -1,15 +1,159 @@
|
||||
package com.qingqiu.interview.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.qingqiu.interview.common.res.R;
|
||||
import com.qingqiu.interview.dto.QuestionCategoryDTO;
|
||||
import com.qingqiu.interview.dto.QuestionCategoryPageParams;
|
||||
import com.qingqiu.interview.entity.QuestionCategory;
|
||||
import com.qingqiu.interview.service.IQuestionCategoryService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/question-category")
|
||||
@RequiredArgsConstructor
|
||||
public class QuestionCategoryController {
|
||||
|
||||
private final IQuestionCategoryService questionCategoryService;
|
||||
|
||||
/**
|
||||
* 获取分类树列表
|
||||
*/
|
||||
@GetMapping("/tree-list")
|
||||
public R<List<QuestionCategory>> getTreeList() {
|
||||
try {
|
||||
List<QuestionCategory> list = questionCategoryService.getTreeList();
|
||||
return R.success(list);
|
||||
} catch (Exception e) {
|
||||
log.error("获取分类树列表失败", e);
|
||||
return R.error("获取分类树列表失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分类选项
|
||||
*/
|
||||
@GetMapping("/options")
|
||||
public R<List<QuestionCategory>> getOptions() {
|
||||
try {
|
||||
List<QuestionCategory> options = questionCategoryService.getOptions();
|
||||
return R.success(options);
|
||||
} catch (Exception e) {
|
||||
log.error("获取分类选项失败", e);
|
||||
return R.error("获取分类选项失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分类详情
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public R<QuestionCategory> getDetail(@PathVariable Long id) {
|
||||
try {
|
||||
QuestionCategory category = questionCategoryService.getCategoryDetail(id);
|
||||
return R.success(category);
|
||||
} catch (Exception e) {
|
||||
log.error("获取分类详情失败", e);
|
||||
return R.error("获取分类详情失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分类
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public R<Page<QuestionCategory>> getPage(QuestionCategoryPageParams query) {
|
||||
try {
|
||||
Page<QuestionCategory> pageR = questionCategoryService.getCategoryPage(query);
|
||||
return R.success(pageR);
|
||||
} catch (Exception e) {
|
||||
log.error("分页查询分类失败", e);
|
||||
return R.error("分页查询分类失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建分类
|
||||
*/
|
||||
@PostMapping
|
||||
public R<Long> create(@Validated @RequestBody QuestionCategoryDTO dto) {
|
||||
try {
|
||||
Long id = questionCategoryService.createCategory(dto);
|
||||
return R.success(id);
|
||||
} catch (RuntimeException e) {
|
||||
log.error("创建分类失败", e);
|
||||
return R.error(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("创建分类失败", e);
|
||||
return R.error("创建分类失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新分类
|
||||
*/
|
||||
@PutMapping("/{id}")
|
||||
public R<Void> update(@PathVariable Long id, @Validated @RequestBody QuestionCategoryDTO dto) {
|
||||
try {
|
||||
questionCategoryService.updateCategory(id, dto);
|
||||
return R.success();
|
||||
} catch (RuntimeException e) {
|
||||
log.error("更新分类失败", e);
|
||||
return R.error(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("更新分类失败", e);
|
||||
return R.error("更新分类失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除分类
|
||||
*/
|
||||
@DeleteMapping("/{id}")
|
||||
public R<Void> delete(@PathVariable Long id) {
|
||||
try {
|
||||
questionCategoryService.deleteCategory(id);
|
||||
return R.success();
|
||||
} catch (RuntimeException e) {
|
||||
log.error("删除分类失败", e);
|
||||
return R.error(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("删除分类失败", e);
|
||||
return R.error("删除分类失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新分类状态
|
||||
*/
|
||||
@PatchMapping("/{id}/state")
|
||||
public R<Void> updateState(@PathVariable Long id, @RequestParam Integer state) {
|
||||
try {
|
||||
questionCategoryService.updateState(id, state);
|
||||
return R.success();
|
||||
} catch (Exception e) {
|
||||
log.error("更新分类状态失败", e);
|
||||
return R.error("更新分类状态失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索分类
|
||||
*/
|
||||
@GetMapping("/search")
|
||||
public R<List<QuestionCategory>> search(@RequestParam String name) {
|
||||
try {
|
||||
List<QuestionCategory> res = questionCategoryService.searchByName(name);
|
||||
return R.success(res);
|
||||
} catch (Exception e) {
|
||||
log.error("搜索分类失败", e);
|
||||
return R.error("搜索分类失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
0
src/main/java/com/qingqiu/interview/controller/QuestionController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/controller/QuestionController.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/ApiResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/ApiResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/ChatRequest.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/ChatRequest.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/DashboardStatsResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/DashboardStatsResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/InterviewReportResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/InterviewReportResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/InterviewResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/InterviewResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/InterviewStartRequest.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/InterviewStartRequest.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/PageBaseParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/PageBaseParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionCategoryDTO.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionCategoryDTO.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionCategoryPageParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionCategoryPageParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionPageParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionPageParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionProgressPageParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/QuestionProgressPageParams.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/SessionHistoryResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/SessionHistoryResponse.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/SessionRequest.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/dto/SessionRequest.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/AiSessionLog.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/AiSessionLog.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewEvaluation.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewEvaluation.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewMessage.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewMessage.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewQuestionProgress.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewQuestionProgress.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewSession.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/InterviewSession.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/Question.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/Question.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/QuestionCategory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/entity/QuestionCategory.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/AiSessionLogMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/AiSessionLogMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewEvaluationMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewEvaluationMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewMessageMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewMessageMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewQuestionProgressMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewQuestionProgressMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewSessionMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/InterviewSessionMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/QuestionCategoryMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/QuestionCategoryMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/QuestionMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/mapper/QuestionMapper.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/DashboardService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/DashboardService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/IAiSessionLogService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/IAiSessionLogService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/IInterviewQuestionProgressService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/IInterviewQuestionProgressService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/IQuestionCategoryService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/IQuestionCategoryService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/InterviewService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/InterviewService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/QuestionClassificationService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/QuestionClassificationService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/QuestionService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/QuestionService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/impl/AiSessionLogServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/impl/AiSessionLogServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/impl/InterviewQuestionProgressServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/impl/InterviewQuestionProgressServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/impl/QuestionCategoryServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/impl/QuestionCategoryServiceImpl.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/llm/LlmService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/llm/LlmService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/llm/qwen/QwenService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/llm/qwen/QwenService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/parser/DocumentParser.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/parser/DocumentParser.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/parser/MarkdownParserService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/parser/MarkdownParserService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/parser/PdfParserService.java
Normal file → Executable file
0
src/main/java/com/qingqiu/interview/service/parser/PdfParserService.java
Normal file → Executable file
0
src/main/resources/application.yml
Normal file → Executable file
0
src/main/resources/application.yml
Normal file → Executable file
0
src/main/resources/mapper/AIClientService.xml
Normal file → Executable file
0
src/main/resources/mapper/AIClientService.xml
Normal file → Executable file
0
src/main/resources/mapper/AiSessionLogMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/AiSessionLogMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/InterviewEvaluationMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/InterviewEvaluationMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/InterviewMessageMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/InterviewMessageMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/InterviewQuestionProgressMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/InterviewQuestionProgressMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/QuestionCategoryMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/QuestionCategoryMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/QuestionMapper.xml
Normal file → Executable file
0
src/main/resources/mapper/QuestionMapper.xml
Normal file → Executable file
0
src/main/resources/sql/schema.sql
Normal file → Executable file
0
src/main/resources/sql/schema.sql
Normal file → Executable file
0
src/test/java/com/qingqiu/interview/AiInterviewApplicationTests.java
Normal file → Executable file
0
src/test/java/com/qingqiu/interview/AiInterviewApplicationTests.java
Normal file → Executable file
Reference in New Issue
Block a user