后台:活动组类型
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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: '无效支付类型' },
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 };
|
||||
|
||||
Reference in New Issue
Block a user