🐞 fix(gvg): 云台贡献接口名错误修改

This commit is contained in:
luying
2023-02-13 10:56:22 +08:00
parent 4197295dd2
commit c182733066
6 changed files with 44 additions and 44 deletions

View File

@@ -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
});

View File

@@ -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),

View File

@@ -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":

View File

@@ -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;
}

View File

@@ -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 } } } }
}));
}

View File

@@ -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;
}
}