Browse Source

Merge branch 'master' of http://124.70.58.209:3000/care/care-server into master

orgycat 3 years ago
parent
commit
924e1d2d01

+ 1 - 1
src/main/java/com/care/bms/controller/VoiceCallbackController.java

@@ -54,7 +54,7 @@ public class VoiceCallbackController {
                     status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
                 }
 
-                bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId), mobile, status,"");
+                bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId), mobile, status,"");
 
                 Map<String, Object> rtn = new HashMap<>();
                 rtn.put("result", 0);

+ 18 - 8
src/main/java/com/care/common/service/impl/CareEventOrderServiceImpl.java

@@ -294,6 +294,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                 CareHouse house = this.careHouseService.getById(order.getHouseId());
                 if (CollUtil.isNotEmpty(contacts)){
                     contacts.forEach(item ->{
+                        log.warn("语音联系人:{}",item);
                         MySendStatus sendStatus = null;
                         String[] params = null;
                         log.info(" 准备发送语音消息 : 工单ID:{}, 联系人:{}",order.getId(),item.getContactPhone());
@@ -308,7 +309,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                             sendStatus = voiceSendService.sendVoiceHappen(order.getId()+"",item.getContactPhone(),params);
                         }
 
-                        if (sendStatus != null && sendStatus.isSuccess()) {
+                        if (sendStatus != null ) {
                             CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
                             his2.setOrgId(item.getOrgId());
                             his2.setStationId(item.getStationId());
@@ -320,16 +321,21 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                             his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
                             his2.setCreateTime(DateUtil.date());
                             his2.setRelationTypeDesc(item.getRelationTypeDesc());
+                            if ( sendStatus.isSuccess()){
+                                log.info(" 事件语音通知成功 : 工单ID:{}, 联系人:{}",order.getId(),item);
+                            }else{
+                                his2.setVoiceCallStatus(ContactorStatusEnum.WEI_LIAN_XI.getValue().toString());
+                                his2.setVoiceFailureReason(sendStatus.getReason());
+                                log.error(" 事件语音通知失败 : 工单ID:{}, 联系人:{}",order.getId(),item);
+                            }
                             this.careEventOrderHandleHisService.save(his2);
-                            log.info(" 事件语音通知成功 : 工单ID:{}, 联系人:{}",order.getId(),item);
-                        }else{
-                            log.error(" 事件语音通知失败 : 工单ID:{}, 联系人:{}",order.getId(),item);
                         }
                     });
                 }
                 //给管家发语音通知
                 if (CollUtil.isNotEmpty(chambList)){
                     chambList.forEach(item ->{
+                        log.warn("语音管家:{}",item);
                         MySendStatus sendStatus = null;
                         String[] params = null;
                         log.info(" 准备发送语音消息 : 工单ID:{}, 联系人:{}",order.getId(),item.getPhone());
@@ -340,7 +346,7 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                             params = new String[]{DateUtil.format(order.getCreateTime(),"MM月dd日HH时mm分"),"跌倒",house.getName()};
                             sendStatus = voiceSendService.sendVoiceHappen(order.getId()+"",item.getPhone(),params);
                         }
-                        if (sendStatus != null && sendStatus.isSuccess()){
+                        if (sendStatus!=null){
                             CareEventOrderHandleHis his2 = new CareEventOrderHandleHis();
                             his2.setOrgId(item.getOrgId());
                             his2.setStationId(item.getStationId());
@@ -352,10 +358,14 @@ public class CareEventOrderServiceImpl extends ServiceImpl<CareEventOrderMapper,
                             his2.setOpUserRole(UserRoleEnum.SEAT.getValue());
                             his2.setCreateTime(DateUtil.date());
                             his2.setRelationTypeDesc("管家");
+                            if ( sendStatus.isSuccess()){
+                                log.info(" 事件语音通知成功 : 工单ID:{}, 管家:{}",order.getId(),item);
+                            }else{
+                                his2.setVoiceCallStatus(ContactorStatusEnum.WEI_LIAN_XI.getValue().toString());
+                                his2.setVoiceFailureReason(sendStatus.getReason());
+                                log.error(" 事件语音短信通知失败 : 工单ID:{}, 管家:{},失败原因:{}",order.getId(),item,sendStatus.getReason());
+                            }
                             this.careEventOrderHandleHisService.save(his2);
-                            log.info(" 事件语音通知成功 : 工单ID:{}, 管家:{}",order.getId(),item);
-                        }else{
-                            log.error(" 事件语音短信通知失败 : 工单ID:{}, 管家:{}",order.getId(),item);
                         }
                     });
                 }

+ 5 - 15
src/main/java/com/care/common/service/impl/VoiceSendServiceImpl.java

