447 lines
15 KiB
JavaScript
Raw Permalink 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, supportFunctionsFeatureBit} 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','face','remote','palmVein']
* @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 - 生效日期时间戳永久则填0
* @param {number} params.endDate - 失效日期时间戳永久则填0
* @param {string} params.startTime - 生效时间,字符串,例如:'00:00'
* @param {string} params.endTime - 失效时间,字符串,例如:'00:00'
* @param {number} params.cardId - 卡片Id添加后由监听事件返回仅当 type 为 'card' 且operate!=1 时需要
* @param {number} params.cardNumber - 卡片序号,仅当 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.fingerprintId - 指纹id添加后由监听事件返回仅当 type 为 'fingerprint' 且operate!=1 时需要
* @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' 时需要 (选填)
* @param {number} params.deleteType - 删除方式,仅当 type 为 'fingerprint' 时需要 删除方式:1-通过APP走蓝牙删除必需先通过APP蓝牙删除后再调用该接口,2-通过网关或WiFi锁删除如果是WiFi锁或有连接网关则可以传2直接调用该接口从锁里删除指纹
* @param {number} params.faceId - 人脸id添加后由监听事件返回仅当 type 为 'face' 且operate!=1 时需要
* @param {number} params.faceName - 人脸名,仅当 type 为 'face' 时需要
* @param {string} params.faceNumber - 指纹序号,仅当 type 为 'face' 时需要
* @param {number} params.faceType - 指纹类型1:永久2期限4:循环,仅当 type 为 'face' 时需要
* @param {number} params.faceUserNo - 指纹UserNo仅当 type 为 'face' 时需要 (选填)
* @param {number} params.palmVeinId - 掌静脉id,添加后由监听事件返回,仅当 type 为 'palmVein' 且operate!=1 时需要
* @param {number} params.palmVeinName - 掌静脉名,仅当 type 为 'palmVein' 时需要
* @param {string} params.palmVeinNumber - 掌静脉序号,仅当 type 为 'palmVein' 时需要
* @param {number} params.palmVeinType - 掌静脉类型1:永久2期限4:循环,仅当 type 为 'palmVein' 时需要
* @param {number} params.palmVeinUserNo - 掌静脉UserNo仅当 type 为 'palmVein' 时需要 (选填)
* @param {number} params.remoteId - 遥控名,添加后由监听事件返回,仅当 type 为 'remote' 且operate!=1 时需要
* @param {number} params.remoteName - 遥控名,仅当 type 为 'remote' 时需要
* @param {string} params.remoteNumber - 遥控序号,仅当 type 为 'remote' 时需要
* @param {number} params.remoteType - 遥控类型1:永久2期限4:循环,仅当 type 为 'remote' 时需要
* @param {number} params.remoteUserNo - 遥控UserNo仅当 type 为 'remote' 时需要 (选填)
* @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)
}
/**
* 更新支持功能项设置(带参数)
* @param params
* @returns {Promise<*>}
*/
export const updateSupportFunctionsWithParams = async params => {
return await starCloudInstance.updateSupportFunctionsWithParams(params)
}
/**
* 读取支持功能项设置
* @param params
* @returns {Promise<*>}
*/
export const readSupportFunctionsSetting = async params => {
return await starCloudInstance.readSupportFunctionsSetting(params)
}
/**
* 获取Ic卡列表
* @param params.lockId 锁id (必填)
* @param params.pageNo 页码(选填)
* @param params.pageSize 每页显示数(选填)
*/
export const getIcCardList = async params => {
return await starCloudInstance.getIcCardList(params)
}
/**
* 获取指纹列表
* @param params.lockId 锁id (必填)
* @param params.pageNo 页码(选填)
* @param params.pageSize 每页显示数(选填)
*/
export const getFingerprintList = async params => {
return await starCloudInstance.getFingerprintList(params)
}
/**
* 获取人脸列表
* @param params.lockId 锁id (必填)
* @param params.pageNo 页码(选填)
* @param params.pageSize 每页显示数(选填)
*/
export const getFaceList = async params => {
return await starCloudInstance.getFaceList(params)
}
/**
* 获取掌静脉列表
* @param params.lockId 锁id (必填)
* @param params.pageNo 页码(选填)
* @param params.pageSize 每页显示数(选填)
*/
export const getPalmVeinList = async params => {
return await starCloudInstance.getPalmVeinList(params)
}
/**
* 获取遥控列表
* @param params.lockId 锁id (必填)
* @param params.pageNo 页码(选填)
* @param params.pageSize 每页显示数(选填)
*/
export const getRemoteList = async params => {
return await starCloudInstance.getRemoteList(params)
}
/**
* 远程开锁
* @param params
* @returns {Promise<*>}
*/
export const remoteUnLock = async params => {
return await starCloudInstance.remoteUnLock(params)
}
/**
* 获取锁列表
* @param params
* @returns {Promise<*>}
*/
export const getLockList = async params => {
return await starCloudInstance.getLockList(params)
}
/**
* 启动搜索wifi
* @param params
* @returns {Promise<*>}
*/
export const startSearchWiFi = async params => {
return await starCloudInstance.startSearchWiFi(params)
}
/**
* 连接wifi
* @param params.ssid wifi昵称
* @param params.password wifi密码
* @returns {Promise<*>}
*/
export const connectWiFi = async params => {
return await starCloudInstance.connectWiFi(params)
}
/**
* 获取设备配网信息
* @param params.uid uid
* @param params.deviceMac 锁mac地址
* @returns {Promise<*>}
*/
export const getLockNetworkInfo = async params => {
return await starCloudInstance.getLockNetworkInfo(params)
}