39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { ApiCall } from "tsrpc";
|
|
import { RedisCollections2 } from '../../module/redis';
|
|
import { ReqGetList, ResGetList } from "../../shared/protocols/hero/PtlGetList";
|
|
|
|
export default async function (call: ApiCall<ReqGetList, ResGetList>) {
|
|
let list: ResGetList['list'] = {};
|
|
//let kvList: k_v<RedisCollections2['hero']> = {};
|
|
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 || {}
|
|
});
|
|
} |