@ -0,0 +1,66 @@ | |||
package com.digiwin.athena.app.chatFile.infra.entity; | |||
import com.baomidou.mybatisplus.annotation.TableName; | |||
import com.digiwin.athena.opt.persistence.domain.BaseMgrEntity; | |||
import com.google.gson.annotations.SerializedName; | |||
import lombok.AllArgsConstructor; | |||
import lombok.Builder; | |||
import lombok.Data; | |||
import lombok.NoArgsConstructor; | |||
import java.util.Date; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
@Data | |||
@AllArgsConstructor | |||
@NoArgsConstructor | |||
@Builder | |||
@TableName(value = "cim_chat_file", autoResultMap = true) | |||
public class ChatFileEntity extends BaseMgrEntity<ChatFileEntity> { | |||
@SerializedName(value = "question") | |||
private String question; | |||
@SerializedName(value = "feedback_person") | |||
private String feedbackPerson; | |||
@SerializedName(value = "feedback_date") | |||
private Date feedbackDate; | |||
@SerializedName(value = "urgency") | |||
private Integer urgency; | |||
@SerializedName(value = "question_type") | |||
private Integer questionType; | |||
@SerializedName(value = "question_source") | |||
private Integer questionSource; | |||
@SerializedName(value = "question_complete_by") | |||
private String questionCompleteBy; | |||
@SerializedName(value = "complete_date") | |||
private Date completeDate; | |||
@SerializedName(value = "complete_explain") | |||
private String completeExplain; | |||
@SerializedName(value = "is_join") | |||
private Integer isJoin; | |||
@SerializedName(value = "tab_status") | |||
private Integer tabStatus; | |||
} |
@ -0,0 +1,24 @@ | |||
<?xml version="1.0" encoding="UTF-8" ?> | |||
<!DOCTYPE mapper | |||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||
<mapper namespace="com.digiwin.athena.app.chatFile.infra.repository.ChatFileRepository"> | |||
<update id="updateBatch" parameterType="com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity"> | |||
UPDATE cim_chat_file | |||
<set> | |||
`question` = #{question}, | |||
`question_source` = #{questionSource}, | |||
`question_type` = #{questionType}, | |||
`urgency` = #{urgency}, | |||
`question_complete_by` = #{questionCompleteBy}, | |||
`complete_explain` = #{completeExplain}, | |||
`complete_date` = #{completeDate}, | |||
`is_join` = #{isJoin} | |||
</set> | |||
WHERE `id`=#{id} | |||
</update> | |||
</mapper> |
@ -0,0 +1,17 @@ | |||
package com.digiwin.athena.app.chatFile.infra.repository; | |||
import com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity; | |||
import com.digiwin.athena.opt.persistence.repository.BaseRepository; | |||
import org.apache.ibatis.annotations.Param; | |||
import java.util.List; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
public interface ChatFileRepository extends BaseRepository<ChatFileEntity> { | |||
void updateBatch(ChatFileEntity chatFile); | |||
} |
@ -0,0 +1,11 @@ | |||
package com.digiwin.athena.app.chatFile.infra.service; | |||
import com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity; | |||
import com.digiwin.athena.opt.persistence.service.IBaseService; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
public interface ChatFileService extends IBaseService<ChatFileEntity> { | |||
} |
@ -0,0 +1,15 @@ | |||
package com.digiwin.athena.app.chatFile.infra.service.impl; | |||
import com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity; | |||
import com.digiwin.athena.app.chatFile.infra.repository.ChatFileRepository; | |||
import com.digiwin.athena.app.chatFile.infra.service.ChatFileService; | |||
import com.digiwin.athena.opt.persistence.service.impl.AbsBaseService; | |||
import org.springframework.stereotype.Service; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
@Service | |||
public class ChatFileServiceImpl extends AbsBaseService<ChatFileRepository, ChatFileEntity> implements ChatFileService { | |||
} |
@ -0,0 +1,24 @@ | |||
package com.digiwin.athena.app.chatFile.provider; | |||
import com.digiwin.app.service.DWEAIResult; | |||
import com.digiwin.app.service.DWService; | |||
import com.digiwin.app.service.eai.EAIService; | |||
import com.digiwin.athena.app.chatFile.service.chatFile.ChatFileUtil; | |||
import java.util.Map; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
public interface ChatFileEAIService extends DWService { | |||
@EAIService(id = ChatFileUtil.CA_CHAT_FILE_INFO_GET) | |||
DWEAIResult get(Map<String, String> headers, String messageBody) throws Exception; | |||
@EAIService(id = ChatFileUtil.CA_CHAT_FILE_INFO_CREATE) | |||
DWEAIResult create(Map<String, String> headers, String messageBody) throws Exception; | |||
@EAIService(id = ChatFileUtil.CA_CHAT_FILE_INFO_UPDATE) | |||
DWEAIResult update(Map<String, String> headers, String messageBody) throws Exception; | |||
} |
@ -0,0 +1,35 @@ | |||
package com.digiwin.athena.app.chatFile.provider.impl; | |||
import com.digiwin.app.service.DWEAIResult; | |||
import com.digiwin.athena.app.chatFile.provider.ChatFileEAIService; | |||
import com.digiwin.athena.app.chatFile.service.chatFile.ChatFileUtil; | |||
import com.digiwin.athena.opt.common.eai.service.EAIServiceContext; | |||
import javax.annotation.Resource; | |||
import java.util.Map; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
public class ChatFileEAIServiceImpl implements ChatFileEAIService { | |||
@Resource | |||
private EAIServiceContext eaiServiceContext; | |||
@Override | |||
public DWEAIResult get(Map<String, String> headers, String messageBody) throws Exception { | |||
return eaiServiceContext.execute(ChatFileUtil.CA_CHAT_FILE_INFO_GET,headers,messageBody); | |||
} | |||
@Override | |||
public DWEAIResult create(Map<String, String> headers, String messageBody) throws Exception { | |||
return eaiServiceContext.execute(ChatFileUtil.CA_CHAT_FILE_INFO_CREATE,headers,messageBody); | |||
} | |||
@Override | |||
public DWEAIResult update(Map<String, String> headers, String messageBody) throws Exception { | |||
return eaiServiceContext.execute(ChatFileUtil.CA_CHAT_FILE_INFO_UPDATE,headers,messageBody); | |||
} | |||
} |
@ -0,0 +1,53 @@ | |||
package com.digiwin.athena.app.chatFile.service.chatFile; | |||
import com.alibaba.fastjson.TypeReference; | |||
import com.alibaba.nacos.common.utils.CollectionUtils; | |||
import com.alibaba.nacos.common.utils.StringUtils; | |||
import com.digiwin.app.container.exceptions.DWBusinessException; | |||
import com.digiwin.app.service.DWEAIResult; | |||
import com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity; | |||
import com.digiwin.athena.app.chatFile.infra.service.ChatFileService; | |||
import com.digiwin.athena.opt.common.eai.EAIRequest; | |||
import com.digiwin.athena.opt.common.eai.service.AbsEAIService; | |||
import lombok.extern.log4j.Log4j2; | |||
import org.springframework.stereotype.Service; | |||
import javax.annotation.Resource; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.Objects; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
@Service | |||
@Log4j2 | |||
public class ChatFileCreateEAIService extends AbsEAIService { | |||
@Resource | |||
private ChatFileService chatFileService; | |||
@Override | |||
public String getServiceName() { | |||
return ChatFileUtil.CA_CHAT_FILE_INFO_CREATE; | |||
} | |||
@Override | |||
public DWEAIResult execute(Map<String, String> headers, String messageBody) throws Exception { | |||
EAIRequest eaiRequest = EAIRequest.build(messageBody); | |||
ChatFileEntity chatFileInfo = eaiRequest.getObject("chat_file_info", new TypeReference<ChatFileEntity>(){}); | |||
if (Objects.isNull(chatFileInfo)){ | |||
throw new DWBusinessException("缺少必要参数chat_file_info"); | |||
} | |||
//反馈时间 | |||
chatFileInfo.setFeedbackDate(new Date()); | |||
chatFileService.save(chatFileInfo); | |||
return buildOK("chat_file_info",chatFileInfo); | |||
} | |||
} |
@ -0,0 +1,56 @@ | |||
package com.digiwin.athena.app.chatFile.service.chatFile; | |||
import com.alibaba.fastjson.TypeReference; | |||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
import com.digiwin.app.container.exceptions.DWBusinessException; | |||
import com.digiwin.app.service.DWEAIResult; | |||
import com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity; | |||
import com.digiwin.athena.app.chatFile.infra.service.ChatFileService; | |||
import com.digiwin.athena.opt.common.eai.EAIRequest; | |||
import com.digiwin.athena.opt.common.eai.service.AbsEAIService; | |||
import lombok.extern.log4j.Log4j2; | |||
import org.apache.commons.collections.CollectionUtils; | |||
import org.springframework.stereotype.Service; | |||
import javax.annotation.Resource; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
import java.util.Objects; | |||
import java.util.stream.Collectors; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
@Service | |||
@Log4j2 | |||
public class ChatFileGetEAIService extends AbsEAIService { | |||
@Resource | |||
private ChatFileService chatFileService; | |||
@Override | |||
public String getServiceName() { | |||
return ChatFileUtil.CA_CHAT_FILE_INFO_GET; | |||
} | |||
@Override | |||
public DWEAIResult execute(Map<String, String> headers, String messageBody) throws Exception { | |||
EAIRequest eaiRequest = EAIRequest.build(messageBody); | |||
ChatFileEntity chatFileInfo = eaiRequest.getObject("chat_file_info", new TypeReference<ChatFileEntity>(){}); | |||
if (Objects.isNull(chatFileInfo)){ | |||
throw new DWBusinessException("缺少必要参数chat_file_info"); | |||
} | |||
LambdaQueryWrapper<ChatFileEntity> lmq = new LambdaQueryWrapper<>(); | |||
lmq.eq(ChatFileEntity::getId,chatFileInfo.getId()); | |||
List<ChatFileEntity> list = chatFileService.list(lmq); | |||
return buildOK("chat_file_info",list); | |||
} | |||
} |
@ -0,0 +1,47 @@ | |||
package com.digiwin.athena.app.chatFile.service.chatFile; | |||
import com.alibaba.fastjson.TypeReference; | |||
import com.digiwin.app.service.DWEAIResult; | |||
import com.digiwin.athena.app.chatFile.infra.entity.ChatFileEntity; | |||
import com.digiwin.athena.app.chatFile.infra.repository.ChatFileRepository; | |||
import com.digiwin.athena.opt.common.eai.EAIRequest; | |||
import com.digiwin.athena.opt.common.eai.service.AbsEAIService; | |||
import lombok.extern.log4j.Log4j2; | |||
import org.springframework.stereotype.Service; | |||
import javax.annotation.Resource; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import java.util.List; | |||
import java.util.Map; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
@Service | |||
@Log4j2 | |||
public class ChatFileUpdateEAIService extends AbsEAIService { | |||
@Resource | |||
private ChatFileRepository chatFileRepository; | |||
@Override | |||
public String getServiceName() { | |||
return ChatFileUtil.CA_CHAT_FILE_INFO_UPDATE; | |||
} | |||
@Override | |||
public DWEAIResult execute(Map<String, String> headers, String messageBody) throws Exception { | |||
EAIRequest eaiRequest = EAIRequest.build(messageBody); | |||
ChatFileEntity chatFileInfo = eaiRequest.getObject("chat_file_info", new TypeReference<ChatFileEntity>(){}); | |||
chatFileInfo.setCompleteDate(new Date()); | |||
chatFileRepository.updateBatch(chatFileInfo); | |||
return buildOK(new HashMap<>()); | |||
} | |||
} |
@ -0,0 +1,17 @@ | |||
package com.digiwin.athena.app.chatFile.service.chatFile; | |||
/** | |||
* @auther: zhenggl | |||
* @date: 2023/9/7 | |||
*/ | |||
public class ChatFileUtil { | |||
/*** | |||
* 工博会chat_file | |||
*/ | |||
public static final String CA_CHAT_FILE_INFO_CREATE = "demo.kcfr.chat.file.info.create"; | |||
public static final String CA_CHAT_FILE_INFO_UPDATE = "demo.kcfr.chat.file.info.update"; | |||
public static final String CA_CHAT_FILE_INFO_GET = "demo.kcfr.chat.file.info.get"; | |||
} |
@ -1 +1,26 @@ | |||
alter table cps_question_info Add column measures_from varchar(520) null default '' AFTER `knowledge_accumulation`, Add column accumulation_from varchar(520) null default '' AFTER `knowledge_accumulation`; | |||
CREATE TABLE `cim_chat_file` ( | |||
`id` bigint(20) NOT NULL COMMENT 'id', | |||
`question` varchar(255) DEFAULT '' COMMENT '问题描述', | |||
`feedback_person` varchar(255) DEFAULT '' COMMENT '反馈人', | |||
`feedback_date` datetime DEFAULT NULL COMMENT '反馈时间', | |||
`urgency` int(1) DEFAULT NULL COMMENT '紧急程度1:低,2中,3高', | |||
`question_source` int(1) DEFAULT NULL COMMENT '问题来源', | |||
`question_type` int(1) DEFAULT NULL COMMENT '问题分类', | |||
`question_complete_by` varchar(255) DEFAULT '' COMMENT '问题处理人', | |||
`complete_date` datetime DEFAULT NULL COMMENT '处理时间', | |||
`complete_explain` varchar(255) DEFAULT '' COMMENT '处理说明', | |||
`is_join` int(1) DEFAULT NULL COMMENT '是否加入知识库0否,1是', | |||
`tab_status` int(1) DEFAULT NULL COMMENT '状态', | |||
`tenantsid` bigint(20) DEFAULT NULL COMMENT '租户sid', | |||
`tenant_id` varchar(20) DEFAULT NULL COMMENT '租户id', | |||
`create_by` varchar(50) DEFAULT NULL COMMENT '创建者', | |||
`create_date` datetime DEFAULT NULL COMMENT '创建时间', | |||
`modified_by` varchar(50) DEFAULT NULL COMMENT '修改者', | |||
`modified_date` datetime DEFAULT NULL COMMENT '修改时间', | |||
`version` int(11) DEFAULT '0' COMMENT '版本', | |||
`deleted` tinyint(255) DEFAULT '0' COMMENT '逻辑删除标志,默认0', | |||
PRIMARY KEY (`id`) | |||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |