🐞 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 { 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 { GVGLeagueModel } from "../../../db/GVGLeague";
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare"; 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 { resResult } from "../../../pubUtils/util";
import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType, getServerTypeByTime } from "../../../services/gvg/gvgService"; import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType, getServerTypeByTime } from "../../../services/gvg/gvgService";
import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService"; import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService";
import { getAllServerName } from "../../../services/redisService"; import { getAllServerName } from "../../../services/redisService";
import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData"; import { Contribute, GVGUserDataModel } from "../../../db/GVGUserData";
import { GVGUserItemModel } from "../../../db/GVGUserItem"; import { GVGUserItemModel } from "../../../db/GVGUserItem";
import { GVGUserTaskModel } from "../../../db/GVGUserTask"; import { GVGUserTaskModel } from "../../../db/GVGUserTask";
import { GVG } from "../../../pubUtils/dicParam"; import { GVG } from "../../../pubUtils/dicParam";
import { RoleModel } from "../../../db/Role"; 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 { GVGUserDailyDataModel } from "../../../db/GVGUserDailyData";
import { gameData } from "../../../pubUtils/data"; import { gameData } from "../../../pubUtils/data";
import { lockLeagueData } from "../../../services/redLockService"; 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 roleId = session.get('roleId');
const guildCode = session.get('guildCode'); const guildCode = session.get('guildCode');
@@ -169,35 +169,35 @@ export class GVGHandler {
const serverNames = await getAllServerName(); const serverNames = await getAllServerName();
const myUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId); 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 userDatas = await GVGUserDataModel.findByRoles(configId, myLeague.leagueCode, roleIds);
const result: LeagueDistributeInfo[] = []; const result: LeagueContributeInfo[] = [];
for(let curJob of [LEAGUE_JOB.PRODUCER, LEAGUE_JOB.FIGHTER]) { for(let curJob of [LEAGUE_JOB.PRODUCER, LEAGUE_JOB.FIGHTER]) {
const memberResult: LeagueMemberDistributeInfo[] = []; const memberResult: LeagueMemberContributeInfo[] = [];
for(let member of members) { for(let member of members) {
let role = roles.find(role => role.roleId == member.roleId); let role = roles.find(role => role.roleId == member.roleId);
if(!role) continue; if(!role) continue;
let userData = userDatas.find(userData => userData.roleId == member.roleId); 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.setAuth(member.auth);
obj.setByUserData(userData); 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); if(curJob == LEAGUE_JOB.FIGHTER && obj.score > 0) memberResult.push(obj);
} }
memberResult.sort((a, b) => { 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++) { for(let i = 0; i < memberResult.length; i++) {
memberResult[i].setRank(i + 1); 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 boxReceived = box.filter(boxId => {
let dicBox = gameData.gvgContributeBox.get(boxId); let dicBox = gameData.gvgContributeBox.get(boxId);
return dicBox.job == curJob; return dicBox.job == curJob;
}); });
let disObj = new LeagueDistributeInfo(curJob, sumDistribute, boxReceived); let disObj = new LeagueContributeInfo(curJob, sumContribute, boxReceived);
disObj.setMembers(memberResult); disObj.setMembers(memberResult);
result.push(disObj) result.push(disObj)
} }
@@ -206,7 +206,7 @@ export class GVGHandler {
const myRanks = await GVGVestigeRankModel.findAllByRole(roleId); const myRanks = await GVGVestigeRankModel.findAllByRole(roleId);
return resResult(STATUS.SUCCESS, { return resResult(STATUS.SUCCESS, {
myDistribute: getMyDistribute(userDailyData, myRanks), myContribute: getMyContribute(userDailyData, myRanks),
list: result list: result
}); });
} }
@@ -229,17 +229,17 @@ export class GVGHandler {
if(!dicBox) return resResult(STATUS.DIC_DATA_NOT_FOUND); if(!dicBox) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let myUserData = await GVGUserDataModel.findByRole(configId, myLeague.leagueCode, roleId); 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) if(box.indexOf(boxId) != -1) return resResult(STATUS.GVG_BOX_HAS_RECEIVED)
let sumDistribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerDistribute(distribute): calFighterDistribute(distribute); let sumContribute = dicBox.job == LEAGUE_JOB.PRODUCER? calProducerContribute(contribute): calFighterContribute(contribute);
if(sumDistribute < dicBox.boxPoint) return resResult(STATUS.GVG_BOX_POINT_NOT_ENOUGH); 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); 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); myUserData = await GVGUserDataModel.receiveBox(configId, myLeague.leagueCode, roleId, boxId);
return resResult(STATUS.SUCCESS, { return resResult(STATUS.SUCCESS, {
sumDistribute, sumContribute,
receivedBox: myUserData.box, receivedBox: myUserData.box,
leagueGoods leagueGoods
}); });

View File

