yujian
2020-06-29 ec60e757d358636dcac1589c44a66f3e276fe58c
fanli/src/main/java/com/yeshi/fanli/util/aitaoker/AitaokerApiUtil.java
@@ -17,21 +17,16 @@
import com.yeshi.fanli.dto.aitaoker.QrcodeLoginDTO;
import com.yeshi.fanli.dto.aitaoker.RobotInfoDTO;
import com.yeshi.fanli.dto.aitaoker.WeiXinGroupDTO;
import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
import com.yeshi.fanli.util.StringUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class AitaokerApiUtil {
   public static String APP_KEY = "1077080250";
   public static String SECRET_KEY = "7c6118bd-7aa5-65b8-c6d4-058728e9446f";
   // 请求连接
   private static String SERVER_URL = "http://router.itaoke.org/api";
   
   
   private static String baseRequest(String method, Map<String, String> param) {
@@ -54,9 +49,7 @@
            baseMap.put(key, param.get(key));
         }
      }
      url+= "sign=" + getSign(baseMap);
      return HttpUtil.post(url, param);
   }
   
@@ -106,12 +99,9 @@
    * @return
    */
   public static QrcodeLoginDTO getQrcodeMaclogin(int robotId) {
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      // 请求结果
      String result = baseRequest("itaoke.robot.qrcode.maclogin", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      resultJson = resultJson.optJSONObject("data");
      if (resultJson != null) {
@@ -121,30 +111,6 @@
      return null;
   }
   
   /**
    *  检查是否扫码
    * @param robotId
    * @return
    */
   public static Boolean getQrcodeStatus(int robotId) {
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      // 请求结果
      String result = baseRequest("itaoke.robot.qrcode.status", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      resultJson = resultJson.optJSONObject("data");
      if (resultJson != null && !StringUtil.isNullOrEmpty(resultJson.optString("status"))) {
         int optInt = resultJson.optInt("status");
         if (optInt == 1) {
            return true;
         } else {
            return false;
         }
      }
      return null;
   }
   
   /**
    *   检查是否登陆(真正的登录接口)
@@ -167,7 +133,6 @@
            return new Gson().fromJson(resultJson.toString(), type);
         }
      }
      return null;
   }
   
@@ -177,14 +142,15 @@
    * @return
    */
   public static boolean onlineCheck(int robotId) {
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      // 请求结果
      String result = baseRequest("itaoke.robot.check.online", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("status"))) {
         return true;
         resultJson = resultJson.optJSONObject("data");
         if (resultJson != null) {
            return resultJson.optBoolean("isOnline");
         }
      }
      return false;
   }
@@ -210,24 +176,6 @@
   
   
   /**
    *  掉线重连
    * @param robotId 机器人id
    * @return
    */
   public static boolean loseReconnet(int robotId) {
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      // 请求结果
      String result = baseRequest("itaoke.robot.lose.reconnet", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("code"))) {
         return true;
      }
      return false;
   }
   /**
    * 创建机器人
    * @param month 月数
    * @param robotType 机器人类型 1 发单机器人 2转发机器人 3 返利机器人 4全能机器人 5小型机器人 6发圈机器人
@@ -246,8 +194,35 @@
      
      // 请求结果
      String result = baseRequest("itaoke.robot.create.get", map);
//      String result = "{\r\n" +
//            "    \"status\":\"0000\",\r\n" +
//            "    \"msg\":\"亲,添加成功\",\r\n" +
//            "    \"data\":{\r\n" +
//            "        \"id\":11770,\r\n" +
//            "        \"uid\":1625,\r\n" +
//            "        \"wechatrobot\":\"wechatrobot\",\r\n" +
//            "        \"wx_id\":\"\",\r\n" +
//            "        \"amount_used\":0,\r\n" +
//            "        \"group_num\":20,\r\n" +
//            "        \"passwd\":\"\",\r\n" +
//            "        \"nickname\":\"\",\r\n" +
//            "        \"c_uid\":1625,\r\n" +
//            "        \"login_status\":0,\r\n" +
//            "        \"end_time\":1594785534,\r\n" +
//            "        \"remark\":null,\r\n" +
//            "        \"wc_id\":\"\",\r\n" +
//            "        \"agent_uid\":null,\r\n" +
//            "        \"is_enabled\":0,\r\n" +
//            "        \"robot_type\":4,\r\n" +
//            "        \"ip\":\"http://49.234.36.129:10002/\",\r\n" +
//            "        \"is_new\":1\r\n" +
//            "    }\r\n" +
//            "}\r\n" +
//            "";
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("code"))) {
      if ("0000".equals(resultJson.optString("status"))) {
         resultJson = resultJson.optJSONObject("data");
         Type type = new TypeToken<RobotInfoDTO>() {}.getType();
         return new Gson().fromJson(resultJson.toString(), type);
@@ -255,29 +230,6 @@
      return null;
   }
   
   /**
    * 机器人更换微信号
    * @param robotId 机器人id
    * @param wxid 微信号
    * @return
    */
   public static RobotInfoDTO robotChangeWeiXin(int robotId, String wxid) {
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      map.put("wechatrobot", wxid);
      // 请求结果
      String result = baseRequest("itaoke.robot.change.get", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("code"))) {
         resultJson = resultJson.optJSONObject("data");
         Type type = new TypeToken<RobotInfoDTO>() {}.getType();
         return new Gson().fromJson(resultJson.toString(), type);
      }
      return null;
   }
   
   
   /**
@@ -293,8 +245,34 @@
      map.put("month", month +"");
      // 请求结果
      String result = baseRequest("itaoke.robot.change.get", map);
//      String result = "{\r\n" +
//            "    \"status\":\"0000\",\r\n" +
//            "    \"msg\":\"\\u4eb2,\\u6dfb\\u52a0\\u6210\\u529f\",\r\n" +
//            "    \"data\":{\r\n" +
//            "        \"id\":11770,\r\n" +
//            "        \"uid\":1625,\r\n" +
//            "        \"wechatrobot\":\"fxdaka\",\r\n" +
//            "        \"wx_id\":\"wxid_vm6eb5i0in0622\",\r\n" +
//            "        \"amount_used\":0,\r\n" +
//            "        \"group_num\":20,\r\n" +
//            "        \"passwd\":\"\",\r\n" +
//            "        \"nickname\":\"\\u5206\\u4eab\\u5927\\u5496??\",\r\n" +
//            "        \"c_uid\":1625,\r\n" +
//            "        \"login_status\":1,\r\n" +
//            "        \"end_time\":1597377534,\r\n" +
//            "        \"remark\":null,\r\n" +
//            "        \"wc_id\":\"246124e9-9a8c-4da6-a77e-7f7f88049731\",\r\n" +
//            "        \"agent_uid\":null,\r\n" +
//            "        \"is_enabled\":0,\r\n" +
//            "        \"robot_type\":4,\r\n" +
//            "        \"ip\":\"http:\\/\\/49.234.36.129:10002\\/\",\r\n" +
//            "        \"is_new\":1\r\n" +
//            "    }\r\n" +
//            "}";
//
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("code"))) {
      if ("0000".equals(resultJson.optString("status"))) {
         resultJson = resultJson.optJSONObject("data");
         Type type = new TypeToken<RobotInfoDTO>() {}.getType();
         return new Gson().fromJson(resultJson.toString(), type);
@@ -315,7 +293,7 @@
      // 请求结果
      String result = baseRequest("itaoke.robot.delete.get", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("code"))) {
      if ("0000".equals(resultJson.optString("status"))) {
         return true;
      }
      return false;
@@ -327,7 +305,7 @@
    * @param robotId
    * @return
    */
   public static List<WeiXinGroupDTO> getContract(int robotId) {
   public static List<String> getContract(int robotId) {
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
@@ -337,12 +315,81 @@
      if ("0000".equals(resultJson.optString("status"))) {
         JSONArray groupArray = resultJson.optJSONArray("data");
         if (groupArray != null && groupArray.size() > 0) {
            List<WeiXinGroupDTO> listGroup = new ArrayList<>();
            Type type = new TypeToken<ArrayList<String>>() {
            }.getType();
            List<String> list = new Gson().fromJson(groupArray.toString(), type);
            return list;
         }
      }
      return null;
   }
   /**
    * 获取群列表
    * @param robotId
    * @param roomId
    * @return
    */
   public static WeiXinGroupDTO getGroupDetail(int robotId, String roomId) {
      if (StringUtil.isNullOrEmpty(roomId)) {
         return null;
      }
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      map.put("room_id", roomId +""); //  群的id ,多个用逗号隔开
      // 请求结果
      String result = baseRequest("itaoke.robot.room.detail", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("status"))) {
         JSONArray groupArray = resultJson.optJSONArray("data");
         if (groupArray != null && groupArray.size() > 0) {
            Type type = new TypeToken<ArrayList<WeiXinGroupDTO>>() {
            }.getType();
            List<WeiXinGroupDTO> goodsList = new Gson().fromJson(groupArray.toString(), type);
            if (goodsList == null || goodsList.size() == 0) {
               return null;
            } else {
               return goodsList.get(0);
            }
         }
      }
      return null;
   }
   /**
    * 获取群列表
    * @param robotId
    * @param roomId
    * @return
    */
   public static List<WeiXinGroupDTO> getGroupDetail(int robotId, List<String> listRoomId) {
      if (listRoomId == null || listRoomId.size() ==0) {
         return null;
      }
      String roomIds = "";
      for (String roomID: listRoomId) {
         roomIds += roomID + ",";
      }
      if(roomIds.endsWith(","))
         roomIds = roomIds.substring(0, roomIds.length()-1);
      // 请求参数
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      map.put("room_id", roomIds); //  群的id ,多个用逗号隔开
      // 请求结果
      String result = baseRequest("itaoke.robot.room.detail", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("status"))) {
         JSONArray groupArray = resultJson.optJSONArray("data");
         if (groupArray != null && groupArray.size() > 0) {
            Type type = new TypeToken<ArrayList<WeiXinGroupDTO>>() {
            }.getType();
            List<WeiXinGroupDTO> goodsList = new Gson().fromJson(groupArray.toString(), type);
            return goodsList;
         }
      }
