后台:活动组
This commit is contained in:
@@ -12,7 +12,7 @@ import { RewardInter } from '../../../pubUtils/interface';
|
|||||||
import { MarqueeModel } from '../../../db/Marquee';
|
import { MarqueeModel } from '../../../db/Marquee';
|
||||||
import { ServerlistModel } from '../../../db/Serverlist';
|
import { ServerlistModel } from '../../../db/Serverlist';
|
||||||
import { pushCurrentTime } from '../../../services/chatService';
|
import { pushCurrentTime } from '../../../services/chatService';
|
||||||
import { checkActivityEditable, checkActivityGroupType } from '../../../services/activity/activityService';
|
import { checkActivityEditable, checkActivityGroupType, checkActivityGroupTypeWithId } from '../../../services/activity/activityService';
|
||||||
import { ActivityModel } from '../../../db/Activity';
|
import { ActivityModel } from '../../../db/Activity';
|
||||||
import { ActivityGroupModel } from '../../../db/ActivityGroup';
|
import { ActivityGroupModel } from '../../../db/ActivityGroup';
|
||||||
import { ActivityGroupTypeModel } from '../../../db/ActivityGroupType';
|
import { ActivityGroupTypeModel } from '../../../db/ActivityGroupType';
|
||||||
@@ -153,7 +153,7 @@ export class GmHandler {
|
|||||||
let activities = await ActivityModel.findActivityByIds(aids);
|
let activities = await ActivityModel.findActivityByIds(aids);
|
||||||
let checkTimeResult = await checkActivityEditable(activities);
|
let checkTimeResult = await checkActivityEditable(activities);
|
||||||
if(!checkTimeResult) return resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
if(!checkTimeResult) return resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
||||||
let checkGroup = await checkActivityGroupType(groupId, activities);
|
let checkGroup = await checkActivityGroupTypeWithId(groupId, activities);
|
||||||
if(!checkGroup) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
if(!checkGroup) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
||||||
|
|
||||||
activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, uid);
|
activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, uid);
|
||||||
@@ -184,9 +184,25 @@ export class GmHandler {
|
|||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async saveGroupToServer(msg: { groupId: number, serverIds: number[] }, session: BackendSession) {
|
async updateActivityGroup(msg: { groupId: number, groupName: string, serverIds: number[], activities: number[], type: number }, session: BackendSession) {
|
||||||
const { groupId, serverIds } = msg;
|
|
||||||
const uid = session.get('uid');
|
const uid = session.get('uid');
|
||||||
|
let { groupId, groupName, serverIds, activities, type } = msg;
|
||||||
|
let groupTypeObj = await ActivityGroupTypeModel.findByGroupType(type);
|
||||||
|
if(!groupTypeObj) return resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
|
||||||
|
|
||||||
|
{
|
||||||
|
let result = await this.saveActivitiesToGroup(groupId, type, activities, uid);
|
||||||
|
if(result.code != 0) return result;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let result = await this.saveGroupToServer(groupId, serverIds, uid);
|
||||||
|
if(result.code != 0) return result;
|
||||||
|
}
|
||||||
|
await ActivityGroupModel.updateGroup(groupId, {groupName, type}, uid);
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
async saveGroupToServer(groupId: number, serverIds: number[], uid: number) {
|
||||||
|
|
||||||
await ServerlistModel.pullByGroupId(groupId);
|
await ServerlistModel.pullByGroupId(groupId);
|
||||||
let servers = await ServerlistModel.findServerByIds(serverIds);
|
let servers = await ServerlistModel.findServerByIds(serverIds);
|
||||||
@@ -211,12 +227,10 @@ export class GmHandler {
|
|||||||
/**
|
/**
|
||||||
* 选择活动组内的活动
|
* 选择活动组内的活动
|
||||||
*/
|
*/
|
||||||
async saveActivitiesToGroup(msg: { groupId: number, activities: number[] }, session: BackendSession) {
|
async saveActivitiesToGroup(groupId: number, groupType: number, activityIds: number[], uid: number) {
|
||||||
const { groupId, activities: activityIds } = msg;
|
|
||||||
const uid = session.get('uid');
|
|
||||||
|
|
||||||
let activities = await ActivityModel.findActivityByIds(activityIds);
|
let activities = await ActivityModel.findActivityByIds(activityIds);
|
||||||
let checkResult = await checkActivityGroupType(groupId, activities);
|
let checkResult = await checkActivityGroupType(groupType, activities);
|
||||||
if(!checkResult) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
if(!checkResult) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
||||||
|
|
||||||
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, uid);
|
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, uid);
|
||||||
@@ -225,7 +239,7 @@ export class GmHandler {
|
|||||||
for(let server of activityServers) {
|
for(let server of activityServers) {
|
||||||
pinus.app.rpc.activity.activityRemote.saveActivitiesToGroup.toServer(server.id, groupId, activityIds);
|
pinus.app.rpc.activity.activityRemote.saveActivitiesToGroup.toServer(server.id, groupId, activityIds);
|
||||||
}
|
}
|
||||||
return resResult(STATUS.SUCCESS)
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async saveSingleActivityToGroup(msg: { groupId: number, index: number, activityId: number }, session: BackendSession) {
|
async saveSingleActivityToGroup(msg: { groupId: number, index: number, activityId: number }, session: BackendSession) {
|
||||||
@@ -234,7 +248,7 @@ export class GmHandler {
|
|||||||
|
|
||||||
let activity = await ActivityModel.findActivity(activityId);
|
let activity = await ActivityModel.findActivity(activityId);
|
||||||
if(!activity) return resResult(STATUS.ACTIVITY_MISSING);
|
if(!activity) return resResult(STATUS.ACTIVITY_MISSING);
|
||||||
let checkResult = await checkActivityGroupType(groupId, [activity]);
|
let checkResult = await checkActivityGroupTypeWithId(groupId, [activity]);
|
||||||
if(checkResult) return checkResult;
|
if(checkResult) return checkResult;
|
||||||
|
|
||||||
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
|
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
|
||||||
|
|||||||
@@ -279,12 +279,22 @@ export async function checkActivityEditable(activities: ActivityModelType[]) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function checkActivityGroupType(groupId: number, activities: ActivityModelType[]) {
|
|
||||||
|
export async function checkActivityGroupTypeWithId(groupId: number, activities: ActivityModelType[]) {
|
||||||
|
|
||||||
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
|
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
|
||||||
if(!activityGroup) return false;
|
if(!activityGroup) return false;
|
||||||
if(activityGroup.type != 0) {
|
if(activityGroup.type != 0) {
|
||||||
let activityGroupType = await ActivityGroupTypeModel.findByGroupType(activityGroup.type);
|
return await checkActivityGroupType(activityGroup.type, activities);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export async function checkActivityGroupType(groupType: number, activities: ActivityModelType[]) {
|
||||||
|
if(groupType != 0) {
|
||||||
|
let activityGroupType = await ActivityGroupTypeModel.findByGroupType(groupType);
|
||||||
if(!activityGroupType) return false;
|
if(!activityGroupType) return false;
|
||||||
let dic = activityGroupType.activityTypes;
|
let dic = activityGroupType.activityTypes;
|
||||||
for(let { type } of activities) {
|
for(let { type } of activities) {
|
||||||
|
|||||||
@@ -4,11 +4,16 @@ export default class ActivityController extends Controller {
|
|||||||
|
|
||||||
public async getActivityList() {
|
public async getActivityList() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { page, pageSize, type, groupId, current, activityId, sortField, sortOrder } = ctx.request.body;
|
const { page, pageSize, type, form: {groupId, current, activityId}, sortField, sortOrder } = ctx.request.body;
|
||||||
ctx.body = await ctx.service.activity.getActivityList(page, pageSize, sortField, sortOrder, type, groupId, current, activityId);
|
ctx.body = await ctx.service.activity.getActivityList(page, pageSize, sortField, sortOrder, type, groupId, current, activityId);
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getAllActivities() {
|
||||||
|
const { ctx } = this;
|
||||||
|
ctx.body = await ctx.service.activity.getAllActivities();
|
||||||
|
}
|
||||||
|
|
||||||
public async updateActivity() {
|
public async updateActivity() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { activityId, groupId, beginTime, endTime, type, data } = ctx.request.body;
|
const { activityId, groupId, beginTime, endTime, type, data } = ctx.request.body;
|
||||||
@@ -28,11 +33,16 @@ export default class ActivityController extends Controller {
|
|||||||
|
|
||||||
public async getActivityGroupList() {
|
public async getActivityGroupList() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { page, pageSize, serverId, current, groupId } = ctx.request.body;
|
const { page, pageSize, form: { serverId, current, groupId} } = ctx.request.body;
|
||||||
ctx.body = await ctx.service.activity.getActivityGroupList(page, pageSize, serverId, current, groupId);
|
ctx.body = await ctx.service.activity.getActivityGroupList(page, pageSize, serverId, current, groupId);
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getAllActivityGroups() {
|
||||||
|
const { ctx } = this;
|
||||||
|
ctx.body = await ctx.service.activity.getAllActivityGroups();
|
||||||
|
}
|
||||||
|
|
||||||
public async getActivityGroupTypeList() {
|
public async getActivityGroupTypeList() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { page, pageSize, sortField, sortOrder, groupType, groupTypeName } = ctx.request.body;
|
const { page, pageSize, sortField, sortOrder, groupType, groupTypeName } = ctx.request.body;
|
||||||
@@ -40,6 +50,11 @@ export default class ActivityController extends Controller {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getAllActivityGroupTypes() {
|
||||||
|
const { ctx } = this;
|
||||||
|
ctx.body = await ctx.service.activity.getAllActivityGroupTypes();
|
||||||
|
}
|
||||||
|
|
||||||
public async updateActivityGroupType() {
|
public async updateActivityGroupType() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { groupType, groupTypeName, activityTypes } = ctx.request.body;
|
const { groupType, groupTypeName, activityTypes } = ctx.request.body;
|
||||||
@@ -54,13 +69,6 @@ export default class ActivityController extends Controller {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
public async saveGroupTypeToActivityGroup() {
|
|
||||||
const { ctx } = this;
|
|
||||||
const { groupId, groupType } = ctx.request.body;
|
|
||||||
ctx.body = await ctx.service.activity.saveGroupTypeToActivityGroup(groupId, groupType);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
public async getGroupDataById() {
|
public async getGroupDataById() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { groupId } = ctx.request.body;
|
const { groupId } = ctx.request.body;
|
||||||
@@ -68,31 +76,10 @@ export default class ActivityController extends Controller {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateActivityGroupName() {
|
public async updateActivityGroup() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { groupId, groupName } = ctx.request.body;
|
const { groupId, groupName, activities, serverIds, type } = ctx.request.body;
|
||||||
ctx.body = await ctx.service.activity.updateActivityGroupName(groupId, groupName);
|
ctx.body = await ctx.service.activity.updateActivityGroup(groupId, groupName, activities, serverIds, type);
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
public async saveActivitiesToGroup() {
|
|
||||||
const { ctx } = this;
|
|
||||||
const { groupId, activities } = ctx.request.body;
|
|
||||||
ctx.body = await ctx.service.activity.saveActivitiesToGroup(groupId, activities);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
public async saveSingleActivityToGroup() {
|
|
||||||
const { ctx } = this;
|
|
||||||
const { groupId, index, activityId } = ctx.request.body;
|
|
||||||
ctx.body = await ctx.service.activity.saveSingleActivityToGroup(groupId, index, activityId);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
public async saveGroupToServer() {
|
|
||||||
const { ctx } = this;
|
|
||||||
const { groupId, serverIds } = ctx.request.body;
|
|
||||||
ctx.body = await ctx.service.activity.saveGroupToServer(groupId, serverIds);
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -86,19 +86,18 @@ export default (app: Application) => {
|
|||||||
router.post('/api/game/getaccuse', controller.game.getAccuse);
|
router.post('/api/game/getaccuse', controller.game.getAccuse);
|
||||||
|
|
||||||
router.post('/api/activity/getactivitylist', tokenParser, controller.activity.getActivityList);
|
router.post('/api/activity/getactivitylist', tokenParser, controller.activity.getActivityList);
|
||||||
|
router.post('/api/activity/getallactivities', controller.activity.getAllActivities);
|
||||||
router.post('/api/activity/updateactivity', tokenParser, controller.activity.updateActivity);
|
router.post('/api/activity/updateactivity', tokenParser, controller.activity.updateActivity);
|
||||||
router.post('/api/activity/deleteactivity', tokenParser, controller.activity.deleteActivity);
|
router.post('/api/activity/deleteactivity', tokenParser, controller.activity.deleteActivity);
|
||||||
router.post('/api/activity/getactivitygrouplist', tokenParser, controller.activity.getActivityGroupList);
|
router.post('/api/activity/getactivitygrouplist', tokenParser, controller.activity.getActivityGroupList);
|
||||||
router.post('/api/activity/updateactivitygroupname', controller.activity.updateActivityGroupName);
|
router.post('/api/activity/getallactivitygroups', controller.activity.getAllActivityGroups);
|
||||||
// router.post('/api/activity/saveactivitiestogroup', tokenParser, controller.activity.saveActivitiesToGroup);
|
router.post('/api/activity/updateactivitygroup', controller.activity.updateActivityGroup);
|
||||||
// router.post('/api/activity/savesingleactivitytogroup', controller.activity.saveSingleActivityToGroup);
|
|
||||||
// router.post('/api/activity/savegrouptoserver', tokenParser, controller.activity.saveGroupToServer);
|
|
||||||
router.post('/api/activity/creategroup', tokenParser, controller.activity.createGroup);
|
router.post('/api/activity/creategroup', tokenParser, controller.activity.createGroup);
|
||||||
router.post('/api/activity/deletegroup', tokenParser, controller.activity.deleteGroup);
|
router.post('/api/activity/deletegroup', tokenParser, controller.activity.deleteGroup);
|
||||||
router.post('/api/activity/getactivitygrouptypelist', controller.activity.getActivityGroupTypeList);
|
router.post('/api/activity/getactivitygrouptypelist', controller.activity.getActivityGroupTypeList);
|
||||||
|
router.post('/api/activity/getallactivitygrouptypes', controller.activity.getAllActivityGroupTypes);
|
||||||
router.post('/api/activity/saveactivitygrouptypelist', controller.activity.updateActivityGroupType);
|
router.post('/api/activity/saveactivitygrouptypelist', controller.activity.updateActivityGroupType);
|
||||||
router.post('/api/activity/deleteactivitygrouptype', controller.activity.deleteActivityGroupType);
|
router.post('/api/activity/deleteactivitygrouptype', controller.activity.deleteActivityGroupType);
|
||||||
router.post('/api/activity/saveactivitygrouptype', controller.activity.saveGroupTypeToActivityGroup);
|
|
||||||
router.post('/api/activity/getgroupdatabyid', controller.activity.getGroupDataById);
|
router.post('/api/activity/getgroupdatabyid', controller.activity.getGroupDataById);
|
||||||
router.post('/api/activity/getactivitytaskpoint', controller.activity.getActivityTaskPoint);
|
router.post('/api/activity/getactivitytaskpoint', controller.activity.getActivityTaskPoint);
|
||||||
router.post('/api/activity/createtasktoactivity', controller.activity.createTaskToActivity);
|
router.post('/api/activity/createtasktoactivity', controller.activity.createTaskToActivity);
|
||||||
|
|||||||
@@ -25,12 +25,33 @@ export default class Activity extends Service {
|
|||||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||||
list: list.map(cur => {
|
list: list.map(cur => {
|
||||||
return {
|
return {
|
||||||
...cur, beginTime: cur.beginTime.getTime(), endTime: cur.endTime.getTime()
|
...cur, beginTime: cur.beginTime.getTime(), endTime: cur.endTime.getTime(), env: ctx.app.config.realEnv
|
||||||
}
|
}
|
||||||
}), total
|
}), total
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getAllActivities() {
|
||||||
|
const { ctx } = this;
|
||||||
|
let list = await ActivityModel.findAllActivities();
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS, { list });
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getAllActivityGroups() {
|
||||||
|
const { ctx } = this;
|
||||||
|
let list = await ActivityGroupModel.findAllActivityGroups();
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS, { list });
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getAllActivityGroupTypes() {
|
||||||
|
const { ctx } = this;
|
||||||
|
// console.log('***', page, pageSize, type, serverId, current, activityId)
|
||||||
|
const list = await ActivityGroupTypeModel.findAllActivityGroupTypes();
|
||||||
|
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||||
|
list
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public async checkActivityEditable(activityId: number) {
|
public async checkActivityEditable(activityId: number) {
|
||||||
let now = new Date();
|
let now = new Date();
|
||||||
let activity = await ActivityModel.findActivity(activityId);
|
let activity = await ActivityModel.findActivity(activityId);
|
||||||
@@ -100,7 +121,7 @@ export default class Activity extends Service {
|
|||||||
})
|
})
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +146,7 @@ export default class Activity extends Service {
|
|||||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||||
list: list.map(cur => {
|
list: list.map(cur => {
|
||||||
return {
|
return {
|
||||||
...cur, beginTime: cur.beginTime?.getTime(), endTime: cur.endTime?.getTime()
|
...cur, beginTime: cur.beginTime?.getTime(), endTime: cur.endTime?.getTime(), env: ctx.app.config.realEnv
|
||||||
}
|
}
|
||||||
}), total
|
}), total
|
||||||
});
|
});
|
||||||
@@ -134,74 +155,20 @@ export default class Activity extends Service {
|
|||||||
/**
|
/**
|
||||||
* 更新活动组
|
* 更新活动组
|
||||||
*/
|
*/
|
||||||
public async updateActivityGroupName(groupId: number, groupName: string) {
|
public async updateActivityGroup(groupId: number, groupName: string, activityIds: number[], serverIds: number[], type: number) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
try {
|
try {
|
||||||
await ActivityGroupModel.updateGroup(groupId, {groupName}, ctx.user?.uid);
|
let groupTypeObj = await ActivityGroupTypeModel.findByGroupType(type);
|
||||||
} catch(e) {
|
if(!groupTypeObj) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
|
||||||
}
|
await ActivityGroupModel.updateGroup(groupId, {groupName, type}, ctx.user?.uid);
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
// 更新activities
|
||||||
* 选择活动组内的活动
|
|
||||||
*/
|
|
||||||
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
|
|
||||||
const { ctx } = this;
|
|
||||||
try {
|
|
||||||
let checkResult = await this.checkActivityGroupType(groupId, activityIds, ctx);
|
let checkResult = await this.checkActivityGroupType(groupId, activityIds, ctx);
|
||||||
if(checkResult) return checkResult;
|
if(checkResult) return checkResult;
|
||||||
|
|
||||||
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
|
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
|
||||||
|
|
||||||
} catch(e) {
|
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
|
||||||
}
|
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
// 封信servers
|
||||||
* 选择活动组内的活动
|
|
||||||
*/
|
|
||||||
public async saveSingleActivityToGroup(groupId: number, index: number, activityId: number) {
|
|
||||||
console.log(groupId, index, activityId);
|
|
||||||
const { ctx } = this;
|
|
||||||
try {
|
|
||||||
let checkResult = await this.checkActivityGroupType(groupId, [activityId], ctx);
|
|
||||||
if(checkResult) return checkResult;
|
|
||||||
|
|
||||||
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
|
|
||||||
if(!activityGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_NOT_FOUND);
|
|
||||||
let activity = await ActivityModel.findActivity(activityId);
|
|
||||||
if(!activity) return ctx.service.utils.resResult(STATUS.ACTIVITY_MISSING);
|
|
||||||
|
|
||||||
if(activityGroup.type != 0) {
|
|
||||||
let activityGroupType = await ActivityGroupTypeModel.findByGroupType(activityGroup.type);
|
|
||||||
if(!activityGroupType) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
|
|
||||||
let dic = activityGroupType.activityTypes;
|
|
||||||
let curDic = dic.find(cur => cur.index == index);
|
|
||||||
console.log(dic, curDic)
|
|
||||||
if(curDic.activityType != activity.type) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE)
|
|
||||||
}
|
|
||||||
|
|
||||||
let activityIds = activityGroup.activities||[];
|
|
||||||
if(activityIds.indexOf(activityId) == -1) activityIds.push(activityId);
|
|
||||||
|
|
||||||
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
|
|
||||||
|
|
||||||
} catch(e) {
|
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
|
||||||
}
|
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将活动组添加入服务器内
|
|
||||||
*/
|
|
||||||
public async saveGroupToServer(groupId: number, serverIds: number[]) {
|
|
||||||
const { ctx } = this;
|
|
||||||
try {
|
|
||||||
await ServerlistModel.pullByGroupId(groupId);
|
await ServerlistModel.pullByGroupId(groupId);
|
||||||
let servers = await ServerlistModel.findServerByIds(serverIds);
|
let servers = await ServerlistModel.findServerByIds(serverIds);
|
||||||
for(let server of servers) {
|
for(let server of servers) {
|
||||||
@@ -213,8 +180,9 @@ export default class Activity extends Service {
|
|||||||
await ServerlistModel.updateActivityGroup(server._id, pushArr, pullArr);
|
await ServerlistModel.updateActivityGroup(server._id, pushArr, pullArr);
|
||||||
}
|
}
|
||||||
await ActivityGroupModel.updateServerData(groupId, serverIds, ctx.user?.uid);
|
await ActivityGroupModel.updateServerData(groupId, serverIds, ctx.user?.uid);
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
|
||||||
}
|
}
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||||
}
|
}
|
||||||
@@ -227,7 +195,7 @@ export default class Activity extends Service {
|
|||||||
try {
|
try {
|
||||||
await ActivityGroupModel.createGroup(ctx.user?.uid);
|
await ActivityGroupModel.createGroup(ctx.user?.uid);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
|
||||||
}
|
}
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||||
}
|
}
|
||||||
@@ -243,7 +211,7 @@ export default class Activity extends Service {
|
|||||||
await ActivityGroupModel.deleteGroup(groupId);
|
await ActivityGroupModel.deleteGroup(groupId);
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
|
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, (<Error>e).stack);
|
||||||
}
|
}
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
return ctx.service.utils.resResult(STATUS.SUCCESS)
|
||||||
}
|
}
|
||||||
@@ -278,14 +246,6 @@ export default class Activity extends Service {
|
|||||||
await ActivityGroupTypeModel.deleteActivityGroupType(groupType);
|
await ActivityGroupTypeModel.deleteActivityGroupType(groupType);
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async saveGroupTypeToActivityGroup(groupId: number, groupType: number) {
|
|
||||||
const { ctx } = this;
|
|
||||||
let groupTypeObj = await ActivityGroupTypeModel.findByGroupType(groupType);
|
|
||||||
if(!groupTypeObj) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_TYPE_NOT_FOUND);
|
|
||||||
await ActivityGroupModel.updateGroup(groupId, { type: groupType }, ctx.user?.uid);
|
|
||||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async getGroupDataById(groupId: number) {
|
public async getGroupDataById(groupId: number) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
|
|||||||
@@ -107,6 +107,21 @@ export default class Activity extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static async findAllActivities() {
|
||||||
|
let all: ActivityModelType[] = [];
|
||||||
|
let createdAt;
|
||||||
|
for(let i = 0; i < 9999; i++) { // 防死循环
|
||||||
|
let condition = {};
|
||||||
|
if(createdAt) condition['createdAt'] = { $gt: createdAt }
|
||||||
|
let cur: ActivityModelType[] = await ActivityModel.find(condition).limit(1000).sort({ createdAt: 1 }).lean();
|
||||||
|
if(cur.length == 0) break;
|
||||||
|
createdAt = cur[cur.length - 1].createdAt;
|
||||||
|
all.push(...cur);
|
||||||
|
}
|
||||||
|
return all;
|
||||||
|
}
|
||||||
|
|
||||||
//查询
|
//查询
|
||||||
public static async findByCondition(page: number, pageSize: number, sortField: string = 'updatedAt', sortOrder: string = 'descend', type: number = 0, groupId: number = 0, current: boolean = false, activityId: number = 0) {
|
public static async findByCondition(page: number, pageSize: number, sortField: string = 'updatedAt', sortOrder: string = 'descend', type: number = 0, groupId: number = 0, current: boolean = false, activityId: number = 0) {
|
||||||
let searchObj = {};
|
let searchObj = {};
|
||||||
|
|||||||
@@ -144,6 +144,20 @@ export default class Activity_Group extends BaseModel {
|
|||||||
const result = await ActivityGroupModel.count(searchObj);
|
const result = await ActivityGroupModel.count(searchObj);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async findAllActivityGroups() {
|
||||||
|
let all: ActivityGroupModelType[] = [];
|
||||||
|
let createdAt;
|
||||||
|
for(let i = 0; i < 9999; i++) { // 防死循环
|
||||||
|
let condition = {};
|
||||||
|
if(createdAt) condition['createdAt'] = { $gt: createdAt }
|
||||||
|
let cur = await ActivityGroupModel.find(condition).limit(1000).sort({ createdAt: 1 }).lean();
|
||||||
|
if(cur.length == 0) break;
|
||||||
|
createdAt = cur[cur.length - 1].createdAt;
|
||||||
|
all.push(...cur);
|
||||||
|
}
|
||||||
|
return all;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ActivityGroupModel = getModelForClass(Activity_Group);
|
export const ActivityGroupModel = getModelForClass(Activity_Group);
|
||||||
|
|||||||
@@ -89,6 +89,19 @@ export default class Activity_GroupType extends BaseModel {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async findAllActivityGroupTypes() {
|
||||||
|
let all: ActivityGroupTypeInter[] = [];
|
||||||
|
let createdAt;
|
||||||
|
for(let i = 0; i < 9999; i++) { // 防死循环
|
||||||
|
let condition = {};
|
||||||
|
if(createdAt) condition['createdAt'] = { $gt: createdAt }
|
||||||
|
let cur: ActivityGroupTypeInter[] = await ActivityGroupTypeModel.find(condition).limit(1000).sort({ createdAt: 1 }).lean();
|
||||||
|
if(cur.length == 0) break;
|
||||||
|
createdAt = cur[cur.length - 1].createdAt;
|
||||||
|
all.push(...cur);
|
||||||
|
}
|
||||||
|
return all;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ActivityGroupTypeModel = getModelForClass(Activity_GroupType);
|
export const ActivityGroupTypeModel = getModelForClass(Activity_GroupType);
|
||||||
|
|||||||
Reference in New Issue
Block a user