|
|
- // pages/addBlueButton/addBlueButton.js
- const WXAPI = require('../../utils/request')
- import ICINLocker from "../../utils/ICINPakage/ICINLocker"
- var util = require('../../utils/util');
- import moment from "../../utils/moment"
- const app = getApp();
- const CurentTime=moment().format("YYYY-MM-DD HH:mm:ss")
- const CurentTime1=moment().add(60, "years").format("YYYY-MM-DD HH:mm:ss");
- Page({
-
- /**
- * 页面的初始数据
- */
- data: {
- show:true,
- deviceList:[],
- personList:[],
- timer:null,
- blueKeyId:"",
- personli:{},
- selectName:'',
- signKey:'',
- starttime:"",
- minDate:"",
- minDate1:"",
- endtime:"",
- datetimerange:[CurentTime, CurentTime1],
- minDate: CurentTime,
- minDate1: CurentTime,
- endtime: CurentTime1,
- starttime: CurentTime,
- },
-
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- // let timer=setInterval(()=>{
- this.linkBlue()
- // },5000)
- var deviceinfo=wx.getStorageSync('deviceinfo')
- // var personli=wx.getStorageSync('personli')
- this.getSiteTenant(deviceinfo.roomId)
- this.setData({
- deviceinfo,
- // personli,
- // timer
- })
- },
- bindDateChange: function (e) {
- var str = e.detail.value + " 00:00:00"
- this.data.datetimerange[0] = str
- this.setData({
- starttime: str,
- minDate1: str
- })
- },
- bindDateChange1: function (e) {
- var str = e.detail.value + " 23:59:59"
- this.data.datetimerange[1] = str
- this.setData({
- endtime: str
- })
- },
- btntest1(e){
- var personli=e.currentTarget.dataset.personli
- this.setData({
- personli:personli
- })
- if (app.globalData.zgBlueStatus) {
- this.addUser()
- } else {
- this.goBlue()
- }
- },
- setDeviceKeyId(){
- var info=JSON.parse(this.data.personli.info)
- var cgInfo=wx.getStorageSync('cgInfo')
- var comm=this.stringToHex(this.data.selectName)
- var keyId="0o01weit9ti9ti"
- var password="3030000000000000000000000000000000000000"
- var infoKeyId=info.keyId?info.keyId:info.userPassword
- ICINLocker.connect(this.data.deviceId,true).then((res) => {
- if (res.status == 0) {
- console.log(res,'蓝牙扣连接')
- ICINLocker.readBluetoothBuckle(cgInfo.lockerId, comm, callback2 => {
- if(callback2.status==0){
- console.log(infoKeyId, this.data.selectName, keyId, password, "", this.data.signKey, comm,'--------蓝牙扣')
- ICINLocker.registeBluetoothBuckle(infoKeyId, this.data.selectName, keyId, password, "", this.data.signKey, comm, callback3 => {
- if(callback3.status==0){
- wx.hideLoading()
- ICINLocker.disConnect(this.data.deviceId).then(res=>{
- console.log(res)
- wx.removeStorageSync("connectedDeviceId");
- })
- this.setData({
- show:false
- })
- wx.showToast({
- title: '添加成功',
- duration:2000,
- icon:"none"
- })
- }else{
- ICINLocker.disConnect(this.data.deviceId).then(res=>{
- console.log(res)
- wx.removeStorageSync("connectedDeviceId");
- })
- wx.hideLoading()
- this.setData({
- show:false
- })
- wx.showToast({
- title: '添加成功',
- duration:2000,
- icon:"none"
- })
- }
- })
- }else{
- ICINLocker.disConnect(this.data.deviceId).then(res=>{
- console.log(res)
- wx.removeStorageSync("connectedDeviceId");
- })
- wx.hideLoading()
- wx.showToast({
- title: '读取失败',
- duration:2000,
- icon:"none"
- })
- }
- });
- }
- })
- },
- stringToHex(str){
- var val="";
- for(var i = 0; i < str.length; i++){
- if(val == "")
- val = str.charCodeAt(i).toString(16);
- else
- val += str.charCodeAt(i).toString(16);
- }
- return val;
- },
- addUser(){
- console.log("添加蓝牙扣用户")
- wx.showLoading({
- title: '添加中'
- })
- var that=this
- var cgInfo=wx.getStorageSync('cgInfo')
- var personli=this.data.personli
- var info=JSON.parse(personli.info)
- console.log("添加蓝牙扣用户",personli,cgInfo)
- var infoKeyId=info.keyId?info.keyId:info.userPassword
- ICINLocker.getUserSignKey(cgInfo.lockerId, cgInfo.superId, infoKeyId, cgInfo.superId,cgInfo.authKey,"01",
- (callback) => {
- console.log(callback,'callbackcallbackcallbackcallback')
- if (callback.status == '00') {
- ICINLocker.getCommonKey(cgInfo.lockerId, infoKeyId, infoKeyId, callback.userSignKey, (callback1) => {
- if (callback1.status == '00') {
- var startTime=parseInt(moment(this.data.datetimerange[0]).format("X")).toString(16).toUpperCase()
- var endTime=parseInt(moment(this.data.datetimerange[1]).format("X")).toString(16).toUpperCase()
- console.log(cgInfo.lockerId, infoKeyId, this.data.blueKeyId, "0o01weit9ti9ti", "00", callback.userSignKey, "", callback1.commonKey, startTime, endTime)
- ICINLocker.addUserToLock(cgInfo.lockerId, infoKeyId, this.data.blueKeyId, "0o01weit9ti9ti", "00", callback.userSignKey, "", callback1.commonKey, startTime, endTime, (callback2) => {
- console.log(callback2)
- if(callback2.status=='00'){
- this.setData({
- signKey:callback.userSignKey
- })
- wx.closeBLEConnection({
- deviceId:app.globalData.blueDeviceId,
- success (res) {
- app.globalData.zgBlueStatus=false
- that.setDeviceKeyId()
- }
- })
- var str = {
- username: personli.name,
- deviceNum:this.data.deviceinfo.deviceNum,
- imei:this.data.deviceinfo.imei,
- iotId:infoKeyId,
- manufactureId:this.data.deviceinfo.manufactureId,
- userPassword: info.userPassword,
- roomName:this.data.deviceinfo.roomName,
- password: "0o01weit9ti9ti",
- passwordStartTime: moment(this.data.datetimerange[0]).format("X"),
- passwordEndTime: moment(this.data.datetimerange[1]).format("X"),
- operateMode: 26,
- order: 6326
- };
- var dataCerti={
- cardId: personli.cardId,
- content: JSON.stringify(str),
- type: 36,
- startTime: moment(this.data.datetimerange[0]).format("X"),
- endTime: moment(this.data.datetimerange[1]).format("X"),
- }
- console.log(dataCerti,"蓝牙扣添加蓝牙扣用户凭证")
- WXAPI.addCertificates(dataCerti).then(res=>{
- if(res.code==200){
- var dataPasswod = {
- lockerId: this.data.deviceinfo.deviceNum,
- imei: this.data.deviceinfo.imei,
- lockerUserId: infoKeyId,
- keyId: infoKeyId,
- role: 0,
- order: 6226,
- action: 1,
- roomName:this.data.deviceinfo.roomName,
- cardName:'蓝牙扣'+personli.name,
- type: 1,
- result: 1
- }
- WXAPI.ZGduserOperation(dataPasswod).then(res6 => {
- console.log(res6,"上报添加蓝牙扣用户")
- })
- }
- })
- // ICINLocker.disConnect(app.globalData.blueDeviceId).then(res=>{
- // if(res.status=='00'){
- // app.globalData.zgBlueStatus=false
- // that.setDeviceKeyId()
- // }
- // })
- }
- })
- }
- })
- }
- })
- },
- linkBlue(){
- var that=this;
- ICINLocker.searchDevices().then(res=>{
- if (res.status == 0) {
- this.setData({
- deviceList:res.deviceList
- })
- }
- }).catch((res) => {
- if (res.status == 1) {
- if (res.statusReason.errCode == 10001) {
- wx.showToast({
- title: '请检查手机蓝牙和定位功能是否打开?',
- duration: 2000,
- icon: 'none'
- })
- } else {
- if (!app.globalData.zgBlueStatus && that.data.bluestatus) {
- that.linkBlue()
- }
- }
- }
- })
- },
- searchBlueButton(e) {
- var that = this
- var cgInfo=wx.getStorageSync('cgInfo')
- var comm=this.stringToHex(e.currentTarget.dataset.select.name)
- var deviceId=e.currentTarget.dataset.select.deviceId
- var keyId="0o01weit9ti9ti"
- var password="3030000000000000000000000000000000000000"
- // app.globalData.blueDeviceId = e.currentTarget.dataset.select.name
- var blueKeyId=e.currentTarget.dataset.select.name
- if(this.data.datetimerange[0]==''||this.data.datetimerange[1]==''){
- wx.showToast({
- title: '请选择开始结束时间',
- duration:2000,
- icon:"none"
- })
- }else{
- this.setData({
- bleStatus: '蓝牙已连接',
- deviceId: deviceId,
- blueKeyId:blueKeyId,
- show:false,
- selectName:e.currentTarget.dataset.select.name
- })
- app.globalData.zgBlueStatus = false
- }
- },
- // 获取入住人员
- getSiteTenant(roomId) {
- var data2 = {
- q: JSON.stringify({
- id: roomId
- }),
- orderBy: "createTime",
- orderType: 'desc'
- }
- WXAPI.getSiteTenant(data2).then(res1 => {
- if (res1.data.list.length > 0) {
- this.setData({
- personList: res1.data.list,
- roomId: roomId
- })
- } else {
- this.setData({
- personList: []
- })
- wx.showToast({
- title: "还未下发人员,请先下发人员",
- duration: 2000,
- icon: 'none'
- })
- }
- })
- },
- goBlue() {
- var that = this
- wx.showLoading({
- title: '连接中',
- })
- var deviceinfo=wx.getStorageSync('deviceinfo')
- ICINLocker.scanDevices(deviceinfo.deviceNum,false).then((res) => {
- if (res.status == 0) {
- var deviceId = res.deviceId
- //成功找到蓝牙情况下进行锁连接
- app.globalData.blueDeviceId = res.deviceId
- ICINLocker.connect(res.deviceId,false).then(res1 => {
- if (res1.status == "0") {
- console.log(res1)
- that.addUser()
- wx.showToast({
- title: '连接成功',
- icon: "none",
- duration: 2000
- })
- app.globalData.zgBlueStatus = true
- that.setData({
- bleStatus: '蓝牙已连接',
- })
- } else {
- wx.hideLoading()
- var msg = ''
- switch (res1.errCode) {
- case 10001:
- msg = '调用失败,请打开蓝牙!';
- break;
- }
- wx.showToast({
- title: msg,
- duration: 2000,
- icon: 'none'
- })
- //此处处理返回值不为成功(0)的情况
- }
- }).catch((res) => {
- wx.hideLoading()
- // 此处处理未能连接成功问题
- })
- }
- })
- .catch((res) => {
- //此处处理未能连接到蓝牙的问题
- if (res.status == 1) {
- if (res.statusReason.errCode == 10001) {
- wx.hideLoading()
- wx.showToast({
- title: '请检查手机蓝牙和定位功能是否打开?',
- duration: 2000,
- icon: 'none'
- })
- } else {
- if (!app.globalData.zgBlueStatus && that.data.bluestatus) {
- that.goBlue()
- } else {
- wx.hideLoading()
- }
- }
- }
- })
- },
-
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
-
- },
-
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
-
- },
-
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
-
- },
-
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
-
- },
-
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
-
- }
- })
|