// import { CollectionHbzbUserCross } from '../../module/collection_hbzb_user_cross';
// import { fightResult } from '../../shared/fightControl/fightType';
// import { rankType } from '../../shared/protocols/rank/PtlOpen';
// import { rankInfo } from '../../shared/protocols/type';
// import { FightFun } from '../fight';
// import { Rank } from './rank';


// export class RankHbzbJfsLocal extends Rank {
//     countMaxNum = 300;
//     getType(): rankType {
//         return 'hbzbLocal';
//     }
//     // compare(other: rankInfo, cur: rankInfo): boolean {
//     //     return cur.valArr[0] > other.valArr[0];
//     // }
//     // compareSort(a: rankInfo, b: rankInfo): number {
//     //     return b.valArr[0] - a.valArr[0];
//     // }
//     // // 积分, 排名依据
//     // getValArr(info: rankInfo):number|string {
//     //     return info?.valArr[0] || 0
//     // }
//     // async getRankList(uid: string, {min, max}) {
//     //     let conn = G.server.uid_connections[uid];
//     //     let rankList = await this.getRankListRange(min, max);
//     //     let rank = await this.getRankSortByOne(uid);
//     //     let score = await this.getRankScore(uid)

//     //     return {
//     //         rankList: rankList,
//     //         myRank: {
//     //             rank: rank,
//     //             player: conn.gud,
//     //             valArr: [score]
//     //         }
//     //     };
//     // }
//     async getCrossRankList(uid: string, page = 0, offset = 50) {
//         let conn = G.server.uid_connections[uid];
//         let callRes = await G.clientCross.callApi('hbzb/jfs/GetRankList', { uid: uid, page , offset });
//         let list = callRes.res.rankList;
//         let myRankIndex = list.findIndex(li => li.player.uid == uid);

//         return {
//             rankList: list,
//             myRank: {
//                 rank: myRankIndex,
//                 player: conn.gud,
//                 valArr: [callRes.res.jifen]
//             }
//         };
//     }
//     async getZbsRankList(uid: string, page = 0, offset = 50) {
//         let conn = G.server.uid_connections[uid];
//         let callRes = await G.clientCross.callApi('hbzb/zbs/GetRankList', { page, offset });
//         let list = callRes.res.rankList;
//         let myRankIndex = list.findIndex(li => li.player.uid == uid);

//         return {
//             rankList: list,
//             myRank: {
//                 rank: myRankIndex,
//                 player: conn.gud,
//                 valArr: []
//             }
//         };
//     }
//     async addNew(info: rankInfo, isNew = false) {
//         super.addNew(info);
//         await G.clientCross.sendMsg('msg_cross/HbzbSendUser', { user: info, isNew: isNew });
//     }
// }

// export class RankHbzbJfsCross extends RankHbzbJfsLocal {
//     countMaxNum = 100;
//     getType(): rankType {
//         return 'hbzbCross';
//     }

//     async addNew(info: rankInfo) {
//         let data = {
//             player: info.player,
//             roles: info.roles
//         }
//         G.mongodb.collection('hbzb_user_cross').updateOne({ uid: info.player.uid }, { $set: { jifen: info.valArr[0], data: data } }, { upsert: true });
//         this.setRankData(info.player.uid, info)
//         Rank.prototype.addNew.call(this, info);
//     }

//     // allPlayer: k_v<CollectionHbzbUserCross> = {};

//     // 初始化
//     async loadAllPlayer() {
//         // if(await this.getRankLen() > 0) return 
//         // let players = await G.mongodb.collection('hbzb_user_cross').find().toArray();
//         // players.forEach(item => {
//         //     if(item.uid && item.data) {
//         //         // 格式与其它排行榜不同，同步格式。
//         //         let data:rankInfo = {
//         //             player: item.data.player,
//         //             roles: item.data.roles,
//         //             valArr: [item.jifen]
//         //         }
//         //         this.setRankData(item.uid, data)
//         //     }
//         // })
//     }

//     // 添加默认数据
    

//     async addJfsLog(uid: string, fightLog: fightResult) {
//         if (uid.indexOf('npc') != -1) return;
//         FightFun.saveLog(uid, 'hbzbJfs', fightLog);
//     }
// }

// export class RankHbzbZbsCross extends Rank {
//     countMaxNum = 150;
//     getType(): rankType {
//         return 'hbzbZbsCross';
//     }
//     compare(other: rankInfo, cur: rankInfo): boolean {
//         return false;
//     }
//     compareSort(a: rankInfo, b: rankInfo): number {
//         if (a.valArr[0] != b.valArr[0]) return a.valArr[0] - b.valArr[0]
//         else return b.player.power - a.player.power
//     }

//     // 积分, 排名依据, 相同积分情况需计算power，排名内值仅计算排名用，power值除10的9次方，让其作为小数位进入计算
//     getValArr(info: rankInfo):number|string {
//         let valArr = info?.valArr[0] || 0
//         let power = info?.player?.power || 0
//         let res = valArr + power / (10 ** 9)
//         return res
//     }
//     async changeRank(uid: string, toUid: string) {
//         let role1 = await this.getRankData(uid);
//         let role2 = await this.getRankData(toUid);

//         if (role1 && role2 && role1.valArr[0] > role2.valArr[0]) {
//             let temp = role1.valArr[0];
//             role1.valArr[0] = role2.valArr[0];
//             role2.valArr[0] = temp;

//             this.addNew(role1);
//             this.addNew(role2);
//         }
//     }
//     // async getRankList(uid: string, {min, max}) {
//     //     let rankList = await this.getRankListRange(min, max);
//     //     // let conn = rankList.find(li => li.player.uid == uid);
//     //     let data = await this.getRankData(uid)

//     //     return {
//     //         rankList: rankList,
//     //         myRank: {
//     //             rank: await this.getRankSortByOne(uid),
//     //             player: data?.player || {}
//     //         }
//     //     };
//     // }
//     async addNew(info: rankInfo) {

//         this.queue.enqueue(async () => {
//             // 原逻辑排名最高50条，更新ranklist内排名数据，
//             // let rankList = await this.getRankListRange(); 
//             // let myIndex = rankList.findIndex(li => li.player[this.findKey] == info.player[this.findKey]);
//             // if (myIndex != -1) {
//             //     rankList[myIndex] = info;
//             // }
//             // 当前更新redis相关数据即可
//             this.setRankData(info.player[this.findKey], info)
//             this.db.updateOne({ type: this.type, idKey: info.player[this.findKey] }, { $set: { data: info } }, { upsert: true });
//             // rankList.sort(this.compareSort);
//         });
//     }
// }