后台:活动组类型
This commit is contained in:
@@ -54,6 +54,13 @@ 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 updateActivityGroupName() {
|
public async updateActivityGroupName() {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
const { groupId, groupName } = ctx.request.body;
|
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/getactivitygrouptypelist', controller.activity.getActivityGroupTypeList);
|
||||||
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);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ export default class Activity extends Service {
|
|||||||
public async updateActivityGroupName(groupId: number, groupName: string) {
|
public async updateActivityGroupName(groupId: number, groupName: string) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
try {
|
try {
|
||||||
await ActivityGroupModel.updateGroupName(groupId, groupName, ctx.user?.uid);
|
await ActivityGroupModel.updateGroup(groupId, {groupName}, 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, e.stack);
|
||||||
}
|
}
|
||||||
@@ -124,6 +124,23 @@ export default class Activity extends Service {
|
|||||||
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
|
public async saveActivitiesToGroup(groupId: number, activityIds: number[]) {
|
||||||
const { ctx } = this;
|
const { ctx } = this;
|
||||||
try {
|
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);
|
await ActivityGroupModel.setActivitiesToGroupData(groupId, activityIds, ctx.user?.uid);
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
@@ -214,4 +231,12 @@ 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -382,7 +382,9 @@ export const STATUS = {
|
|||||||
GM_CAN_NOT_EDIT_ACT: { code: 60016, simStr: '活动期间不可编辑活动' },
|
GM_CAN_NOT_EDIT_ACT: { code: 60016, simStr: '活动期间不可编辑活动' },
|
||||||
GM_STATEGY_NOT_FOUND: { code: 60017, simStr: '未找到该策略' },
|
GM_STATEGY_NOT_FOUND: { code: 60017, simStr: '未找到该策略' },
|
||||||
GM_SERVER_NOT_FOUND: { code: 60018, 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
|
// 支付相关状态 70000 - 79999
|
||||||
NO_PRODUCT_ID: { code: 70001, simStr: '无效商品' },
|
NO_PRODUCT_ID: { code: 70001, simStr: '无效商品' },
|
||||||
NO_PAY_TYPE: { code: 70002, simStr: '无效支付类型' },
|
NO_PAY_TYPE: { code: 70002, simStr: '无效支付类型' },
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default class Activity_Group extends BaseModel {
|
|||||||
endTime: Date; // 里面的activity的最晚的时间
|
endTime: Date; // 里面的activity的最晚的时间
|
||||||
@prop({ required: true, type: Number })
|
@prop({ required: true, type: Number })
|
||||||
serverIds: number[]; // 关联服务器列表
|
serverIds: number[]; // 关联服务器列表
|
||||||
@prop({ required: true })
|
@prop({ required: true, default: 0 })
|
||||||
type: number; // 类型 ACTIVITY_GROUP_TYPE
|
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 groupId = await CounterModel.getNewCounter(COUNTER.ACTIVITY_GROUP);
|
||||||
|
|
||||||
let result: ActivityGroupModelType = await ActivityGroupModel.findOneAndUpdate({ groupId }, {
|
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();
|
}, { new: true, upsert: true }).lean();
|
||||||
return result;
|
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 },
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,11 @@ export default class Activity_GroupType extends BaseModel {
|
|||||||
@prop({ required: true, type: ActivityType, _id: false })
|
@prop({ required: true, type: ActivityType, _id: false })
|
||||||
activityTypes: ActivityType[]; // 活动类型集合
|
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) {
|
public static async createActivityGroupType(groupTypeName: string, types: number[], uid = 1) {
|
||||||
let activityTypes = types.map((value, index) => {
|
let activityTypes = types.map((value, index) => {
|
||||||
return { index: index + 1, activityType: value };
|
return { index: index + 1, activityType: value };
|
||||||
|
|||||||
Reference in New Issue
Block a user