package admin.rest; import admin.base.PageInfo; import admin.modules.chatgpt.service.ChatgptRoleRecordsService; import admin.modules.chatgpt.service.ChatgptRoleSessionService; import admin.modules.chatgpt.service.dto.ChatgptRoleRecordsDto; import admin.modules.chatgpt.service.dto.ChatgptRoleRecordsQueryCriteria; import admin.modules.chatgpt.service.dto.ChatgptRoleSessionQueryCriteria; import admin.resp.ApiResponse; import admin.util.ScreenEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Pageable; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.Comparator; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** * @author wk * @date 2023-11-27 **/ @Slf4j @RestController @RequiredArgsConstructor @Api(tags = "对话记录") @RequestMapping(value = "wx/chatgptRoleRecords/") public class ChatgptRoleRecordsController { private final ChatgptRoleRecordsService chatgptRoleRecordsService; private final ChatgptRoleSessionService chatgptRoleSessionService; @ApiOperation("会话查询对话记录") @GetMapping(value = "sessionList") public ApiResponse<Object> querySessionList(ChatgptRoleRecordsQueryCriteria query, Pageable pageable) { return ApiResponse.buildSuccess(chatgptRoleRecordsService.queryAll(query, pageable)); } @ApiOperation("查询会话") @GetMapping(value = "list") public ApiResponse<Object> query(ChatgptRoleSessionQueryCriteria query, Pageable pageable){ Integer byUserName = ScreenEnum.getByUserName(query.getName()); query.setUserId(byUserName); return ApiResponse.buildSuccess(chatgptRoleSessionService.queryAll(query,pageable)); } @ApiOperation("大屏临时查询十条会话记录") @GetMapping(value = "queryTenRecords") public ApiResponse<Object> queryTenRecords(@RequestParam String userName) { Integer userId = ScreenEnum.getByUserName(userName); List<ChatgptRoleRecordsDto> chatgptRoleRecordsDtos = chatgptRoleRecordsService.queryTenRecords(userId); List<ChatgptRoleRecordsDto> collect = chatgptRoleRecordsDtos.stream().sorted(Comparator.comparing(ChatgptRoleRecordsDto::getId)).collect(Collectors.toList()); return ApiResponse.buildSuccess(collect); } @ApiOperation("查询屏幕列表") @GetMapping(value = "queryScreenList") public ApiResponse<Object> queryScreenList() { return ApiResponse.buildSuccess(ScreenEnum.getScreen()); } }