1
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.jarvis.service;
|
||||
|
||||
import com.ruoyi.jarvis.domain.WeComInboundTrace;
|
||||
import com.ruoyi.jarvis.domain.dto.WeComInboundRequest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IWeComInboundTraceService {
|
||||
|
||||
void recordInbound(WeComInboundRequest request, String reply);
|
||||
|
||||
WeComInboundTrace selectWeComInboundTraceById(Long id);
|
||||
|
||||
List<WeComInboundTrace> selectWeComInboundTraceList(WeComInboundTrace query);
|
||||
|
||||
int deleteWeComInboundTraceByIds(Long[] ids);
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.ruoyi.jarvis.service.impl;
|
||||
|
||||
import com.ruoyi.jarvis.domain.WeComInboundTrace;
|
||||
import com.ruoyi.jarvis.domain.dto.WeComChatSession;
|
||||
import com.ruoyi.jarvis.domain.dto.WeComInboundRequest;
|
||||
import com.ruoyi.jarvis.mapper.WeComInboundTraceMapper;
|
||||
import com.ruoyi.jarvis.service.IWeComChatSessionService;
|
||||
import com.ruoyi.jarvis.service.IWeComInboundTraceService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class WeComInboundTraceServiceImpl implements IWeComInboundTraceService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(WeComInboundTraceServiceImpl.class);
|
||||
|
||||
@Resource
|
||||
private WeComInboundTraceMapper weComInboundTraceMapper;
|
||||
@Resource
|
||||
private IWeComChatSessionService weComChatSessionService;
|
||||
|
||||
@Override
|
||||
public void recordInbound(WeComInboundRequest request, String reply) {
|
||||
if (request == null || !StringUtils.hasText(request.getFromUserName())) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String from = request.getFromUserName().trim();
|
||||
WeComInboundTrace trace = new WeComInboundTrace();
|
||||
trace.setMsgId(request.getMsgId());
|
||||
trace.setAgentId(request.getAgentId());
|
||||
trace.setCorpId(request.getToUserName());
|
||||
trace.setFromUserName(from);
|
||||
trace.setContent(request.getContent());
|
||||
Long wxSec = request.getWxCreateTime();
|
||||
if (wxSec != null && wxSec > 0) {
|
||||
trace.setWxMsgTime(new Date(wxSec * 1000L));
|
||||
}
|
||||
trace.setReplyContent(reply != null ? reply : "");
|
||||
|
||||
WeComChatSession session = weComChatSessionService.get(from);
|
||||
trace.setSessionActive(session != null ? 1 : 0);
|
||||
if (session != null) {
|
||||
trace.setSessionScene(session.getScene());
|
||||
trace.setSessionStep(session.getStep());
|
||||
}
|
||||
weComInboundTraceMapper.insertWeComInboundTrace(trace);
|
||||
} catch (Exception e) {
|
||||
log.warn("企微消息追踪落库失败: {}", e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeComInboundTrace selectWeComInboundTraceById(Long id) {
|
||||
return weComInboundTraceMapper.selectWeComInboundTraceById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WeComInboundTrace> selectWeComInboundTraceList(WeComInboundTrace query) {
|
||||
return weComInboundTraceMapper.selectWeComInboundTraceList(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteWeComInboundTraceByIds(Long[] ids) {
|
||||
return weComInboundTraceMapper.deleteWeComInboundTraceByIds(ids);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user