@@ -364,12 +411,36 @@
      map.put("pic_url", picUrl);
      map.put("content", content);
      // 请求结果
      String result = baseRequest("itaoke.robot.macsend.circle", map);
      String result = baseRequest("itaoke.robot.circle.send", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("status"))) {
         resultJson = resultJson.optJSONObject("data");
         resultJson = resultJson.optJSONObject("object");
         return resultJson.optString("id");
         if (resultJson != null) {
            resultJson = resultJson.optJSONObject("object");
            if (resultJson != null) {
               return resultJson.optString("id");
            }
         }
      }
      return null;
   }
   /**
    * 发朋友圈
    * @param robotId
    * @param content
    * @param picUrl 图片url,多个请用;分隔
    * @return
    */
   public static String macsendUpload(int robotId, String picUrl) {
      Map<String, String> map = new HashMap<>();
      map.put("robot_id", robotId +"");
      map.put("pic_url", picUrl);
      map.put("type", "2");
      String result = baseRequest("itaoke.robot.circle.upload", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("0000".equals(resultJson.optString("status"))) {
         return resultJson.optString("data");
      }
      return null;
   }
@@ -391,9 +462,14 @@
      // 请求结果
      String result = baseRequest("itaoke.robot.macsend.videocircle", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if ("1000".equals(resultJson.optString("code"))) {
      if ("0000".equals(resultJson.optString("status"))) {
         resultJson = resultJson.optJSONObject("data");
         return resultJson.optString("id");
         if (resultJson != null) {
            resultJson = resultJson.optJSONObject("object");
            if (resultJson != null) {
               return resultJson.optString("id");
            }
         }
      }
      return null;
   }
@@ -465,7 +541,7 @@
      // 请求结果
      String result = baseRequest("itaoke.robot.macsend.base64", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if (resultJson.optInt("code") == 1000) {
      if ("0000".equals(resultJson.optString("status"))) {
         return true;
      }
      return false;
@@ -494,7 +570,7 @@
      // 请求结果
      String result = baseRequest("itaoke.robot.macsend.card", map);
      JSONObject resultJson = JSONObject.fromObject(result);
      if (resultJson.optInt("code") == 1000) {
      if ("0000".equals(resultJson.optString("status"))) {
         return true;
      }
      return false;