UserOutboundApiController.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.goafanti.customer.controller;
  2. import com.goafanti.common.bo.Error;
  3. import com.goafanti.common.bo.Result;
  4. import com.goafanti.common.controller.BaseApiController;
  5. import com.goafanti.common.model.Admin;
  6. import com.goafanti.core.shiro.token.TokenManager;
  7. import com.goafanti.customer.bo.*;
  8. import com.goafanti.customer.service.UserOutboundService;
  9. import org.springframework.web.bind.annotation.GetMapping;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
  14. import javax.annotation.Resource;
  15. @RestController
  16. @RequestMapping("/api/admin/userOutbound")
  17. public class UserOutboundApiController extends BaseApiController {
  18. @Resource
  19. private UserOutboundService userOutboundService;
  20. /**
  21. * 客户外呼查询
  22. *
  23. */
  24. @PostMapping("/checkUser")
  25. public Result checkUser(Integer type) {
  26. return new Result<>().data(this.userOutboundService.checkUser(type));
  27. }
  28. /**
  29. * 坐席点击呼叫
  30. *
  31. */
  32. @PostMapping("/callNumber")
  33. public Result callNumber(InputCallNumber in) {
  34. Result res =new Result();
  35. Admin adminToken = TokenManager.getAdminToken();
  36. String callNo = null;
  37. if (adminToken != null) {
  38. callNo = adminToken.getCallNo();
  39. in.setAgent(callNo);
  40. }
  41. if (in.getAgent()==null){
  42. return res.error(new Error("坐席号不能为空"));
  43. }
  44. if (in.getCallee()==null){
  45. return res.error(new Error("客户号码不能为空"));
  46. }
  47. if (in.getUid()==null){
  48. return res.error(new Error("客户编号不能为空"));
  49. }
  50. return this.userOutboundService.pushCallNumber(in);
  51. }
  52. /**
  53. * 坐席呼叫转移
  54. *
  55. */
  56. @PostMapping("/blindTransferByAgent")
  57. public Result blindTransferByAgent(InputCallNumber in) {
  58. Result res =new Result();
  59. Admin adminToken = TokenManager.getAdminToken();
  60. String callNo = null;
  61. if (adminToken != null) {
  62. callNo = adminToken.getCallNo();
  63. in.setAgent(callNo);
  64. }
  65. if (in.getAgent()==null){
  66. return res.error(new Error("坐席号不能为空"));
  67. }
  68. if (in.getTransAgent()==null){
  69. return res.error(new Error("转移坐席号不能为空"));
  70. }
  71. return userOutboundService.blindTransferByAgent(in);
  72. }
  73. /**
  74. * 坐席列表
  75. *
  76. */
  77. @GetMapping("/agentList")
  78. public Result agentList() {
  79. return new Result<>().data(this.userOutboundService.agentList());
  80. }
  81. /**
  82. * 获取默认电话
  83. *
  84. */
  85. @GetMapping("/getDefaultMobile")
  86. public Result getDefaultMobile(String uid) {
  87. return new Result<>().data(this.userOutboundService.getDefaultMobile(uid));
  88. }
  89. /**
  90. * 通话记录
  91. *
  92. */
  93. @GetMapping("/userCallList")
  94. public Result userCallList(InputUserCallList in) {
  95. return new Result<>().data(this.userOutboundService.userCallList(in));
  96. }
  97. /**
  98. * 开启长连接
  99. */
  100. @RequestMapping("/SSeStart")
  101. public SseEmitter testSseEmitter() {
  102. // 默认30秒超时,设置为0L则永不超时
  103. SseEmitterUTF8 sseEmitter = new SseEmitterUTF8(3600_000L);
  104. SseMap.sseEmitterMap.put(TokenManager.getAdminId(), new SseResult(TokenManager.getAdminId(), System.currentTimeMillis(), sseEmitter));
  105. return sseEmitter;
  106. }
  107. }