🐞 fix(活动): 新将好礼和朝夕拾遗任务积分逻辑修改
This commit is contained in:
@@ -83,7 +83,7 @@ export class ShopHandler {
|
||||
|
||||
//任务完成后关联活动的积分
|
||||
|
||||
await addActvityTaskPoint(type, id, session );
|
||||
if(type == TASK_FUN_TYPE.DAILY) await addActvityTaskPoint(type, id, session );
|
||||
|
||||
let goods = await addItems(roleId, roleName, sid, taskReward, ITEM_CHANGE_REASON.TASK_REWARD);
|
||||
if (expItem && expItem.count > 0) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ACTIVITY_TYPE, PUSH_ROUTE, STATUS } from '../../consts';
|
||||
import { ACTIVITY_TYPE, PUSH_ROUTE, STATUS, TASK_FUN_TYPE } from '../../consts';
|
||||
import { getPlayerFirstGiftDataShow } from './firstGiftService';
|
||||
import { getPlayerSignInData, } from './signInService';
|
||||
import { getPlayerGrowthFundData, } from './growthFundService';
|
||||
@@ -358,24 +358,16 @@ export async function checkActivityEditable(activities: ActivityModelType[]) {
|
||||
* @param point
|
||||
* @param session
|
||||
*/
|
||||
export async function addActvityTaskPoint(type: number, id: number, session: BackendSession) {
|
||||
export async function addActvityTaskPoint(type: number, addPoint: number, session: BackendSession) {
|
||||
if(type != TASK_FUN_TYPE.DAILY) return
|
||||
let serverId: number = session.get('serverId');
|
||||
let roleId: string = session.get('roleId');
|
||||
let sid: string = session.get('sid');
|
||||
let activityTaskPoint = await ActivityTaskPointModel.findData(type, id);
|
||||
let result: pushActivityInter[] = [];
|
||||
for (let { activityId, activityType, point } of activityTaskPoint) {
|
||||
if(activityType == ACTIVITY_TYPE.NEW_HERO_GIFTS) { // 新武将活动
|
||||
let totalPoint = await newHeroGiftPoint(serverId, activityId, roleId, point);
|
||||
result.push({ activityId, activityType, param: { totalPoint } });
|
||||
} else if (activityType == ACTIVITY_TYPE.TASK_PASS) {
|
||||
let totalPoint = await addTaskPassPoint(serverId, activityId, roleId, point);
|
||||
result.push({ activityId, activityType, param: { totalPoint } });
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
await pushActivities(result, roleId, sid);
|
||||
let newHeroResult = await newHeroGiftPoint(serverId, roleId, addPoint);
|
||||
let taskPassResult = await addTaskPassPoint(serverId, roleId, addPoint);
|
||||
result.push(...newHeroResult, ...taskPassResult);
|
||||
if(result.length > 0) await pushActivities(result, roleId, sid);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ACTIVITY_TYPE } from '../../consts';
|
||||
import { ActivityNewHeroGiftModel, ActivityNewHeroGiftModelType } from '../../db/ActivityNewHeroGift';
|
||||
import { ActivityNewHeroGKModel, ActivityNewHeroGKModelType } from '../../db/ActivityNewHeroGK';
|
||||
import { UserGachaModel, UserGachaType } from '../../db/UserGacha';
|
||||
@@ -6,7 +7,7 @@ import { NewHeroGiftData } from '../../domain/activityField/newHeroGiftField';
|
||||
import { NewHeroGKData } from '../../domain/activityField/newHeroGKField';
|
||||
import { gameData } from '../../pubUtils/data';
|
||||
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
|
||||
import { getActivityById } from './activityService';
|
||||
import { getActivitiesByType, getActivityById, pushActivityInter } from './activityService';
|
||||
import { refreshGacha } from './gachaService';
|
||||
|
||||
|
||||
@@ -96,17 +97,24 @@ export async function challengeNewHeroGK(serverId: number, roleId: string, activ
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function newHeroGiftPoint(serverId: number, activityId: number, roleId: string, addPoint: number) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
if(!activityData) return 0
|
||||
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
let playerData = new NewHeroGiftData(activityData, createTime, serverTime);
|
||||
|
||||
if(playerData.canRecordTaskPoint()) {
|
||||
let result = await ActivityNewHeroGiftModel.addPoint(serverId, activityId, roleId, addPoint);
|
||||
return result.totalPoint;
|
||||
export async function newHeroGiftPoint(serverId: number, roleId: string, addPoint: number) {
|
||||
try {
|
||||
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.NEW_HERO_GIFTS);
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
|
||||
let pushResult: pushActivityInter[] = [];
|
||||
for(let activityData of activities) {
|
||||
let playerData = new NewHeroGiftData(activityData, createTime, serverTime);
|
||||
if(playerData.canRecordTaskPoint()) {
|
||||
let result = await ActivityNewHeroGiftModel.addPoint(serverId, activityData.activityId, roleId, addPoint);
|
||||
if(result) pushResult.push({ activityId: activityData.activityId, activityType: activityData.type, param: { totalPoint: result.totalPoint } });
|
||||
}
|
||||
}
|
||||
|
||||
return pushResult
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
return []
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { ActivityTaskPassModel } from "../../db/ActivityTaskPass";
|
||||
import { RoleModel } from "../../db/Role";
|
||||
import { TaskPassData } from "../../domain/activityField/taskPassField";
|
||||
import { getRoleCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { getActivityById } from "./activityService";
|
||||
import { getActivitiesByType, getActivityById, pushActivityInter } from "./activityService";
|
||||
|
||||
export async function getTaskPassData(activityId: number, serverId: number, roleId: string) {
|
||||
let activityData = await getActivityById(activityId);
|
||||
@@ -64,15 +64,24 @@ export async function getTaskPassDataShow(activityId: number, serverId: number,
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function addTaskPassPoint(serverId: number, activityId: number, roleId: string, addPoint: number) {
|
||||
let activity = await getActivityById(activityId);
|
||||
if(!activity) return 0;
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
let data = new TaskPassData(activity, createTime, serverTime);
|
||||
if(data.canShow()) {
|
||||
let result = await ActivityTaskPassModel.addPoint(serverId, activityId, roleId, data.roundIndex, addPoint);
|
||||
return result.totalPoint;
|
||||
export async function addTaskPassPoint(serverId: number, roleId: string, addPoint: number) {
|
||||
try {
|
||||
let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.TASK_PASS);
|
||||
let createTime = await getRoleCreateTime(roleId);
|
||||
let serverTime = await getServerCreateTime(serverId);
|
||||
|
||||
let pushResult: pushActivityInter[] = [];
|
||||
for(let activityData of activities) {
|
||||
let playerData = new TaskPassData(activityData, createTime, serverTime);
|
||||
if(playerData.canShow()) {
|
||||
let result = await ActivityTaskPassModel.addPoint(serverId, activityData.activityId, roleId, playerData.roundIndex, addPoint);
|
||||
if(result) pushResult.push({ activityId: activityData.activityId, activityType: activityData.type, param: { totalPoint: result.totalPoint } });
|
||||
}
|
||||
}
|
||||
|
||||
return pushResult
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
return []
|
||||
}
|
||||
return 0
|
||||
}
|
||||
Reference in New Issue
Block a user