feat:增加掌静脉相关功能
This commit is contained in:
parent
ed52a5b901
commit
7f498b6b62
105
api.js
105
api.js
@ -455,6 +455,7 @@ export function addFaceRequest(data) {
|
||||
/**
|
||||
* 人脸-更新(永久/限时/单次/循环)
|
||||
*
|
||||
* @param data.lockId 锁id(必填)
|
||||
* @param data.faceId 人脸id(必填)
|
||||
* @param data.faceType 人脸类型(必填)
|
||||
* @param data.faceName 人脸昵称
|
||||
@ -528,4 +529,108 @@ export function getFaceListRequest(data) {
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 掌静脉-添加(永久/限时/循环)
|
||||
*
|
||||
* @param data.lockId 锁id
|
||||
* @param data.palmVeinType 掌静脉类型
|
||||
* @param data.addType 新增类型,1蓝牙,2远程,3发卡器
|
||||
* @param data.palmVeinName 掌静脉昵称
|
||||
* @param data.palmVeinNumber 掌静脉序号
|
||||
* @param data.startDate 开始时间
|
||||
* @param data.endDate 结束时间
|
||||
* @param data.weekDay 循环周期
|
||||
* @param data.isCoerced 是否胁迫卡
|
||||
* @param data.palmVeinRight 是否授权管理员
|
||||
* @param data.palmVeinUserNo 掌静脉UserNo
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
export function addPalmVeinRequest(data) {
|
||||
return request({
|
||||
url: '/v1/palmVein/add',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 掌静脉-更新
|
||||
*
|
||||
* @param data.lockId 锁id
|
||||
* @param data.palmVeinId 掌静脉id(必填)
|
||||
* @param data.palmVeinType 掌静脉类型(必填)
|
||||
* @param data.palmVeinName 掌静脉昵称
|
||||
* @param data.startDate 开始时间
|
||||
* @param data.endDate 结束时间
|
||||
* @param data.weekDay 循环周期
|
||||
* @param data.palmVeinRight 是否授权管理员
|
||||
* @param data.isCoerced 胁迫掌静脉,1-胁迫人脸,2-非胁迫人脸
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
export function updatePalmVeinRequest(data) {
|
||||
return request({
|
||||
url: '/v1/palmVein/update',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 掌静脉-删除
|
||||
* @param data.lockId 锁id
|
||||
* @param data.palmVeinId 掌静脉id
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
export function deletePalmVeinRequest(data) {
|
||||
return request({
|
||||
url: '/v1/palmVein/delete',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除所有掌静脉
|
||||
* @param data.lockId 锁id
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
export function clearAllPalmVein(data) {
|
||||
return request({
|
||||
url: '/v1/palmVein/clear',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查人脸姓名是否重复
|
||||
* @param data.lockId 锁id
|
||||
* @param data.palmVeinName 卡姓名
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
export function checkRepeatPalmVeinName(data) {
|
||||
return request({
|
||||
url: '/v1/palmVein/checkPalmVeinName',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取掌静脉列表
|
||||
* @param data.lockId 锁id
|
||||
* @param data.pageNo 页码(选填)
|
||||
* @param data.pageSize 每页显示数(选填)
|
||||
* @returns {Promise<unknown>}
|
||||
*/
|
||||
export function getPalmVeinListRequest(data) {
|
||||
return request({
|
||||
url: '/v1/palmVein/list',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
77
common.js
77
common.js
@ -18,14 +18,14 @@ import {
|
||||
import {
|
||||
addCustomPasswordRequest, addFaceRequest,
|
||||
addFingerprintRequest,
|
||||
addIcCardRequest,
|
||||
addIcCardRequest, addPalmVeinRequest,
|
||||
changeAdminKeyboardPwdRequest, clearAllFace,
|
||||
clearAllFingerprint,
|
||||
clearAllIcCard,
|
||||
clearAllIcCard, clearAllPalmVein,
|
||||
deleteFaceRequest,
|
||||
deleteFingerprintRequest,
|
||||
deleteIcCardRequest,
|
||||
deleteLockRequest,
|
||||
deleteLockRequest, deletePalmVeinRequest,
|
||||
deletePasswordRequest,
|
||||
getLastRecordTimeRequest,
|
||||
getLockNetTokenRequest,
|
||||
@ -35,14 +35,14 @@ import {
|
||||
updateFaceRequest,
|
||||
updateFingerprintRequest,
|
||||
updateIcCardRequest,
|
||||
updateLockUserNoRequest,
|
||||
updateLockUserNoRequest, updatePalmVeinRequest,
|
||||
updatePasswordRequest,
|
||||
uploadRecordRequest
|
||||
} from './api'
|
||||
import {
|
||||
buildNumber,
|
||||
emitRegisterCardConfirmEvent, emitRegisterFaceConfirmEvent, emitRegisterFaceProcessEvent,
|
||||
emitRegisterFingerprintConfirmEvent, emitRegisterFingerprintProcessEvent,
|
||||
emitRegisterFingerprintConfirmEvent, emitRegisterFingerprintProcessEvent, emitRegisterPalmVeinConfirmEvent,
|
||||
getStorage,
|
||||
setStorage,
|
||||
version
|
||||
@ -1152,6 +1152,73 @@ export async function parsingCharacteristicValue(binaryData) {
|
||||
await this.disconnectDevice()
|
||||
}
|
||||
break;
|
||||
case subCmdIds.registerPalmVein:
|
||||
if (decrypted[2] === Result.Success.code) {
|
||||
// 锁版应答成功
|
||||
switch (this.requestParams.operate) {
|
||||
case 1:
|
||||
// 修改
|
||||
const updateResult = await updatePalmVeinRequest({
|
||||
...this.requestParams,
|
||||
palmVeinId: this.requestParams.palmVeinId,
|
||||
palmVeinRight: this.requestParams.isAdmin,
|
||||
lockId: this.lockInfo.lockId,
|
||||
palmVeinNumber: this.requestParams.palmVeinNumber,
|
||||
palmVeinType: this.requestParams.palmVeinType,
|
||||
palmVeinNo: this.requestParams.palmVeinNo
|
||||
})
|
||||
this.characteristicValueCallback(updateResult)
|
||||
await this.disconnectDevice()
|
||||
break;
|
||||
case 2:
|
||||
// 删除
|
||||
const deleteResult = await deletePalmVeinRequest({
|
||||
palmVeinId: this.requestParams.palmVeinId,
|
||||
lockId: this.lockInfo.lockId,
|
||||
})
|
||||
this.characteristicValueCallback(deleteResult)
|
||||
await this.disconnectDevice()
|
||||
break;
|
||||
case 3:
|
||||
// 删除全部
|
||||
const deleteAllResult = await clearAllPalmVein({
|
||||
lockId: this.lockInfo.lockId,
|
||||
})
|
||||
this.characteristicValueCallback(deleteAllResult)
|
||||
await this.disconnectDevice()
|
||||
break;
|
||||
default:
|
||||
this.characteristicValueCallback(new Result(decrypted[2]))
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case subCmdIds.registerPalmVeinConfirm:
|
||||
// 收到锁版回复判断操作类型进行对应api操作
|
||||
if (decrypted[2] === Result.Success.code) {
|
||||
switch (this.requestParams.operate) {
|
||||
case 0:
|
||||
// 注册
|
||||
const addResult = await addPalmVeinRequest({
|
||||
...this.requestParams,
|
||||
isCoerced: this.requestParams.isForce,
|
||||
palmVeinRight: this.requestParams.isAdmin,
|
||||
lockId: this.lockInfo.lockId,
|
||||
palmVeinNumber: this.requestParams.palmVeinNumber,
|
||||
palmVeinUserNo: this.requestParams.palmVeinUserNo
|
||||
})
|
||||
if (addResult.code === Result.Success.code) {
|
||||
// 增加返回一个卡序号
|
||||
addResult.data.palmVeinNumber = decrypted[6] * 256 + decrypted[7];
|
||||
}
|
||||
// 触发卡片确认事件
|
||||
emitRegisterPalmVeinConfirmEvent(addResult)
|
||||
// 断开蓝牙连接
|
||||
await this.disconnectDevice()
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
@ -76,6 +76,8 @@ export const eventKeys = {
|
||||
registerFaceProcess: 'registerFaceProcess',
|
||||
// 注册人脸确认
|
||||
registerFaceConfirm: 'registerFaceConfirm',
|
||||
// 注册掌纹确认
|
||||
registerPalmVeinConfirm: 'registerPalmVeinConfirm',
|
||||
}
|
||||
|
||||
|
||||
|
||||
18
export.js
18
export.js
@ -1,13 +1,13 @@
|
||||
import {
|
||||
emitRegisterCardConfirmEventUni, emitRegisterFaceConfirmEventUni, emitRegisterFaceProcessEventUni,
|
||||
emitRegisterFingerprintConfirmEventUni, emitRegisterFingerprintProcessEventUni,
|
||||
emitRegisterFingerprintConfirmEventUni, emitRegisterFingerprintProcessEventUni, emitRegisterPalmVeinConfirmEventUni,
|
||||
getStorageUni,
|
||||
removeStorageUni,
|
||||
setStorageUni
|
||||
} from './uni/storage'
|
||||
import {
|
||||
emitRegisterCardConfirmEventWeb, emitRegisterFaceConfirmEventWeb, emitRegisterFaceProcessEventWeb,
|
||||
emitRegisterFingerprintConfirmEventWeb, emitRegisterFingerprintProcessEventWeb,
|
||||
emitRegisterFingerprintConfirmEventWeb, emitRegisterFingerprintProcessEventWeb, emitRegisterPalmVeinConfirmEventWeb,
|
||||
getStorageWeb,
|
||||
removeStorageWeb,
|
||||
setStorageWeb
|
||||
@ -140,4 +140,18 @@ export const emitRegisterFaceConfirmEvent = resultData => {
|
||||
if (starCloudInstance.platform === 2) {
|
||||
return emitRegisterFaceConfirmEventWeb(resultData)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发掌静脉注册确认事件
|
||||
* @param resultData 事件响应数据
|
||||
* @returns {*}
|
||||
*/
|
||||
export const emitRegisterPalmVeinConfirmEvent = resultData => {
|
||||
if (starCloudInstance.platform === 1) {
|
||||
return emitRegisterPalmVeinConfirmEventUni(resultData)
|
||||
}
|
||||
if (starCloudInstance.platform === 2) {
|
||||
return emitRegisterPalmVeinConfirmEventWeb(resultData)
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ import {cmdIds, Result, subCmdIds} from '../constant'
|
||||
import {convertWeekdaysToNumber, createPackageEnd, md5Encrypt, parseTimeToList, timestampToArray} from "../format.js";
|
||||
import {sm4} from "sm-crypto";
|
||||
import {
|
||||
checkRepeatCardName, checkRepeatFaceName, checkRepeatFingerprintName,
|
||||
checkRepeatCardName, checkRepeatFaceName, checkRepeatFingerprintName, checkRepeatPalmVeinName,
|
||||
clearAllIcCard,
|
||||
deleteIcCardRequest, getFingerprintListRequest,
|
||||
getIcCardListRequest,
|
||||
@ -57,6 +57,10 @@ function _checkRequiredFields(params, requiredFields) {
|
||||
* @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.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' 时需要 (选填)
|
||||
* @returns {Promise<Result>} - 返回注册结果的 Promise 对象
|
||||
*/
|
||||
export async function registerExtendedProducts(params) {
|
||||
@ -169,6 +173,40 @@ export async function registerExtendedProducts(params) {
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是掌静脉的话需要增加的参数
|
||||
if (params.type === 'palmVein') {
|
||||
if (params.operate === 0) {
|
||||
const cardRequiredFields = ['palmVeinName', 'palmVeinNumber', 'palmVeinType'];
|
||||
const missingField = _checkRequiredFields(params, cardRequiredFields);
|
||||
if (missingField) {
|
||||
return new Result(Result.NotMoreData, null, `掌静脉信息不完整: ${missingField}`);
|
||||
}
|
||||
// 检查卡昵称是否重复
|
||||
const checkRepeatFaceNameResult = await checkRepeatPalmVeinName({
|
||||
lockId: this.lockInfo.lockId,
|
||||
palmVeinName: params.palmVeinName
|
||||
})
|
||||
if (checkRepeatFaceNameResult.code !== Result.Success.code) {
|
||||
return checkRepeatFaceNameResult
|
||||
}
|
||||
}
|
||||
|
||||
// 修改指纹时的参数校验
|
||||
if (params.operate === 1 || params.operate === 2) {
|
||||
let cardRequiredFields = ['palmVeinId'];
|
||||
if (params.operate === 1) {
|
||||
cardRequiredFields.push('palmVeinType')
|
||||
}
|
||||
if (params.operate === 2) {
|
||||
cardRequiredFields.push('palmVeinNumber')
|
||||
}
|
||||
const missingField = _checkRequiredFields(params, cardRequiredFields);
|
||||
if (missingField) {
|
||||
return new Result(Result.NotMoreData, null, `掌静脉信息不完整: ${missingField}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 添加类型:1蓝牙,2远程,3发卡器
|
||||
params.addType = 1;
|
||||
// 操作后不断开蓝牙
|
||||
|
||||
@ -60,4 +60,13 @@ export function emitRegisterFaceProcessEventUni(resultData) {
|
||||
*/
|
||||
export function emitRegisterFaceConfirmEventUni(resultData) {
|
||||
uni.$emit(eventKeys.registerFaceConfirm, resultData)
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发掌静脉认事件
|
||||
* @param resultData 事件响应数据
|
||||
* @returns {*}
|
||||
*/
|
||||
export function emitRegisterPalmVeinConfirmEventUni(resultData) {
|
||||
uni.$emit(eventKeys.registerPalmVeinConfirm, resultData)
|
||||
}
|
||||
@ -61,4 +61,13 @@ export function emitRegisterFaceProcessEventWeb(resultData) {
|
||||
*/
|
||||
export function emitRegisterFaceConfirmEventWeb(resultData) {
|
||||
// TODO 待实现web端触发事件
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发掌静脉认事件
|
||||
* @param resultData 事件响应数据
|
||||
* @returns {*}
|
||||
*/
|
||||
export function emitRegisterPalmVeinConfirmEventWeb(resultData) {
|
||||
// TODO 待实现web端触发事件
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user