“wangzhongjie” 4c2515c1fb 22
2024-02-22 10:40:35 +08:00

228 lines
8.3 KiB
TypeScript

/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License,Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import data_rdb from '@ohos.data.rdb';
import CommonConstants from '../constants/CommonConstants';
import AccountTable from '../database/tables/AccountTable';
import MA_MARKRULE from '../constants/MA_MARKRULE';
import MA_SYSTEMPARM from '../constants/MA_SYSTEMPARM';
import MA_MAP_COLLECT from '../constants/MA_MAP_COLLECT';
import MA_MAP_COLLECT_SHAPE from '../constants/MA_MAP_COLLECT_SHAPE';
import MA_MAP_ITEMCLASS from '../constants/MA_MAP_ITEMCLASS';
import MA_MAP_POINT from '../constants/MA_MAP_POINT';
import MA_MAP_POINT_ITEM from '../constants/MA_MAP_POINT_ITEM';
import MA_MAP_ROAD from '../constants/MA_MAP_ROAD';
import MA_MAP_ROAD_LANE from '../constants/MA_MAP_ROAD_LANE';
import MA_MAP_SUBITEM from '../constants/MA_MAP_SUBITEM';
import MA_SYSSET from '../constants/MA_SYSSET';
import ES_CARINFO from '../constants/ES_CARINFO';
import ES_EXAMPOINTDETAIL from '../constants/ES_EXAMPOINTDETAIL';
import MA_MARKRULESET from '../constants/MA_MARKRULESET';
import MA_CDSBINFO from '../constants/MA_CDSBINFO';
import MA_ITEMINFO from '../constants/MA_ITEMINFO';
import MA_T_CARPARMSET from '../constants/MA_T_CARPARMSET';
import ES_CAR_VIDEO_PARAMETER from '../constants/ES_CAR_VIDEO_PARAMETER';
import IpConfigTable from '../constants/IpConfigTable';
import DeviceInfoTable from '../constants/DeviceInfoTable'
import USER from '../constants/USER'
import featureAbility from '@ohos.ability.featureAbility'
// import { Logger } from '../utils/Logger';
import Logger from '../utils/Logger';
export default class Rdb {
private rdbStore: any = null;
private tableName: string;
private sqlCreateTable: string;
private columns: Array<string>;
constructor(tableName: string, sqlCreateTable: string, columns: Array<string>) {
this.tableName = tableName;
this.sqlCreateTable = sqlCreateTable;
this.columns = columns;
}
getRdbStore(callback) {
if (!callback || typeof callback == 'undefined' || callback == undefined) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'getRdbStore() has no callback!');
return;
}
if (this.rdbStore != null) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'The rdbStore exists.');
callback();
return
}
let context = getContext(this);
const map = {
'MA_MARKRULE': MA_MARKRULE,
'MA_SYSTEMPARM': MA_SYSTEMPARM,
'MA_MAP_COLLECT': MA_MAP_COLLECT,
'MA_MAP_COLLECT_SHAPE': MA_MAP_COLLECT_SHAPE,
'MA_MAP_ITEMCLASS': MA_MAP_ITEMCLASS,
'MA_MAP_POINT': MA_MAP_POINT,
'MA_MAP_POINT_ITEM': MA_MAP_POINT_ITEM,
'MA_MAP_ROAD': MA_MAP_ROAD,
'MA_MAP_ROAD_LANE': MA_MAP_ROAD_LANE,
'MA_MAP_SUBITEM': MA_MAP_SUBITEM,
'MA_SYSSET': MA_SYSSET,
'ES_CARINFO': ES_CARINFO,
'ES_EXAMPOINTDETAIL': ES_EXAMPOINTDETAIL,
'MA_MARKRULESET': MA_MARKRULESET,
'MA_CDSBINFO': MA_CDSBINFO,
'MA_ITEMINFO': MA_ITEMINFO,
'MA_T_CARPARMSET': MA_T_CARPARMSET,
'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
'CommonConstants':CommonConstants,
'USER':USER,
'IpConfigTable':IpConfigTable,
'DeviceInfoTable':DeviceInfoTable
}
data_rdb.getRdbStore(context,map[this.tableName].STORE_CONFIG, 1, (err, rdb) => {
if (err) {
// Logger.error(`${CommonConstants.RDB_TAG}`, 'gerRdbStore() failed, err: ' + err);
return;
}
this.rdbStore = rdb;
this.rdbStore.executeSql(this.sqlCreateTable);
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'getRdbStore() finished.');
callback();
});
}
deleteTableData(callback,name){
if (!callback || typeof callback == 'undefined' || callback == undefined) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'getRdbStore() has no callback!');
return;
}
if (this.rdbStore != null) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'The rdbStore exists.');
callback();
return
}
let context = getContext(this);
const map = {
'MA_MARKRULE': MA_MARKRULE,
'MA_SYSTEMPARM': MA_SYSTEMPARM,
'MA_MAP_COLLECT': MA_MAP_COLLECT,
'MA_MAP_COLLECT_SHAPE': MA_MAP_COLLECT_SHAPE,
'MA_MAP_ITEMCLASS': MA_MAP_ITEMCLASS,
'MA_MAP_POINT': MA_MAP_POINT,
'MA_MAP_POINT_ITEM': MA_MAP_POINT_ITEM,
'MA_MAP_ROAD': MA_MAP_ROAD,
'MA_MAP_ROAD_LANE': MA_MAP_ROAD_LANE,
'MA_MAP_SUBITEM': MA_MAP_SUBITEM,
'MA_SYSSET': MA_SYSSET,
'ES_CARINFO': ES_CARINFO,
'ES_EXAMPOINTDETAIL': ES_EXAMPOINTDETAIL,
'MA_MARKRULESET': MA_MARKRULESET,
'MA_CDSBINFO': MA_CDSBINFO,
'MA_ITEMINFO': MA_ITEMINFO,
'MA_T_CARPARMSET': MA_T_CARPARMSET,
'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
'CommonConstants':CommonConstants,
'USER':USER,
'IpConfigTable':IpConfigTable,
'DeviceInfoTable':DeviceInfoTable
}
// 获取context后调用deleteRdbStore
data_rdb.deleteRdbStore(context,map[this.tableName].STORE_CONFIG.name, function (err) {
if (err) {
callback(false)
console.info("Delete RdbStore failed, err: " + err)
return
}
callback(true)
console.log("Delete RdbStore successfully.")
})
}
insertData(data, callback) {
if (!callback || typeof callback == 'undefined' || callback == undefined) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'insertData() has no callback!');
return;
}
let resFlag: boolean = false;
const valueBucket = data;
this.rdbStore.insert(this.tableName, valueBucket, function (err, ret) {
if (err) {
// Logger.error(`${CommonConstants.RDB_TAG}`, 'insertData() failed, err: ' + err);
callback(resFlag);
return;
}
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'insertData() finished: ' + ret);
callback(ret);
});
}
sqlOperate(str,name,callback) {
this.rdbStore.executeSql(str,(err)=>{
if (err) {
callback(false)
console.info("ExecuteSql failed, err: "+name + JSON.stringify(err))
return
}
console.log('ExecuteSqlsuccess')
callback(true)
})
}
deleteData(predicates, callback) {
if (!callback || typeof callback == 'undefined' || callback == undefined) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'deleteData() has no callback!');
return;
}
let resFlag: boolean = false;
this.rdbStore.delete(predicates, function (err, ret) {
if (err) {
// Logger.error(`${CommonConstants.RDB_TAG}`, 'deleteData() failed, err: ' + err);
callback(resFlag);
return;
}
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'deleteData() finished: ' + ret);
callback(!resFlag);
});
}
updateData(predicates, data, callback) {
if (!callback || typeof callback == 'undefined' || callback == undefined) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'updateDate() has no callback!');
return;
}
let resFlag: boolean = false;
const valueBucket = data;
this.rdbStore.update(valueBucket, predicates, function (err, ret) {
if (err) {
// Logger.error(`${CommonConstants.RDB_TAG}`, 'updateData() failed, err: ' + err);
callback(resFlag);
return;
}
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'updateData() finished: ' + ret);
callback(!resFlag);
});
}
query(predicates, callback) {
if (!callback || typeof callback == 'undefined' || callback == undefined) {
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'query() has no callback!');
return;
}
this.rdbStore.query(predicates, this.columns, function (err, resultSet) {
if (err) {
// Logger.error(`${CommonConstants.RDB_TAG}`, 'query() failed, err: ' + err);
return;
}
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'query() finished.');
callback(resultSet);
resultSet.close();
});
}
}