@@ -42,45 +42,35 @@ public class VoiceSendServiceImpl implements VoiceSendService {
     @Override
     public MySendStatus sendVoiceHappen(String sessionContext,String phone, String[] params) {
         String[] _p = params;
-        MySendStatus mySendStatus = new MySendStatus();
+        MySendStatus sendStatus = null;
         String _noticeTemplateId =  templateidHappen;
         if (StrUtil.isNotEmpty(_noticeTemplateId)){
-            SendStatus sendStatus =  VoiceUtil.sendTtsVoice(sessionContext,noticeEndpoint,
+            sendStatus =  VoiceUtil.sendTtsVoice(sessionContext,noticeEndpoint,
                     noticeRegion,
                     noticeSecretId,
                     noticeecretKey,
                     noticeVoiceSdkAppId,
                     _noticeTemplateId,
                     phone,_p);
-            if (sendStatus != null && sendStatus.getCallId() != null){
-                mySendStatus.setCallId(sendStatus.getCallId());
-                mySendStatus.setSessionContext(sendStatus.getSessionContext());
                 //存入redis
                 System.out.println("sendVoiceHappen:callId==" + sendStatus.getCallId());
                 redisUtil.hset(RedisKeyConstant.VOICE_CALLBACK_INFO, sendStatus.getCallId(), sendStatus.getSessionContext(), RedisKeyConstant.VOICE_CALLBACK_INFO_TIME);
-                mySendStatus.setSuccess(true);
-            }
         }
-        return  mySendStatus;
+        return  sendStatus;
     }
     @Override
     public MySendStatus sendVoiceCancel(String sessionContext, String phone, String[] params) {
         String[] _p = params;
-        MySendStatus mySendStatus = new MySendStatus();
+        MySendStatus mySendStatus = null;
         String _noticeTemplateId =  templateidCancel;
         if (StrUtil.isNotEmpty(_noticeTemplateId)){
-            SendStatus sendStatus =  VoiceUtil.sendTtsVoice(sessionContext,noticeEndpoint,
+             mySendStatus =  VoiceUtil.sendTtsVoice(sessionContext,noticeEndpoint,
                     noticeRegion,
                     noticeSecretId,
                     noticeecretKey,
                     noticeVoiceSdkAppId,
                     _noticeTemplateId,
                     phone,_p);
-            if (sendStatus != null && sendStatus.getCallId() != null){
-                mySendStatus.setCallId(sendStatus.getCallId());
-                mySendStatus.setSessionContext(sendStatus.getSessionContext());
-                mySendStatus.setSuccess(true);
-            }
         }
         return  mySendStatus;
     }

+ 22 - 18
src/main/java/com/care/common/util/VoiceUtil.java

@@ -1,21 +1,20 @@
 package com.care.common.util;
+
 import cn.hutool.json.JSONUtil;
+import com.care.common.vo.MySendStatus;
 import com.tencentcloudapi.common.Credential;
 import com.tencentcloudapi.common.exception.TencentCloudSDKException;
-
-// 导入可选配置类
 import com.tencentcloudapi.common.profile.ClientProfile;
 import com.tencentcloudapi.common.profile.HttpProfile;
-
-// 导入对应VMS模块的client
 import com.tencentcloudapi.vms.v20200902.VmsClient;
-
-// 导入要请求接口对应的request response类
-import com.tencentcloudapi.vms.v20200902.models.SendStatus;
 import com.tencentcloudapi.vms.v20200902.models.SendTtsVoiceRequest;
 import com.tencentcloudapi.vms.v20200902.models.SendTtsVoiceResponse;
 import lombok.extern.slf4j.Slf4j;
 
+// 导入可选配置类
+// 导入对应VMS模块的client
+// 导入要请求接口对应的request response类
+
 /**
  * Tencent Cloud Vms SendTtsVoice
  * https://cloud.tencent.com/document/product/1128/51558
@@ -23,14 +22,15 @@ import lombok.extern.slf4j.Slf4j;
  */
 @Slf4j
 public class VoiceUtil {
-    public static SendStatus sendTtsVoice(String sessionContext,String endpoint,
-                                          String region,
-                                          String secretId,
-                                          String secretKey,
-                                          String voiceSdkAppId,
-                                          String templateId,
-                                          String phoneNumber,
-                                          String[] templateParam) {
+    public static MySendStatus sendTtsVoice(String sessionContext, String endpoint,
+                                            String region,
+                                            String secretId,
+                                            String secretKey,
+                                            String voiceSdkAppId,
+                                            String templateId,
+                                            String phoneNumber,
+                                            String[] templateParam) {
+        MySendStatus mySendStatus = new MySendStatus();
         try {
             /* 必要步骤:
              * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
@@ -112,11 +112,15 @@ public class VoiceUtil {
 
             // 也可以取出单个值,您可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
             System.out.println(res.getRequestId());
-            return res.getSendStatus();
+            mySendStatus.setCallId(res.getSendStatus().getCallId());
+            mySendStatus.setSuccess(true);
+            mySendStatus.setSessionContext(res.getSendStatus().getSessionContext());
+
         } catch (TencentCloudSDKException e) {
             log.error("语音发送失败:号码:"+phoneNumber+" ,session:"+sessionContext,e);
-            return null;
+            mySendStatus.setReason(e.getMessage());
         }
+        return mySendStatus;
     }
     public static void main(String[] args) {
         String endpoint ="vms.tencentcloudapi.com";
@@ -127,7 +131,7 @@ public class VoiceUtil {
         String templateId="1182623";
         String phoneNumber="18010375763";
         String[] templateParam = {"yyyy年MM月dd日HH时mm分ss秒","久滞","双华时代"};
-        SendStatus sendStatus = VoiceUtil.sendTtsVoice("", endpoint,
+        MySendStatus sendStatus = VoiceUtil.sendTtsVoice("", endpoint,
                  region,
                  secretId,
                  secretKey,

+ 2 - 0
src/main/java/com/care/common/vo/MySendStatus.java

@@ -10,6 +10,8 @@ public class MySendStatus {
     private String SessionContext;
     // 是否成功
     boolean isSuccess = false;
+
+    private String reason;
     public MySendStatus(){
         this.isSuccess = false;
     }