feat:验收测试改动、增加注释

This commit is contained in:
liyi 2025-03-08 16:33:45 +08:00
parent 9893c648aa
commit eb93ce805b
3 changed files with 126 additions and 40 deletions

View File

@ -961,7 +961,7 @@ export async function parsingCharacteristicValue(binaryData) {
cardId: this.requestParams.cardId,
cardRight: this.requestParams.isAdmin,
lockId: this.lockInfo.lockId,
cardNumber: this.requestParams.cardNo,
cardNumber: this.requestParams.cardNumber,
cardType: this.requestParams.cardType,
cardUserNo: this.requestParams.cardUserNo
})
@ -1002,12 +1002,12 @@ export async function parsingCharacteristicValue(binaryData) {
isCoerced: this.requestParams.isForce,
cardRight: this.requestParams.isAdmin,
lockId: this.lockInfo.lockId,
cardNumber: this.requestParams.cardNo,
cardNumber: this.requestParams.cardNumber,
cardUserNo: this.requestParams.cardUserNo
})
if (addResult.code === Result.Success.code) {
// 增加返回一个卡序号
addResult.data.cardNo = decrypted[6] * 256 + decrypted[7];
addResult.data.cardNumber = decrypted[6] * 256 + decrypted[7];
}
// 触发卡片确认事件
emitRegisterCardConfirmEvent(addResult)
@ -1026,7 +1026,6 @@ export async function parsingCharacteristicValue(binaryData) {
this.characteristicValueCallback(new Result(Result.Success.code, {
maxRegCount: decrypted[11],
}, Result.Success.message))
await this.disconnectDevice()
break;
case 1:
// 修改
@ -1043,6 +1042,8 @@ export async function parsingCharacteristicValue(binaryData) {
const deleteResult = await deleteFingerprintRequest({
fingerprintId: this.requestParams.fingerprintId,
lockId: this.lockInfo.lockId,
fingerprintNumber: this.requestParams.fingerprintNumber,
deleteType: this.requestParams.deleteType || 1,
})
this.characteristicValueCallback(deleteResult)
await this.disconnectDevice()
@ -1068,23 +1069,26 @@ export async function parsingCharacteristicValue(binaryData) {
})
break;
case subCmdIds.registerFingerprintConfirm:
if (this.requestParams.operate === 0) {
const addResult = await addFingerprintRequest({
...this.requestParams,
isCoerced: this.requestParams.isForce,
fingerRight: this.requestParams.isAdmin,
lockId: this.lockInfo.lockId,
fingerprintNumber: this.requestParams.no || this.requestParams.fingerprintNumber,
fingerprintUserNo: this.requestParams.fingerprintUserNo
})
if (addResult.code === Result.Success.code) {
// 增加返回一个指纹序号
addResult.data.fingerprintNumber = decrypted[9] * 256 + decrypted[10];
if (decrypted[2] === Result.Success.code) {
if (this.requestParams.operate === 0) {
const addResult = await addFingerprintRequest({
...this.requestParams,
isCoerced: this.requestParams.isForce,
fingerRight: this.requestParams.isAdmin,
lockId: this.lockInfo.lockId,
fingerprintNumber: this.requestParams.fingerprintNumber,
fingerprintUserNo: this.requestParams.fingerprintUserNo
})
if (addResult.code === Result.Success.code) {
// 增加返回一个指纹序号
addResult.data.fingerprintNumber = decrypted[6] * 256 + decrypted[7];
}
console.log('registerFingerprintConfirm', decrypted)
// 触发指纹确认事件
emitRegisterFingerprintConfirmEvent(addResult)
// 断开蓝牙连接
await this.disconnectDevice()
}
// 触发指纹确认事件
emitRegisterFingerprintConfirmEvent(addResult)
// 断开蓝牙连接
await this.disconnectDevice()
}
break;
case subCmdIds.registerFace:
@ -1096,7 +1100,6 @@ export async function parsingCharacteristicValue(binaryData) {
this.characteristicValueCallback(new Result(Result.Success.code, {
maxRegCount: decrypted[11],
}, Result.Success.message))
await this.disconnectDevice()
break;
case 1:
// 修改
@ -1144,12 +1147,12 @@ export async function parsingCharacteristicValue(binaryData) {
isCoerced: this.requestParams.isForce,
fingerRight: this.requestParams.isAdmin,
lockId: this.lockInfo.lockId,
faceNumber: this.requestParams.no || this.requestParams.faceNumber,
faceNumber: this.requestParams.faceNumber,
faceUserNo: this.requestParams.faceUserNo
})
if (addResult.code === Result.Success.code) {
// 增加返回一个序号
addResult.data.faceNumber = decrypted[9] * 256 + decrypted[10];
addResult.data.faceNumber = decrypted[6] * 256 + decrypted[7];
}
// 触发事件
emitRegisterFaceConfirmEvent(addResult)

View File

@ -11,7 +11,7 @@ import {
clearAllIcCard,
deleteIcCardRequest,
getFingerprintListRequest,
getIcCardListRequest,
getIcCardListRequest, getPalmVeinListRequest, getRemoteListRequest,
updateIcCardRequest
} from "../api.js";
@ -24,7 +24,7 @@ import {
*/
function _checkRequiredFields(params, requiredFields) {
for (let field of requiredFields) {
if (!params[field]) {
if (params[field] === undefined || params[field] === null) {
return `${field} 不能为空`;
}
}
@ -33,10 +33,10 @@ function _checkRequiredFields(params, requiredFields) {
/**
* 注册扩展产品(卡片指纹)
* 注册扩展产品(卡片指纹人脸遥控掌静脉)
*
* @param {Object} params - 所需参数
* @param {string} params.type - 产品类型['card','fingerprint','face']
* @param {string} params.type - 产品类型['card','fingerprint','face','remote','palmVein']
* @param {string} params.keyId - 钥匙 ID
* @param {string} params.uid - 用户 ID
* @param {number} params.userCountLimit - 使用次数限制整型0xFFFF 表示不限次数
@ -49,23 +49,28 @@ function _checkRequiredFields(params, requiredFields) {
* @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.cardNo - 卡片序号仅当 type 'card' 时需要
* @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' 时需要
@ -83,7 +88,7 @@ export async function registerExtendedProducts(params) {
if (params.type === 'card') {
// 注册卡片时的参数校验
if (params.operate === 0) {
const cardRequiredFields = ['cardName', 'cardType', 'cardNo'];
const cardRequiredFields = ['cardName', 'cardType', 'cardNumber'];
const missingField = _checkRequiredFields(params, cardRequiredFields);
if (missingField) {
return new Result(Result.NotMoreData, null, `卡片信息不完整: ${missingField}`);
@ -105,7 +110,7 @@ export async function registerExtendedProducts(params) {
cardRequiredFields.push('cardType')
}
if (params.operate === 2) {
cardRequiredFields.push('cardNo')
cardRequiredFields.push('cardNumber')
}
const missingField = _checkRequiredFields(params, cardRequiredFields);
if (missingField) {
@ -139,6 +144,7 @@ export async function registerExtendedProducts(params) {
cardRequiredFields.push('fingerprintType')
}
if (params.operate === 2) {
cardRequiredFields.push('deleteType')
cardRequiredFields.push('fingerprintNumber')
}
const missingField = _checkRequiredFields(params, cardRequiredFields);
@ -255,11 +261,12 @@ export async function registerExtendedProducts(params) {
// 操作后不断开蓝牙
params.disconnect = false;
console.log('params', params)
let {
type,
keyId,
uid,
cardNo,
operate,
isAdmin,
userCountLimit,
@ -328,8 +335,24 @@ export async function registerExtendedProducts(params) {
contentArray[i + 44] = uid.charCodeAt(i)
}
contentArray[64] = (cardNo || 0) / 256
contentArray[65] = (cardNo || 0) % 256
// 子命令
if (type === 'card') {
contentArray[64] = (params.cardNumber || 0) / 256
contentArray[65] = (params.cardNumber || 0) % 256
} else if (type === 'fingerprint') {
contentArray[64] = (params.fingerprintNumber || 0) / 256
contentArray[65] = (params.fingerprintNumber || 0) % 256
} else if (type === 'face') {
contentArray[64] = (params.faceNumber || 0) / 256
contentArray[65] = (params.faceNumber || 0) % 256
} else if (type === 'remote') {
contentArray[64] = (params.remoteNumber || 0) / 256
contentArray[65] = (params.remoteNumber || 0) % 256
} else if (type === 'palmVein') {
contentArray[64] = (params.palmVeinNumber || 0) / 256
contentArray[65] = (params.palmVeinNumber || 0) % 256
}
contentArray[66] = (userCountLimit || 0xffff) / 256
contentArray[67] = (userCountLimit || 0xffff) % 256
contentArray[68] = operate
@ -489,4 +512,26 @@ export async function getIcCardList(params) {
*/
export async function getFingerprintList(params) {
return await getFingerprintListRequest(params)
}
/**
* 获取掌静脉列表
* @param params.lockId 锁id 必填
* @param params.pageNo 页码选填
* @param params.pageSize 每页显示数选填
* @returns {Promise<unknown>}
*/
export async function getPalmVeinList(params) {
return await getPalmVeinListRequest(params)
}
/**
* 获取掌静脉列表
* @param params.lockId 锁id 必填
* @param params.pageNo 页码选填
* @param params.pageSize 每页显示数选填
* @returns {Promise<unknown>}
*/
export async function getRemoteList(params) {
return await getRemoteListRequest(params)
}

View File

@ -1,5 +1,6 @@
import starCloudInstance from '../star-cloud'
import { Result } from '../constant'
import {getPalmVeinListRequest, getRemoteListRequest} from "../api.js";
export { Result }
@ -266,10 +267,10 @@ export const refreshHotWaterInfo = async params => {
/**
* 注册扩展产品(卡片指纹)
* 注册扩展产品(卡片指纹人脸遥控掌静脉)
*
* @param {Object} params - 所需参数
* @param {string} params.type - 产品类型['card','fingerprint']
* @param {string} params.type - 产品类型['card','fingerprint','face','remote','palmVein']
* @param {string} params.keyId - 钥匙 ID
* @param {string} params.uid - 用户 ID
* @param {number} params.userCountLimit - 使用次数限制整型0xFFFF 表示不限次数
@ -278,19 +279,36 @@ export const refreshHotWaterInfo = async params => {
* @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 {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.cardNo - 卡片序号仅当 type 'card' 时需要
* @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 => {
@ -330,4 +348,24 @@ export const getIcCardList = async params => {
*/
export const getFingerprintList = async params => {
return await starCloudInstance.getFingerprintList(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)
}