package cn.gistack.sm.intelligentCall.controller; import cn.gistack.sm.intelligentCall.entity.CallTaskResult; import cn.gistack.sm.intelligentCall.entity.Scene; import cn.gistack.sm.intelligentCall.service.CallService; import cn.gistack.sm.intelligentCall.service.ICallSmsNoticeTaskService; import cn.gistack.sm.intelligentCall.vo.CallTaskResultVO; import cn.gistack.sm.intelligentCall.vo.CallTaskStatistic; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import java.util.*; /** * 智能呼叫控制层 * @author zhongrj * @date 2023-04-21 */ @Slf4j @Api(tags = "智能呼叫") @RestController @RequestMapping("/call/call") @AllArgsConstructor public class CallController { private final CallService callService; private final ICallSmsNoticeTaskService callSmsNoticeTaskService; /** * 创建任务 * @return */ @PostMapping("/createCall") public R createCall(@RequestBody Map map){ List task = callService.createTask(map); // 创建外呼短信发送任务记录 createCallSmsNoticeTask(task); // 返回 return R.data(task); } /** * 创建外呼短信发送任务记录 * @param result */ private Boolean createCallSmsNoticeTask(List result) { Boolean flag = false; if (null != result && result.size() > 0) { if (result.get(2).equals("true")) { // 获取任务id String taskId = result.get(1); flag = callSmsNoticeTaskService.createCallSmsNoticeTask(taskId); } } return flag; } /** * 获取通话详情 * @return */ @GetMapping("/getCallDetail") public R getCallDetail(String taskId,String calleeNumber){ // 返回 return R.data(callService.getCallDetail(taskId,calleeNumber)); } /** * 查询呼叫列表信息 * @param callTask * @param query * @return */ @GetMapping("/getCallListPage") public R getCallListPage(CallTaskStatistic callTask, Query query){ // 返回 return R.data(callService.getCallListPage(Condition.getPage(query),callTask)); } /** * 查询呼叫详情列表信息 * @param callTaskResult * @param query * @return */ @GetMapping("/getCallTaskResultListPage") public R getCallTaskResultListPage(CallTaskResultVO callTaskResult, Query query){ // 返回 return R.data(callService.getCallTaskResultListPage(Condition.getPage(query),callTaskResult)); } /** * 导出呼叫详情列表信息 * @param callTaskResult * @return */ @GetMapping("/getCallTaskResultList") public R getCallTaskResultList(CallTaskResultVO callTaskResult){ // 返回 return R.data(callService.getCallTaskResultList(callTaskResult)); } /** * 查询智能外呼统计数据-按日期-行政区统计 * @param callTaskStatistic * @param query * @return */ @GetMapping("/getOutgoingStatisticList") public R getOutgoingStatisticList(CallTaskStatistic callTaskStatistic, Query query){ // 返回 return R.data(callService.getOutgoingStatisticList(Condition.getPage(query),callTaskStatistic)); } /** * 查询智能外呼统计数据-行政区统计 * @param callTaskStatistic * @return */ @GetMapping("/getOutgoingStatisticByArea") public R getOutgoingStatisticByArea(CallTaskStatistic callTaskStatistic){ // 返回 return R.data(callService.getOutgoingStatisticByArea(callTaskStatistic)); } /** * 根据条件自动创建外呼任务 * @param params * @return */ @PostMapping("/createCallTaskByParams") public R createCallTaskByParam(@RequestBody Map params){ // 返回 return R.data(callService.createCallTaskByParam(params)); } /** * 查询未接通,拒接的呼叫结果详情列表信息 * @param callTaskStatistic * @param query * @return */ @GetMapping("/getCallNotConnectResultList") public R getCallNotConnectResultList(CallTaskStatistic callTaskStatistic, Query query){ // 返回 return R.data(callService.getCallNotConnectResultList(Condition.getPage(query),callTaskStatistic)); } /** * 按日期行政区呼叫结果详情列表信息 * @param callTaskStatistic * @param query * @return */ @GetMapping("/getCallResultList") public R getCallResultList(CallTaskStatistic callTaskStatistic, Query query){ // 返回 return R.data(callService.getCallResultList(Condition.getPage(query),callTaskStatistic)); } }