package com.ruoyi.web.task;
|
|
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
import com.smartor.config.PhoneUtils;
|
import com.smartor.domain.IvrLibaTemplateScriptVO;
|
import com.smartor.domain.IvrLibaTemplateVO;
|
import com.smartor.domain.IvrTaskcall;
|
import com.smartor.domain.QuestionMessage;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.concurrent.TimeUnit;
|
|
public class PhoneTask implements Runnable {
|
private IvrTaskcall ivrTaskcall;
|
private List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVO;
|
private RedisCache redisCache;
|
private IvrLibaTemplateVO ivrLibaTemplateVO;
|
|
public PhoneTask(IvrTaskcall ivrTaskcall, IvrLibaTemplateVO ivrLibaTemplateVO, RedisCache redisCache) {
|
this.ivrTaskcall = ivrTaskcall;
|
this.ivrLibaTemplateScriptVO = ivrLibaTemplateVO.getIvrLibaTemplateScriptVOList();
|
this.ivrLibaTemplateVO = ivrLibaTemplateVO;
|
this.redisCache = redisCache;
|
}
|
|
@Override
|
public void run() {
|
//获取电话组,查看哪些电话可以使用
|
PhoneUtils phoneUtils = new PhoneUtils();
|
String uuid = IdUtils.randomUUID();
|
Map<String, Object> objectMap = new HashMap<>();
|
objectMap.put("ivrTaskcall", ivrTaskcall);
|
objectMap.put("ivrLibaTemplateScriptVO", ivrLibaTemplateScriptVO);
|
//将数据放到redis中,方便在回调方法里获取
|
redisCache.setCacheObject(uuid, objectMap, 120, TimeUnit.MINUTES);
|
|
//记录首次问题
|
QuestionMessage returnQues = new QuestionMessage();
|
returnQues.setKcb(ivrLibaTemplateVO.getRevisitBefore());
|
for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVO) {
|
if (ivrLibaTemplateScriptVO.getTargetid() == ivrLibaTemplateVO.getFirstQuestionNum().intValue()) {
|
returnQues.setNowQuestion(ivrLibaTemplateScriptVO);
|
}
|
}
|
returnQues.setQuestionList(ivrLibaTemplateScriptVO);
|
//将问题,和模板信息放到redis中
|
redisCache.setCacheObject(uuid + "returnQues", returnQues, 120, TimeUnit.MINUTES);
|
redisCache.setCacheObject(uuid + "ivrLibaTemplateVO", ivrLibaTemplateVO, 120, TimeUnit.MINUTES);
|
|
//调用机器人电话,开始电话(需要将回调方法传入,这个等”电话方“告诉怎么传,现在先空着,还有第一句问题话术)
|
phoneUtils.ob(uuid, null, ivrTaskcall.getPhone(), null, null, null, null, null, null, null, null);
|
|
|
}
|
}
|