314 lines
7.1 KiB
JavaScript
314 lines
7.1 KiB
JavaScript
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()
|
|
|
|
const adApiUrl = config.ad_api
|
|
|
|
// 获取单个游戏广告位
|
|
router.get('/get-pos', async (req, res, next) => {
|
|
// 权限判断
|
|
const hasPerm =
|
|
req.user.permissions.includes(`${req.query.uid}-readable`) ||
|
|
req.user.permissions.includes(`${req.query.uid}-edit`) ||
|
|
req.user.permissions.includes(`${req.query.uid}-publish`) ||
|
|
req.user.permissions.includes(`games-writeable`)
|
|
if (!hasPerm) {
|
|
res.status(403).send({
|
|
errcode: 1,
|
|
errmsg: '用户无此游戏广告位查看权限!',
|
|
})
|
|
return
|
|
}
|
|
|
|
const query = req.query
|
|
try {
|
|
const queryRes = await axios({
|
|
url: adApiUrl + '/location',
|
|
method: 'get',
|
|
params: {
|
|
gameid: parseInt(query.gameid),
|
|
channelid: parseInt(query.channelid),
|
|
},
|
|
})
|
|
const data = queryRes.data
|
|
|
|
if (data.code === 200) {
|
|
res.send({
|
|
errcode: 0,
|
|
message: data.message || [],
|
|
})
|
|
} else {
|
|
res.send({
|
|
errcode: 1,
|
|
message: '查询位置信息时出错!',
|
|
})
|
|
}
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
// 为游戏添加广告位
|
|
router.post('/add-pos', async (req, res, next) => {
|
|
// 权限判断
|
|
const hasPerm =
|
|
req.user.permissions.includes(`${req.body.uid}-edit`) ||
|
|
req.user.permissions.includes(`${req.body.uid}-publish`) ||
|
|
req.user.permissions.includes(`games-writeable`)
|
|
if (!hasPerm) {
|
|
res.status(403).send({
|
|
errcode: 1,
|
|
errmsg: '用户无此游戏广告编辑权限!',
|
|
})
|
|
return
|
|
}
|
|
|
|
logger.db(req, '游戏管理', '广告位管理', '添加广告位')
|
|
|
|
const body = req.body
|
|
try {
|
|
const addRes = await axios({
|
|
url: adApiUrl + '/location',
|
|
method: 'post',
|
|
data: {
|
|
area: body.area,
|
|
type: body.type,
|
|
mode: body.mode,
|
|
gameid: body.gameid,
|
|
channelid: body.channelid,
|
|
},
|
|
})
|
|
const data = addRes.data
|
|
if (data.code === 200) {
|
|
res.send({
|
|
errcode: 0,
|
|
})
|
|
} else {
|
|
res.send({
|
|
errcode: 1,
|
|
message: '添加位置时出错!',
|
|
})
|
|
}
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
// 修改广告位信息
|
|
|
|
router.put('/modify-pos', async (req, res, next) => {
|
|
// 权限判断
|
|
const hasPerm =
|
|
req.user.permissions.includes(`${req.body.uid}-edit`) ||
|
|
req.user.permissions.includes(`${req.body.uid}-publish`) ||
|
|
req.user.permissions.includes(`games-writeable`)
|
|
if (!hasPerm) {
|
|
res.status(403).send({
|
|
errcode: 1,
|
|
errmsg: '用户无此游戏广告编辑权限!',
|
|
})
|
|
return
|
|
}
|
|
|
|
logger.db(req, '游戏管理', '广告位管理', '修改广告位')
|
|
|
|
const body = req.body
|
|
|
|
try {
|
|
const modifyRes = await axios({
|
|
url: adApiUrl + '/location',
|
|
method: 'put',
|
|
data: {
|
|
area: body.area,
|
|
type: body.type,
|
|
mode: body.mode,
|
|
id: body.id,
|
|
status: body.status,
|
|
gameid: body.gameid,
|
|
channelid: body.channelid,
|
|
},
|
|
})
|
|
const data = modifyRes.data
|
|
|
|
if (data.code === 200) {
|
|
res.send({
|
|
errcode: 0,
|
|
})
|
|
} else {
|
|
res.send({
|
|
errcode: 1,
|
|
message: '修改位置时出错!',
|
|
})
|
|
}
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
// 删除广告位信息
|
|
|
|
router.delete('/del-pos', async (req, res, next) => {
|
|
// 权限判断
|
|
const hasPerm =
|
|
req.user.permissions.includes(`${req.body.uid}-edit`) ||
|
|
req.user.permissions.includes(`${req.body.uid}-publish`) ||
|
|
req.user.permissions.includes(`games-writeable`)
|
|
if (!hasPerm) {
|
|
res.status(403).send({
|
|
errcode: 1,
|
|
errmsg: '用户无此游戏广告编辑权限!',
|
|
})
|
|
return
|
|
}
|
|
|
|
logger.db(req, '游戏管理', '广告位管理', '删除广告位')
|
|
const body = req.body
|
|
try {
|
|
const delRes = await axios({
|
|
url: adApiUrl + '/location',
|
|
method: 'delete',
|
|
data: {
|
|
id: body.id,
|
|
},
|
|
})
|
|
const data = delRes.data
|
|
|
|
if (data.code === 200) {
|
|
res.send({
|
|
errcode: 0,
|
|
})
|
|
} else {
|
|
res.send({
|
|
errcode: 1,
|
|
message: '修改位置时出错!',
|
|
})
|
|
}
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
// 获取广告区域列表
|
|
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
|