feat: 星云SDK支持多账号同时使用

This commit is contained in:
范鹏 2024-11-18 14:45:33 +08:00
parent c7a594b451
commit 806ec1b777
3 changed files with 595 additions and 486 deletions

105
README.md
View File

@ -30,12 +30,13 @@ import { useStarCloudStore } from '@/starCloud/starCloud'
const $starCloud = useStarCloudStore() const $starCloud = useStarCloudStore()
/** /**
* 初始化SDK * 初始化星云
* @property {String} clientId - 客户端Id * @param params
* @property {String} clientSecret - 客户端密码 * @param {String} params.clientId 客户端Id
* @property {String} env - 环境('DEV', 'PRE', 'XHJ', 'SKY) * @param {String} params.clientSecret 客户端密码
* @param {String} params.env 环境
*/ */
$starCloud.initStarCloud(clientId, clientSecret, env) $starCloud.initStarCloud(params)
// 注册,后续所有方法调用返回值均为code, data, message // 注册,后续所有方法调用返回值均为code, data, message
// code对应报错码有三部分组合构成锁端报错码+星云服务端报错码+自定义报错码 // code对应报错码有三部分组合构成锁端报错码+星云服务端报错码+自定义报错码
@ -48,83 +49,48 @@ if (code === Result.Success.code) {
} }
/** /**
* 登录 * 退出登录
* @property {String} username - 用户名 * @param params
* @property {String} password - 密码 * @param {Number} params.uid 用户ID
*/ */
const { code, data, message } = await $starCloud.login(username, password) const { code, data, message } = await $starCloud.logout(params)
/**
* 退出登录(未做请求,实际上不会失败)
*/
const { code, data, message } = await $starCloud.logout()
/** /**
* 选择锁 * 选择锁
* @property {Number} lockId - 锁Id * @param params
* @param {AccountInfo} params.accountInfo 账号信息
* @param {Number} params.lockId 锁ID
* @returns {Promise<Result>}
*/ */
// 所需信息data中会返回如data中没有可通过$starCloud.lockInfo获取 const { code, data, message } = await $starCloud.selectLock(params)
const { code, data, message } = await $starCloud.selectLock(lockId)
/** /**
* 开门 * 开门
* @property {String} type - 开门或关门类型('open', 'close') * @param params
* @property {Boolean} disconnect - 操作完成后是否断开连接 * @param {AccountInfo} params.accountInfo 账号信息
* @param {String} params.type 开门方式 close: 关门 open: 开门
* @param {Boolean} params.disconnect 操作后是否断开连接
* @returns {Promise<Result>}
*/ */
const { code, data, message } = await $starCloud.openDoor(type, disconnect) const { code, data, message } = await $starCloud.openDoor(params)
/**
* 清理用户
* @property {Boolean} disconnect - 操作完成后是否断开连接
*/
const { code, data, message } = await $starCloud.cleanLockUser(disconnect)
/** /**
* 获取离线密码 * 获取离线密码
* 该功能无需蓝牙交互直接请求服务端,详细参数说明请看星云接口文档 * @param {AccountInfo} accountInfo 账号信息
* @typedef {Object} password * @param {OfflinePassword} password 密码信息
* @property {String} keyboardPwdName - 密码名称 * @returns {Promise<Result>}
* @property {Number} keyboardPwdType - 密码类型
* @property {Number} isCoerced - 胁迫 1:胁迫 2:非胁迫
* @property {Number} startDate - 开始时间
* @property {Number} endDate - 结束时间
* @property {Number} hoursStart - 开始小时
* @property {Number} hoursEnd - 结束小时
*/ */
const data = await $starCloud.getOfflinePassword({ const data = await $starCloud.getOfflinePassword(accountInfo, password)
keyboardPwdName: `租客端单次密码${new Date().getTime()}`,
keyboardPwdType: 1,
isCoerced: 2,
startDate: 0,
endDate: 0,
hoursStart: 0,
hoursEnd: 0
})
/** /**
* 自定义密码 * 自定义密码
* @typedef {Object} password * @param params
* @property {String} keyboardPwdName - 密码名称 * @param {AccountInfo} params.accountInfo 账号信息
* @property {Number} keyboardPwdType - 密码类型 * @param {CustomPassword} params.password 密码信息
* @property {Number} isCoerced - 胁迫 1:胁迫 2:非胁迫 * @param {Boolean} params.disconnect 操作后是否断开连接
* @property {Number} startDate - 开始时间 * @returns {Promise<Result>}
* @property {Number} endDate - 结束时间
* @property {Number} keyboardPwd - 密码
* @property {Number} addType - 添加方式当前仅支持1 1:蓝牙 2:网关
* @property {Number} operate - 操作类型0:注册 1修改
* @property {Number} pwdRight - 是否是管理员密码0:否 1:是
*/ */
const data = await $starCloud.customPassword({ const data = await $starCloud.customPassword(params)
keyboardPwdName: `租客端自定义密码`,
keyboardPwdType: 3,
keyboardPwd: 111111,
addType: 1,
isCoerced: 2,
startDate: 1728698137000,
endDate: 1735574400000,
operate: 0,
pwdRight: 0
}, true)
/** /**
* 搜索蓝牙设备 * 搜索蓝牙设备
@ -139,8 +105,11 @@ const searchDevice = async result => {
await $starCloud.stopSearchDevice() await $starCloud.stopSearchDevice()
/** /**
* 连接蓝牙设备 * 绑定设备
* @property {String} name - 设备名称 * @param params
* @param {AccountInfo} params.accountInfo 账号信息
* @param {String} params.name 设备名称
* @returns {Promise<Result>}
*/ */
const data = await $starCloud.bindDevice(name) const data = await $starCloud.bindDevice(params)
``` ```

View File

@ -60,10 +60,11 @@ const request = config => {
if (code === 10003) { if (code === 10003) {
removeStorage('starCloudToken') removeStorage('starCloudToken')
removeStorage('starCloudUser') removeStorage('starCloudUser')
const { code } = await starCloud.login( const { code } = await starCloud.login({
starCloud.accountInfo.username, username: starCloud.starCloudAccountInfo.username,
starCloud.accountInfo.password password: starCloud.starCloudAccountInfo.password,
) uid: starCloud.starCloudAccountInfo.uid
})
if (code === Result.Success.code) { if (code === Result.Success.code) {
resolve(await request(config)) resolve(await request(config))
} }

File diff suppressed because it is too large Load Diff