package cn.gistack.sm.intelligentCall.controller; import cn.gistack.sm.intelligentCall.constant.CallConstant; import cn.gistack.sm.intelligentCall.entity.ThirdBaseParam; import cn.gistack.sm.intelligentCall.entity.ThirdPartyResult; import cn.gistack.sm.intelligentCall.entity.ThirdRequestHead; import cn.gistack.sm.intelligentCall.entity.User; import cn.gistack.sm.intelligentCall.util.HttpClientUtils; import com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; 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 static cn.gistack.sm.intelligentCall.util.CallUtil.getRandom; import static cn.gistack.sm.intelligentCall.util.CallUtil.getToken; import static cn.gistack.sm.intelligentCall.util.ThirdPartyValidate.validateToken; /** * 智能呼叫控制层 * @author zhongrj * @date 2023-04-21 */ @Slf4j @Api(tags = "智能呼叫") @RestController @RequestMapping("/call/call") @AllArgsConstructor public class CallController { /** * 创建任务 * @return */ @GetMapping("/createCall") public R createCall(){ // 请求 Map map = new HashMap<>(); map.put("p1",createCallUtil()); // 返回 return R.data(map); } /** * 创建任务 * @return */ @GetMapping("/createCall1") public R createCall1(){ // 请求 Map map = new HashMap<>(); map.put("p1",createCallUtil()); // 返回 return R.data(map); } /** * 创建任务 * @return */ public static 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 map = new HashMap<>(); map.put("taskName","测试"); map.put("sceneId",230); map.put("callingNumbers", Arrays.asList("00862787222298")); map.put("taskScheduleTime",dateFormat); List> list = new ArrayList<>(); Map 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); ThirdBaseParam thirdBaseParam = new ThirdBaseParam(); ThirdRequestHead thirdRequestHead = new ThirdRequestHead(); thirdRequestHead.setAppId(CallConstant.AppKey); thirdRequestHead.setTimestamp(timestamp); thirdRequestHead.setToken(getToken(timestamp, transId, map)); thirdRequestHead.setTransId(transId); thirdBaseParam.setHead(thirdRequestHead); thirdBaseParam.setSecretString(JSON.toJSONString(map)); // 验证token boolean b = validateToken(thirdBaseParam, CallConstant.AppSecret, new ThirdPartyResult()); System.out.println("token 验证结果 = " + b); String token = getToken(timestamp, transId, map); String url = CallConstant.HOST + CallConstant.createTaskUrl1; String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, timestamp, transId, token, map); // 返回 return httpPost; } /** * 创建任务 * @return */ public static String createCallUtil1(){ 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 map = new HashMap<>(); map.put("taskName","测试"); map.put("sceneId",230); map.put("callingNumbers", Arrays.asList("00862787222298")); map.put("taskScheduleTime",dateFormat); List> list = new ArrayList<>(); Map 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 jsonString = JSON.toJSONString(map); HashMap hashMap = new HashMap<>(4); hashMap.put("appId",CallConstant.AppKey); hashMap.put("timestamp",timestamp); hashMap.put("transId",transId); hashMap.put("token",token); Map stringHashMap = new HashMap<>(); stringHashMap.put("head",hashMap.toString()); stringHashMap.put("body",jsonString); ThirdBaseParam thirdBaseParam = new ThirdBaseParam(); ThirdRequestHead thirdRequestHead = new ThirdRequestHead(); thirdRequestHead.setAppId(CallConstant.AppKey); thirdRequestHead.setTimestamp(timestamp); thirdRequestHead.setToken(token); thirdRequestHead.setTransId(transId); thirdBaseParam.setHead(thirdRequestHead); thirdBaseParam.setSecretString(JSON.toJSONString(map)); // 验证token boolean b = validateToken(thirdBaseParam, CallConstant.AppSecret, new ThirdPartyResult()); System.out.println("token 验证结果 = " + b); String url = CallConstant.HOST + CallConstant.createTaskUrl1; String httpPost = HttpClientUtils.doPost(url, stringHashMap); // 返回 return httpPost; } // /** // * 测试 // * @param args // */ // public static void main(String[] args) { // Map map = new HashMap<>(); // map.put("p1",createCallUtil()); //// map.put("p1",createCallUtil()); // // } }