diff --git a/src/api_s2c/equip/ApiGetList.ts b/src/api_s2c/equip/ApiGetList.ts index 6a258c8..06208e1 100644 --- a/src/api_s2c/equip/ApiGetList.ts +++ b/src/api_s2c/equip/ApiGetList.ts @@ -4,7 +4,7 @@ import { ReqGetList, ResGetList } from "../../shared/protocols/equip/PtlGetList" export default async function (call: ApiCall) { let list: ResGetList['list'] = {}; - let kvList: k_v = {}; + //let kvList: k_v = {}; let arrList = await G.mongodb.collection('equip').find({ uid: call.uid }).toArray(); let equipCon = G.gc.equip @@ -12,7 +12,7 @@ export default async function (call: ApiCall) { let maxequiplv = 0 arrList.forEach(v => { let d = G.mongodb.conversionIdObj(v); - kvList[G.formatRedisKey(d._id)] = d; + //kvList[G.formatRedisKey(d._id)] = d; list[d._id] = d; if (v.lv > maxequiplv) maxequiplv = v.lv @@ -24,7 +24,7 @@ export default async function (call: ApiCall) { await G.mongodb.collection('playerInfo', 'usertasklog').updateOne({ uid: call.conn.uid, type: 'usertasklog' }, { $set: { maxequiplv: maxequiplv, equipcolor: color } }, { upsert: true }) - G.redis.set('equip', call.uid, kvList); + //G.redis.set('equip', call.uid, kvList); let recLshd = await G.mongodb.collection('playerInfo', 'lshd_equip').findOne({ uid: call.conn.uid, type: 'lshd_equip' }); let { uid, _id, type, ...equips } = (recLshd || {}); diff --git a/src/api_s2c/equip/ApiOneKeyWear.ts b/src/api_s2c/equip/ApiOneKeyWear.ts index 0041b08..1b6e93e 100644 --- a/src/api_s2c/equip/ApiOneKeyWear.ts +++ b/src/api_s2c/equip/ApiOneKeyWear.ts @@ -14,7 +14,7 @@ export default async function (call: ApiCall !!i) diff --git a/src/api_s2c/equip/ApiStarUp.ts b/src/api_s2c/equip/ApiStarUp.ts index 360a245..e689c64 100644 --- a/src/api_s2c/equip/ApiStarUp.ts +++ b/src/api_s2c/equip/ApiStarUp.ts @@ -11,7 +11,7 @@ import { PublicShared } from "../../shared/public/public"; export default async function (call: ApiCall) { - let equip = await G.redis.get('equip', call.uid, call.req.equipId); + let equip = await EquipFun.getEquip(call, call.req.equipId); if (!equip) return call.error(globalThis.lng.equip_1); if (!G.gc.equipstar[equip.equipId]) return call.error(globalThis.lng.equip_4); @@ -28,7 +28,7 @@ export default async function (call: ApiCall) for (let _id of call.req.equipArr) { //遍历客户端传过来的所有装备,如果不存在或处于穿戴中,则报错 - let equip = await G.redis.get('equip', call.conn.uid, _id); + let equip = await EquipFun.getEquip(call, _id); if (!equip) return call.error(globalThis.lng.equip_6); if (equip.wearaId) return call.error(globalThis.lng.equip_7); equipArr.push(equip); diff --git a/src/api_s2c/equip/ApiTakeOff.ts b/src/api_s2c/equip/ApiTakeOff.ts index 85d07ee..568e288 100644 --- a/src/api_s2c/equip/ApiTakeOff.ts +++ b/src/api_s2c/equip/ApiTakeOff.ts @@ -5,7 +5,7 @@ import { ServiceType } from '../../shared/protocols/serviceProto'; import kfjsFun from "../../public/kaifujingsai"; export default async function (call: ApiCall) { - let equip = await G.redis.get('equip', call.conn.uid, call.req.equipId); + let equip = await EquipFun.getEquip(call, call.req.equipId); if (!equip) return call.error(globalThis.lng.equip_1); if (!equip.wearaId) return call.error(globalThis.lng.equip_9); diff --git a/src/api_s2c/equip/ApiWear.ts b/src/api_s2c/equip/ApiWear.ts index edea5c0..471d385 100644 --- a/src/api_s2c/equip/ApiWear.ts +++ b/src/api_s2c/equip/ApiWear.ts @@ -12,7 +12,7 @@ export default async function (call: ApiCall) { if (!hero) return call.error(globalThis.lng.equip_10); if (hero.lv < G.gc.herocom.equipOpenLv) return call.error(`英雄${G.gc.herocom.equipOpenLv}级开启`); - let equip = await G.redis.get('equip', call.conn.uid, call.req.equipId); + let equip = await EquipFun.getEquip(call, call.req.equipId); if (!equip) return call.error(globalThis.lng.equip_1); if (equip.wearaId == hero._id) return call.error(globalThis.lng.equip_11); diff --git a/src/public/equip.ts b/src/public/equip.ts index 2238215..0cfba4e 100644 --- a/src/public/equip.ts +++ b/src/public/equip.ts @@ -27,9 +27,9 @@ export class EquipFun { Object.assign(equip, change); - for (let k in change) { - G.redis.set('equip', call.uid, equip._id, k as keyof CollectionEquip, change[k]); - } + // for (let k in change) { + // G.redis.set('equip', call.uid, equip._id, k as keyof CollectionEquip, change[k]); + // } G.mongodb.collection('equip').updateOne({uid: call.uid, _id: new ObjectId(equip._id)}, {$set: {...change}}); call.addEventMsg('msg_s2c/EquipChange', equip._id, change); } @@ -37,24 +37,37 @@ export class EquipFun { /** * 获取装备 */ - static async getEquip(call: ApiCall, oid: string): Promise; - static async getEquip(call: ApiCall, oid: string[]): Promise; - static async getEquip(call: ApiCall, oid: string | string[]) { + static async getEquip(call: ApiCall, oid?: string): Promise; + static async getEquip(call: ApiCall, oid?: string[]): Promise; + static async getEquip(call: ApiCall, oid?: string | string[]) { if (typeof oid == 'string') { - let data = await G.redis.get('equip', call.uid, oid); - if (!data) { - let {_id, ...info} = await G.mongodb.collection('equip').findOne({ - _id: G.mongodb.conversionId(oid) - }) - data = Object.assign({_id: _id.toHexString()}, info) - } + let {_id, ...info} = await G.mongodb.collection('equip').findOne({ + _id: G.mongodb.conversionId(oid) + }) + let data = Object.assign({_id: _id.toHexString()}, info) return data } else { - let equips = await G.mongodb.collection('equip').find({ + let filter = { uid: call.uid, - _id: {$in: oid.map(v => G.mongodb.conversionId(v))} - }).toArray(); + } + if(oid && oid.length > 0){ + filter['_id'] = {$in: oid.map(v => G.mongodb.conversionId(v))} + } + let equips = await G.mongodb.collection('equip').find(filter).toArray(); return equips.map(v => G.mongodb.conversionIdObj(v)); } } + + /** + * 获取所有的装备 + * 并对返回结果进行格式化,兼容原来的redis返回的格式 + */ + static async getAllEquips(call: ApiCall):Promise>{ + let res = {}; + let equips:CollectionEquip[] = await this.getEquip(call,[]); + equips.map(v => { + res['_'+v._id] = v; + }); + return res; + } } \ No newline at end of file diff --git a/src/public/player.ts b/src/public/player.ts index 09ded2c..d8322dd 100644 --- a/src/public/player.ts +++ b/src/public/player.ts @@ -350,10 +350,10 @@ export class PlayerFun { let id = result.insertedIds[key].toHexString(); let {_id, ...ops} = v; - G.redis.set('equip', call.uid, id, { - _id: id, - ...ops - }); + // G.redis.set('equip', call.uid, id, { + // _id: id, + // ...ops + // }); Wjjl.setVal(call.uid, `has_equip_color_${G.gc.equip[ops.equipId].colour}`, 1, false); diff --git a/src/setRedis.ts b/src/setRedis.ts index 484d2a4..0ea3cdd 100644 --- a/src/setRedis.ts +++ b/src/setRedis.ts @@ -76,8 +76,7 @@ async function clearRedis() { G.redis.fromatKey('user'), G.redis.fromatKey('item'), G.redis.fromatKey('hero'), - - //G.redis.fromatKey('equip'), + G.redis.fromatKey('equip'), //G.redis.fromatKey('shiwu'), //G.redis.fromatKey('gbtx'), //G.redis.fromatKey('dxlt'),