2019-07-31 20:41:54 +08:00

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