import { ApiCall } from "tsrpc"; import { RedisCollections2 } from '../../module/redis'; import { ReqGetList, ResGetList } from "../../shared/protocols/hero/PtlGetList"; export default async function (call: ApiCall) { let list: ResGetList['list'] = {}; //let kvList: k_v = {}; let arrList = await G.mongodb.collection('hero').find({ uid: call.uid }).toArray(); let heroCon = G.gc.hero; let color = {}; let maxherolv = 0; arrList.forEach(v => { let d = G.mongodb.conversionIdObj(v); //kvList[G.formatRedisKey(d._id)] = d; list[d._id] = d; if (v.lv > maxherolv) maxherolv = v.lv; if (!color[heroCon[v.heroId].colour]) color[heroCon[v.heroId].colour] = 0; color[heroCon[v.heroId].colour] += 1; }); // 记录玩家最大等级,颜色相关数据 注册任务用 await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({ uid: call.conn.uid, type: 'usertasklog' }, { $set: { maxherolv: maxherolv, herocolor: color } }, { upsert: true }); //G.redis.set('hero', call.uid, kvList); let recLshd = await G.mongodb.collection('playerInfo', 'lshd_hero').findOne({ uid: call.conn.uid, type: 'lshd_hero' }); let { uid, _id, type, ...heros } = (recLshd || {}); call.conn.lshd.hero = heros || {}; call.succ({ list: list, pos: call.conn.heroPos, lshd: heros || {}, gbzj: (await G.mongodb.cPlayerInfo('gbzj').findOne({ uid: call.uid, type: 'gbzj' }))?.rec || {} }); }