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