zhongrj
2023-04-23 82ea601baf4d22349eeceb15679b02e0443a6016
智能外呼接口修改
2 files modified
1 files added
251 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java 144 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/util/CallUtil.java 106 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/impl/SmsRecordServiceImpl.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallController.java
@@ -16,6 +16,9 @@
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;
/**
 * 智能呼叫控制层
 * @author zhongrj
@@ -32,56 +35,44 @@
     * 创建任务
     * @return
     */
    @GetMapping("/createCall2")
    public R createCall2(){
        String url2 = CallConstant.HOST + CallConstant.createTaskUrl1;
        // 请求2
    @GetMapping("/createCall")
    public R createCall(){
        // 请求
        Map<String, Object> map = new HashMap<>();
        map.put("p2",createCall(url2));
        map.put("p1",createCallUtil());
        // 返回
        return R.data(map);
    }
    /**
     * 创建任务
     * @param url
     * @return
     */
    public String createCall(String url){
        // 计算token
    public String createCallUtil(){
        Date date = new Date();
        String dateFormat0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
        String dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date);
        String dateFormats = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date);
        Random random = new Random();
        //把随机生成的数字转成字符串
        String str = String.valueOf(random.nextInt(9));
        for (int i = 0; i < 5; i++) {
            str += random.nextInt(9);
        }
        String formatString ="appId" + CallConstant.AppKey
            + "timestamp" + dateFormat
            + "transId" + dateFormats
            + str;
        // 请求参数拼接
        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",1);
        map.put("callingNumbers", Arrays.asList(101,102));
        map.put("taskScheduleTime",dateFormat0);
        List<User> list = new ArrayList<>();
        User user = new User();
        user.setName("张三");
        user.setPhone("15170720695");
        user.setName("先生");
        list.add(user);
        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 jsonString = JSON.toJSONString(map);
        String lastString = formatString + jsonString + CallConstant.AppSecret;
        // md5 小写,md5 生成token
        String encryption = encryption(lastString);
        String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, dateFormat, dateFormats + str, encryption, map);
        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;
    }
@@ -93,72 +84,31 @@
//     * @param args
//     */
//    public static void main(String[] args) {
//        // 计算token
//        Date date = new Date();
//        String dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date);
//        String dateFormats = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date);
//        Random random = new Random();
//        //把随机生成的数字转成字符串
//        String str = String.valueOf(random.nextInt(9));
//        for (int i = 0; i < 5; i++) {
//            str += random.nextInt(9);
//        }
//        String formatString ="appId" + CallConstant.AppKey
//            + "timestamp" + dateFormat
//            + "transId" + dateFormats
//            + str;
//        // 请求参数拼接
//        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",1);
//        map.put("callingNumbers", Arrays.asList(101,102));
//        map.put("taskScheduleTime","2020-02-29 14:00:00");
//        List<User> list = new ArrayList<>();
//        User user = new User();
//        user.setName("张三");
//        user.setPhone("15170720695");
//        user.setName("先生");
//        list.add(user);
//        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 jsonString = JSON.toJSONString(map);
//        String lastString = formatString + jsonString + CallConstant.AppSecret;
//        // md5 小写,md5 生成token
//        String encryption = encryption(lastString);
//        String url = CallConstant.HOST + CallConstant.createTaskUrl;
//        String httpPost = HttpClientUtils.httpPost(url, CallConstant.AppKey, dateFormat, dateFormats + str, encryption, map);
//
//
//        System.out.println("encryption = " + encryption);
//
//        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);
//    }
    /**
     * md5加密 32位 小写
     * @param plainText
     * @return
     */
    public static String encryption(String plainText) {
        String re_md5 = new String();
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0) {
                    i += 256;
                }
                if (i < 16) {
                    buf.append("0");
                }
                buf.append(Integer.toHexString(i));
            }
            re_md5 = buf.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return re_md5;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/util/CallUtil.java
New file
@@ -0,0 +1,106 @@
package cn.gistack.sm.intelligentCall.util;
import cn.gistack.sm.intelligentCall.constant.CallConstant;
import com.alibaba.fastjson.JSON;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.*;
public class CallUtil {
    /**
     * 计算token
     * @param timestamp
     * @param transId
     * @param map
     * @return
     */
    public static String getToken(String timestamp,String transId,Map<String,Object> map){
        // 转 jsonstring
        String body = JSON.toJSONString(map);
        // 拼接
        StringBuilder builder = new StringBuilder("appId");
        builder.append(CallConstant.AppKey)
            .append("timestamp").append(timestamp)
            .append("transId").append(transId)
            .append(body).append(CallConstant.AppSecret);
        String formatString = builder.toString();
        // md5 小写,md5 生成token
        String token = encryption(formatString);
        // 返回
        return token;
    }
    /**
     * 计算token1
     * @param url
     * @return
     */
    public static String getToken1(String url){
        // 计算token
        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();
        // 请求参数拼接
        String body ="{\"callingumbers\":[\"01086394068\"], \"calleeData\":[{\"被叫号码\":\"15170720695\"\"bizId\":\"1\"}]"+
            ",\"scenesId\":2268,\"taskSchedulelime\":\"2023-04-23 16:30:00\",\"taskNamel\":\"thirdCreatelask7\"}";
        // 拼接
        StringBuilder builder = new StringBuilder("appId");
        builder.append(CallConstant.AppKey)
            .append("timestamp").append(timestamp)
            .append("transId").append(transId)
            .append(body).append(CallConstant.AppSecret);
        String formatString = builder.toString();
        // md5 小写,md5 生成token
        String token = encryption(formatString);
        // 返回
        return token;
    }
    /**
     * 随机数生成
     * @return
     */
    public static String getRandom(){
        Random random = new Random();
        //把随机生成的数字转成字符串
        String str = String.valueOf(random.nextInt(9));
        for (int i = 0; i < 5; i++) {
            str += random.nextInt(9);
        }
        return str;
    }
    /**
     * md5加密 32位 小写
     * @param plainText
     * @return
     */
    public static String encryption(String plainText) {
        String re_md5 = new String();
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            byte b[] = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0) {
                    i += 256;
                }
                if (i < 16) {
                    buf.append("0");
                }
                buf.append(Integer.toHexString(i));
            }
            re_md5 = buf.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return re_md5;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/service/impl/SmsRecordServiceImpl.java
@@ -1,6 +1,5 @@
package cn.gistack.sm.sms.service.impl;
import cn.gistack.sm.patrol.mapper.PatrolGroupMapper;
import cn.gistack.sm.sms.entity.SmsRecord;
import cn.gistack.sm.sms.mapper.SmsRecordMapper;
import cn.gistack.sm.sms.service.ISmsRecordService;