VoiceCallbackController.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.care.bms.controller;
  2. import com.care.bms.params.VoiceCallbackParams;
  3. import com.care.bms.service.BmsEventOrderService;
  4. import com.care.common.cache.RedisKeyConstant;
  5. import com.care.common.cache.RedisUtil;
  6. import com.care.common.enums.ContactorStatusEnum;
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiOperation;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.web.bind.annotation.*;
  12. import javax.annotation.Resource;
  13. import java.util.HashMap;
  14. import java.util.Map;
  15. /**
  16. * @Author: lilt
  17. * @Date: 2021/5/26
  18. * @Desc:
  19. */
  20. @RestController
  21. @Api(value = "VoiceCallbackController", tags = { "语音通知回调接口" })
  22. @Slf4j
  23. @RequestMapping("/bms")
  24. public class VoiceCallbackController {
  25. @Resource
  26. private RedisUtil redisUtil;
  27. @Autowired
  28. private BmsEventOrderService bmsEventOrderService;
  29. @PostMapping("/voice/callback")
  30. @ApiOperation(tags = {"语音通知回调接口"},value = "语音通知回调接口")
  31. public Map<String,Object> callback(@RequestBody VoiceCallbackParams voiceCallbackParams) {
  32. String callId = voiceCallbackParams.getCallid();
  33. System.out.println("callback:callId==" + callId);
  34. String orderId = (String) redisUtil.hget(RedisKeyConstant.VOICE_CALLBACK_INFO, callId);
  35. String mobile = voiceCallbackParams.getMobile();
  36. Integer status = null;
  37. String result = voiceCallbackParams.getResult();
  38. if("0".equals(result)) { //用户正常接听
  39. status = ContactorStatusEnum.YI_LIAN_XI.getValue();
  40. } else if("1".equals(result)){ //用户未接听
  41. status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
  42. } else { //呼叫异常
  43. status = ContactorStatusEnum.WEI_JIE_TONG.getValue();
  44. }
  45. bmsEventOrderService.updateOrderContactStatus4Callback(Long.parseLong(orderId),mobile,status);
  46. Map<String,Object> rtn = new HashMap<>();
  47. rtn.put("result",0);
  48. rtn.put("errmsg","OK");
  49. return rtn;
  50. }
  51. }