From a24d7c5345cddb9454c351aae0637ed90333a934 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 16 七月 2024 17:57:07 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java | 520 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 389 insertions(+), 131 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java index 337498b..1d80368 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java @@ -1,7 +1,6 @@ package com.ruoyi.web.component; import com.alibaba.fastjson2.JSON; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.ServiceFromEnum; @@ -11,20 +10,28 @@ import com.smartor.common.SendService; import com.smartor.config.RobotPhoneUtils; import com.smartor.domain.*; -import com.smartor.mapper.IvrTaskMapper; -import com.smartor.mapper.IvrTaskSingleMapper; +import com.smartor.mapper.ServiceSubtaskMapper; +import com.smartor.mapper.ServiceTaskMapper; +import com.smartor.mapper.SvyTaskMapper; +import com.smartor.mapper.SvyTaskSingleMapper; +import com.smartor.service.IBaseSmsaccountService; import com.smartor.service.IIvrTaskTemplateService; +import com.smartor.service.IServiceSubtaskRecordService; +import com.smartor.service.ISvyTaskTemplateService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; import org.springframework.data.redis.listener.RedisMessageListenerContainer; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; +import javax.annotation.Syntax; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; @@ -39,21 +46,44 @@ @Value("${pub_key}") private String pub_key; + @Value("${localIP}") + private String localIP; + @Value("${req_path}") private String req_path; - private static IIvrTaskTemplateService ivrTaskTemplateService; + @Autowired + private IIvrTaskTemplateService ivrTaskTemplateService; - private static IvrTaskSingleMapper ivrTaskcallMapper; + @Autowired + private ServiceSubtaskMapper ivrTaskcallMapper; - private static IvrTaskMapper ivrTaskMapper; + @Autowired + private ServiceTaskMapper ivrTaskMapper; - private static SendService sendService; + @Autowired + private SendService sendService; - private static RedisCache redisCache; + @Autowired + private RedisCache redisCache; - private static RobotPhoneUtils robotPhoneUtils; + @Autowired + private RobotPhoneUtils robotPhoneUtils; + @Autowired + private SvyTaskMapper svyTaskMapper; + + @Autowired + private SvyTaskSingleMapper svyTaskSingleMapper; + + @Autowired + private ISvyTaskTemplateService iSvyTaskTemplateService; + + @Autowired + private IServiceSubtaskRecordService serviceSubtaskRecordService; + + @Autowired + IBaseSmsaccountService baseSmsaccountService; // 鍒涘缓鍥哄畾澶у皬鐨勭嚎绋嬫睜 private static final ExecutorService executorService = Executors.newFixedThreadPool(10); @@ -62,143 +92,371 @@ super(listenerContainer); } - - @Autowired - public void setIIvrTaskTemplateService(IIvrTaskTemplateService ivrTaskTemplateService) { - RedisMqReceiver.ivrTaskTemplateService = ivrTaskTemplateService; - } - - @Autowired - public void setRobotPhoneUtilsService(RobotPhoneUtils robotPhoneUtils) { - RedisMqReceiver.robotPhoneUtils = robotPhoneUtils; - } - - @Autowired - public void setSendService(SendService sendService) { - RedisMqReceiver.sendService = sendService; - } - - @Autowired - public void setIvrTaskcallMapper(IvrTaskSingleMapper ivrTaskcallMapper) { - RedisMqReceiver.ivrTaskcallMapper = ivrTaskcallMapper; - } - - @Autowired - public void setIvrTaskMapper(IvrTaskMapper ivrTaskMapper) { - RedisMqReceiver.ivrTaskMapper = ivrTaskMapper; - } - - @Autowired - public void setRedisCache(RedisCache redisCache) { - RedisMqReceiver.redisCache = redisCache; - } - @Override public void onMessage(Message message, byte[] pattern) { log.info("鐩戝惉Redis key杩囨湡锛宬ey锛歿}锛宑hannel锛歿}", message.toString(), new String(pattern)); + String ip = localIP; + log.error("鏈満鐨勭綉缁淚P涓�:{}", ip); String content = message.toString(); - IvrTaskcallMQ ivrTaskcallMQ = null; + //鍒ゆ柇鏄笉鏄换鍔′俊鎭紝濡傛灉涓嶆槸锛岀洿鎺ヨ繑鍥烇紝涓嶉渶瑕佹墽琛� + if (!content.contains("taskid")) { + log.info("涓嶆槸浠诲姟淇℃伅"); + return; + } + CommonTaskcallMQ commonTaskcallMQ = null; try { ObjectMapper mapper = new ObjectMapper(); - try { - if (!content.startsWith("{")) { - ivrTaskcallMQ = mapper.readValue("{" + content + "}", IvrTaskcallMQ.class); - } else { - ivrTaskcallMQ = mapper.readValue(content, IvrTaskcallMQ.class); - } - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - //鍒ゆ柇涓�涓媔vrTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� - IvrTask ivrTask1 = ivrTaskMapper.selectIvrTaskByTaskid(ivrTaskcallMQ.getTaskid()); - if (ivrTask1.getStopState() != ivrTaskcallMQ.getStopState()) { - //灏嗘秷鎭粠闃熷垪涓墧闄� - return; + if (!content.startsWith("{")) { + commonTaskcallMQ = mapper.readValue("{" + content + "}", CommonTaskcallMQ.class); + } else { + commonTaskcallMQ = mapper.readValue(content, CommonTaskcallMQ.class); } - if (StringUtils.isNotEmpty(ivrTaskcallMQ.getPreachform())) { - //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ - String[] split = ivrTaskcallMQ.getPreachform().split(","); - System.out.println("split鐨勫�间负锛�" + split); - for (String serviceFrom : split) { - String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); - //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡 - - //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 - IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO(); - ivrTaskTemplateVO.setID(Long.valueOf(ivrTaskcallMQ.getTemplateid())); - IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO); - - //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� - IvrTaskSingle ivrTaskcall = new IvrTaskSingle(); - ivrTaskcall.setTaskid(ivrTaskcallMQ.getTaskid()); - List<IvrTaskSingle> ivrTaskcalls = ivrTaskcallMapper.selectIvrTaskcallList(ivrTaskcall); - if (descByCode.equals("鐢佃瘽")) { - for (IvrTaskSingle ivrTaskcall1 : ivrTaskcalls) { - IvrTask ivrTask = ivrTaskMapper.selectIvrTaskByTaskid(ivrTaskcall1.getTaskid()); - if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { - //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� - break; - } - //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 - executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); - } - } else if (descByCode.equals("澶氬獟浣�")) { - //澶氬獟浣� - } else if (descByCode.equals("绾歌川")) { - //绾歌川 - } else if (descByCode.equals("鐭俊")) { - //鐭俊 -// http://localhost:8099/followvisit/particty?param1=3¶m2=348 - //瀵箄rl涓袱涓弬鏁板姞瀵� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - - - for (IvrTaskSingle ivrTaskSingle : ivrTaskcalls) { - String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("4"); - sendMagParam.setUrl(req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid); - sendService.sendMsg(sendMagParam); - } - } else if (descByCode.equals("鍏紬鍙�")) { - //鍏紬鍙� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - for (IvrTaskSingle ivrTaskSingle : ivrTaskcalls) { - String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("5"); - sendMagParam.setUrl(req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName()); - log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName()); - //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� - sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); - Map map = new HashMap(); - map.put("first", ivrTask1.getTaskName()); - sendMagParam.setContent(JSON.toJSONString(map)); - sendService.sendMsg(sendMagParam); - } - } - //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� - } + if (commonTaskcallMQ.getTaskType() == 1) { + //闅忚 + sfHandle(commonTaskcallMQ, ip); + } else if (commonTaskcallMQ.getTaskType() == 2) { + //闂嵎 + wjHandle(commonTaskcallMQ, ip); + } else if (commonTaskcallMQ.getTaskType() == 3) { + //瀹f暀 + xjHandle(commonTaskcallMQ, ip); } + //澶勭悊瀹屾垚锛岀Щ闄edis + redisCache.deleteObject(message.toString()); + } catch (Exception e) { - Integer integer = redisCache.getCacheObject(ivrTaskcallMQ.getTaskid().toString()); + Integer integer = redisCache.getCacheObject(commonTaskcallMQ.getTaskid().toString()); if (integer != null && integer == 2) { //灏嗘秷鎭粠闃熷垪涓垹闄� } else if (integer == null) { - redisCache.setCacheObject(ivrTaskcallMQ.getTaskid().toString(), 1, 120, TimeUnit.MINUTES); + redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), 1, 120, TimeUnit.MINUTES); } else { - redisCache.setCacheObject(ivrTaskcallMQ.getTaskid().toString(), integer + 1, 120, TimeUnit.MINUTES); + redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), integer + 1, 120, TimeUnit.MINUTES); } - log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!=============="); - log.error(e.getMessage()); + log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!============== {}", e.getMessage()); redisCache.setCacheObject(message.toString(), message.toString(), 60, TimeUnit.SECONDS); } - } + + /** + * 闅忚浠诲姟澶勭悊 + * + * @param commonTaskcallMQ + */ + private void sfHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) { + //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� + ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); + if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { + //灏嗘秷鎭粠闃熷垪涓墧闄� + return; + } + + if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { + //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ + String[] split = commonTaskcallMQ.getPreachform().split(","); + System.out.println("split鐨勫�间负锛�" + split); + for (String serviceFrom : split) { + String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); + //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡 + + //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 + IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO(); + ivrTaskTemplateVO.setId(Long.valueOf(commonTaskcallMQ.getTemplateid())); + IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO); + + //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� + ServiceSubtask ivrTaskcall = new ServiceSubtask(); + ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); + List<ServiceSubtask> selectServiceSubtaskList = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); + if (descByCode.equals("鐢佃瘽")) { + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); + if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { + //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� + break; + } + + //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + + //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 + executorService.submit(new PhoneTask(serviceSubtask, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); + } + } else if (descByCode.equals("澶氬獟浣�")) { + //澶氬獟浣� + return; + } else if (descByCode.equals("绾歌川")) { + //绾歌川 + return; + } else if (descByCode.equals("鐭俊")) { + //鐭俊 +// http://localhost:8099/followvisit/particty?param1=3¶m2=348 + //瀵箄rl涓袱涓弬鏁板姞瀵� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("4"); + sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid + "¶m5=false"); + Boolean aBoolean = sendService.sendMsg(sendMagParam); + + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } + } else if (descByCode.equals("鍏紬鍙�")) { + + //鍏紬鍙� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("5"); + sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + ivrTask1.getTaskid().toString() + "¶m2=" + serviceSubtask.getPatid().toString() + "¶m3=" + ivrTask1.getTaskName() + "¶m5=false"); + log.info("閾炬帴瀹屾暣璺緞锛歿}", ip + ":" + req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName() + "¶m5=false"); + //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� + sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); + Map map = new HashMap(); + map.put("first", ivrTask1.getTaskName()); + sendMagParam.setContent(JSON.toJSONString(map)); + sendMagParam.setOpenid(serviceSubtask.getOpenid()); + + Boolean aBoolean = sendService.sendMsg(sendMagParam); + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } + } + //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� + } + } + } + + /** + * 瀹f暀浠诲姟澶勭悊 + * + * @param commonTaskcallMQ + */ + private void xjHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) { + //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� + ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); + if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { + //灏嗘秷鎭粠闃熷垪涓墧闄� + return; + } + + if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { + //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ + String[] split = commonTaskcallMQ.getPreachform().split(","); + System.out.println("split鐨勫�间负锛�" + split); + for (String serviceFrom : split) { + String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); + //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡 + + //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 + IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO(); + ivrTaskTemplateVO.setId(Long.valueOf(commonTaskcallMQ.getTemplateid())); + IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO); + + //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� + ServiceSubtask ivrTaskcall = new ServiceSubtask(); + ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); + List<ServiceSubtask> ivrTaskcalls = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); + if (descByCode.equals("鐢佃瘽")) { + for (ServiceSubtask ivrTaskcall1 : ivrTaskcalls) { + ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(ivrTaskcall1.getTaskid()); + if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { + //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� + break; + } + + //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(ivrTaskcall1.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(ivrTaskcall1.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + + //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 + executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); + } + } else if (descByCode.equals("澶氬獟浣�")) { + //澶氬獟浣� + } else if (descByCode.equals("绾歌川")) { + //绾歌川 + } else if (descByCode.equals("鐭俊")) { + //鐭俊 +// http://localhost:8099/followvisit/particty?param1=3¶m2=348 + //瀵箄rl涓袱涓弬鏁板姞瀵� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + + + for (ServiceSubtask ivrTaskSingle : ivrTaskcalls) { + String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("4"); + sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid + "¶m5=false"); + Boolean aBoolean = sendService.sendMsg(sendMagParam); + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(ivrTaskSingle.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } + } else if (descByCode.equals("鍏紬鍙�")) { + //鍏紬鍙� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + for (ServiceSubtask ivrTaskSingle : ivrTaskcalls) { + String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("5"); + sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName() + "¶m5=false"); + log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName() + "¶m5=false"); + //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� + sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); + Map map = new HashMap(); + map.put("first", ivrTask1.getTaskName()); + sendMagParam.setContent(JSON.toJSONString(map)); + Boolean aBoolean = sendService.sendMsg(sendMagParam); + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(ivrTaskSingle.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } + } + //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� + } + } + } + + /** + * 闂嵎浠诲姟澶勭悊 + * + * @param commonTaskcallMQ + */ + private void wjHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) { + //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� + SvyTask svyTask = svyTaskMapper.selectSvyTaskByTaskid(commonTaskcallMQ.getTaskid()); + if (svyTask.getStopState() != commonTaskcallMQ.getStopState()) { + //灏嗘秷鎭粠闃熷垪涓墧闄� + return; + } + + if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { + //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ + String[] split = commonTaskcallMQ.getPreachform().split(","); + System.out.println("split鐨勫�间负锛�" + split); + for (String serviceFrom : split) { + String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); + //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡 + + //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 + SvyTaskTemplateVO svyTaskTemplateVO = new SvyTaskTemplateVO(); + svyTaskTemplateVO.setId(Long.valueOf(commonTaskcallMQ.getTemplateid())); + SvyTaskTemplateVO svyTaskTemplateVO1 = iSvyTaskTemplateService.selectInfoByCondition(svyTaskTemplateVO); + + //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� + SvyTaskSingle svyTaskSingle = new SvyTaskSingle(); + svyTaskSingle.setTaskid(commonTaskcallMQ.getTaskid()); + List<SvyTaskSingle> svyTaskSingles = svyTaskSingleMapper.selectSvyTaskSingleList(svyTaskSingle); + if (descByCode.equals("鐢佃瘽")) { + for (SvyTaskSingle svyTaskSingle1 : svyTaskSingles) { + SvyTask svyTask1 = svyTaskMapper.selectSvyTaskByTaskid(svyTaskSingle1.getTaskid()); + if (svyTask1.getSendState() != null && svyTask1.getSendState().equals("3") || svyTask1.getSendState() != null && svyTask1.getSendState().equals("4")) { + //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� + break; + } + + //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(svyTaskSingle1.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(svyTaskSingle1.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 +// executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); + } + } else if (descByCode.equals("澶氬獟浣�")) { + //澶氬獟浣� + } else if (descByCode.equals("绾歌川")) { + //绾歌川 + } else if (descByCode.equals("鐭俊")) { + //鐭俊 + } else if (descByCode.equals("鍏紬鍙�")) { + //鍏紬鍙� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(svyTask.getTaskid().toString(), pub_key); + for (SvyTaskSingle svyTaskSingle1 : svyTaskSingles) { + String patid = rsaPublicKeyExample.encryptedData(svyTaskSingle1.getPatid().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("5"); + sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + svyTask.getTaskName() + "¶m5=false"); + log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + svyTask.getTaskName() + "¶m5=false"); + //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� + sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); + Map map = new HashMap(); + map.put("first", svyTask.getTaskName()); + sendMagParam.setContent(JSON.toJSONString(map)); + Boolean aBoolean = sendService.sendMsg(sendMagParam); + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(svyTaskSingle1.getTaskid().toString()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(svyTaskSingle1.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } + } + //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� + } + } + } + // /** // * 鏈哄櫒浜虹涓�鍙ヨ瘽璇煶 @@ -207,15 +465,15 @@ // @RabbitListener(queues = "ob_queue", concurrency = "50") // public void obVisit(String content, Message message, Channel channel) throws IOException { // try { -// IvrTaskcallPhoneMQ ivrTaskcallMQ = null; +// IvrTaskcallPhoneMQ commonTaskcallMQ = null; // ObjectMapper mapper = new ObjectMapper(); -// ivrTaskcallMQ = mapper.readValue(content, IvrTaskcallPhoneMQ.class); +// commonTaskcallMQ = mapper.readValue(content, IvrTaskcallPhoneMQ.class); // //鍒ゆ柇鎮h�呮槸鍚﹀凡缁忔帴鐢佃瘽 -// String str = redisCache.getCacheObject(ivrTaskcallMQ.getUuid() + "state_id"); +// String str = redisCache.getCacheObject(commonTaskcallMQ.getUuid() + "state_id"); // System.out.println("-----------------" + str); // if (StringUtils.isNotEmpty(str) && str.equals("0")) { // //鎮h�呭凡缁忔帴鍚簡鐢佃瘽 -// new PhoneUtils().ttsPlayback(ivrTaskcallMQ.getScript(), ivrTaskcallMQ.getUuid()); +// new PhoneUtils().ttsPlayback(commonTaskcallMQ.getScript(), commonTaskcallMQ.getUuid()); // } else if (StringUtils.isNotEmpty(str) && str.equals("-10")) { // //杩欎釜璇存槑,宸茬粡鎵撲簡鎸囧畾閬嶆暟杩樻槸娌℃湁浜烘帴锛屽彲浠ュ皢娑堟伅浠庨槦鍒椾腑绉婚櫎浜� // channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); -- Gitblit v1.9.3