后台:任务对应活动
This commit is contained in:
@@ -109,5 +109,32 @@ export default class ActivityController extends Controller {
|
||||
return
|
||||
}
|
||||
|
||||
public async getActivityTaskPoint() {
|
||||
const { ctx } = this;
|
||||
const { page, pageSize, sortField, sortOrder, form } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.getActivityTaskPoint(page, pageSize, sortField, sortOrder, form);
|
||||
return
|
||||
}
|
||||
|
||||
public async createTaskToActivity() {
|
||||
const { ctx } = this;
|
||||
const { taskType, activityId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.createTaskToActivity(taskType, activityId);
|
||||
return
|
||||
}
|
||||
|
||||
public async updateActivityTaskPoint() {
|
||||
const { ctx } = this;
|
||||
const { taskType, taskId, activityId, point } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.updateActivityTaskPoint(taskType, taskId, activityId, point);
|
||||
return
|
||||
}
|
||||
|
||||
public async delActivityTaskPoint() {
|
||||
const { ctx } = this;
|
||||
const { taskType, taskId, activityId } = ctx.request.body;
|
||||
ctx.body = await ctx.service.activity.delActivityTaskPoint(taskType, taskId, activityId);
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -72,6 +72,10 @@ export default (app: Application) => {
|
||||
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/getactivitytaskpoint', controller.activity.getActivityTaskPoint);
|
||||
router.post('/api/activity/createtasktoactivity', controller.activity.createTaskToActivity);
|
||||
router.post('/api/activity/updateactivitytaskpoint', controller.activity.updateActivityTaskPoint);
|
||||
router.post('/api/activity/delactivitytaskpoint', controller.activity.delActivityTaskPoint);
|
||||
|
||||
router.post('/api/mail/getgmmaillist', controller.mail.getGMMailList);
|
||||
router.post('/api/mail/updategmmail', controller.mail.updateGMMail);
|
||||
|
||||
@@ -6,6 +6,8 @@ import { ServerlistModel } from '@db/Serverlist';
|
||||
import { GMUserType } from '@db/GMUser';
|
||||
import { SignInData } from '@domain/activityField/signInField';
|
||||
import { ActivityGroupTypeModel } from '@db/ActivityGroupType';
|
||||
import { ActivityTaskPointModel } from '@db/ActivityTaskPoint';
|
||||
import { gameData } from '@pubUtils/data';
|
||||
|
||||
/**
|
||||
* Test Service
|
||||
@@ -38,7 +40,7 @@ export default class Activity extends Service {
|
||||
|
||||
if(activity.type == ACTIVITY_TYPE.SIGN_IN || activity.type == ACTIVITY_TYPE.SIGN_IN_VIP) {
|
||||
// 签到活动的不显示期内也可以编辑
|
||||
let signInObj = new SignInData(activity);
|
||||
let signInObj = new SignInData(activity, 0);
|
||||
if(signInObj.beginTime < now.getTime() && signInObj.endTime > now.getTime() ) {
|
||||
return this.ctx.service.utils.resResult(STATUS.GM_CAN_NOT_EDIT_ACT);
|
||||
}
|
||||
@@ -297,4 +299,37 @@ export default class Activity extends Service {
|
||||
});
|
||||
}
|
||||
|
||||
public async getActivityTaskPoint(page: number, pageSize: number, sortField: string, sortOrder: string, form: {taskType?: number, taskId?: number, activityId?: number}) {
|
||||
const { ctx } = this;
|
||||
const list = await ActivityTaskPointModel.findByCondition(page, pageSize, sortField, sortOrder, form);
|
||||
const total = await ActivityTaskPointModel.countByCondition(form);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS, {
|
||||
list, total
|
||||
});
|
||||
}
|
||||
|
||||
public async createTaskToActivity(taskType: number, activityId: number) {
|
||||
const { ctx } = this;
|
||||
let dicTask = gameData.tasks.get(taskType);
|
||||
if(!dicTask) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
for(let [id, dic] of dicTask) {
|
||||
await ActivityTaskPointModel.createDataIfNotExist(taskType, id, activityId, dic['point']||0, ctx.user?.uid);
|
||||
}
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async updateActivityTaskPoint(taskType: number, taskId: number, activityId: number, point: number) {
|
||||
const { ctx } = this;
|
||||
let result = await ActivityTaskPointModel.updateData(taskType, taskId, activityId, point, ctx.user?.uid);
|
||||
if(!result) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
public async delActivityTaskPoint(taskType: number, taskId: number, activityId: number) {
|
||||
const { ctx } = this;
|
||||
|
||||
await ActivityTaskPointModel.deleteData(taskType, taskId, activityId);
|
||||
return ctx.service.utils.resResult(STATUS.SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,7 +96,7 @@ export default class Activity extends BaseModel {
|
||||
}
|
||||
|
||||
//查询
|
||||
public static async findByCondition(page: number, pageSize: number, sortField: string, sortOrder: string, 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 = {};
|
||||
if (type != 0) searchObj['type'] = type;
|
||||
if (groupId != 0) searchObj['groupId'] = groupId;
|
||||
|
||||
@@ -20,9 +20,9 @@ export default class Activity_Task_Point extends BaseModel {
|
||||
point: number; // 增加点数
|
||||
|
||||
//更新活动数据
|
||||
public static async updateData(taskType: number, taskId: number, activityId: number, point: number) {
|
||||
public static async updateData(taskType: number, taskId: number, activityId: number, point: number, uid = 1) {
|
||||
let result: ActivityTaskPointModelType = await ActivityTaskPointModel.findOneAndUpdate(
|
||||
{ taskType, taskId }, { $set: { activityId, point } }, { upsert: true, new: true }
|
||||
{ taskType, taskId, activityId }, { $set: { point, updatedBy: uid }, $setOnInsert: { createdBy: uid } }, { upsert: true, new: true }
|
||||
).lean(true);
|
||||
return result;
|
||||
}
|
||||
@@ -39,6 +39,44 @@ export default class Activity_Task_Point extends BaseModel {
|
||||
await ActivityTaskPointModel.deleteOne({ taskType, taskId, activityId });
|
||||
}
|
||||
|
||||
public static async createDataIfNotExist(taskType: number, taskId: number, activityId: number, point: number, uid = 1) {
|
||||
let result: ActivityTaskPointModelType = await ActivityTaskPointModel.findOneAndUpdate(
|
||||
{ taskType, taskId, activityId }, { $setOnInsert: { point, createdBy: uid, updatedBy: uid } }, { upsert: true, new: true }
|
||||
).lean(true);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static getSearchObj(form: {taskType?: number, taskId?: number, activityId?: number}) {
|
||||
let searchObj = {};
|
||||
if(form['taskType']) searchObj['taskType'] = form.taskType;
|
||||
if(form['taskId']) searchObj['taskId'] = form.taskId;
|
||||
if(form['activityId']) searchObj['activityId'] = form.activityId;
|
||||
return searchObj
|
||||
}
|
||||
|
||||
public static async findByCondition(page: number, pageSize: number, sortField: string = 'updatedAt', sortOrder: string = 'descend', form: {taskType?: number, taskId?: number, activityId?: number} = {}) {
|
||||
|
||||
let searchObj = this.getSearchObj(form);
|
||||
let sort = {};
|
||||
if(sortField && sortOrder) {
|
||||
if(sortOrder == 'ascend') {
|
||||
sort[sortField] = 1;
|
||||
} else if (sortOrder == 'descend') {
|
||||
sort[sortField] = -1;
|
||||
}
|
||||
}
|
||||
const result: ActivityTaskPointModelType[] = await ActivityTaskPointModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true });
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
public static async countByCondition(form: {taskType?: number, taskId?: number, activityId?: number} = {}) {
|
||||
|
||||
let searchObj = this.getSearchObj(form);
|
||||
const result = await ActivityTaskPointModel.count(searchObj);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const ActivityTaskPointModel = getModelForClass(Activity_Task_Point);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import moment = require('moment');
|
||||
import { ACTIVITY_TIME_TYPE, REFRESH_TIME, SERVER_OPEN_TIME } from '../../consts';
|
||||
import { ActivityModelType } from '../../db/Activity';
|
||||
import { RoleModel } from '../../db/Role';
|
||||
import { deltaDays } from '../../pubUtils/util';
|
||||
|
||||
// 活动数据
|
||||
|
||||
Reference in New Issue
Block a user