receive_group_system_msg.js 10.8 KB
//监听 申请加群 系统消息

function onApplyJoinGroupRequestNotify(notify) {
    webim.Log.info("执行 加群申请 回调:" + JSON.stringify(notify));
    var data = [];
    var timestamp = notify.MsgTime;
    notify.MsgTimeStamp = timestamp;
    notify.MsgTime = webim.Tool.formatTimeStamp(notify.MsgTime);
    data.push(notify);
    $('#get_apply_join_group_pendency_table').bootstrapTable('append', data);
    $('#get_apply_join_group_pendency_dialog').modal('show');

    var reportTypeCh = "[申请加群]";
    var content = notify.Operator_Account + "申请加入你的群";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, timestamp);
}

//监听 申请加群被同意 系统消息

function onApplyJoinGroupAcceptNotify(notify) {
    webim.Log.info("执行 申请加群被同意 回调:" + JSON.stringify(notify));
    //刷新我的群组列表
    //getJoinedGroupListHigh(getGroupsCallbackOK);

    var reportTypeCh = "[申请加群被同意]";
    var content = notify.Operator_Account + "同意你的加群申请,附言:" + notify.RemarkInfo;
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);

}
//监听 申请加群被拒绝 系统消息

function onApplyJoinGroupRefuseNotify(notify) {
    webim.Log.info("执行 申请加群被拒绝 回调:" + JSON.stringify(notify));
    var reportTypeCh = "[申请加群被拒绝]";
    var content = notify.Operator_Account + "拒绝了你的加群申请,附言:" + notify.RemarkInfo;
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 被踢出群 系统消息

function onKickedGroupNotify(notify) {
    webim.Log.info("执行 被踢出群  回调:" + JSON.stringify(notify));
    //刷新我的群组列表
    //getJoinedGroupListHigh(getGroupsCallbackOK);
    deleteSessDiv(webim.SESSION_TYPE.GROUP, notify.GroupId); //在最近的联系人列表删除可能存在的群会话
    var reportTypeCh = "[被踢出群]";
    var content = "你被管理员" + notify.Operator_Account + "踢出该群";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 解散群 系统消息

function onDestoryGroupNotify(notify) {
    webim.Log.info("执行 解散群 回调:" + JSON.stringify(notify));
    //刷新我的群组列表
    //getJoinedGroupListHigh(getGroupsCallbackOK);
    deleteSessDiv(webim.SESSION_TYPE.GROUP, notify.GroupId); //在最近的联系人列表删除可能存在的群会话
    var reportTypeCh = "[群被解散]";
    var content = "群主" + notify.Operator_Account + "已解散该群";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 创建群 系统消息

function onCreateGroupNotify(notify) {
    webim.Log.info("执行 创建群 回调:" + JSON.stringify(notify));
    var reportTypeCh = "[创建群]";
    var content = "你创建了该群";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 被邀请加群 系统消息

function onInvitedJoinGroupNotify(notify) {
    webim.Log.info("执行 被邀请加群  回调: " + JSON.stringify(notify));
    //刷新我的群组列表
    //getJoinedGroupListHigh(getGroupsCallbackOK);
    var reportTypeCh = "[被邀请加群]";
    var content = "你被管理员" + notify.Operator_Account + "邀请加入该群";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}

//监听 被邀请加群(用户需要同意) 系统消息

function onInvitedJoinGroupNotifyRequest(notify) {
    var timestamp = notify.MsgTime;
    var data = [];
    notify.MsgTimeStamp = timestamp;
    notify.MsgTime = webim.Tool.formatTimeStamp(notify.MsgTime);
    data.push(notify);
    $('#get_apply_join_group_pendency_table').bootstrapTable('append', data);
    $('#get_apply_join_group_pendency_dialog').modal('show');
    addGroupSystemMsg(notify.ReportType, notify.GroupId, notify.GroupName, timestamp);
}

//监听 主动退群 系统消息

function onQuitGroupNotify(notify) {
    webim.Log.info("执行 主动退群  回调: " + JSON.stringify(notify));
    deleteSessDiv(webim.SESSION_TYPE.GROUP, notify.GroupId); //在最近的联系人列表删除可能存在的群会话
    var reportTypeCh = "[主动退群]";
    var content = "你退出了该群";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 被设置为管理员 系统消息

function onSetedGroupAdminNotify(notify) {
    webim.Log.info("执行 被设置为管理员  回调:" + JSON.stringify(notify));
    var reportTypeCh = "[被设置为管理员]";
    var content = "你被群主" + notify.Operator_Account + "设置为管理员";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 被取消管理员 系统消息

function onCanceledGroupAdminNotify(notify) {
    webim.Log.info("执行 被取消管理员 回调:" + JSON.stringify(notify));
    var reportTypeCh = "[被取消管理员]";
    var content = "你被群主" + notify.Operator_Account + "取消了管理员资格";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 群被回收 系统消息

function onRevokeGroupNotify(notify) {
    webim.Log.info("执行 群被回收 回调:" + JSON.stringify(notify));
    //刷新我的群组列表
    //getJoinedGroupListHigh(getGroupsCallbackOK);
    deleteSessDiv(webim.SESSION_TYPE.GROUP, notify.GroupId); //在最近的联系人列表删除可能存在的群会话
    var reportTypeCh = "[群被回收]";
    var content = "该群已被回收";
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}
//监听 用户自定义 群系统消息

function onCustomGroupNotify(notify) {
    webim.Log.info("执行 用户自定义系统消息 回调:" + JSON.stringify(notify));
    var reportTypeCh = "[用户自定义系统消息]";
    var content = notify.UserDefinedField; //群自定义消息数据
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}

//监听 群资料变化 群提示消息

function onGroupInfoChangeNotify(notify) {
    webim.Log.info("执行 群资料变化 回调: " + JSON.stringify(notify));
    var groupId = notify.GroupId;
    var newFaceUrl = notify.GroupFaceUrl; //新群组图标, 为空,则表示没有变化
    var newName = notify.GroupName; //新群名称, 为空,则表示没有变化
    var newOwner = notify.OwnerAccount; //新的群主id, 为空,则表示没有变化
    var newNotification = notify.GroupNotification; //新的群公告, 为空,则表示没有变化
    var newIntroduction = notify.GroupIntroduction; //新的群简介, 为空,则表示没有变化

    if (newName) {
        updateSessNameDiv(webim.SESSION_TYPE.GROUP, groupId, newName);
    }
    if (newFaceUrl) {
        updateSessImageDiv(webim.SESSION_TYPE.GROUP, groupId, newFaceUrl);
    }
}

function onCustomGroupNotify(notify) {
    webim.Log.info("执行 用户自定义系统消息 回调:" + JSON.stringify(notify));
    var reportTypeCh = "[用户自定义系统消息]";
    var content = notify.UserDefinedField; //群自定义消息数据
    addGroupSystemMsg(notify.ReportType, reportTypeCh, notify.GroupId, notify.GroupName, content, notify.MsgTime);
}

//已读消息同步
//告诉你哪个类型的那个群组已读消息的情况

function onReadedSyncGroupNotify(notify) {
    var seq = notify.LastReadMsgSeq;
    //更新当前的seq
    var currentUnRead = recentSessMap[webim.SESSION_TYPE.GROUP + notify.GroupId] ? recentSessMap[webim.SESSION_TYPE.GROUP + notify.GroupId].MsgGroupReadedSeq : 0;
    var unread = currentUnRead - seq;
    unread = unread > 0 ? unread : 0;
    recentSessMap[webim.SESSION_TYPE.GROUP + notify.GroupId].MsgGroupReadedSeq = seq;


    //更新未读数
    var sess = webim.MsgStore.sessByTypeId(webim.SESSION_TYPE.GROUP, notify.GroupId);
    sess.unread(unread);

    webim.Log.info("群消息同步的回调:已读消息情况 ## 未读数:GroupId:[" + notify.GroupId + "]:" + unread, currentUnRead, seq);
    if (unread > 0) {
        $(document.getElementById("badgeDiv_" + notify.GroupId)).text(unread).show();
    } else {
        $(document.getElementById("badgeDiv_" + notify.GroupId)).val("").hide();
    }
}

//初始化我的群组系统消息表格

function initGetMyGroupSystemMsgs(data) {
    $('#get_my_group_system_msgs_table').bootstrapTable({
        method: 'get',
        cache: false,
        height: 500,
        striped: true,
        pagination: true,
        pageSize: pageSize,
        pageNumber: 1,
        pageList: [10, 20, 50, 100],
        search: true,
        showColumns: true,
        clickToSelect: true,
        columns: [{
            field: "ReportType",
            title: "类型",
            align: "center",
            valign: "middle",
            sortable: "false",
            visible: false
        }, {
            field: "ReportTypeCh",
            title: "类型",
            align: "center",
            valign: "middle",
            sortable: "true"
        }, {
            field: "GroupId",
            title: "群ID",
            align: "center",
            valign: "middle",
            sortable: "true"
        }, {
            field: "GroupName",
            title: "群名称",
            align: "center",
            valign: "middle",
            sortable: "true"
        }, {
            field: "MsgContent",
            title: "内容",
            align: "center",
            valign: "middle",
            sortable: "true"
        }, {
            field: "MsgTime",
            title: "时间",
            align: "center",
            valign: "middle",
            sortable: "true"
        }],
        data: data,
        formatNoMatches: function() {
            return '无符合条件的记录';
        }
    });
}

//查看我的群组系统消息
var getMyGroupSystemMsgs = function() {
    $('#get_my_group_system_msgs_dialog').modal('show');
};

//增加一条群组系统消息

function addGroupSystemMsg(type, typeCh, group_id, group_name, msg_content, msg_time) {
    var data = [];
    data.push({
        "ReportType": type,
        "ReportTypeCh": typeCh,
        "GroupId": webim.Tool.formatText2Html(group_id),
        "GroupName": webim.Tool.formatText2Html(group_name),
        "MsgContent": webim.Tool.formatText2Html(msg_content),
        "MsgTime": webim.Tool.formatTimeStamp(msg_time)
    });
    $('#get_my_group_system_msgs_table').bootstrapTable('append', data);
    //$('#get_my_group_system_msgs_dialog').modal('show');
}