yujian
2020-06-19 a55587c773d8877430b49477cd4b4961c6a2ba92
云发单群匹配
3个文件已修改
104 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dto/aitaoker/WeiXinGroupDTO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/aitaoker/AitaokerApiUtil.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/aitaoker/WeiXinGroupDTO.java
@@ -4,16 +4,13 @@
public class WeiXinGroupDTO {
    // 群id
    @SerializedName("userName")
    @SerializedName("chatRoomId")
    private String groupId;
    // 群昵称
    @SerializedName("nickName")
    private String groupName;
    // 群头像
    @SerializedName("smallHead")
    private String groupHead;
    public String getGroupId() {
        return groupId;
@@ -29,14 +26,6 @@
    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }
    public String getGroupHead() {
        return groupHead;
    }
    public void setGroupHead(String groupHead) {
        this.groupHead = groupHead;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java
@@ -357,18 +357,21 @@
        if (robotId == null)
            throw new UserCloudException(1, "云发单机器人不存在");
        List<WeiXinGroupDTO> list = AitaokerApiUtil.getContract(robotId);
        List<String> list = AitaokerApiUtil.getContract(12793);
        if (list == null || list.size() == 0)
            throw new UserCloudException(1, "未检索到对应群");
        
        String wxId = userCloud.getWxId();
        for (WeiXinGroupDTO dto : list) {
            String groupId = dto.getGroupId();
            // 检测是否匹配群
            String key =  RedisKeyEnum.cloudMatchGroup.getKey() + StringUtil.Md5(wxId + "_" + groupId);
        for (String roomId : list) {
            String key = RedisKeyEnum.cloudMatchGroup.getKey() + StringUtil.Md5(wxId + "_" + roomId);
            String result = redisManager.getCommonString(key);
             if (!StringUtil.isNullOrEmpty(result)) {
                userCloudGroupService.addGroup(uid, dto.getGroupId(), dto.getGroupName(), userCloud.getGroupNum());
            if (!StringUtil.isNullOrEmpty(result)) {
                String groupName = null;
                WeiXinGroupDTO groupDetail = AitaokerApiUtil.getGroupDetail(12793, roomId);
                if (groupDetail != null) {
                    groupName = groupDetail.getGroupName();
                }
                userCloudGroupService.addGroup(uid, roomId, groupName, userCloud.getGroupNum());
            }
        }
    }
fanli/src/main/java/com/yeshi/fanli/util/aitaoker/AitaokerApiUtil.java
@@ -305,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 +"");
@@ -315,6 +315,78 @@
        if ("0000".equals(resultJson.optString("status"))) {
            JSONArray groupArray = resultJson.optJSONArray("data");
            if (groupArray != null && groupArray.size() > 0) {
                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);