package com.yunzhupaas.message.util;

import com.alibaba.fastjson.JSONObject;
import com.yunzhupaas.base.UserInfo;
import com.yunzhupaas.message.entity.MessageReceiveEntity;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.Objects;

/**
 * 消息推送工具类
 *
 * @author 云筑产品开发平台组
 * @version V3.1.0
 * @copyright 深圳市乐程软件有限公司（http://www.szlecheng.cn）
 * @date 2024-07-07
 */
@Component
public class PushMessageUtil {

    /**
     * 工作流消息发送
     *
     *
     * @param userInfo
     */
    public static void pushMessage(Map<String, MessageReceiveEntity> map, UserInfo userInfo, int messageType){
        for (String userId : map.keySet()) {
            for (OnlineUserModel item : OnlineUserProvider.getOnlineUserList()) {
                if (userId.equals(item.getUserId()) && Objects.equals(userInfo.getTenantId(), item.getTenantId())) {
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("method", "messagePush");
                    jsonObject.put("unreadNoticeCount", 1);
                    jsonObject.put("messageType", messageType);
                    jsonObject.put("userId", userInfo.getUserId());
                    jsonObject.put("toUserId", userId);
                    jsonObject.put("title", map.get(userId).getTitle());
                    jsonObject.put("id",map.get(userId).getId());
                    jsonObject.put("messageDefaultTime", map.get(userId).getLastModifyTime() != null ? map.get(userId).getLastModifyTime().getTime() : null);
                    OnlineUserProvider.sendMessage(item, jsonObject);
                }
            }
        }
    }

}

