| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413 |
- import type Message from '@/mode/Message'
- import type Chat from '@/mode/Chat'
- import Auth from "@/api/Auth";
- const dbPath = '_doc/locateDB.db'
- const name = 'imdata'
- class DBactApi {
- static openDb = () :Boolean => {//打开数据库
- return new Promise((resolve, reject) => {
- plus.sqlite.openDatabase({
- name:name,
- path:dbPath,
- success: res=> {
- console.log('打开数据库',res)
- resolve(true)
- },
- fail: function (err) {
- console.log('打开数据库 false',err)
- reject(false)
- },
- })
- })
- };
- static DBisOpen = () :Boolean => {//判断数据库是否打开
- if(plus.sqlite.isOpenDatabase({name:name,path:dbPath})){
- console.log('判断数据库是否打开')
- return true;
- }
- else{
- console.log('判断数据库是否打开 false')
- return false;
- }
- };
-
- static closeDB = () :Boolean => {//关闭数据库
- return new Promise((resolve, reject) => {
- plus.sqlite.closeDatabase({
- name:name,
- success: res=> {
- resolve(true)
- },
- fail: function (err) {
- reject(false)
- },
- })
- })
- };
- static deleatDB = () :Boolean => {//删除数据库
- return new Promise((resolve, reject) => {
- uni.removeSavedFile({
- filePath:dbPath,
- success() {
- console.log('数据库删除成功');
- resolve(true)
- },
- fail() {
- console.log('数据库删除失败');
- reject(false)
- }
- })
- })
- };
- // "id": "1813376960010895360",
- // "chatId": "1808714465480523777",
- // "type": "1",
- // "messageType": "0",
- // "content": "1111",
- // "mine": false,
- // "fromId": "48",
- // "timestamp": 1721177732838,
- // "extend": {
- // "atAll": false,
- // "atUserIds": []
- // },
- // "video": false,
- // "duration": 0,
- // "result": false,
- // "offline": false
- //创建消息表
- static createMSGtable(){
-
- plus.sqlite.executeSql({
- name:name,
- sql:'create table if not exists msglist_'+Auth.getUserName()+'("id" CHAR PRIMARY KEY,"chatId" CHAR,"type" CHAR,"messageType" CHAR,"content" TEXT,"mine" int,"fromId" CHAR,"timestamp" BIGINT,"extend" TEXT,"video" int,"duration" int,"result" int,"offline" int)',
- success: res=> {
- console.log('创建消息表',res)
- return res;
- },
- fail: function (err) {
- console.log(err)
- return false;
- },
- })
- };
-
- static delmsglistTable(username:string){//删除消息表
- return new Promise((resolve, reject) => {
- plus.sqlite.executeSql({
- name:name,
- sql:'DROP TABLE msglist_'+username,
- success: res=> {
- console.log('DROP TABLE',res);
- resolve(true)
- },
- fail: function (err) {
- reject(false)
- },
- })
- })
- };
- static insertmsg(msg: Message){//插入消息
- var values="('"+msg.id+"','"+msg.chatId+"','"+msg.type+"','"+msg.messageType+"','"+msg.content+"',"+msg.mine+",'"+msg.fromId+"',"+msg.timestamp+",'"+JSON.stringify(msg.extend)+"')";
-
- plus.sqlite.executeSql({
- name:name,
- sql:"insert into msglist_"+Auth.getUserName()+"('id','chatId','type','messageType','content','mine','fromId','timestamp','extend') values " +values,
- success: res=> {
- console.log('insertmsg11',res)
- return res;
- },
- fail: function (err) {
- console.log('insertmsg22',err)
- return false;
- },
- })
- };
- static selectmsg(chatId:string){//查询消息
- return new Promise((resolve, reject) => {
- var sql='select * from(select * from msglist_'+Auth.getUserName()+' where chatId = '+chatId+' ORDER BY "id" DESC LIMIT 10) ORDER BY "id"';
- //console.log('sql',sql);
- plus.sqlite.selectSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(res){
- console.log('selectSql success:',res);
- resolve(res)
- },
- fail: function(e){
- console.log('UserMsg: ',e);
- reject(false)
- }
- });
- })
- };
-
- static deletemsgs(idlist:Array){//删除多个消息 DELETE FROM users WHERE id IN (100, 101);
- var values='("'+JSON.stringify(idlist)+'")';
- var sql='DELETE FROM msglist_'+Auth.getUserName()+' WHERE id IN'+values;
- // console.log('sql',sql);
- // console.log(name);
- plus.sqlite.executeSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(data){
- //console.log('executeSql success: ',data);
- return data;
- },
- fail: function(e){
- console.log('UserMsg: ',e);
- return false;
- }
- });
- };
- static deletemsg(msg: Message){//删除单个消息 DELETE FROM users WHERE id IN (100, 101);
- var values='("'+msg.id+'")';
- var sql='DELETE FROM msglist_'+Auth.getUserName()+' WHERE id IN'+values;
- // console.log('sql',sql);
- // console.log(name);
- plus.sqlite.executeSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(data){
- //console.log('executeSql success: ',data);
- return data;
- },
- fail: function(e){
- //console.log('UserMsg: ',e);
- return false;
- }
- });
- }
-
- //-- 假设我们要将students表中id为1的学生的名字改为"John Doe"
- //UPDATE students SET name = 'John Doe' WHERE id = 1;
- static updataemsg(sql:string){
- plus.sqlite.executeSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(data){
- //console.log('executeSql success: ',data);
- return data;
- },
- fail: function(e){
- console.log('UserMsg: ',e);
- return false;
- }
- });
- }
-
- //-----------------------------------------------------------------------------------
- static createchattable(){
- plus.sqlite.executeSql({
- name:name,
- sql:'create table if not exists chatlist_'+Auth.getUserName()+'("id" CHAR PRIMARY KEY,"name" CHAR,"avatar" CHAR,"type" CHAR,"lastMessage" TEXT,"lastTime" BIGINT,"unreadCount" int,"loaded" int,"loading" int)',
- success: res=> {
- console.log('创建消息表',res)
- return res;
- },
- fail: function (err) {
- console.log(err)
- return false;
- },
- })
- };
-
- static delchatlistTable(username:string){//删除消息表
- return new Promise((resolve, reject) => {
- plus.sqlite.executeSql({
- name:name,
- sql:'DROP TABLE chatlist_'+username,
- success: res=> {
- //console.log('DROP TABLE',res);
- resolve(true)
- },
- fail: function (err) {
- reject(false)
- },
- })
- })
- };
- static insertchat(chat: Chat){//插入消息
- var values="('"+chat.id+"','"+chat.name+"','"+chat.avatar+"','"+chat.type+"','"+chat.lastMessage+"',"+chat.lastTime+","+chat.unreadCount+","+chat.loaded+","+chat.loading+")";
- plus.sqlite.executeSql({
- name:name,
- sql:"INSERT OR REPLACE INTO chatlist_"+Auth.getUserName()+"('id','name','avatar','type','lastMessage','lastTime','unreadCount','loaded','loading') values " +values,
- success: res=> {
- //console.log('insertmsg1',res)
- return res;
- },
- fail: function (err) {
- //console.log('insertmsg2',err)
- return false;
- },
- })
- };
- static selectchats(){//查询消息
- return new Promise((resolve, reject) => {
- var sql='select * from chatlist_'+Auth.getUserName()+';';
- console.log('sql',sql);
- plus.sqlite.selectSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(res){
- //console.log('selectchats success:',res);
- resolve(res)
- },
- fail: function(e){
- console.log('UserMsg: ',e);
- reject(false)
- }
- });
- })
- };
- //重整消息本地数据库----------------------------------------
- //创建消息表
- static createLocalMSGtable(){
-
- plus.sqlite.executeSql({
- name:name,
- sql:'create table if not exists lcmsglist_'+Auth.getUserName()+'("id" CHAR PRIMARY KEY,"chatId" CHAR,"type" CHAR,"messageType" CHAR,"timestamp" BIGINT,"Message" TEXT)',
- success: res=> {
- console.log('创建消息表',res)
- return res;
- },
- fail: function (err) {
- console.log(err)
- return false;
- },
- })
- };
-
- static delLocalmsglistTable(username:string){//删除消息表
- return new Promise((resolve, reject) => {
- plus.sqlite.executeSql({
- name:name,
- sql:'DROP TABLE lcmsglist_'+username,
- success: res=> {
- console.log('DROP TABLE',res);
- resolve(true)
- },
- fail: function (err) {
- reject(false)
- },
- })
- })
- };
- static insertLocalmsg(msg: Message){//插入消息
- var values="('"+msg.id+"','"+msg.chatId+"','"+msg.type+"','"+msg.messageType+"',"+msg.timestamp+",'"+JSON.stringify(msg)+"')";
- //console.log(msg);
- plus.sqlite.executeSql({
- name:name,
- sql:"insert into lcmsglist_"+Auth.getUserName()+"('id','chatId','type','messageType','timestamp','Message') values " +values,
- success: res=> {
- //console.log('insertmsg1',res)
- return res;
- },
- fail: function (err) {
- // console.log('insertmsg2',err)
- return false;
- },
- })
- };
- static selectLocalmsg(chatId:string){//查询消息
- return new Promise((resolve, reject) => {
- var sql='select * from(select * from lcmsglist_'+Auth.getUserName()+' where chatId = '+chatId+' ORDER BY "timestamp" DESC LIMIT 10) ORDER BY "timestamp"';
- //console.log('sql',sql);
- plus.sqlite.selectSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(res){
- //console.log('selectSql success:',res);
- resolve(res)
- },
- fail: function(e){
- //console.log('UserMsg: ',e);
- reject(false)
- }
- });
- })
- };
- static selectLocalmsgType(chatId:string,messageType:string,page:number){//查询消息
- return new Promise((resolve, reject) => {
- var sql='';
- if(messageType&&messageType!=''){
- sql='select * from(select * from lcmsglist_'+Auth.getUserName()+' where chatId = '+chatId+' AND messageType='+messageType+' ORDER BY "timestamp" DESC LIMIT '+(page-1)*20+',20) ORDER BY "timestamp" DESC';
- }
- else{
- sql='select * from(select * from lcmsglist_'+Auth.getUserName()+' where chatId = '+chatId+' ORDER BY "timestamp" DESC LIMIT '+(page-1)*20+',20) ORDER BY "timestamp" DESC';
- }
- console.log('sql',sql);
- plus.sqlite.selectSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(res){
- //console.log('selectSql success:',res);
- resolve(res)
- },
- fail: function(e){
- //console.log('UserMsg: ',e);
- reject(false)
- }
- });
- })
- };
-
- static deleteLocalmsgs(idlist:Array){//删除多个消息 DELETE FROM users WHERE id IN (100, 101);
- var values='("'+JSON.stringify(idlist)+'")';
- var sql='DELETE FROM lcmsglist_'+Auth.getUserName()+' WHERE id IN'+values;
- // console.log('sql',sql);
- // console.log(name);
- plus.sqlite.executeSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(data){
- //console.log('executeSql success: ',data);
- return data;
- },
- fail: function(e){
- console.log('UserMsg: ',e);
- return false;
- }
- });
- };
- static deleteLocalmsg(msg: Message){//删除单个消息 DELETE FROM users WHERE id IN (100, 101);
- var values='("'+msg.id+'")';
- var sql='DELETE FROM lcmsglist_'+Auth.getUserName()+' WHERE id IN'+values;
- console.log('sql',sql);
- // console.log(name);
- plus.sqlite.executeSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(data){
- console.log('executeSql success: ',data);
- return data;
- },
- fail: function(e){
- console.log('UserMsg: ',e);
- return false;
- }
- });
- }
- static deleteMyLocalmsg(msg: Message){//删除单个消息 DELETE FROM users WHERE id IN (100, 101);
- var sql='DELETE FROM lcmsglist_'+Auth.getUserName()+' WHERE id=='+JSON.stringify(msg.localtime);
- console.log('sql',sql);
- // console.log(name);
- plus.sqlite.executeSql({
- name: name,
- sql:sql,// 'select * from userfl',
- success: function(data){
- //console.log('deleteMyLocalmsg success: ',data);
- return data;
- },
- fail: function(e){
- console.log('deleteMyLocalmsg: ',e);
- return false;
- }
- });
- }
-
- }
- export default DBactApi;
|