任务:添加debug接口
This commit is contained in:
@@ -7,7 +7,7 @@ import { addItems } from "../../../services/rewardService";
|
|||||||
import { UserTaskModel } from "../../../db/UserTask";
|
import { UserTaskModel } from "../../../db/UserTask";
|
||||||
import { getCurWeekDate, nowSeconds } from "../../../pubUtils/timeUtil";
|
import { getCurWeekDate, nowSeconds } from "../../../pubUtils/timeUtil";
|
||||||
import { DicDailyTask, DicAchievement } from "../../../pubUtils/dictionary/DicTask";
|
import { DicDailyTask, DicAchievement } from "../../../pubUtils/dictionary/DicTask";
|
||||||
import { getMainTask, refDailyTaskBox, removeHistoryTask } from "../../../services/taskService";
|
import { getMainTask, refDailyTaskBox, removeHistoryTask, getDailyTask, getCurTask } from "../../../services/taskService";
|
||||||
import { TASK } from "../../../pubUtils/dicParam";
|
import { TASK } from "../../../pubUtils/dicParam";
|
||||||
|
|
||||||
export default function(app: Application) {
|
export default function(app: Application) {
|
||||||
@@ -179,20 +179,30 @@ export class ShopHandler {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async debugDailyTaskRef(msg: { }, session: BackendSession) {
|
async debugRefTask(msg: { type: number }, session: BackendSession) {
|
||||||
let roleId = session.get('roleId');
|
let roleId = session.get('roleId');
|
||||||
let sid = session.get('sid');
|
let sid = session.get('sid');
|
||||||
let uids = [{uid: roleId, sid}];
|
let { type } = msg
|
||||||
|
let userTask;
|
||||||
|
if(type == TASK_FUN_TYPE.DAILY) {
|
||||||
|
let uids = [{uid: roleId, sid}];
|
||||||
|
|
||||||
// 转移每日任务
|
// 转移每日任务
|
||||||
await removeHistoryTask(roleId, new Date(nowSeconds() * 1000 + 86400000));
|
await removeHistoryTask(roleId, type, new Date(nowSeconds() * 1000 + 86400000));
|
||||||
pinus.app.get('channelService').pushMessageByUids('onDailyTaskRefresh', resResult(STATUS.SUCCESS, { taskList: [] }), uids);
|
pinus.app.get('channelService').pushMessageByUids('onDailyTaskRefresh', resResult(STATUS.SUCCESS, { taskList: [] }), uids);
|
||||||
}
|
|
||||||
|
|
||||||
async debugTaskBoxRef(msg: { }, session: BackendSession) {
|
await refDailyTaskBox(roleId, sid, true);
|
||||||
let roleId = session.get('roleId');
|
userTask = await UserTaskModel.updateInfo(roleId, { dailyTaskPoint: 0 });
|
||||||
let sid = session.get('sid');
|
|
||||||
|
|
||||||
await refDailyTaskBox(roleId, sid);
|
} else if( type == TASK_FUN_TYPE.MAIN){
|
||||||
|
await UserTaskModel.updateInfo(roleId, { mainTaskStage: 1 });
|
||||||
|
userTask = await removeHistoryTask(roleId, type, new Date(nowSeconds() * 1000 + 86400000));
|
||||||
|
} else if (type == TASK_FUN_TYPE.ACHIEVEMENT) {
|
||||||
|
await UserTaskModel.updateInfo(roleId, { achievementBox: [], achievementPoint: 0 });
|
||||||
|
userTask = await removeHistoryTask(roleId, type, new Date(nowSeconds() * 1000 + 86400000));
|
||||||
|
}
|
||||||
|
|
||||||
|
let curTask = await getCurTask(roleId, session);;
|
||||||
|
return resResult(STATUS.SUCCESS, curTask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,19 +33,22 @@ export async function refresh(session: FrontendOrBackendSession) {
|
|||||||
* @param session
|
* @param session
|
||||||
*/
|
*/
|
||||||
export async function refreshDaily(session: FrontendOrBackendSession) {
|
export async function refreshDaily(session: FrontendOrBackendSession) {
|
||||||
let refDaily: number = session.get('refDaily'); // 10位时间戳,每天每人更新一次
|
|
||||||
let refWeekly: number = session.get('refWeekly'); // 10位时间戳,每天每人更新一次
|
|
||||||
if(!refDaily || shouldRefresh(new Date(refDaily * 1000), new Date(), REFRESH_HOUR)) {
|
|
||||||
refDaily = nowSeconds();
|
|
||||||
session.set('refDaily', refDaily);
|
|
||||||
session.push('refDaily', () => {});
|
|
||||||
await refDailyTask(session.get('roleId'), session.get('sid'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!refWeekly || shouldRefreshWeek(new Date(refWeekly * 1000), new Date(), 1, REFRESH_HOUR)) {
|
if(session.get('roleId')) {
|
||||||
refWeekly = nowSeconds();
|
let refDaily: number = session.get('refDaily'); // 10位时间戳,每天每人更新一次
|
||||||
session.set('refWeekly', refWeekly);
|
let refWeekly: number = session.get('refWeekly'); // 10位时间戳,每天每人更新一次
|
||||||
session.push('refWeekly', () => {});
|
if(!refDaily || shouldRefresh(new Date(refDaily * 1000), new Date(), REFRESH_HOUR)) {
|
||||||
await refDailyTaskBox(session.get('roleId'), session.get('sid'));
|
refDaily = nowSeconds();
|
||||||
|
session.set('refDaily', refDaily);
|
||||||
|
session.push('refDaily', () => {});
|
||||||
|
await refDailyTask(session.get('roleId'), session.get('sid'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!refWeekly || shouldRefreshWeek(new Date(refWeekly * 1000), new Date(), 1, REFRESH_HOUR)) {
|
||||||
|
refWeekly = nowSeconds();
|
||||||
|
session.set('refWeekly', refWeekly);
|
||||||
|
session.push('refWeekly', () => {});
|
||||||
|
await refDailyTaskBox(session.get('roleId'), session.get('sid'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,8 +128,8 @@ export async function getCurTask(roleId: string, session: FrontendOrBackendSessi
|
|||||||
|
|
||||||
if(shouldRefresh(dailyTaskRef, new Date(), 5)) {
|
if(shouldRefresh(dailyTaskRef, new Date(), 5)) {
|
||||||
dailyTaskRef = new Date();
|
dailyTaskRef = new Date();
|
||||||
userTask = await UserTaskModel.setRefDaily(roleId);
|
userTask = await UserTaskModel.updateInfo(roleId, { dailyTaskRef });
|
||||||
await removeHistoryTask(roleId);
|
await removeHistoryTask(roleId, TASK_FUN_TYPE.DAILY);
|
||||||
}
|
}
|
||||||
session.set('refDaily', getSeconds(dailyTaskRef));
|
session.set('refDaily', getSeconds(dailyTaskRef));
|
||||||
session.push('refDaily', ()=> {});
|
session.push('refDaily', ()=> {});
|
||||||
@@ -205,17 +205,17 @@ export async function refDailyTask(roleId: string, sid: string) {
|
|||||||
let taskList = await getDailyTask(roleId, userTask);
|
let taskList = await getDailyTask(roleId, userTask);
|
||||||
|
|
||||||
// 转移每日任务
|
// 转移每日任务
|
||||||
await removeHistoryTask(roleId);
|
await removeHistoryTask(roleId, TASK_FUN_TYPE.DAILY);
|
||||||
|
|
||||||
let uids = [{uid: roleId, sid}];
|
let uids = [{uid: roleId, sid}];
|
||||||
pinus.app.get('channelService').pushMessageByUids('onDailyTaskRefresh', resResult(STATUS.SUCCESS, { taskList }), uids);
|
pinus.app.get('channelService').pushMessageByUids('onDailyTaskRefresh', resResult(STATUS.SUCCESS, { taskList }), uids);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function removeHistoryTask(roleId: string, today?: Date) {
|
export async function removeHistoryTask(roleId: string, type: number, today?: Date) {
|
||||||
|
|
||||||
// 转移每日任务
|
// 转移每日任务
|
||||||
let history = await UserTaskRecModel.getHistoryRec(roleId, today);
|
let history = await UserTaskRecModel.getHistoryRec(roleId, type, today);
|
||||||
if(history.length > 0) {
|
if(history.length > 0) {
|
||||||
await UserTaskHistoryModel.pushUserTask(roleId, history);
|
await UserTaskHistoryModel.pushUserTask(roleId, history);
|
||||||
await UserTaskRecModel.deleteHistory(history);
|
await UserTaskRecModel.deleteHistory(history);
|
||||||
@@ -223,8 +223,8 @@ export async function removeHistoryTask(roleId: string, today?: Date) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 刷新每日宝箱数量
|
// 刷新每日宝箱数量
|
||||||
export async function refDailyTaskBox(roleId: string, sid: string) {
|
export async function refDailyTaskBox(roleId: string, sid: string, debug = false) {
|
||||||
let userTask = await UserTaskModel.refreshWeekly(roleId);
|
let userTask = await UserTaskModel.refreshWeekly(roleId, debug);
|
||||||
if(userTask) {
|
if(userTask) {
|
||||||
let { dailyTaskPoint: point, dailyTaskPointWeekly: weeklyPoint, dailyTaskBox: box } = userTask;
|
let { dailyTaskPoint: point, dailyTaskPointWeekly: weeklyPoint, dailyTaskBox: box } = userTask;
|
||||||
let uids = [{uid: roleId, sid}];
|
let uids = [{uid: roleId, sid}];
|
||||||
|
|||||||
+14
-2
@@ -61,6 +61,13 @@ export default class UserTask extends BaseModel {
|
|||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async updateInfo(roleId: string, update: UserTaskParam) {
|
||||||
|
let rec: UserTaskType = await UserTaskModel.findOneAndUpdate({ roleId }, {
|
||||||
|
$set: update
|
||||||
|
}, { new: true }).lean();
|
||||||
|
return rec;
|
||||||
|
}
|
||||||
|
|
||||||
public static async decreaseDailyPoint(roleId: string, point: number) {
|
public static async decreaseDailyPoint(roleId: string, point: number) {
|
||||||
let rec: UserTaskType = await UserTaskModel.findOneAndUpdate( { roleId, dailyTaskPoint: { $gte: point }}, { $inc: { dailyTaskPoint: -point } }, { new: true }).lean();
|
let rec: UserTaskType = await UserTaskModel.findOneAndUpdate( { roleId, dailyTaskPoint: { $gte: point }}, { $inc: { dailyTaskPoint: -point } }, { new: true }).lean();
|
||||||
return rec;
|
return rec;
|
||||||
@@ -78,9 +85,14 @@ export default class UserTask extends BaseModel {
|
|||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async refreshWeekly(roleId: string) {
|
public static async refreshWeekly(roleId: string, debug = false) {
|
||||||
let curWeek = getCurWeekDate(1, 5);
|
let curWeek = getCurWeekDate(1, 5);
|
||||||
let rec: UserTaskType = await UserTaskModel.findOneAndUpdate({ roleId, dailyTaskRefWeekly: { $lt: curWeek } }, {
|
let condition = { roleId };
|
||||||
|
if(!debug) {
|
||||||
|
condition['dailyTaskRefWeekly'] = { $lt: curWeek }
|
||||||
|
}
|
||||||
|
|
||||||
|
let rec: UserTaskType = await UserTaskModel.findOneAndUpdate(condition, {
|
||||||
$set: { dailyTaskRefWeekly: curWeek, dailyTaskPointWeekly: 0, dailyTaskBox: [] }
|
$set: { dailyTaskRefWeekly: curWeek, dailyTaskPointWeekly: 0, dailyTaskBox: [] }
|
||||||
}, { new: true }).lean();
|
}, { new: true }).lean();
|
||||||
return rec;
|
return rec;
|
||||||
|
|||||||
@@ -99,9 +99,9 @@ export default class UserTaskRec extends BaseModel {
|
|||||||
return rec
|
return rec
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async getHistoryRec(roleId: string, today?: Date) {
|
public static async getHistoryRec(roleId: string, type: number, today?: Date) {
|
||||||
if(!today) today = getTodayZeroDate(5);
|
if(!today) today = getTodayZeroDate(5);
|
||||||
let rec: UserTaskRecType[] = await UserTaskRecModel.find({ roleId, type: TASK_FUN_TYPE.DAILY, createdAt: { $lt: today } }).lean();
|
let rec: UserTaskRecType[] = await UserTaskRecModel.find({ roleId, type, createdAt: { $lt: today } }).lean();
|
||||||
return rec
|
return rec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user