12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.care.bms.controller;
- import com.care.bms.service.BmsEventOrderService;
- import com.care.common.cache.RedisKeyConstant;
- import com.care.common.cache.RedisUtil;
- import com.care.common.enums.ContactorStatusEnum;
- import com.care.common.util.JsonUtil;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @Author: lilt
- * @Date: 2021/5/26
- * @Desc:
- */
- @RestController
- @Api(value = "VoiceCallbackController", tags = { "语音通知回调接口" })
- @Slf4j
- @RequestMapping("/bms")
- public class VoiceCallbackController {
- @Resource
- private RedisUtil redisUtil;
- @Autowired
- private BmsEventOrderService bmsEventOrderService;
- @PostMapping("/voice/callback")
- @ApiOperation(tags = {"语音通知回调接口"},value = "语音通知回调接口")
- public Map<String,Object> callback(@RequestBody Map<String,Object> voicepromptCallback) {
- try {
- System.out.println("callback json == " + JsonUtil.toJson(voicepromptCallback));
- Map voiceCallbackParams = (Map) voicepromptCallback.get("voiceprompt_callback");
- if(voiceCallbackParams != null) {
- String callId = (String) voiceCallbackParams.get("callid");
- System.out.println("callback:callId==" + callId);
- String orderId = (String) redisUtil.hget(RedisKeyConstant.VOICE_CALLBACK_INFO, callId);
- System.out.println("callback:orderId==" + orderId);
- String mobile = (String) voiceCallbackParams.get("mobile");
- System.out.println("callback:mobile==" + mobile);
- Integer status = null;
- String result = (String) voiceCallbackParams.get("result");
- if ("0".equals(result)) { //用户正常接听
- status = ContactorStatusEnum.YI_LIAN_XI.getValue();
- } else if ("1".equals(result)) { //用户未接听
- status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
- } else { //呼叫异常
- status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
- }
- bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId), mobile, status,"");
- Map<String, Object> rtn = new HashMap<>();
- rtn.put("result", 0);
- rtn.put("errmsg", "OK");
- return rtn;
- } else {
- voiceCallbackParams = (Map) voicepromptCallback.get("voice_failure_callback");
- if(voiceCallbackParams != null){
- String callId = (String) voiceCallbackParams.get("callid");
- System.out.println("callback:failure callId==" + callId);
- String orderId = (String) redisUtil.hget(RedisKeyConstant.VOICE_CALLBACK_INFO, callId);
- System.out.println("callback:failure orderId==" + orderId);
- String mobile = (String) voiceCallbackParams.get("mobile");
- System.out.println("callback:failure mobile==" + mobile);
- String failureReason = (String) voiceCallbackParams.get("failure_reason");
- System.out.println("callback:failure failureReason==" + failureReason);
- Integer status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
- bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId), mobile, status,failureReason);
- Map<String, Object> rtn = new HashMap<>();
- rtn.put("result", 0);
- rtn.put("errmsg", "OK");
- return rtn;
- } else {
- return null;
- }
- }
- } catch (Exception e){
- e.printStackTrace();
- return null;
- }
- }
- }
|