|
|
@@ -28,8 +28,6 @@ import com.ruoyi.common.utils.bean.BeanUtils;
|
|
|
import com.ruoyi.common.utils.uuid.UuidGenerator;
|
|
|
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
|
|
import com.ruoyi.framework.shiro.util.AuthorizationUtils;
|
|
|
-import com.ruoyi.system.service.ISysDeptService;
|
|
|
-import com.ruoyi.system.service.ISysRoleService;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.RandomUtils;
|
|
|
@@ -41,6 +39,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Controller
|
|
|
@Slf4j
|
|
|
@@ -75,6 +74,14 @@ public class ApiController extends BaseController {
|
|
|
private ISysUserService userService;
|
|
|
@Autowired
|
|
|
private SysPasswordService passwordService;
|
|
|
+ @Autowired
|
|
|
+ private ICcCustCallRecordService ccCustCallRecordService;
|
|
|
+ @Autowired
|
|
|
+ private ICcCustInfoService ccCustInfoService;
|
|
|
+ @Autowired
|
|
|
+ private ISysDivisionDataService sysDivisionDataService;
|
|
|
+ @Autowired
|
|
|
+ private ICcOutboundCdrService ccOutboundCdrService;
|
|
|
|
|
|
/**
|
|
|
* 获取外呼网关列表接口
|
|
|
@@ -1075,6 +1082,13 @@ public class ApiController extends BaseController {
|
|
|
callConfig.put("loginToken", loginToken);
|
|
|
callConfig.put("encryptPsw", encryptStr);
|
|
|
callConfig.put("gatewayList", gatewayList);
|
|
|
+ //登录账号
|
|
|
+ callConfig.put("opNum", opnum);
|
|
|
+ //登录用户名称
|
|
|
+ SysUser sysUser = userService.selectUserByLoginName(opnum);
|
|
|
+ if(sysUser != null){
|
|
|
+ callConfig.put("userName", sysUser.getUserName());
|
|
|
+ }
|
|
|
|
|
|
return AjaxResult.success(callConfig);
|
|
|
|
|
|
@@ -1166,13 +1180,97 @@ public class ApiController extends BaseController {
|
|
|
CcExtNum extNum = new CcExtNum();
|
|
|
extNum.setExtNum(user.getExtNum());
|
|
|
extNum.setUserCode(user.getLoginName());
|
|
|
- int num = ccExtNumService.updateCcExtNumByUserCode(extNum);
|
|
|
- if(num>0){
|
|
|
- return AjaxResult.success(user);
|
|
|
+ //先清除原分机绑定
|
|
|
+ int cleanNum = ccExtNumService.cleanCcExtNumByUserCode(user.getLoginName());
|
|
|
+ if(cleanNum>0){
|
|
|
+ int updateNum = ccExtNumService.updateCcExtNumByUserCode(extNum);
|
|
|
+ if(updateNum>0){
|
|
|
+ return AjaxResult.success(user);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
throw new RuntimeException("修改用户失败");
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取手动外呼客户沟通信息
|
|
|
+ * @param phoneNum 手机号
|
|
|
+ * @param callType 类型 1呼入 2外呼
|
|
|
+ * @param uuid 通话uuid
|
|
|
+ */
|
|
|
+ @GetMapping("/getCustCommunicationInfo")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult getCustCommunicationInfo(@RequestParam("phoneNum") String phoneNum, @RequestParam("callType") Integer callType, @RequestParam("uuid") String uuid)
|
|
|
+ {
|
|
|
+ Map<String,Object> mmap = new HashMap<>();
|
|
|
+ CcCustInfo ccCustInfo = ccCustInfoService.selectCcCustInfoByPhoneNum(phoneNum);
|
|
|
+ if (null == ccCustInfo) {
|
|
|
+ ccCustInfo = new CcCustInfo();
|
|
|
+ ccCustInfo.setCallRecordList(new ArrayList<>());
|
|
|
+ } else {
|
|
|
+ ccCustInfo.setCallRecordList(ccCustCallRecordService.selectCcCustCallRecordList(new CcCustCallRecord().setCustId(ccCustInfo.getId())));
|
|
|
+ }
|
|
|
+ ccCustInfo.setPhoneNum(phoneNum);
|
|
|
+ mmap.put("ccCustInfo", ccCustInfo);
|
|
|
+ mmap.put("callType", callType);
|
|
|
+ mmap.put("uuid", uuid);
|
|
|
+ // 省下拉框
|
|
|
+ List<SysDivisionData> sysDivisionData = sysDivisionDataService.selectSysDivisionDataList(null);
|
|
|
+ List<SysDivisionData> provinces = sysDivisionData.stream()
|
|
|
+ .filter(d -> d.getDeep() == 0)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ mmap.put("provinces", provinces);
|
|
|
+ // 市下拉框
|
|
|
+ List<SysDivisionData> citys = sysDivisionData.stream()
|
|
|
+ .filter(d -> d.getDeep() == 1)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ mmap.put("citys", citys);
|
|
|
+ // 区县下拉框
|
|
|
+ List<SysDivisionData> countys = sysDivisionData.stream()
|
|
|
+ .filter(d -> d.getDeep() == 2)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ mmap.put("countys", countys);
|
|
|
+ return AjaxResult.success(mmap);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增保存手动外呼沟通记录
|
|
|
+ */
|
|
|
+ @PostMapping("/add/custcallrecord")
|
|
|
+ @ResponseBody
|
|
|
+ public AjaxResult addAustcallrecord(@RequestBody CcCustInfo ccCustInfo)
|
|
|
+ {
|
|
|
+ ccCustInfoService.updateCcCustInfo(ccCustInfo);
|
|
|
+ CcCustInfo custInfoBak = ccCustInfoService.selectCcCustInfoByPhoneNum(ccCustInfo.getPhoneNum());
|
|
|
+ CcCustCallRecord callRecord = JSONObject.parseObject(ccCustInfo.getCallRecord(), CcCustCallRecord.class);
|
|
|
+ callRecord.setCustId(custInfoBak.getId());
|
|
|
+ //这里改成查询
|
|
|
+
|
|
|
+ callRecord.setUserId(ccCustInfo.getOpNum());
|
|
|
+ callRecord.setUserRealName(ccCustInfo.getUserName());
|
|
|
+ callRecord.setCreateTime(new Date());
|
|
|
+ CcCustCallRecord hisCallRecord = ccCustCallRecordService.selectCcCustCallRecordByUuid(callRecord.getUuid());
|
|
|
+ if (null == hisCallRecord) {
|
|
|
+ return toAjax(ccCustCallRecordService.insertCcCustCallRecord(callRecord));
|
|
|
+ } else {
|
|
|
+ callRecord.setId(hisCallRecord.getId());
|
|
|
+ return toAjax(ccCustCallRecordService.updateCcCustCallRecord(callRecord));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询手动外呼记录列表
|
|
|
+ */
|
|
|
+ @PostMapping("/outboundcdrList")
|
|
|
+ @ResponseBody
|
|
|
+ public TableDataInfo outboundcdrList(@RequestBody CcOutboundCdr ccOutboundCdr)
|
|
|
+ {
|
|
|
+ startPage();
|
|
|
+ List<CcOutboundCdr> list = ccOutboundCdrService.selectCcOutboundCdrList(ccOutboundCdr);
|
|
|
+ for (CcOutboundCdr data: list) {
|
|
|
+ data.setWavFileUrl("/recordings/files?filename=" + data.getRecordFilename());
|
|
|
+ }
|
|
|
+ return getDataTable(list);
|
|
|
+ }
|
|
|
}
|