447 lines
15 KiB
JavaScript
Raw Permalink Normal View History

2024-12-19 16:01:45 +08:00
import starCloudInstance from '../star-cloud'
import {Result, supportFunctionsFeatureBit} from '../constant'
2025-06-11 17:29:21 +08:00
export {Result}
2024-12-20 17:36:14 +08:00
/**
* 账户信息
* @typedef {Object} AccountInfo
* @property {Number} uid 用户ID
* @property {String} username 用户名
* @property {String} password 密码
*/
2024-12-19 16:01:45 +08:00
/**
* 初始化星云
* @param params
* @param {String} params.clientId 客户端Id
* @param {String} params.clientSecret 客户端密码
2024-12-20 17:36:14 +08:00
* @param {Array<AccountInfo>} params.accounts 账号列表后续方法中需传入uid若未传入则默认使用第一个账号
2024-12-19 16:01:45 +08:00
* @param {String} params.env 环境
* @param {Boolean} params.isReportLog 是否上报日志
*/
export const init = params => {
starCloudInstance.init({
...params,
platform: 1
})
2024-12-19 16:01:45 +08:00
}
/**
* 注册星云
* @returns Result
*/
export const register = async () => {
return await starCloudInstance.register()
2024-12-19 16:01:45 +08:00
}
/**
* 退出登录
* @param params
* @param {Number} params.uid 用户ID
*/
export const logout = params => {
starCloudInstance.logout(params)
2024-12-19 16:01:45 +08:00
}
/**
* 选择锁
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
* @param {Number} params.lockId 锁ID
* @returns Result
*/
export const selectLock = async params => {
return await starCloudInstance.selectLock(params)
2024-12-19 16:01:45 +08:00
}
/**
* 开门
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
* @param {String} params.type 开门方式 close: 关门 open: 开门
2024-12-20 17:36:14 +08:00
* @param {Boolean} [params.disconnect] 操作后是否断开连接默认断开
2024-12-19 16:01:45 +08:00
* @returns Result
*/
export const openDoor = async params => {
return await starCloudInstance.openDoor(params)
2024-12-19 16:01:45 +08:00
}
2024-12-20 17:36:14 +08:00
/**
* 离线密码
* @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
*/
2024-12-19 16:01:45 +08:00
/**
* 获取离线密码
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
* @param {OfflinePassword} params.password 密码信息
* @returns Result
*/
export const getOfflinePassword = async params => {
return await starCloudInstance.getOfflinePassword(params)
2024-12-19 16:01:45 +08:00
}
2024-12-31 14:48:16 +08:00
/**
* 账户信息
* @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)
2024-12-31 14:48:16 +08:00
}
2024-12-20 17:36:14 +08:00
/**
* 自定义密码
* @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] - 密码编号创建无需传
*/
2024-12-19 16:01:45 +08:00
/**
* 自定义密码
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
* @param {CustomPassword} params.password 密码信息
2024-12-20 17:36:14 +08:00
* @param {Boolean} [params.disconnect] 操作后是否断开连接默认断开
2024-12-19 16:01:45 +08:00
* @returns Result
*/
export const customPassword = async params => {
return await starCloudInstance.customPassword(params)
2024-12-19 16:01:45 +08:00
}
/**
* 搜索蓝牙设备
* @callback {Function} callback 回调方法
* @returns Result
*/
export const searchDevice = async callback => {
return await starCloudInstance.searchDevice(callback)
2024-12-19 16:01:45 +08:00
}
/**
* 停止搜索
* @returns Result
*/
export const stopSearchDevice = async () => {
return await starCloudInstance.stopSearchDevice()
2024-12-19 16:01:45 +08:00
}
/**
* 绑定设备
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
* @param {String} params.name 设备名称
* @returns Result
*/
export const bindDevice = async params => {
return await starCloudInstance.bindDevice(params)
2024-12-19 16:01:45 +08:00
}
/**
* 移除坏锁
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-31 14:48:16 +08:00
* @param {Array[Number]} params.lockIds 锁Id列表
2024-12-19 16:01:45 +08:00
* @returns Result
*/
export const removeBadLock = async params => {
return await starCloudInstance.removeBadLock(params)
2024-12-19 16:01:45 +08:00
}
/**
* 删除锁
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
*/
export const deleteLock = async params => {
return await starCloudInstance.deleteLock(params)
2024-12-19 16:01:45 +08:00
}
/**
* 修改管理员密码
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
2024-12-19 16:01:45 +08:00
* @param {String} params.adminPwd 管理员密码
2024-12-20 17:36:14 +08:00
* @param {Boolean} [params.disconnect] 操作后是否断开连接默认断开
2024-12-19 16:01:45 +08:00
* @returns Result
*/
export const updateAdminPassword = async params => {
return await starCloudInstance.updateAdminPassword(params)
2024-12-19 16:01:45 +08:00
}
/**
* 同步开门记录
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
* @param {Boolean} [params.disconnect] 操作后是否断开连接默认断开
2024-12-19 16:01:45 +08:00
* @returns Result
*/
export const syncOpenDoorRecord = async params => {
return await starCloudInstance.syncAllOpenRecord(params)
2024-12-19 16:01:45 +08:00
}
/**
* 获取服务器时间
* @returns Result
*/
export const getServerTime = async () => {
return await starCloudInstance.getServerTimestamp()
2024-12-19 16:01:45 +08:00
}
/**
* 获取锁支持项
* @param params
2024-12-20 17:36:14 +08:00
* @param {Number} [params.uid] 用户ID
* @param {Number} params.lockId 锁ID
2024-12-19 16:01:45 +08:00
* @returns Result
*/
export const getLockSupportFeatures = async params => {
return await starCloudInstance.getLockSupportFeatures(params)
2024-12-19 16:01:45 +08:00
}
2025-01-07 18:11:07 +08:00
/**
* 电表-刷新电表信息
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.elecId 用户ID
* @returns Result
*/
export const refreshElecInfo = async params => {
return await starCloudInstance.refreshElecInfo(params)
2025-01-07 18:11:07 +08:00
}
/**
* 冷水表-刷新水表信息
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.waterId 冷水表ID
* @returns Result
*/
export const refreshColdWaterInfo = async params => {
return await starCloudInstance.refreshColdWaterInfo(params)
2025-01-07 18:11:07 +08:00
}
/**
* 热水表-刷新水表信息
* @param params
* @param {Number} [params.uid] 用户ID
* @param {Number} params.waterId 热水表ID
* @returns Result
*/
export const refreshHotWaterInfo = async params => {
return await starCloudInstance.refreshHotWaterInfo(params)
2025-01-07 18:11:07 +08:00
}
/**
2025-03-08 16:33:45 +08:00
* 注册扩展产品(卡片指纹人脸遥控掌静脉等)
*
* @param {Object} params - 所需参数
2025-03-08 16:33:45 +08:00
* @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]
2025-03-08 16:33:45 +08:00
* @param {number} params.startDate - 生效日期时间戳永久则填0
* @param {number} params.endDate - 失效日期时间戳永久则填0
* @param {string} params.startTime - 生效时间字符串例如'00:00'
* @param {string} params.endTime - 失效时间字符串例如'00:00'
2025-03-08 16:33:45 +08: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' 时需要 选填
2025-03-08 16:33:45 +08:00
* @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' 时需要 选填
2025-03-08 16:33:45 +08:00
* @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)
2025-03-07 18:10:46 +08:00
}
/**
* 获取指纹列表
* @param params.lockId 锁id 必填
* @param params.pageNo 页码选填
* @param params.pageSize 每页显示数选填
*/
export const getFingerprintList = async params => {
return await starCloudInstance.getFingerprintList(params)
2025-03-08 16:33:45 +08:00
}
/**
* 获取人脸列表
* @param params.lockId 锁id 必填
* @param params.pageNo 页码选填
* @param params.pageSize 每页显示数选填
*/
export const getFaceList = async params => {
return await starCloudInstance.getFaceList(params)
}
2025-03-08 16:33:45 +08:00
/**
* 获取掌静脉列表
* @param params.lockId 锁id 必填
* @param params.pageNo 页码选填
* @param params.pageSize 每页显示数选填
*/
export const getPalmVeinList = async params => {
return await starCloudInstance.getPalmVeinList(params)
2025-03-08 16:33:45 +08:00
}
/**
* 获取遥控列表
* @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)
2025-06-11 17:29:21 +08:00
}
/**
* 启动搜索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)
}