1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import TableHelper from './lib/TableHelper'
- import User from './User'
- import { decryptoMsg } from '@/util/util.js'
- class Message extends TableHelper {
- constructor () {
- super('message')
- }
- async getMsg (sessionId, limit = 100) {
- if (!sessionId) return null
- let objTable = await this.getObjTable()
- var lowerBound = [sessionId, 0]
- var upperBound = [sessionId, 999999999999999]
- let keyRangeValue = IDBKeyRange.bound(lowerBound, upperBound)
- let cursor = await objTable.index('session_id').openCursor(keyRangeValue, 'prev')
- let list = []
- let userIds = {}
- // let list2 = []
- while (cursor && cursor.value) {
- let value = cursor.value
- if (list.length < limit && value['session_id'] === sessionId) {
- if (value.msg_type == 4) {
- // 针对红包类型
- try {
- if (typeof value.msg === 'string') {
- value.msg = JSON.parse(decryptoMsg(value.msg))
- }
- } catch (ex) {
- console.error(ex)
- }
- } else {
- value.msg = decryptoMsg(value.msg)
- }
- list.unshift(value)
- userIds[value.from] = value.from
- if (value.to) {
- userIds[value.to] = value.to
- }
- cursor = await cursor.continue()
- } else {
- break
- }
- }
- let objUser = new User()
- let userMap = await objUser.getUserMap(userIds)
- return { list, userMap }
- }
- async updatePackInfo (hash, type, value) {
- let objTable = await this.getObjTable()
- let obj = await objTable.get(hash)
- obj.ext[type] = value
- objTable.put(obj)
- }
- }
- export default Message
|