KoalaOutCallController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.care.outcall.controller;
  2. import cn.hutool.json.JSONUtil;
  3. import com.care.common.entity.CcCallResult;
  4. import com.care.common.service.CcCallResultService;
  5. import com.care.common.util.*;
  6. import com.care.common.vo.UserLogindConvertVO;
  7. import com.care.outcall.entity.CcKoalaLog;
  8. import com.care.outcall.service.KoalaOutCallService;
  9. import io.jsonwebtoken.Claims;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiImplicitParam;
  12. import io.swagger.annotations.ApiImplicitParams;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.apache.logging.log4j.LogManager;
  15. import org.apache.logging.log4j.Logger;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.servlet.http.HttpServletRequest;
  19. import java.util.Date;
  20. import java.util.Map;
  21. /**
  22. * @author stw
  23. * @version 2.7.0 创建于 2019/7/15
  24. **/
  25. @Api(value = "外呼操作-->外呼相关接口", description = "外呼操作-->外呼相关接口")
  26. @RestController
  27. @RequestMapping("/bms/outcall")
  28. public class KoalaOutCallController {
  29. private static final Logger logger = LogManager.getLogger(KoalaOutCallController.class);
  30. @Autowired
  31. private KoalaOutCallService koalaOutCallService;
  32. @Autowired
  33. private CcCallResultService ccCallResultService;
  34. @ApiOperation(value = "获取坐席基础信息接口", notes = "获取坐席基础信息接口")
  35. @ApiImplicitParams({
  36. @ApiImplicitParam(name = "token", value = "放在请求头中的令牌", dataType = "String", paramType = "header", required = true)
  37. })
  38. @GetMapping(value = "/koala/getAgentInfo")
  39. public Result getAgentInfo(@RequestHeader(name = "token") String token) {
  40. try {
  41. Claims claims = JwtUtils.tokenParse(token);
  42. if (claims != null) {
  43. UserLogindConvertVO vo = JSONUtil.toBean(claims.getSubject(), UserLogindConvertVO.class);
  44. String userId = vo.getId().toString();
  45. Map<String, String> map = this.koalaOutCallService.getAgentInfo(userId);
  46. return Result.success(map);
  47. } else {
  48. return Result.error("获取坐席基础信息异常");
  49. }
  50. } catch (Exception e) {
  51. logger.error("获取坐席基础信息异常,信息为:" + e.getMessage());
  52. return Result.error(e.getMessage());
  53. }
  54. }
  55. @ApiOperation(value = "记录呼叫日志API", notes = "记录呼叫日志API")
  56. @PostMapping(value = "/koala/addOptLog", produces = "application/json;charset=UTF-8", consumes = "application/json;charset=UTF-8")
  57. public Result addOptLog(@RequestBody CcKoalaLog ccKoalaLog) {
  58. try {
  59. if (logger.isDebugEnabled()) {
  60. logger.debug(JsonUtil.toJson(ccKoalaLog));
  61. }
  62. koalaOutCallService.addOptLog(ccKoalaLog);
  63. return Result.success();
  64. } catch (Exception e) {
  65. logger.error("记录日志接口异常,异常信息:" + e.getMessage());
  66. return Result.error(e.getMessage());
  67. }
  68. }
  69. @ApiOperation(value = "保存呼叫结果接口", notes = "保存呼叫结果接口")
  70. @PostMapping(value = "/koala/addCallResult", produces = "application/json;charset=UTF-8", consumes = "application/json;charset=UTF-8")
  71. public Result<Object> addCallResult(HttpServletRequest request, @RequestBody CcCallResult ccCallResult) {
  72. try {
  73. UserLogindConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
  74. if (logger.isDebugEnabled()) {
  75. logger.debug(JsonUtil.toJson(ccCallResult));
  76. }
  77. //找到sessionId
  78. CcKoalaLog ccKoalaLog = new CcKoalaLog();
  79. ccKoalaLog.setOrgId(ccCallResult.getOrgId().toString());
  80. ccKoalaLog.setStationId(ccCallResult.getStationId().toString());
  81. ccKoalaLog.setHouseId(ccCallResult.getHouseId().toString());
  82. //ccKoalaLog.setOlderId(ccCallResult.getOlderId().toString());
  83. ccKoalaLog.setOrderId(ccCallResult.getOrderId().toString());
  84. ccKoalaLog.setCalledId(ccCallResult.getCalledId().toString());
  85. ccKoalaLog.setCalledType(ccCallResult.getCalledType());
  86. ccKoalaLog.setPhone(ccCallResult.getPhone());
  87. String sessionId = koalaOutCallService.getSessionId(ccKoalaLog);
  88. if(sessionId == null){
  89. // throw new Exception("会话ID为空,不能保存");
  90. }
  91. ccCallResult.setSessionId(sessionId);
  92. Date now = new Date();
  93. ccCallResult.setCreateTime(now);
  94. ccCallResult.setUpdateTime(now);
  95. ccCallResultService.saveCallResult(ccCallResult,loginUser);
  96. return Result.success();
  97. } catch (Exception e) {
  98. logger.error("保存呼叫结果接口异常,异常信息: {}",e);
  99. return Result.error(e.getMessage());
  100. }
  101. }
  102. }