diff --git a/src/controllers/games/ad.js b/src/controllers/games/ad.js index 8dcbb5a..a0d3d5a 100644 --- a/src/controllers/games/ad.js +++ b/src/controllers/games/ad.js @@ -2,6 +2,8 @@ import {Router} from 'express' import axios from 'axios' import config from '../../../config/config' import logger from '../../utils/logger' +import AdArea from '../../models/admin/AdArea' +import {builtinModules} from 'module' const router = new Router() @@ -191,4 +193,121 @@ router.delete('/del-pos', async (req, res, next) => { } }) +// 获取广告区域列表 +router.get('/get-area', async (req, res, next) => { + try { + const result = await AdArea.find({}) + res.send({ + errcode: 0, + AdAreaList: result, + }) + } catch (err) { + next(err) + } +}) + +// 新增平台 +router.post('/save-area', async (req, res, next) => { + logger.db(req, '游戏管理', '广告区域管理', '新增广告区域') + // 权限判断 + const hasPerm = req.user.permissions.includes(`ad-area-writeable`) + if (!hasPerm) { + res.status(403).send({ + errcode: 1, + errmsg: '用户无广告区域编辑权限!', + }) + return + } + const body = req.body + try { + const search = await AdArea.findOne({ + $or: [{name: body.name}, {area_id: body.area_id}, {key: body.key}], + }) + if (search) { + res.send({ + errcode: 1, + errmsg: '区域名称或区域 ID 已存在!', + }) + } else { + const newAdArea = new AdArea(body) + const result = await newAdArea.save() + res.send({ + errcode: 0, + }) + } + } catch (err) { + next(err) + } +}) + +// 编辑平台信息 +router.post('/edit-area', async (req, res, next) => { + logger.db(req, '游戏管理', '广告区域管理', '修改广告区域信息') + // 权限判断 + const hasPerm = req.user.permissions.includes(`ad-area-writeable`) + if (!hasPerm) { + res.status(403).send({ + errcode: 1, + errmsg: '用户无广告区域编辑权限!', + }) + return + } + const body = req.body + try { + const search = await AdArea.findOne({area_id: body.area_id}) + if (search) { + const result = await AdArea.updateOne( + {area_id: body.area_id}, + { + name: body.name, + key: body.key, + area_id: body.area_id, + comment: body.comment, + } + ) + res.send({ + errcode: 0, + }) + } else { + res.send({ + errcode: 1, + errmsg: '区域不存在,修改失败!', + }) + } + } catch (err) { + next(err) + } +}) + +// 编辑平台信息 +router.post('/del-area', async (req, res, next) => { + logger.db(req, '游戏管理', '广告区域管理', '删除广告区域') + // 权限判断 + const hasPerm = req.user.permissions.includes(`ad-area-writeable`) + if (!hasPerm) { + res.status(403).send({ + errcode: 1, + errmsg: '用户无广告区域编辑权限!', + }) + return + } + const body = req.body + try { + const search = await AdArea.findOne({area_id: body.area_id}) + if (search) { + const result = await AdArea.deleteOne({area_id: body.area_id}) + res.send({ + errcode: 0, + }) + } else { + res.send({ + errcode: 1, + errmsg: '区域不存在,删除失败!', + }) + } + } catch (err) { + next(err) + } +}) + export default router diff --git a/src/models/admin/AdArea.js b/src/models/admin/AdArea.js new file mode 100644 index 0000000..66e58a5 --- /dev/null +++ b/src/models/admin/AdArea.js @@ -0,0 +1,20 @@ +'use strict'; +import mongoose from 'mongoose'; + +/** + * 广告区域 + */ +const AdArea = new mongoose.Schema( + { + name: { type: String }, + key: { type: String }, + area_id: { type: Number }, + comment: { type: String } + }, + { + collection: 'ad_area', + timestamps: true + } +); + +export default mongoose.model('AdArea', AdArea);