Commit a7604524 by Sixong.Zhu

u

parent 7216aa65
Showing with 42 additions and 12 deletions
...@@ -16,7 +16,7 @@ class ChatCacheDatabaseController { ...@@ -16,7 +16,7 @@ class ChatCacheDatabaseController {
private setuping = false; private setuping = false;
private waitSetupCompleted() { private waitSetupCompleted() {
return new Promise<void>(resolve => { return new Promise<void>((resolve) => {
const checker = () => { const checker = () => {
if (!this.setuping) { if (!this.setuping) {
resolve(); resolve();
...@@ -57,17 +57,17 @@ class ChatCacheDatabaseController { ...@@ -57,17 +57,17 @@ class ChatCacheDatabaseController {
} }
resolve(); resolve();
}; };
r.onsuccess = function(e) { r.onsuccess = function (e) {
that.db = (e.target as any).result; that.db = (e.target as any).result;
console.log(`index database init comepleted`); console.log(`index database init comepleted`);
setupDb(); setupDb();
}; };
r.onupgradeneeded = function(e) { r.onupgradeneeded = function (e) {
that.db = (e.target as any).result; that.db = (e.target as any).result;
console.log(`upgrade database comepleted`); console.log(`upgrade database comepleted`);
setupDb(); setupDb();
}; };
r.onerror = function(e) { r.onerror = function (e) {
console.log(`index database init failed, ${e}`); console.log(`index database init failed, ${e}`);
}; };
} else { } else {
...@@ -94,17 +94,17 @@ class ChatCacheDatabaseController { ...@@ -94,17 +94,17 @@ class ChatCacheDatabaseController {
} }
setTimeout(() => resolve(), 200); setTimeout(() => resolve(), 200);
}; };
r.onsuccess = function(e) { r.onsuccess = function (e) {
const db = (e.target as any).result; const db = (e.target as any).result;
that.messageDatabases.set(k, db); that.messageDatabases.set(k, db);
setupDb(); setupDb();
}; };
r.onupgradeneeded = function(e) { r.onupgradeneeded = function (e) {
const db = (e.target as any).result; const db = (e.target as any).result;
that.messageDatabases.set(k, db); that.messageDatabases.set(k, db);
setupDb(); setupDb();
}; };
r.onerror = function(e) { r.onerror = function (e) {
console.log( console.log(
`chat message index database init failed, ${e}` `chat message index database init failed, ${e}`
); );
...@@ -158,6 +158,30 @@ class ChatCacheDatabaseController { ...@@ -158,6 +158,30 @@ class ChatCacheDatabaseController {
p.eid && (chat.last_msg_sender = p.eid); p.eid && (chat.last_msg_sender = p.eid);
p.type && (chat.last_msg_type = p.type); p.type && (chat.last_msg_type = p.type);
p.msg && (chat.last_msg_content = p.msg); p.msg && (chat.last_msg_content = p.msg);
p.set2Read && (chat.unread_msg_count = 0);
const u = store.put(chat, chat.id);
u.onsuccess = () => resolve();
u.onerror = () => resolve();
} else {
resolve();
}
};
t.onerror = () => resolve();
} else {
resolve();
}
});
}
public setRead(chat: number) {
return new Promise<void>((resolve) => {
if (this.db) {
const store = this.buildStore(this.chatListKey);
const t = store.get(chat);
t.onsuccess = (r) => {
const chat = (r.target as any).result as Chat;
if (chat) {
chat.unread_msg_count = 0;
const u = store.put(chat, chat.id); const u = store.put(chat, chat.id);
u.onsuccess = () => resolve(); u.onsuccess = () => resolve();
u.onerror = () => resolve(); u.onerror = () => resolve();
......
...@@ -322,9 +322,13 @@ export namespace ChatStore { ...@@ -322,9 +322,13 @@ export namespace ChatStore {
export const ACTION_TERINATE_CHAT = "结束会话"; export const ACTION_TERINATE_CHAT = "结束会话";
export type ACTION_TERINATE_CHAT = () => Promise<void>; export type ACTION_TERINATE_CHAT = () => Promise<void>;
export const ACTION_CHAT_ADD_MEMBERS = "添加成员"; export const ACTION_CHAT_ADD_MEMBERS = "添加成员";
export type ACTION_CHAT_ADD_MEMBERS = (uids: (string | number)[]) => Promise<void>; export type ACTION_CHAT_ADD_MEMBERS = (
uids: (string | number)[]
) => Promise<void>;
export const ACTION_CHAT_REMOVE_MEMBER = "移除成员"; export const ACTION_CHAT_REMOVE_MEMBER = "移除成员";
export type ACTION_CHAT_REMOVE_MEMBER = (uids: (string | number)[]) => Promise<void>; export type ACTION_CHAT_REMOVE_MEMBER = (
uids: (string | number)[]
) => Promise<void>;
export const ACTION_CHAT_ADD_CS = "添加客服"; export const ACTION_CHAT_ADD_CS = "添加客服";
export type ACTION_CHAT_ADD_CS = (uids: string[]) => Promise<void>; export type ACTION_CHAT_ADD_CS = (uids: string[]) => Promise<void>;
...@@ -352,8 +356,10 @@ export namespace ChatStore { ...@@ -352,8 +356,10 @@ export namespace ChatStore {
export const ACTION_SET_CHAT_ERROR = "标记会话关键性错误"; export const ACTION_SET_CHAT_ERROR = "标记会话关键性错误";
export type ACTION_SET_CHAT_ERROR = (chat: number) => void; export type ACTION_SET_CHAT_ERROR = (chat: number) => void;
export const ACTION_GET_USERINFO = '获取用户个人信息'; export const ACTION_GET_USERINFO = "获取用户个人信息";
export type ACTION_GET_USERINFO = (id: string) => Promise<{ id: string; name: string }> export type ACTION_GET_USERINFO = (
id: string
) => Promise<{ id: string; name: string }>;
export interface ChatUpdateParameter { export interface ChatUpdateParameter {
chat: number; chat: number;
...@@ -361,7 +367,7 @@ export namespace ChatStore { ...@@ -361,7 +367,7 @@ export namespace ChatStore {
msg?: string; msg?: string;
ts?: number; ts?: number;
eid?: string; eid?: string;
unread?: number; set2Read?: boolean;
} }
export const ACTION_UPDATE_CHAT = "更新会话信息"; export const ACTION_UPDATE_CHAT = "更新会话信息";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment