322 lines
9.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import starCloudInstance from '../star-cloud'
import { Result } from '../constant'
export { Result }
/**
* 账户信息
* @typedef {Object} AccountInfo
* @property {Number} uid 用户ID
* @property {String} username 用户名
* @property {String} password 密码
*/
/**
* 初始化星云
* @param params
* @param {String} params.clientId 客户端Id
* @param {String} params.clientSecret 客户端密码
* @param {Array<AccountInfo>} params.accounts 账号列表后续方法中需传入uid若未传入则默认使用第一个账号
* @param {String} params.env 环境
* @param {Boolean} params.isReportLog 是否上报日志
*/
export const init = params => {
starCloudInstance.init({
...params,
platform: 1
})
}
/**
* 注册星云
* @returns Result
*/
export const register = async () => {
return await starCloudInstance.register()
}
/**
* 退出登录
* @param params
* @param {Number} params.uid 用户ID
*/
export const logout = params => {
starCloudInstance.logout(params)
}
/**
* 选择锁
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.lockId 锁ID
* @returns Result
*/
export const selectLock = async params => {
return await starCloudInstance.selectLock(params)
}
/**
* 开门
* @param params
* @param {Number} [params.uid] 用户ID
* @param {String} params.type 开门方式 close: 关门 open: 开门
* @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开
* @returns Result
*/
export const openDoor = async params => {
return await starCloudInstance.openDoor(params)
}
/**
* 离线密码
* @typedef {Object} OfflinePassword
* @property {String} keyboardPwdName - 密码名称
* @property {Number} keyboardPwdType - 密码类型
* @property {Number} lockId - 锁 Id
* @property {Number} isCoerced - 是否胁迫模式 1:胁迫 2:非胁迫
* @property {Number} startDate - 开始日期时间戳(毫秒永久默认为0)
* @property {Number} endDate - 结束日期时间戳(毫秒永久默认为0)
* @property {Number} hoursStart - 开始时间(小时, 不需要时传0
* @property {Number} hoursEnd - 结束时间(小时, 不需要时传0
*/
/**
* 获取离线密码
* @param params
* @param {Number} [params.uid] 用户ID
* @param {OfflinePassword} params.password 密码信息
* @returns Result
*/
export const getOfflinePassword = async params => {
return await starCloudInstance.getOfflinePassword(params)
}
/**
* 账户信息
* @typedef {Object} CheckInfo
* @property {Number} lockId 锁ID
* @property {Number} [keyboardPwdId] 密码ID
* @property {String} [keyboardPwdName] 密码名称
* @property {String} [keyboardPwd] 密码
*/
/**
* 检查密码
* @param params
* @param {Number} [params.uid] 用户ID
* @param {CheckInfo} params.info 信息
* @returns Result
*/
export const checkPassword = async params => {
return await starCloudInstance.checkPassword(params)
}
/**
* 自定义密码
* @typedef {Object} CustomPassword
* @property {String} keyboardPwdName - 密码名称
* @property {Number} keyboardPwdType - 密码类型2永久 3限期
* @property {Number} isCoerced - 是否是胁迫密码1是 2
* @property {Number} startDate - 起始时间(毫秒)
* @property {Number} endDate - 结束时间(毫秒)
* @property {Number} keyboardPwd - 密码
* @property {Number} addType - 添加方式当前仅支持1 1:蓝牙 2:网关
* @property {Number} operate - 操作 0注册 1修改 2删除自定义密码 3删除离线密码
* @property {Number} pwdRight - 是否是管理员密码 0不是 1
* @property {Number} [keyboardPwdId] - 密码Id创建无需传
* @property {Number} [pwdNo] - 密码编号(创建无需传)
*/
/**
* 自定义密码
* @param params
* @param {Number} [params.uid] 用户ID
* @param {CustomPassword} params.password 密码信息
* @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开
* @returns Result
*/
export const customPassword = async params => {
return await starCloudInstance.customPassword(params)
}
/**
* 搜索蓝牙设备
* @callback {Function} callback 回调方法
* @returns Result
*/
export const searchDevice = async callback => {
return await starCloudInstance.searchDevice(callback)
}
/**
* 停止搜索
* @returns Result
*/
export const stopSearchDevice = async () => {
return await starCloudInstance.stopSearchDevice()
}
/**
* 绑定设备
* @param params
* @param {Number} [params.uid] 用户ID
* @param {String} params.name 设备名称
* @returns Result
*/
export const bindDevice = async params => {
return await starCloudInstance.bindDevice(params)
}
/**
* 移除坏锁
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Array[Number]} params.lockIds 锁Id列表
* @returns Result
*/
export const removeBadLock = async params => {
return await starCloudInstance.removeBadLock(params)
}
/**
* 删除锁
* @param params
* @param {Number} [params.uid] 用户ID
*/
export const deleteLock = async params => {
return await starCloudInstance.deleteLock(params)
}
/**
* 修改管理员密码
* @param params
* @param {Number} [params.uid] 用户ID
* @param {String} params.adminPwd 管理员密码
* @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开
* @returns Result
*/
export const updateAdminPassword = async params => {
return await starCloudInstance.updateAdminPassword(params)
}
/**
* 同步开门记录
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开
* @returns Result
*/
export const syncOpenDoorRecord = async params => {
return await starCloudInstance.syncAllOpenRecord(params)
}
/**
* 获取服务器时间
* @returns Result
*/
export const getServerTime = async () => {
return await starCloudInstance.getServerTimestamp()
}
/**
* 获取锁支持项
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.lockId 锁ID
* @returns Result
*/
export const getLockSupportFeatures = async params => {
return await starCloudInstance.getLockSupportFeatures(params)
}
/**
* 电表-刷新电表信息
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.elecId 用户ID
* @returns Result
*/
export const refreshElecInfo = async params => {
return await starCloudInstance.refreshElecInfo(params)
}
/**
* 冷水表-刷新水表信息
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.waterId 冷水表ID
* @returns Result
*/
export const refreshColdWaterInfo = async params => {
return await starCloudInstance.refreshColdWaterInfo(params)
}
/**
* 热水表-刷新水表信息
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.waterId 热水表ID
* @returns Result
*/
export const refreshHotWaterInfo = async params => {
return await starCloudInstance.refreshHotWaterInfo(params)
}
/**
* 注册扩展产品(卡片、指纹等)
*
* @param {Object} params - 所需参数
* @param {string} params.type - 产品类型,['card','fingerprint']
* @param {string} params.keyId - 钥匙 ID
* @param {string} params.uid - 用户 ID
* @param {number} params.userCountLimit - 使用次数限制整型0xFFFF 表示不限次数
* @param {number} params.operate - 操作类型整型0: 注册, 1: 修改, 2: 删除, 3: 删除全部
* @param {number} params.isAdmin - 是否管理员整型1 表示是0 表示否
* @param {number} params.isForce - 是否胁迫整型1 表示是0 表示否
* @param {number} params.isRound - 是否循环整型1 表示是0 表示否
* @param {array} params.weekDays - 循环周期数组Bit0 -- 6 置位分别代表周日 -- 周六,例如:循环星期一、星期二、星期四,对应为:[124]
* @param {number} params.startDate - 生效日期,时间戳
* @param {number} params.endDate - 失效日期,时间戳
* @param {string} params.startTime - 生效时间,字符串,例如:'00:00'
* @param {string} params.endTime - 失效时间,字符串,例如:'00:00'
* @param {number} params.cardId - 卡片Id仅当 type 为 'card' 且operate=1 时需要
* @param {number} params.cardNo - 卡片序号,仅当 type 为 'card' 时需要
* @param {string} params.cardName - 卡片名称,仅当 type 为 'card' 时需要
* @param {number} params.cardType - 卡片类型1:永久2期限4:循环,仅当 type 为 'card' 时需要
* @param {number} params.cardUserNo - 卡UserNo仅当 type 为 'card' 时需要 (选填)
* @param {number} params.fingerprintName - 指纹名,仅当 type 为 'fingerprint' 时需要
* @param {string} params.fingerprintNumber - 指纹序号,仅当 type 为 'fingerprint' 时需要
* @param {number} params.fingerprintType - 指纹类型1:永久2期限3单次4:循环,仅当 type 为 'fingerprint' 时需要
* @param {number} params.fingerprintUserNo - 指纹UserNo仅当 type 为 'fingerprint' 时需要 (选填)
* @returns {Promise<Result>} - 返回注册结果的 Promise 对象
*/
export const registerExtendedProducts = async params => {
return await starCloudInstance.registerExtendedProducts(params)
}
/**
* 取消注册扩展产品
*
* @param {Object} params - 所需参数
* @param {string} params.Type - 产品类型,['card','fingerprint','face','remote','palmVein']
* @param {string} params.KeyID - 钥匙 ID
* @param {string} params.uid - 用户 ID
*/
export const registerExtendedProductsCancel = async params => {
return await starCloudInstance.registerExtendedProductsCancel(params)
}
/**
* 获取Ic卡列表
* @param params.lockId 锁id (必填)
* @param params.pageNo 页码(选填)
* @param params.pageSize 每页显示数(选填)
*/
export const getIcCardList = async params => {
return await starCloudInstance.getIcCardList(params)
}