123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package com.care.outcall.controller;
- import cn.hutool.json.JSONUtil;
- import com.care.common.entity.CcCallResult;
- import com.care.common.service.CcCallResultService;
- import com.care.common.util.*;
- import com.care.common.vo.UserLogindConvertVO;
- import com.care.outcall.entity.CcKoalaLog;
- import com.care.outcall.service.KoalaOutCallService;
- import io.jsonwebtoken.Claims;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import org.apache.logging.log4j.LogManager;
- import org.apache.logging.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletRequest;
- import java.util.Date;
- import java.util.Map;
- /**
- * @author stw
- * @version 2.7.0 创建于 2019/7/15
- **/
- @Api(value = "外呼操作-->外呼相关接口", description = "外呼操作-->外呼相关接口")
- @RestController
- @RequestMapping("/bms/outcall")
- public class KoalaOutCallController {
- private static final Logger logger = LogManager.getLogger(KoalaOutCallController.class);
- @Autowired
- private KoalaOutCallService koalaOutCallService;
- @Autowired
- private CcCallResultService ccCallResultService;
- @ApiOperation(value = "获取坐席基础信息接口", notes = "获取坐席基础信息接口")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "token", value = "放在请求头中的令牌", dataType = "String", paramType = "header", required = true)
- })
- @GetMapping(value = "/koala/getAgentInfo")
- public Result getAgentInfo(@RequestHeader(name = "token") String token) {
- try {
- Claims claims = JwtUtils.tokenParse(token);
- if (claims != null) {
- UserLogindConvertVO vo = JSONUtil.toBean(claims.getSubject(), UserLogindConvertVO.class);
- String userId = vo.getId().toString();
- Map<String, String> map = this.koalaOutCallService.getAgentInfo(userId);
- return Result.success(map);
- } else {
- return Result.error("获取坐席基础信息异常");
- }
- } catch (Exception e) {
- logger.error("获取坐席基础信息异常,信息为:" + e.getMessage());
- return Result.error(e.getMessage());
- }
- }
- @ApiOperation(value = "记录呼叫日志API", notes = "记录呼叫日志API")
- @PostMapping(value = "/koala/addOptLog", produces = "application/json;charset=UTF-8", consumes = "application/json;charset=UTF-8")
- public Result addOptLog(@RequestBody CcKoalaLog ccKoalaLog) {
- try {
- if (logger.isDebugEnabled()) {
- logger.debug(JsonUtil.toJson(ccKoalaLog));
- }
- koalaOutCallService.addOptLog(ccKoalaLog);
- return Result.success();
- } catch (Exception e) {
- logger.error("记录日志接口异常,异常信息:" + e.getMessage());
- return Result.error(e.getMessage());
- }
- }
- @ApiOperation(value = "保存呼叫结果接口", notes = "保存呼叫结果接口")
- @PostMapping(value = "/koala/addCallResult", produces = "application/json;charset=UTF-8", consumes = "application/json;charset=UTF-8")
- public Result<Object> addCallResult(HttpServletRequest request, @RequestBody CcCallResult ccCallResult) {
- try {
- UserLogindConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
- if (logger.isDebugEnabled()) {
- logger.debug(JsonUtil.toJson(ccCallResult));
- }
- //找到sessionId
- CcKoalaLog ccKoalaLog = new CcKoalaLog();
- ccKoalaLog.setOrgId(ccCallResult.getOrgId().toString());
- ccKoalaLog.setStationId(ccCallResult.getStationId().toString());
- ccKoalaLog.setHouseId(ccCallResult.getHouseId().toString());
- //ccKoalaLog.setOlderId(ccCallResult.getOlderId().toString());
- ccKoalaLog.setOrderId(ccCallResult.getOrderId().toString());
- ccKoalaLog.setCalledId(ccCallResult.getCalledId().toString());
- ccKoalaLog.setCalledType(ccCallResult.getCalledType());
- ccKoalaLog.setPhone(ccCallResult.getPhone());
- String sessionId = koalaOutCallService.getSessionId(ccKoalaLog);
- if(sessionId == null){
- // throw new Exception("会话ID为空,不能保存");
- }
- ccCallResult.setSessionId(sessionId);
- Date now = new Date();
- ccCallResult.setCreateTime(now);
- ccCallResult.setUpdateTime(now);
- ccCallResultService.saveCallResult(ccCallResult,loginUser);
- return Result.success();
- } catch (Exception e) {
- logger.error("保存呼叫结果接口异常,异常信息: {}",e);
- return Result.error(e.getMessage());
- }
- }
- }
|