Commit 224b181a authored by 杨翌文's avatar 杨翌文

feature: 调整包结构; 管理和移动端分开,AI扩展分开

parent 5b55b410
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
...@@ -22,8 +22,8 @@ import java.util.List; ...@@ -22,8 +22,8 @@ import java.util.List;
@RestController @RestController
@RequestMapping(value = "/chat") @RequestMapping(value = "/admin/chat")
@Tag(name = "AI问答相关", description = "AI问答相关") @Tag(name = "管理端-AI问答相关", description = "AI问答相关")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ChatCompletionController { public class ChatCompletionController {
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
import cn.breeze.elleai.application.dto.PageResult; import cn.breeze.elleai.application.dto.PageResult;
import cn.breeze.elleai.application.dto.request.*; import cn.breeze.elleai.application.dto.request.*;
import cn.breeze.elleai.application.dto.response.ProperNounDto; import cn.breeze.elleai.application.dto.response.ProperNounDto;
import cn.breeze.elleai.application.dto.response.WikiCategoryDto;
import cn.breeze.elleai.application.dto.response.WikiDto;
import cn.breeze.elleai.application.service.AppCommonService; import cn.breeze.elleai.application.service.AppCommonService;
import cn.breeze.elleai.application.service.AppExamineService;
import cn.breeze.elleai.config.QueryParam; import cn.breeze.elleai.config.QueryParam;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
...@@ -17,8 +14,8 @@ import lombok.RequiredArgsConstructor; ...@@ -17,8 +14,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping(value = "/common") @RequestMapping(value = "/admin/common")
@Tag(name = "公共服务", description = "公共服务") @Tag(name = "管理端-公共服务", description = "公共服务")
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommonController { public class CommonController {
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
...@@ -19,8 +19,8 @@ import lombok.RequiredArgsConstructor; ...@@ -19,8 +19,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping(value = "/examine") @RequestMapping(value = "/admin/examine")
@Tag(name = "对练", description = "对练") @Tag(name = "管理端-对练", description = "对练")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExamineController { public class ExamineController {
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
...@@ -18,8 +18,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -18,8 +18,8 @@ import org.springframework.web.bind.annotation.*;
* 对练QA * 对练QA
*/ */
@RestController @RestController
@RequestMapping(value = "/examine/qa") @RequestMapping(value = "/admin/examine/qa")
@Tag(name = "对练题目", description = "对练题目") @Tag(name = "管理端-对练题目", description = "对练题目")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExamineQaController { public class ExamineQaController {
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
...@@ -8,7 +8,6 @@ import cn.breeze.elleai.application.dto.request.ExamineSceneCategorySaveDto; ...@@ -8,7 +8,6 @@ import cn.breeze.elleai.application.dto.request.ExamineSceneCategorySaveDto;
import cn.breeze.elleai.application.dto.response.ExamineSceneCategoryDto; import cn.breeze.elleai.application.dto.response.ExamineSceneCategoryDto;
import cn.breeze.elleai.application.service.AppExamineService; import cn.breeze.elleai.application.service.AppExamineService;
import cn.breeze.elleai.config.QueryParam; import cn.breeze.elleai.config.QueryParam;
import cn.breeze.elleai.domain.sparring.model.request.ExamineSceneCategoryRequestModel;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
...@@ -19,8 +18,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -19,8 +18,8 @@ import org.springframework.web.bind.annotation.*;
* 场景分类 * 场景分类
*/ */
@RestController @RestController
@RequestMapping(value = "/examine/scene_category") @RequestMapping(value = "/admin/examine/scene_category")
@Tag(name = "对练场景分类", description = "对练场景分类") @Tag(name = "管理端-对练场景分类", description = "对练场景分类")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExamineSceneCategoryController { public class ExamineSceneCategoryController {
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
...@@ -8,7 +8,6 @@ import cn.breeze.elleai.application.dto.request.ExamineSceneSaveDto; ...@@ -8,7 +8,6 @@ import cn.breeze.elleai.application.dto.request.ExamineSceneSaveDto;
import cn.breeze.elleai.application.dto.response.ExamineSceneDto; import cn.breeze.elleai.application.dto.response.ExamineSceneDto;
import cn.breeze.elleai.application.service.AppExamineService; import cn.breeze.elleai.application.service.AppExamineService;
import cn.breeze.elleai.config.QueryParam; import cn.breeze.elleai.config.QueryParam;
import cn.breeze.elleai.domain.sparring.model.request.ExamineSceneRequestModel;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
...@@ -19,8 +18,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -19,8 +18,8 @@ import org.springframework.web.bind.annotation.*;
* 场景 * 场景
*/ */
@RestController @RestController
@RequestMapping(value = "/examine/scene") @RequestMapping(value = "/admin/examine/scene")
@Tag(name = "对练场景", description = "对练场景") @Tag(name = "管理端-对练场景", description = "对练场景")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExamineSceneController { public class ExamineSceneController {
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.admin;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
import cn.breeze.elleai.application.dto.PageResult; import cn.breeze.elleai.application.dto.PageResult;
import cn.breeze.elleai.application.dto.request.*; import cn.breeze.elleai.application.dto.request.*;
import cn.breeze.elleai.application.dto.response.ExamineDto;
import cn.breeze.elleai.application.dto.response.WikiCategoryDto; import cn.breeze.elleai.application.dto.response.WikiCategoryDto;
import cn.breeze.elleai.application.dto.response.WikiDto; import cn.breeze.elleai.application.dto.response.WikiDto;
import cn.breeze.elleai.application.service.AppExamineService; import cn.breeze.elleai.application.service.AppExamineService;
...@@ -16,8 +15,8 @@ import lombok.RequiredArgsConstructor; ...@@ -16,8 +15,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@RestController @RestController
@RequestMapping(value = "/wiki") @RequestMapping(value = "/admin/wiki")
@Tag(name = "资料库", description = "资料库") @Tag(name = "管理端-资料库", description = "资料库")
@RequiredArgsConstructor @RequiredArgsConstructor
public class WikiController { public class WikiController {
......
package cn.breeze.elleai.controller.extension;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author yangyw
*/
@RestController
@RequestMapping(value = "/extension")
@Tag(name = "扩展接口-AI平台扩展")
@RequiredArgsConstructor
public class AiPlatformExtensionController {
}
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.front;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.front;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
...@@ -7,61 +7,65 @@ import cn.breeze.elleai.application.dto.request.*; ...@@ -7,61 +7,65 @@ import cn.breeze.elleai.application.dto.request.*;
import cn.breeze.elleai.application.dto.response.*; import cn.breeze.elleai.application.dto.response.*;
import cn.breeze.elleai.application.service.AppExamineService; import cn.breeze.elleai.application.service.AppExamineService;
import cn.breeze.elleai.config.QueryParam; import cn.breeze.elleai.config.QueryParam;
import cn.breeze.elleai.util.UserPrincipal;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.UUID;
@RestController @RestController
@RequestMapping(value = "/front/examine") @RequestMapping(value = "/front/examine")
@Tag(name = "AI对练移动端") @Tag(name = "移动端-AI对练")
@RequiredArgsConstructor @RequiredArgsConstructor
public class ExamineMobileController { public class ExamineMobileController {
private final AppExamineService examineService; private final AppExamineService examineService;
@Operation(summary = "对练场景列表") @Operation(summary = "获取对练场景列表")
@GetMapping("/scene/list") @GetMapping("/scene/list")
public ApiResponse<PageResult<ExamineSceneDto>> list(@QueryParam ExamineSceneRequestDto request) { public ApiResponse<PageResult<ExamineSceneDto>> list(@QueryParam ExamineSceneRequestDto request) {
PageResult<ExamineSceneDto> pageResult = examineService.examineMobileScenePaginQuery(request); PageResult<ExamineSceneDto> pageResult = examineService.examineMobileScenePaginQuery(request);
return ApiResponse.ok(pageResult); return ApiResponse.ok(pageResult);
} }
@Operation(summary = "对练场景分类列表") @Operation(summary = "获取对练场景分类列表(需要过滤角色)")
@GetMapping("/scene_category/list") @GetMapping("/scene_category/list")
public ApiResponse<PageResult<ExamineSceneCategoryDto>> list(@QueryParam ExamineSceneCategoryRequestDto request) { public ApiResponse<PageResult<ExamineSceneCategoryDto>> list(
@Parameter(hidden = true) UserPrincipal userPrincipal,
@QueryParam ExamineSceneCategoryRequestDto request) {
PageResult<ExamineSceneCategoryDto> pageResult = examineService.examineSceneCategoryMobilePaginQuery(request); PageResult<ExamineSceneCategoryDto> pageResult = examineService.examineSceneCategoryMobilePaginQuery(request);
return ApiResponse.ok(pageResult); return ApiResponse.ok(pageResult);
} }
@Operation(summary = "对练列表") @Operation(summary = "获取对练列表(分类+名称搜索)")
@GetMapping("/list") @GetMapping("/list")
public ApiResponse<PageResult<ExamineMobileDto>> list(@QueryParam ExamineRequestDto request) { public ApiResponse<PageResult<ExamineMobileDto>> list(
@Parameter(hidden = true) UserPrincipal userPrincipal,
@QueryParam ExamineRequestDto request) {
PageResult<ExamineMobileDto> pageResult = examineService.examineMobilePaginQuery(request); PageResult<ExamineMobileDto> pageResult = examineService.examineMobilePaginQuery(request);
return ApiResponse.ok(pageResult); return ApiResponse.ok(pageResult);
} }
@Operation(summary = "对练详情") @Operation(summary = "获取对练详情(根据对练ID)")
@GetMapping("/detail/{id}") @GetMapping("/detail/{id}")
public ApiResponse<ExamineMobileDto> detail(@Schema(description = "对练ID") @PathVariable("id") Integer id) { public ApiResponse<ExamineMobileDto> detail(@Schema(description = "对练ID") @PathVariable("id") Integer id) {
ExamineMobileDto detail = examineService.examineMobileDetail(id); ExamineMobileDto detail = examineService.examineMobileDetail(id);
return ApiResponse.ok(detail); return ApiResponse.ok(detail);
} }
@Operation(summary = "用户对练记录列表") @Operation(summary = "获取用户对练记录列表")
@GetMapping("/record/list") @GetMapping("/record/list")
public ApiResponse<PageResult<ExamineRecordMobileDto>> recordList(@RequestParam("user_id")String userId, public ApiResponse<PageResult<ExamineRecordMobileDto>> recordList(
@QueryParam ExamineRecordRequestDto request) { @Parameter(hidden = true) UserPrincipal userPrincipal,
@QueryParam ExamineRecordRequestDto request) {
request.setUserId(userId); request.setUserId(userPrincipal.getUserId());
PageResult<ExamineRecordMobileDto> pageResult = examineService.examineRecordMobilePaginQuery(request); PageResult<ExamineRecordMobileDto> pageResult = examineService.examineRecordMobilePaginQuery(request);
return ApiResponse.ok(pageResult); return ApiResponse.ok(pageResult);
} }
@Operation(summary = "用户对练记录详情") @Operation(summary = "获取用户对练记录详情")
@GetMapping("/record/detail/{id}") @GetMapping("/record/detail/{id}")
public ApiResponse<ExamineRecordMobileDto> recordDetail(@Schema(description = "对练记录ID") @PathVariable("id") Integer id) { public ApiResponse<ExamineRecordMobileDto> recordDetail(@Schema(description = "对练记录ID") @PathVariable("id") Integer id) {
ExamineRecordMobileDto detail = examineService.examineRecordMobileDetail(id); ExamineRecordMobileDto detail = examineService.examineRecordMobileDetail(id);
...@@ -86,8 +90,8 @@ public class ExamineMobileController { ...@@ -86,8 +90,8 @@ public class ExamineMobileController {
return ApiResponse.ok(result); return ApiResponse.ok(result);
} }
@Operation(summary = "开始考试,获取出题") @Operation(summary = "开始考试")
@GetMapping(value = "/get_question") @PostMapping(value = "/start_examine")
public ApiResponse<ExamineQaDifyDto> getQuestion(@Schema(description = "对练ID") @RequestParam("examine_id") Integer examineId, public ApiResponse<ExamineQaDifyDto> getQuestion(@Schema(description = "对练ID") @RequestParam("examine_id") Integer examineId,
@Schema(description = "对练模式(0练习 1对练)") @RequestParam("examine_mode") Integer examineMode, @Schema(description = "对练模式(0练习 1对练)") @RequestParam("examine_mode") Integer examineMode,
@Schema(description = "用户ID") @RequestParam("user_id") String userId) { @Schema(description = "用户ID") @RequestParam("user_id") String userId) {
...@@ -96,8 +100,8 @@ public class ExamineMobileController { ...@@ -96,8 +100,8 @@ public class ExamineMobileController {
return ApiResponse.ok(result); return ApiResponse.ok(result);
} }
@Operation(summary = "更新题目") @Operation(summary = "考试答题")
@PostMapping(value = "update_question") @PostMapping(value = "submit_answer")
public ApiResponse<String> updateQuestion(@Schema(description = "考试记录ID") @RequestParam("record_id") Integer recordId, public ApiResponse<String> updateQuestion(@Schema(description = "考试记录ID") @RequestParam("record_id") Integer recordId,
@Schema(description = "题目ID") @RequestParam("question_id") Long questionId, @Schema(description = "题目ID") @RequestParam("question_id") Long questionId,
@Schema(description = "用户答案") @RequestParam(value = "answer", required = false) String answer, @Schema(description = "用户答案") @RequestParam(value = "answer", required = false) String answer,
...@@ -220,8 +224,8 @@ public class ExamineMobileController { ...@@ -220,8 +224,8 @@ public class ExamineMobileController {
* @param request * @param request
* @return * @return
*/ */
@Operation(summary = "更新最终考试结果") @Operation(summary = "完成考试(触发最终结果更新)")
@PostMapping(value = "/update_exam_result") @PostMapping(value = "/complete_examine")
public ApiResponse<String> updateExamResult(@RequestBody ExamineUpdateResultDto request) { public ApiResponse<String> updateExamResult(@RequestBody ExamineUpdateResultDto request) {
return ApiResponse.ok("SUCCESS"); return ApiResponse.ok("SUCCESS");
......
package cn.breeze.elleai.controller; package cn.breeze.elleai.controller.front;
import cn.breeze.elleai.application.dto.ApiResponse; import cn.breeze.elleai.application.dto.ApiResponse;
import cn.breeze.elleai.application.dto.response.ExamineSceneDto; import cn.breeze.elleai.util.UserPrincipal;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping(value = "/front/user") @RequestMapping(value = "/front/user")
@Tag(name = "用户移动端") @Tag(name = "移动端-用户&授权")
@RequiredArgsConstructor @RequiredArgsConstructor
public class UserMobileController { public class UserMobileController {
@Operation(summary = "获取token") @Operation(summary = "获取token")
@GetMapping("/get_token") @GetMapping("/get_token")
public ApiResponse<String> getToken() { public ApiResponse<String> getToken() {
return ApiResponse.ok("ok"); //todo 移除mock数据,通过cookie获取返回
return ApiResponse.ok("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqb2JUaXRsZSI6IuengeS6uumhvumXriIsImlzcyI6Im9zcyIsInNob3BOYW1lIjoi5p2P5Z2b5a6P5rGH5Z-O5bqXIiwicG9zaXRpb24iOiLpob7pl64iLCJzaG9wSWQiOiIwMDAwMDAwMDZlODY2OTVlMDE2ZTg2ZDJiYTkyMDAwOCIsInVzZXJOYW1lIjoiTTAwODg3NyIsImV4cCI6MTgxMTY3NDQ5NCwidXNlcklkIjoiMDAwMDAwMDA2MmQ3NWRiNTAxNjJkNzc1YjYxOTAwMGEifQ.4XCYKRVuHTaP3TYob7O31bpPnhoBQ9XSq1inM93IqYE");
}
@Operation(summary = "获取用户信息")
@GetMapping("/info")
public ApiResponse<UserPrincipal> getUserInfo(UserPrincipal userPrincipal) {
return ApiResponse.ok(userPrincipal);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment