2023-01-04 16:11:51 +08:00

121 lines
3.0 KiB
TypeScript

/*
* Tencent is pleased to support the open source community by making MagicEditor available.
*
* Copyright (C) 2023 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// 处理活动请求
import Koa from 'koa';
import ActService, { ActInfoDetail, ActListQuery, CopyInfo } from '@src/service/act';
class ActController {
private service: ActService = new ActService();
// 获取活动列表
getList = async (ctx: Koa.Context) => {
try {
const query: ActListQuery = JSON.parse(ctx.request.body.data);
const [actList, count] = await Promise.all([this.service.getActList(query), this.service.getCount(query)]);
ctx.body = {
data: actList,
total: count,
fetch: true,
errorMsg: '',
};
} catch (e) {
ctx.logger.error(e);
ctx.body = {
data: [],
total: 0,
fetch: false,
errorMsg: (e as Error).message,
};
}
};
// 新建活动
create = async (ctx: Koa.Context) => {
try {
const actInfo: ActInfoDetail = JSON.parse(ctx.request.body.data);
const actId = await this.service.create(actInfo);
ctx.body = {
ret: 0,
msg: '新建活动成功',
data: { actId },
};
} catch (e) {
ctx.body = {
ret: -1,
msg: (e as Error).message,
};
}
};
// 复制活动
copy = async (ctx: Koa.Context) => {
try {
const copyInfo: CopyInfo = JSON.parse(ctx.request.body.data);
await this.service.copy(copyInfo);
ctx.body = {
ret: 0,
msg: '复制成功',
};
} catch (e) {
ctx.body = {
ret: -1,
msg: (e as Error).message,
};
}
};
// 根据id查询活动详情
getInfo = async (ctx: Koa.Context) => {
try {
const id = Number(ctx.query.id);
const act = await this.service.getActInfo(id);
ctx.body = {
ret: 0,
msg: '获取活动信息成功',
data: act,
};
} catch (e) {
ctx.body = {
ret: -1,
msg: (e as Error).message,
};
}
};
// 根据页面id删除活动页面
removePage = async (ctx: Koa.Context) => {
try {
const { pageId } = JSON.parse(ctx.request.body.data);
await this.service.removePage(pageId);
ctx.body = {
ret: 0,
msg: '删除活动页面成功',
};
} catch (e) {
ctx.body = {
ret: -1,
msg: (e as Error).message,
};
}
};
}
export default new ActController();