228 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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();
 | |
|     });
 | |
|   }
 | |
| } |