135 lines
3.1 KiB
JavaScript
135 lines
3.1 KiB
JavaScript
let options = {
|
|
name: "uni-im",
|
|
path: '_doc/uni-im.db'
|
|
}
|
|
import uniIm from '@/uni_modules/uni-im/lib/main.js';
|
|
export default {
|
|
async init(callback = ()=>{}){
|
|
callback()
|
|
},
|
|
async checkDataBaseIsOpen(){
|
|
if(uniIm.dataBaseIsOpen){
|
|
return true
|
|
}
|
|
let dataBaseIsOpen = plus.sqlite.isOpenDatabase(options)
|
|
uniIm.dataBaseIsOpen = dataBaseIsOpen
|
|
// console.log('uniIm.dataBaseIsOpen',uniIm.dataBaseIsOpen);
|
|
if (!dataBaseIsOpen) {
|
|
let res = await new Promise((resolve, reject) => {
|
|
plus.sqlite.openDatabase({
|
|
...options,
|
|
success: function(e) {
|
|
// console.log(e, 'openDatabase success!')
|
|
resolve(e)
|
|
},
|
|
fail: function(e) {
|
|
console.error(e, 'openDatabase failed: ' + JSON.stringify(e))
|
|
reject(e)
|
|
}
|
|
});
|
|
})
|
|
|
|
let sql = `create table if not exists msg(
|
|
"_id" CHAR(32),
|
|
"body" TEXT,
|
|
"type" CHAR(32),
|
|
"from_uid" CHAR(32),
|
|
"to_uid" CHAR(32),
|
|
"is_read" BOOLEAN,
|
|
"friendly_time" DATETIME,
|
|
"create_time" DATETIME,
|
|
"conversation_id" CHAR(32),
|
|
"group_id" CHAR(32),
|
|
"client_create_time" DATETIME,
|
|
"unique_id" CHAR(32),
|
|
"appid" CHAR(32),
|
|
"state" INT,
|
|
"is_revoke" BOOLEAN,
|
|
"is_delete" BOOLEAN,
|
|
"action" TEXT
|
|
)`
|
|
this.executeSql(sql)
|
|
|
|
return res
|
|
}
|
|
},
|
|
async clearMsgTable(){
|
|
let dd = await this.executeSql('drop table msg')
|
|
console.log('clearMsgTable',dd);
|
|
},
|
|
async executeSql(sql) { //执行executeSql
|
|
await this.checkDataBaseIsOpen()
|
|
// console.log('sql',sql);
|
|
return await new Promise((resolve, reject) => {
|
|
// console.log('执行executeSql',{
|
|
// "name": options.name,
|
|
// "sql": sql
|
|
// });
|
|
try{
|
|
plus.sqlite.executeSql({
|
|
name: options.name,
|
|
sql: sql,
|
|
success: function(e) {
|
|
// console.log(e, 'executeSql success!')
|
|
resolve(e)
|
|
},
|
|
fail: function(e) {
|
|
console.error(e)
|
|
console.error({sql})
|
|
console.error('executeSql failed: ' + JSON.stringify(e))
|
|
console.error('executeSql failed: ' + JSON.stringify(sql))
|
|
reject(e)
|
|
}
|
|
});
|
|
}catch(e){
|
|
reject(e)
|
|
}
|
|
})
|
|
},
|
|
async selectSql(sql) { //执行selectSql
|
|
await this.checkDataBaseIsOpen()
|
|
|
|
return await new Promise( async(resolve, reject) => {
|
|
// console.log('执行selectSql',{
|
|
// "name": options.name,
|
|
// "sql": sql
|
|
// });
|
|
try{
|
|
plus.sqlite.selectSql({
|
|
name: options.name,
|
|
sql: sql,
|
|
success: function(e) {
|
|
// console.log(e, 'selectSql success!')
|
|
resolve(e)
|
|
},
|
|
fail: function(e) {
|
|
console.error('sql:'+sql,'selectSql failed: ' + JSON.stringify(e))
|
|
reject(e)
|
|
}
|
|
});
|
|
}catch(e){
|
|
reject(e)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
// await this.clearMsgTable()
|
|
// try{
|
|
// await new Promise((resolve, reject) => {
|
|
// plus.sqlite.closeDatabase({
|
|
// ...options,
|
|
// success: function(e) {
|
|
// console.log(e, 'closeDatabase success!')
|
|
// resolve(e)
|
|
// },
|
|
// fail: function(e) {
|
|
// console.error(e, 'closeDatabase failed: ' + JSON.stringify(e))
|
|
// reject(e)
|
|
// }
|
|
// })
|
|
// })
|
|
// }catch(e){
|
|
// console.error(e)
|
|
// //TODO handle the exception
|
|
// }
|