后台:活动组类型

This commit is contained in:
luying
2021-06-18 16:41:26 +08:00
parent 85b3ac3132
commit 15ff0938bc
6 changed files with 46 additions and 6 deletions

View File

@@ -54,6 +54,13 @@ export default class ActivityController extends Controller {
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 updateActivityGroupName() {
const { ctx } = this;
const { groupId, groupName } = ctx.request.body;

View File

@@ -69,4 +69,5 @@ export default (app: Application) => {
router.post('/api/activity/getactivitygrouptypelist', controller.activity.getActivityGroupTypeList);
router.post('/api/activity/saveactivitygrouptypelist', controller.activity.updateActivityGroupType);
router.post('/api/activity/deleteactivitygrouptype', controller.activity.deleteActivityGroupType);
router.post('/api/activity/saveactivitygrouptype', controller.activity.saveGroupTypeToActivityGroup);
};

View File

@@ -111,7 +111,7 @@ export default class Activity extends Service {
public async updateActivityGroupName(groupId: number, groupName: string) {
const { ctx } = this;
try {
await ActivityGroupModel.updateGroupName(groupId, groupName, ctx.user?.uid);
await ActivityGroupModel.updateGroup(groupId, {groupName}, ctx.user?.uid);
} catch(e) {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR, null, e.stack);
}
@@ -124,6 +124,23 @@ export default class Activity extends Service {
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
const { ctx } = this;
try {
let activityGroup = await ActivityGroupModel.findGroupData(groupId);
if(!activityGroup) return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_GROUP_NOT_FOUND);
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 activities = await ActivityModel.findActivityByIds(activityIds);
for(let { type } of activities) {
let index = dic.findIndex(cur => cur.activityType == type);
if(index == -1) {
return ctx.service.utils.resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
} else {
dic.splice(index, 1);
}
}
}
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
} catch(e) {
@@ -214,4 +231,12 @@ export default class Activity extends Service {
await ActivityGroupTypeModel.deleteActivityGroupType(groupType);
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);
}
}

View File

@@ -382,7 +382,9 @@ export const STATUS = {
GM_CAN_NOT_EDIT_ACT: { code: 60016, simStr: '活动期间不可编辑活动' },
GM_STATEGY_NOT_FOUND: { code: 60017, simStr: '未找到该策略' },
GM_SERVER_NOT_FOUND: { code: 60018, simStr: '未找到该服' },
GM_ACTIVITY_GROUP_TYPE_NOT_FOUND: { code: 60019, simStr: '未找到活动组类型' },
GM_ACTIVITY_GROUP_NOT_FOUND: { code: 60019, simStr: '未找到活动组' },
GM_ACTIVITY_GROUP_TYPE_NOT_FOUND: { code: 60020, simStr: '未找到活动组类型' },
GM_ACTIVITY_NOT_FIT_GROUP_TYPE: { code: 60021, simStr: '该活动不满足该活动组类型' },
// 支付相关状态 70000 - 79999
NO_PRODUCT_ID: { code: 70001, simStr: '无效商品' },
NO_PAY_TYPE: { code: 70002, simStr: '无效支付类型' },

View File

@@ -22,7 +22,7 @@ export default class Activity_Group extends BaseModel {
endTime: Date; // 里面的activity的最晚的时间
@prop({ required: true, type: Number })
serverIds: number[]; // 关联服务器列表
@prop({ required: true })
@prop({ required: true, default: 0 })
type: number; // 类型 ACTIVITY_GROUP_TYPE
@@ -31,7 +31,7 @@ export default class Activity_Group extends BaseModel {
let groupId = await CounterModel.getNewCounter(COUNTER.ACTIVITY_GROUP);
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId }, {
$setOnInsert: { groupName: `活动组${groupId}`, activities: [], serverIds: [], createdBy: uid }, $set: { updatedBy: uid }
$setOnInsert: { groupName: `活动组${groupId}`, activities: [], serverIds: [], createdBy: uid, type: 0 }, $set: { updatedBy: uid }
}, { new: true, upsert: true }).lean();
return result;
}
@@ -49,9 +49,9 @@ export default class Activity_Group extends BaseModel {
}
//更新名字
public static async updateGroupName(groupId: number, groupName: string, uid = 1) {
public static async updateGroup(groupId: number, update: ActivityGroupModelTypeParam, uid = 1) {
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId },
{ $set: { groupName, updatedBy: uid } }, { new: true }).lean(true);
{ $set: { ...update, updatedBy: uid } }, { new: true }).lean(true);
return result;
}

View File

@@ -26,6 +26,11 @@ export default class Activity_GroupType extends BaseModel {
@prop({ required: true, type: ActivityType, _id: false })
activityTypes: ActivityType[]; // 活动类型集合
public static async findByGroupType(groupType: number) {
let result: ActivityGroupTypeInter = await ActivityGroupTypeModel.findOne({ groupType }).lean();
return result;
}
public static async createActivityGroupType(groupTypeName: string, types: number[], uid = 1) {
let activityTypes = types.map((value, index) => {
return { index: index + 1, activityType: value };