023/Chatbot

/Chatbot/Chatbot/src/main/java/com/tencent/chatbot/service/ChatBotService.java
package com.tencent.chatbot.service;

import com.tencent.chatbot.dto.request.ChatBotRequest;
import com.tencent.chatbot.dto.response.ChatBotResponse;
import com.tencent.chatbot.entity.ChatBotEntity;

/**
* @description: 聊天机器人服务接口
* @author: qwen
* @date: 2023/1/16
*/
public interface ChatBotService {

/**
* 获取聊天机器人实体
* @return 聊天机器人实体
*/
ChatBotEntity getChatBotEntity();

/**
* 聊天机器人请求
* @param request 请求信息
* @return 响应信息
*/
ChatBotResponse chatBotRequest(ChatBotRequest request);
}

/Chatbot/Chatbot/src/main/java/com/tencent/chatbot/service/impl/ChatBotServiceImpl.java
package com.tencent.chatbot.service.impl;

import com.tencent.chatbot.entity.ChatBotEntity;
import com.tencent.chatbot.repository.ChatBotRepository;
import com.tencent.chatbot.service.ChatBotService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
* @description: 聊天机器人服务实现类
* @author: qwen
* @date: 2023/1/16
*/
@Service
public class ChatBotServiceImpl implements ChatBotService {

@Autowired
private ChatBotRepository chatBotRepository;

@Override
public ChatBotEntity getChatBotEntity() {
return chatBotRepository.findById("123456").orElse(null);
}

@Override
public ChatBotResponse chatBotRequest(ChatBotRequest request) {
return new ChatBotResponse(request.getMsg(), "聊天机器人返回的消息");
}
}

/Chatbot/Chatbot/src/main/java/com/tencent/chatbot/dao/ChatBotRepository.java
package com.tencent.chatbot.dao;

import com.tencent.chatbot.entity.ChatBotEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

/**
* @description: 聊天机器人数据访问接口
* @author: qwen
* @date: 2023/1/16
*/
@Repository
public interface ChatBotRepository extends JpaRepository<ChatBotEntity, String> {
}

/Chatbot/Chatbot/src/main/java/com/tencent/chatbot/entity/ChatBotEntity.java
package com.tencent.chatbot.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat.Shape;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize.Inclusion;
import com.tencent.chatbot.dto.request.ChatBotRequest;
import com.tencent.chatbot.dto.response.ChatBotResponse;
import com.tencent.chatbot.enums.ResponseType;
import com.tencent.chatbot.enums.TimeFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
* @description: 聊天机器人实体
* @author: qwen
* @date: 2023/1/16
*/
public class ChatBotEntity {

// 标识
@JsonProperty("id")
private String id;

// 请求者信息
@JsonProperty("user")
private UserEntity user;

// 请求内容
@JsonProperty("msg")
private String msg;

// 响应内容
@JsonProperty("response")
private String response;

// 响应类型
@JsonProperty("response_type")
private ResponseType responseType;

// 时间格式
@JsonProperty("time_format")
private TimeFormat timeFormat;

// 响应时间
@JsonProperty("response_time")
@JsonFormat(shape = Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date responseTime;

// 会话记录
@JsonProperty("conversation")
private List<ChatBotEntity> conversation;

// 会话信息
@JsonProperty("conversation_info")
private Map<String, Object> conversationInfo;

// 会话内容
@JsonProperty("conversation_content")
private List<String> conversationContent;

// 会话类型
@JsonProperty("conversation_type")
private String conversationType;

// 响应信息
@JsonProperty("response_info")
private ChatBotResponse responseInfo;

// 请求时间
@JsonProperty("request_time")
@JsonFormat(shape = Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date requestTime;

// 请求者
@JsonProperty("requester")
private String requester;

// 状态
@JsonProperty("status")
private String status;

// 父节点
@JsonProperty("parent_id")
private String parentId;

// 子节点
@JsonProperty("child_id")
private String childId;

// 会话类型
@JsonProperty("conversation_type")
private String conversationType;

// 会话内容
@JsonProperty("conversation_content")
private List<String> conversationContent;

// 会话信息
@JsonProperty("conversation_info")
private Map<String, Object> conversationInfo;

// 请求者信息
@JsonProperty("user_info")
private UserEntity user;

// 请求者
@JsonProperty("requester")
private String requester;

// 请求内容
@JsonProperty("msg")
private String msg;

// 响应内容
@JsonProperty("response")
private String response;

// 响应类型
@JsonProperty("response_type")
private ResponseType responseType;

// 时间