@@ -13,7 +13,7 @@ import { nowSeconds } from "../../../pubUtils/timeUtil";
import { resResult } from "../../../pubUtils/util"; import { resResult } from "../../../pubUtils/util";
import { getGVGCities } from "../../../services/gvg/gvgBattleService"; import { getGVGCities } from "../../../services/gvg/gvgBattleService";
import { addGVGReward, getProduceCoinCnt, handleGVGCost } from "../../../services/gvg/gvgItemService"; 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 { getGVGConfig, getGVGPeriodData } from "../../../services/gvg/gvgService";
import { sendMailByContent } from "../../../services/mailService"; import { sendMailByContent } from "../../../services/mailService";
import { getAllServerName, getRoleOnlineInfo } from "../../../services/redisService"; import { getAllServerName, getRoleOnlineInfo } from "../../../services/redisService";
@@ -151,7 +151,7 @@ export class GVGProduceHandler {
if(dicResource.type == GVG_RESOURCE_TYPE.FOOD) { if(dicResource.type == GVG_RESOURCE_TYPE.FOOD) {
await lockField(myLeague.leagueCode, roleId, roleName, farmId); 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, { return resResult(STATUS.SUCCESS, {
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId), ...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId),
@@ -313,7 +313,7 @@ export class GVGProduceHandler {
const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId); const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId);
if(!lockResult) return resResult(STATUS.GVG_MINE_HAS_LOCKED); 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, { return resResult(STATUS.SUCCESS, {
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false), ...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false),
@@ -440,7 +440,7 @@ export class GVGProduceHandler {
const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId); const lockResult = await lockMineOrForestry(myLeague.leagueCode, roleId, farmId, itemId);
if(!lockResult) return resResult(STATUS.GVG_MINE_HAS_LOCKED); 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, { return resResult(STATUS.SUCCESS, {
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false), ...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.getData":
case "guild.gvgHandler.getMap": case "guild.gvgHandler.getMap":
case "guild.gvgHandler.getRec": case "guild.gvgHandler.getRec":
case "guild.gvgHandler.getDistribute": case "guild.gvgHandler.getContribute":
case "guild.gvgHandler.getTech": case "guild.gvgHandler.getTech":
case "guild.gvgManageHandler.getApplies": case "guild.gvgManageHandler.getApplies":
case "guild.gvgManageHandler.getLeagueInvitations": 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 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||{}; let { food = 0, mineral = 0, wood = 0 } = obj||{};
return food + mineral + wood; return food + mineral + wood;
} }
export function calFighterDistribute(obj: { score: number }) { export function calFighterContribute(obj: { score: number }) {
return obj?.score||0 return obj?.score||0
} }
@@ -90,7 +90,7 @@ export async function getDailyLoginReward(roleId: string, roleName: string, sid:
return null; 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; let score = 0;
for(let { vestigeId, rank} of myRanks) { for(let { vestigeId, rank} of myRanks) {
let dicRankMap = gameData.gvgVestige.get(vestigeId); 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 userDailyData = await GVGUserDailyDataModel.addResource(configId, leagueCode, roleId, food, mineral, wood);
let myRanks = await GVGVestigeRankModel.findAllByRole(roleId); let myRanks = await GVGVestigeRankModel.findAllByRole(roleId);
let myDistribute = getMyDistribute(userDailyData, myRanks); let myContribute = getMyContribute(userDailyData, myRanks);
addResourceRecord(roleId, roleName, leagueCode, resourceType, count); 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) { 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); 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(); let { configId } = getGVGConfig();
const roleIds = members.map(member => member.roleId); const roleIds = members.map(member => member.roleId);
const userDatas = await GVGUserDataModel.findByRoles(configId, leagueCode, roleIds); 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++) { for(let i = 0; i < userDatas.length; i++) {
if(userDatas[i].roleId == targetRoleId) return i + 1; 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 }) @prop({ required: true, default: 0 })
food: number = 0; // 粮食 food: number = 0; // 粮食
@prop({ required: true, default: 0 }) @prop({ required: true, default: 0 })
@@ -60,7 +60,7 @@ export default class GVGUserData extends BaseModel {
box: number[]; box: number[];
@prop({ required: true, default: {}, _id: false }) @prop({ required: true, default: {}, _id: false })
distribute: Distribute; contribute: Contribute;
@prop({ required: true, default: 0 }) @prop({ required: true, default: 0 })
sendFightRewardTime: number; // 发送征战奖励的时间 sendFightRewardTime: number; // 发送征战奖励的时间
@@ -103,14 +103,14 @@ export default class GVGUserData extends BaseModel {
const result: GVGUserDataType = await GVGUserDataModel.findOneAndUpdate({ const result: GVGUserDataType = await GVGUserDataModel.findOneAndUpdate({
configId, leagueCode, roleId 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(); }, { new: true, upsert: true }).lean();
return result; return result;
} }
public static async addVestigeScores(configId: number, memberScores: { leagueCode: string, roleId: string, score: number }[]) { public static async addVestigeScores(configId: number, memberScores: { leagueCode: string, roleId: string, score: number }[]) {
await GVGUserDataModel.bulkWrite(memberScores.map(({ leagueCode, roleId, score }) => { 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; rank: number = 0;
food: number = 0; food: number = 0;
mineral: number = 0; mineral: number = 0;
@@ -282,10 +282,10 @@ export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{
if(!data) return; if(!data) return;
this.active = data.active; this.active = data.active;
this.job = data.job; this.job = data.job;
this.food = data.distribute?.food||0; this.food = data.contribute?.food||0;
this.mineral = data.distribute?.mineral||0; this.mineral = data.contribute?.mineral||0;
this.wood = data.distribute?.wood||0; this.wood = data.contribute?.wood||0;
this.score = data.distribute?.score||0 this.score = data.contribute?.score||0
} }
setRank(rank: number) { setRank(rank: number) {
@@ -293,19 +293,19 @@ export class LeagueMemberDistributeInfo extends LeagueMemberListInfo{
} }
} }
export class LeagueDistributeInfo { export class LeagueContributeInfo {
job: number; // 1-内政 2-外政 job: number; // 1-内政 2-外政
sumDistribute: number; // 总贡献(宝箱显示) sumContribute: number; // 总贡献(宝箱显示)
receivedBox: number[]; // 已领取的宝箱id 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.job = job;
this.sumDistribute = sumDistribute||0; this.sumContribute = sumContribute||0;
this.receivedBox = receivedBox||[]; this.receivedBox = receivedBox||[];
} }
setMembers(members: LeagueMemberDistributeInfo[]) { setMembers(members: LeagueMemberContributeInfo[]) {
this.members = members; this.members = members;
} }
} }