/**
 * 说明：
 *   公告信息相关 WEB API 都在此文件中定义。
 */

import { AxiosRequestData } from '@/data/axios_request'
import cache from '@/utils/cache'

/**
 * 获取系统全局公告消息列表
 * 分页查询系统全局公告信息
 * @param {String} mobile 用户手机号
 * @param {Number} pageNum 当前页码，默认为1
 * @param {Number} pageSize 每页数量，默认为10
 */
function getGlobalMessageList(mobile, pageNum = 1, pageSize = 10) {
    const url = '/auth/user/msg/findGlobalNotice'
    let token = cache.getToken()
    let args = {
        mobile: mobile,
        pageNum: pageNum,
        pageSize: pageSize
    }
    console.log('分页查询系统全局公告信息 参数：')
    console.log(args)
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2)
            .then(val => {
                console.log('分页查询系统全局公告信息 结果：')
                console.log(val)
                if (val.code === 0) {
                    resolve(val)
                } else {
                    reject(val.msg)
                }
            })
    })
}

/**
 * 获取最新的消息
 * @param {String} mobile 用户手机号
 * @param {Number} msgType 消息类型 1:系统全局公告消息  2.企业-全局企业用户消息 3.服务商-全局服务商用户消息  4：企业-该企业消息   5：服务商用户-该服务商用户全局消息   6：个人消息  7：运营商消息
 */
function getLatestMessage(mobile, msgType) {
    const url = '/auth/user/msg/findLatestMsg'
    let token = cache.getToken()
    let args = {
        mobile: mobile,
        msgType: msgType
    }
    console.log('获取最新的消息 参数：')
    console.log(args)
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2)
            .then(val => {
                console.log('获取最新的消息 结果：')
                console.log(val)
                if (val.code === 0) {
                    resolve(val)
                } else {
                    reject(val.msg)
                }
            })
    })
}

/**
 * 消息标记为已读取
 * @param {String} mobile 要删除的用户手机号
 * @param {String} msgId 消息id
 */
function setMessageReaded(mobile, msgId) {
    const url = '/auth/user/msg/readMsg'
    let token = cache.getToken()
    let args = {
        mobile: mobile,
        msgId: msgId,
        reqChannel: 4,
    }
    console.log('消息标记为已读取 参数：')
    console.log(args)
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1)
            .then(val => {
                console.log('消息标记为已读取 结果：')
                console.log(val)
                if (val.code === 0) {
                    resolve(val)
                } else {
                    reject(val.msg)
                }
            })
    })
}

const NOTIFICATION_MESSAGE = {
    getGlobalMessageList,
    getLatestMessage,
    setMessageReaded
}

export default NOTIFICATION_MESSAGE