From a7c5b11f4db54f95845b14c1105fa4b962fa9f3a Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 05 Jul 2023 17:54:11 +0800
Subject: [PATCH] 智能外呼统计查询修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java |  218 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 136 insertions(+), 82 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
index b03191c..6bdd653 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
@@ -1,23 +1,20 @@
 package cn.gistack.sm.intelligentCall.controller;
 
-import cn.gistack.sm.intelligentCall.constant.CallConstant;
-import cn.gistack.sm.intelligentCall.entity.User;
-import cn.gistack.sm.intelligentCall.util.HttpClientUtils;
-import com.alibaba.fastjson.JSON;
+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.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.text.SimpleDateFormat;
-import java.util.*;
+import org.springframework.web.bind.annotation.*;
 
-import static cn.gistack.sm.intelligentCall.util.CallUtil.getRandom;
-import static cn.gistack.sm.intelligentCall.util.CallUtil.getToken;
+import java.util.*;
 
 /**
  * 智能呼叫控制层
@@ -31,84 +28,141 @@
 @AllArgsConstructor
 public class CallController {
 
-	/**
-	 * 创建任务
-	 * @return
-	 */
-	@GetMapping("/createCall")
-	public R createCall(){
-		// 请求
-		Map<String, Object> map = new HashMap<>();
-		map.put("p1",createCallUtil());
-		// 返回
-		return R.data(map);
-	}
+	private final CallService callService;
+
+	private final ICallSmsNoticeTaskService callSmsNoticeTaskService;
 
 	/**
 	 * 创建任务
 	 * @return
 	 */
-	public String createCallUtil(){
-		Date date = new Date();
-		String dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
-		String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date);
-		String transId = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date) + getRandom();
-
-		Map<String, Object> map = new HashMap<>();
-		map.put("taskName","测试");
-		map.put("sceneId",230);
-		map.put("callingNumbers", Arrays.asList("00862787222298"));
-		map.put("taskScheduleTime",dateFormat);
-		List<Map<String,Object>> list = new ArrayList<>();
-		Map<String,Object> maps = new HashMap<>();
-		maps.put("被叫号码","15170720695");
-		maps.put("水库名称","测试水库");
-		maps.put("超汛限多少米","0");
-		maps.put("水库编码","1241241122");
-		maps.put("用户名","zrj");
-		maps.put("用户id","123456");
-		list.add(maps);
-		map.put("calleeData",list);
-
-		String token = getToken(timestamp, transId, map);
-		String url = CallConstant.HOST + CallConstant.createTaskUrl1;
-		String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, timestamp, transId, token, map);
+	@PostMapping("/createCall")
+	public R createCall(@RequestBody Map<String,Object> map){
+		List<String> task = callService.createTask(map);
+		// 创建外呼短信发送任务记录
+		createCallSmsNoticeTask(task);
 		// 返回
-		return httpPost;
+		return R.data(task);
+	}
+
+	/**
+	 * 创建外呼短信发送任务记录
+	 * @param result
+	 */
+	private Boolean createCallSmsNoticeTask(List<String> 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 args
-//	 */
-//	public static void main(String[] args) {
-//		Date date = new Date();
-//		String dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
-//		String timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date);
-//		String transId = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date) + getRandom();
-//
-//		Map<String, Object> map = new HashMap<>();
-//		map.put("taskName","测试");
-//		map.put("sceneId",230);
-//		map.put("callingNumbers", Arrays.asList("00862787222298"));
-//		map.put("taskScheduleTime",dateFormat);
-//		List<Map<String,Object>> list = new ArrayList<>();
-//		Map<String,Object> maps = new HashMap<>();
-//		maps.put("被叫号码","15170720695");
-//		maps.put("水库名称","测试水库");
-//		maps.put("超汛限多少米","0");
-//		maps.put("水库编码","1241241122");
-//		maps.put("用户名","zrj");
-//		maps.put("用户id","123456");
-//		list.add(maps);
-//		map.put("calleeData",list);
-//
-//		String token = getToken(timestamp, transId, map);
-//		String url = CallConstant.HOST + CallConstant.createTaskUrl1;
-//		String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, timestamp, transId, token, map);
-//		System.out.println("httpPost = " + httpPost);
-//	}
 
+	/**
+	 * 查询呼叫详情列表信息
+	 * @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<String, Object> 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));
+	}
 }

--
Gitblit v1.9.3