diff --git a/game-server/app/services/connectorService.ts b/game-server/app/services/connectorService.ts index b5812e602..85e6f2bcf 100644 --- a/game-server/app/services/connectorService.ts +++ b/game-server/app/services/connectorService.ts @@ -8,7 +8,7 @@ import { getCurTask } from './taskService'; import { RoleType } from '../db/Role'; import { FrontendOrBackendSession, pinus } from 'pinus'; import { resResult } from '../pubUtils/util'; -import { STATUS, PUSH_BATCH, PUSH_INTERVAL } from '../consts'; +import { STATUS, PUSH_BATCH, PUSH_INTERVAL, CONSUME_TYPE } from '../consts'; import { getAllShopList } from './shopService'; import { getGeneralRank } from './rankService'; import { getFriendList, getApplyList } from './friendService'; @@ -33,6 +33,7 @@ import { GuildType } from '../db/Guild'; import UserGuild, { UserGuildType } from '../db/UserGuild'; import { setMedianCe } from './guildActivityService'; import { getAllOnlineRoles } from './redisService'; +import Item from '../db/Item'; export async function pushData(role: RoleType, session: FrontendOrBackendSession, pushType: 'entry'|'refresh' = 'entry') { try{ @@ -86,7 +87,8 @@ export async function pushData(role: RoleType, session: FrontendOrBackendSession return await getTowerEntryData(role); case 'comBattle': // 寻宝 const assistCnt = await getAllAssistCnt(roleId); - return { assistCnt } + const blueprts = await Item.findByRoleAndType(roleId, CONSUME_TYPE.BLUEPRT); + return { assistCnt, blueprts } case 'dungeon': // 秘境 return await getDungeonData(role); case 'pvp': // pvp diff --git a/gm-server/app/service/Activity.ts b/gm-server/app/service/Activity.ts index 0c59e8add..aaa3be213 100644 --- a/gm-server/app/service/Activity.ts +++ b/gm-server/app/service/Activity.ts @@ -3,6 +3,7 @@ import { STATUS } from '@consts'; import { ActivityModel } from '@db/Activity'; import { ActivityGroupModel } from '@db/ActivityGroup'; import { ServerlistModel } from '@db/Serverlist'; +import { GMUserType } from '@db/GMUser'; /** * Test Service @@ -28,6 +29,7 @@ export default class Activity extends Service { public async updateActivity(activityId: number | string, groupId: number, beginTime: number, endTime: number, type: number, data: string) { const { ctx } = this; + let gmuser: GMUserType = ctx.user; if (!type || !data) { return ctx.service.utils.resResult(STATUS.WRONG_PARMS); } @@ -43,7 +45,7 @@ export default class Activity extends Service { }); } - const activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data); + const activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, gmuser.uid); return ctx.service.utils.resResult(STATUS.SUCCESS, { activity: activities }) diff --git a/shared/db/Activity.ts b/shared/db/Activity.ts index 28de4e1d3..f57b67a0b 100644 --- a/shared/db/Activity.ts +++ b/shared/db/Activity.ts @@ -29,6 +29,12 @@ export default class Activity extends BaseModel { @prop({ required: true }) days: number; // 活动持续天数 timeType=1、2 + @prop({ required: true }) + createdBy: number; // 后台创建人 + @prop({ required: true }) + updatedBy: number; // 最近更新人 + + //根据活动类型查询开启的活动数据 public static async findOpenActivityByType(activityGroupId: number[], type: number, date: Date) { let result: ActivityModelType[] = await ActivityModel.find( @@ -58,7 +64,7 @@ export default class Activity extends BaseModel { } //新增活动 - public static async addActivity(aids: number[], groupId: number, beginTime: Date, endTime: Date, type: number, data: string) { + public static async addActivity(aids: number[], groupId: number, beginTime: Date, endTime: Date, type: number, data: string, uid = 1) { let result: ActivityModelType[] = []; for (let activityId of aids) { if (!activityId) activityId = await CounterModel.getNewCounter(COUNTER.ACTIVITY); @@ -69,7 +75,7 @@ export default class Activity extends BaseModel { if (endTime != undefined) { update["endTime"] = endTime; } - let rec: ActivityModelType = await ActivityModel.findOneAndUpdate({ activityId }, { $set: update }, + let rec: ActivityModelType = await ActivityModel.findOneAndUpdate({ activityId }, { $set: {...update, updatedBy: uid}, $setOnInsert: { createdBy: uid } }, { new: true, upsert: true }).lean(true); result.push(rec); } @@ -132,8 +138,8 @@ export default class Activity extends BaseModel { return result; } - public static async updateGroupId(activityIds: number[], groupId: number) { - let result = await ActivityModel.updateMany({ activityId: { $in: activityIds } }, { $set: { groupId } }); + public static async updateGroupId(activityIds: number[], groupId: number, uid = 1) { + let result = await ActivityModel.updateMany({ activityId: { $in: activityIds } }, { $set: { groupId, updatedBy: uid }, $setOnInsert: { createdBy: uid } }); console.log(result) return result; } diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index 0ca8c2051..ae468e1ca 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -168,8 +168,8 @@ export function shouldRefreshWeek(preTime: Date, now: Date, day: number = 1, hou * @param cnt 返回随机元素个数 */ export function getRandEelm(source: Array = [], cnt = 1): Array { - if (cnt > source.length || cnt == 0) return []; - if (cnt === source.length) return source; + if (cnt == 0) return []; + if (cnt >= source.length) return source; let idxs = new Set(); while (1) {