🐞 fix(gvg): 云台贡献接口名错误修改
This commit is contained in:
@@ -2,17 +2,17 @@ import { Application, BackendSession, ChannelService, HandlerService, pinus } fr
|
||||
import { GVG_ITEM, DATA_NAME, GVG_ACTIVE_TYPE, GVG_PERIOD, GVG_SERVER_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, LEAGUE_MANAGE_TYPE, STATUS, GVG_REC_TYPE, TASK_TYPE } from "../../../consts";
|
||||
import { GVGLeagueModel } from "../../../db/GVGLeague";
|
||||
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
|
||||
import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData";
|
||||
import { GVGMainData, LeagueContributeInfo, LeagueMemberContributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType, getServerTypeByTime } from "../../../services/gvg/gvgService";
|
||||
import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService";
|
||||
import { getAllServerName } from "../../../services/redisService";
|
||||
import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData";
|
||||
import { Contribute, GVGUserDataModel } from "../../../db/GVGUserData";
|
||||
import { GVGUserItemModel } from "../../../db/GVGUserItem";
|
||||
import { GVGUserTaskModel } from "../../../db/GVGUserTask";
|
||||
import { GVG } from "../../../pubUtils/dicParam";
|
||||
import { RoleModel } from "../../../db/Role";
|
||||
import { addGVGTechActive, calFighterDistribute, calProducerDistribute, checkPreTech, checkTechIsIng, getDailyLoginReward, getMyDistribute } from "../../../services/gvg/gvgPrepareService";
|
||||
import { addGVGTechActive, calFighterContribute, calProducerContribute, checkPreTech, checkTechIsIng, getDailyLoginReward, getMyContribute } from "../../../services/gvg/gvgPrepareService";
|
||||
import { GVGUserDailyDataModel } from "../../../db/GVGUserDailyData";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { lockLeagueData } from "../../../services/redLockService";
|
||||
@@ -153,7 +153,7 @@ export class GVGHandler {
|
||||
}
|
||||
|
||||
// 查看贡献
|
||||
async getDistribute(msg: {}, session: BackendSession) {
|
||||
async getContribute(msg: {}, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const guildCode = session.get('guildCode');
|
||||
|
||||
@@ -169,35 +169,35 @@ export class GVGHandler {
|
||||
const serverNames = await getAllServerName();
|
||||
|
||||
const myUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
||||
const { distribute = new Distribute(), box = [] } = myUserData||{};
|
||||
const { contribute = new Contribute(), box = [] } = myUserData||{};
|
||||
const userDatas = await GVGUserDataModel.findByRoles(configId, myLeague.leagueCode, roleIds);
|
||||
|
||||
const result: LeagueDistributeInfo[] = [];
|
||||
const result: LeagueContributeInfo[] = [];
|
||||
for(let curJob of [LEAGUE_JOB.PRODUCER, LEAGUE_JOB.FIGHTER]) {
|
||||
const memberResult: LeagueMemberDistributeInfo[] = [];
|
||||
const memberResult: LeagueMemberContributeInfo[] = [];
|
||||
for(let member of members) {
|
||||
let role = roles.find(role => role.roleId == member.roleId);
|
||||
if(!role) continue;
|
||||
let userData = userDatas.find(userData => userData.roleId == member.roleId);
|
||||
let obj = new LeagueMemberDistributeInfo(role, serverNames);
|
||||
let obj = new LeagueMemberContributeInfo(role, serverNames);
|
||||
obj.setAuth(member.auth);
|
||||
obj.setByUserData(userData);
|
||||
if(curJob == LEAGUE_JOB.PRODUCER && calProducerDistribute(obj) > 0) memberResult.push(obj);
|
||||
if(curJob == LEAGUE_JOB.PRODUCER && calProducerContribute(obj) > 0) memberResult.push(obj);
|
||||
if(curJob == LEAGUE_JOB.FIGHTER && obj.score > 0) memberResult.push(obj);
|
||||
}
|
||||
|
||||
memberResult.sort((a, b) => {
|
||||
return curJob == LEAGUE_JOB.PRODUCER? calProducerDistribute(b) - calProducerDistribute(a): calFighterDistribute(b) - calFighterDistribute(a);
|
||||
return curJob == LEAGUE_JOB.PRODUCER? calProducerContribute(b) - calProducerContribute(a): calFighterContribute(b) - calFighterContribute(a);
|
||||
});
|
||||
for(let i = 0; i < memberResult.length; i++) {
|
||||
memberResult[i].setRank(i + 1);
|
||||
}
|
||||
let sumDistribute = curJob == LEAGUE_JOB.PRODUCER? calProducerDistribute(distribute): calFighterDistribute(distribute);
|
||||
let sumContribute = curJob == LEAGUE_JOB.PRODUCER? calProducerContribute(contribute): calFighterContribute(contribute);
|
||||
let boxReceived = box.filter(boxId => {
|
||||
let dicBox = gameData.gvgContributeBox.get(boxId);
|
||||
return dicBox.job == curJob;
|
||||
});
|
||||
let disObj = new LeagueDistributeInfo(curJob, sumDistribute, boxReceived);
|
||||
let disObj = new LeagueContributeInfo(curJob, sumContribute, boxReceived);
|
||||
disObj.setMembers(memberResult);
|
||||
result.push(disObj)
|
||||
}
|
||||
@@ -206,7 +206,7 @@ export class GVGHandler {
|
||||
const myRanks = await GVGVestigeRankModel.findAllByRole(roleId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
myDistribute: getMyDistribute(userDailyData, myRanks),
|
||||
myContribute: getMyContribute(userDailyData, myRanks),
|
||||
list: result
|
||||
});
|
||||
}
|
||||
@@ -229,17 +229,17 @@ export class GVGHandler {
|
||||
if(!dicBox) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let myUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId);
|
||||
let { distribute = new Distribute(), box = [] } = myUserData||{};
|
||||
let { contribute = new Contribute(), box = [] } = myUserData||{};
|
||||
|
||||
if(box.indexOf(boxId) != -1) return resResult(STATUS.GVG_BOX_HAS_RECEIVED)
|
||||
let sumDistribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerDistribute(distribute): calFighterDistribute(distribute);
|
||||
if(sumDistribute < dicBox.boxPoint) return resResult(STATUS.GVG_BOX_POINT_NOT_ENOUGH);
|
||||
let sumContribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerContribute(contribute): calFighterContribute(contribute);
|
||||
if(sumContribute < dicBox.boxPoint) return resResult(STATUS.GVG_BOX_POINT_NOT_ENOUGH);
|
||||
|
||||
const leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, dicBox.boxLeagueReward, dicBox.boxReward, ITEM_CHANGE_REASON.GVG_RECEIVE_BOX);
|
||||
myUserData = await GVGUserDataModel.receiveBox(configId, myLeague.leagueCode, roleId, boxId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
sumDistribute,
|
||||
sumContribute,
|
||||
receivedBox: myUserData.box,
|
||||
leagueGoods
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@ import { nowSeconds } from "../../../pubUtils/timeUtil";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { getGVGCities } from "../../../services/gvg/gvgBattleService";
|
||||
import { addGVGReward, getProduceCoinCnt, handleGVGCost } from "../../../services/gvg/gvgItemService";
|
||||
import { addGVGActive, addResource, getCostSeedReward, getItemIdOfSeedType, getLeagueFarmShowResult, getLockFieldCnt, getmyDistributeRank, rollbackUnPlantFields, lockField, calFarmOutput, sumOutputByResults, lockMineOrForestry, calMineOutput, calForestryOutput, checkItemCanUserInFarm } from "../../../services/gvg/gvgPrepareService";
|
||||
import { addGVGActive, addResource, getCostSeedReward, getItemIdOfSeedType, getLeagueFarmShowResult, getLockFieldCnt, getmyContributeRank, rollbackUnPlantFields, lockField, calFarmOutput, sumOutputByResults, lockMineOrForestry, calMineOutput, calForestryOutput, checkItemCanUserInFarm } from "../../../services/gvg/gvgPrepareService";
|
||||
import { getGVGConfig, getGVGPeriodData } from "../../../services/gvg/gvgService";
|
||||
import { sendMailByContent } from "../../../services/mailService";
|
||||
import { getAllServerName, getRoleOnlineInfo } from "../../../services/redisService";
|
||||
@@ -151,7 +151,7 @@ export class GVGProduceHandler {
|
||||
if(dicResource.type == GVG_RESOURCE_TYPE.FOOD) {
|
||||
await lockField(myLeague.leagueCode, roleId, roleName, farmId);
|
||||
}
|
||||
const myRank = await getmyDistributeRank(myLeague.leagueCode, myLeague.members, roleId);
|
||||
const myRank = await getmyContributeRank(myLeague.leagueCode, myLeague.members, roleId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId),
|
||||
@@ -313,7 +313,7 @@ export class GVGProduceHandler {
|
||||
|
||||
const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId);
|
||||
if(!lockResult) return resResult(STATUS.GVG_MINE_HAS_LOCKED);
|
||||
const myRank = await getmyDistributeRank(myLeague.leagueCode, myLeague.members, roleId);
|
||||
const myRank = await getmyContributeRank(myLeague.leagueCode, myLeague.members, roleId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false),
|
||||
@@ -440,7 +440,7 @@ export class GVGProduceHandler {
|
||||
|
||||
const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId);
|
||||
if(!lockResult) return resResult(STATUS.GVG_MINE_HAS_LOCKED);
|
||||
const myRank = await getmyDistributeRank(myLeague.leagueCode, myLeague.members, roleId);
|
||||
const myRank = await getmyContributeRank(myLeague.leagueCode, myLeague.members, roleId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false),
|
||||
|
||||
@@ -78,7 +78,7 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
case "guild.gvgHandler.getData":
|
||||
case "guild.gvgHandler.getMap":
|
||||
case "guild.gvgHandler.getRec":
|
||||
case "guild.gvgHandler.getDistribute":
|
||||
case "guild.gvgHandler.getContribute":
|
||||
case "guild.gvgHandler.getTech":
|
||||
case "guild.gvgManageHandler.getApplies":
|
||||
case "guild.gvgManageHandler.getLeagueInvitations":
|
||||
|
||||
@@ -38,12 +38,12 @@ export function checkTechIsIng(techId: number, activeQueue: number[], techQueue:
|
||||
return techQueue.findIndex(cur => cur.id == techId) != -1 || activeQueue.indexOf(techId) != -1
|
||||
}
|
||||
|
||||
export function calProducerDistribute(obj: { food: number, mineral: number, wood: number }) {
|
||||
export function calProducerContribute(obj: { food: number, mineral: number, wood: number }) {
|
||||
let { food = 0, mineral = 0, wood = 0 } = obj||{};
|
||||
return food + mineral + wood;
|
||||
}
|
||||
|
||||
export function calFighterDistribute(obj: { score: number }) {
|
||||
export function calFighterContribute(obj: { score: number }) {
|
||||
return obj?.score||0
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ export async function getDailyLoginReward(roleId: string, roleName: string, sid:
|
||||
return null;
|
||||
}
|
||||
|
||||
export function getMyDistribute(userDailyData: GVGUserDailyDataType, myRanks: {vestigeId: number, rank: number}[]) {
|
||||
export function getMyContribute(userDailyData: GVGUserDailyDataType, myRanks: {vestigeId: number, rank: number}[]) {
|
||||
let score = 0;
|
||||
for(let { vestigeId, rank} of myRanks) {
|
||||
let dicRankMap = gameData.gvgVestige.get(vestigeId);
|
||||
@@ -129,10 +129,10 @@ export async function addResource(leagueCode: string, roleId: string, roleName:
|
||||
let userDailyData = await GVGUserDailyDataModel.addResource(configId, leagueCode, roleId, food, mineral, wood);
|
||||
let myRanks = await GVGVestigeRankModel.findAllByRole(roleId);
|
||||
|
||||
let myDistribute = getMyDistribute(userDailyData, myRanks);
|
||||
let myContribute = getMyContribute(userDailyData, myRanks);
|
||||
addResourceRecord(roleId, roleName, leagueCode, resourceType, count);
|
||||
|
||||
return { resource: league.resources, leagueLv: league.lv, myDistribute }
|
||||
return { resource: league.resources, leagueLv: league.lv, myContribute }
|
||||
}
|
||||
|
||||
function getResourceCnt(resourceType: GVG_RESOURCE_TYPE, count: number) {
|
||||
@@ -284,12 +284,12 @@ export async function getLockFieldCnt(leagueCode: string, roleId: string) {
|
||||
return items.reduce((pre, cur) => pre + cur.count, 0);
|
||||
}
|
||||
|
||||
export async function getmyDistributeRank(leagueCode: string, members: { roleId: string }[], targetRoleId: string) {
|
||||
export async function getmyContributeRank(leagueCode: string, members: { roleId: string }[], targetRoleId: string) {
|
||||
let { configId } = getGVGConfig();
|
||||
|
||||
const roleIds = members.map(member => member.roleId);
|
||||
const userDatas = await GVGUserDataModel.findByRoles(configId, leagueCode, roleIds);
|
||||
userDatas.sort((a, b) => calProducerDistribute(b.distribute) - calProducerDistribute(a.distribute));
|
||||
userDatas.sort((a, b) => calProducerContribute(b.contribute) - calProducerContribute(a.contribute));
|
||||
for(let i = 0; i < userDatas.length; i++) {
|
||||
if(userDatas[i].roleId == targetRoleId) return i + 1;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ class ActiveRec {
|
||||
}
|
||||
}
|
||||
|
||||
export class Distribute {
|
||||
export class Contribute {
|
||||
@prop({ required: true, default: 0 })
|
||||
food: number = 0; // 粮食
|
||||
@prop({ required: true, default: 0 })
|
||||
@@ -60,7 +60,7 @@ export default class GVGUserData extends BaseModel {
|
||||
box: number[];
|
||||
|
||||
@prop({ required: true, default: {}, _id: false })
|
||||
distribute: Distribute;
|
||||
contribute: Contribute;
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
sendFightRewardTime: number; // 发送征战奖励的时间
|
||||
@@ -103,14 +103,14 @@ export default class GVGUserData extends BaseModel {
|
||||
const result: GVGUserDataType = await GVGUserDataModel.findOneAndUpdate({
|
||||
configId, leagueCode, roleId
|
||||
}, {
|
||||
$inc: { 'distribute.food': food, 'distribute.mineral': mineral, 'distribute.wood': wood }
|
||||
$inc: { 'contribute.food': food, 'contribute.mineral': mineral, 'contribute.wood': wood }
|
||||
}, { new: true, upsert: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async addVestigeScores(configId: number, memberScores: { leagueCode: string, roleId: string, score: number }[]) {
|
||||
await GVGUserDataModel.bulkWrite(memberScores.map(({ leagueCode, roleId, score }) => {
|
||||
return { updateOne: { filter: { configId, leagueCode, roleId }, update: { $inc: { 'distribute.score': score } } } }
|
||||
return { updateOne: { filter: { configId, leagueCode, roleId }, update: { $inc: { 'contribute.score': score } } } }
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@ export class LeagueMemberListInfo {
|
||||
}
|
||||
}
|
||||
|
||||
export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{
|
||||
export class LeagueMemberContributeInfo extends LeagueMemberListInfo{
|
||||
rank: number = 0;
|
||||
food: number = 0;
|
||||
mineral: number = 0;
|
||||
@@ -282,10 +282,10 @@ export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{
|
||||
if(!data) return;
|
||||
this.active = data.active;
|
||||
this.job = data.job;
|
||||
this.food = data.distribute?.food||0;
|
||||
this.mineral = data.distribute?.mineral||0;
|
||||
this.wood = data.distribute?.wood||0;
|
||||
this.score = data.distribute?.score||0
|
||||
this.food = data.contribute?.food||0;
|
||||
this.mineral = data.contribute?.mineral||0;
|
||||
this.wood = data.contribute?.wood||0;
|
||||
this.score = data.contribute?.score||0
|
||||
}
|
||||
|
||||
setRank(rank: number) {
|
||||
@@ -293,19 +293,19 @@ export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{
|
||||
}
|
||||
}
|
||||
|
||||
export class LeagueDistributeInfo {
|
||||
export class LeagueContributeInfo {
|
||||
job: number; // 1-内政 2-外政
|
||||
sumDistribute: number; // 总贡献(宝箱显示)
|
||||
sumContribute: number; // 总贡献(宝箱显示)
|
||||
receivedBox: number[]; // 已领取的宝箱id
|
||||
members: LeagueMemberDistributeInfo[];
|
||||
members: LeagueMemberContributeInfo[];
|
||||
|
||||
constructor(job: number, sumDistribute: number, receivedBox: number[]) {
|
||||
constructor(job: number, sumContribute: number, receivedBox: number[]) {
|
||||
this.job = job;
|
||||
this.sumDistribute = sumDistribute||0;
|
||||
this.sumContribute = sumContribute||0;
|
||||
this.receivedBox = receivedBox||[];
|
||||
}
|
||||
|
||||
setMembers(members: LeagueMemberDistributeInfo[]) {
|
||||
setMembers(members: LeagueMemberContributeInfo[]) {
|
||||
this.members = members;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user