447 lines
15 KiB
JavaScript
447 lines
15 KiB
JavaScript
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 置位分别代表周日 -- 周六,例如:循环星期一、星期二、星期四,对应为:[1,2,4]
|
||
* @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)
|
||
} |