From f56d8ed717404cf9a667ad1dd5d2f302ec499379 Mon Sep 17 00:00:00 2001 From: yulixing Date: Mon, 12 Aug 2019 19:22:51 +0800 Subject: [PATCH] data \ item --- src/controllers/games/ad.js | 12 +-- src/controllers/games/data.js | 81 ++++++++++++++++++++ src/controllers/games/index.js | 2 + src/controllers/games/item.js | 134 +++++++++++++++++++++++++++++++++ src/models/admin/GameItem.js | 22 ++++++ 5 files changed, 245 insertions(+), 6 deletions(-) create mode 100644 src/controllers/games/item.js create mode 100644 src/models/admin/GameItem.js diff --git a/src/controllers/games/ad.js b/src/controllers/games/ad.js index cb87273..4d4a92d 100644 --- a/src/controllers/games/ad.js +++ b/src/controllers/games/ad.js @@ -342,8 +342,8 @@ router.post('/uid', async (req, res, next) => { logger.db(req, '游戏管理', '广告Uid', '新增广告Uid') // 权限判断 const hasPerm = - req.user.permissions.includes(`${req.body._id}-edit`) || - req.user.permissions.includes(`${req.body._id}-publish`) || + 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({ @@ -376,8 +376,8 @@ router.put('/uid', async (req, res, next) => { logger.db(req, '游戏管理', '广告Uid', '修改广告Uid信息') // 权限判断 const hasPerm = - req.user.permissions.includes(`${req.body._id}-edit`) || - req.user.permissions.includes(`${req.body._id}-publish`) || + 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({ @@ -420,8 +420,8 @@ router.delete('/uid', async (req, res, next) => { logger.db(req, '游戏管理', '广告Uid', '删除广告Uid') // 权限判断 const hasPerm = - req.user.permissions.includes(`${req.body._id}-edit`) || - req.user.permissions.includes(`${req.body._id}-publish`) || + 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({ diff --git a/src/controllers/games/data.js b/src/controllers/games/data.js index e876a73..8348e33 100644 --- a/src/controllers/games/data.js +++ b/src/controllers/games/data.js @@ -147,4 +147,85 @@ function getCategoryData(cateName, date, is_new, game_id, platform_id) { }) } +// 获取游戏数据(画图表用) +router.get('/game-data', 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 + console.log(query) + const gameid = parseInt(query.gameid) + const channelid = parseInt(query.channelid) + const ad_channelid = query.ad_channelid + const method = query.method + const time_partice = parseInt(query.time_partice) + const time_begin = query.isNew + const time_end = query.isNew + + try { + // TODO: 接口对接 + // const searchRes = await axios({ + // url: gameReportApiUrl, + // method: 'get', + // params: { + // c: 'Ops', + // a: 'descField', + // body: JSON.stringify({ + // gameid: game_id, + // channel: platform_id, + // }), + // }, + // }) + + // if (searchRes.data.errcode === 0) { + // res.send({ + // errcode: 0, + // errmsg: '', + // message: { + // totoal: 2, + // result: [ + // { + // '2019-08-01 01:00:00': 100, + // '2019-08-01 02:00:00': 120, + // }, + // ], + // }, + // }) + // } else { + // res.send({ + // errcode: searchRes.errcode, + // errmsg: searchRes.errmsg, + // }) + // } + + + // TODO: 数据示例 + res.send({ + errcode: 0, + errmsg: '', + message: { + totoal: 2, + result: [ + { + '2019-08-01 01:00:00': 100, + '2019-08-01 02:00:00': 120, + }, + ], + }, + }) + } catch (err) { + next(err) + } +}) + export default router diff --git a/src/controllers/games/index.js b/src/controllers/games/index.js index aa1c980..d6cb34f 100644 --- a/src/controllers/games/index.js +++ b/src/controllers/games/index.js @@ -6,6 +6,7 @@ import shareRouter from './share'; import rewardRouter from './reward'; import libRouter from './lib'; import adRouter from './ad'; +import itemRouter from './item'; import dataRouter from './data'; @@ -22,6 +23,7 @@ router.use('/mp_share', mpShareRouter); router.use('/reward', rewardRouter); router.use('/lib', libRouter); router.use('/ad', adRouter); +router.use('/item', itemRouter); router.use('/data', dataRouter); router.use('/', gamesRouter); diff --git a/src/controllers/games/item.js b/src/controllers/games/item.js new file mode 100644 index 0000000..e66aa81 --- /dev/null +++ b/src/controllers/games/item.js @@ -0,0 +1,134 @@ +import {Router} from 'express' +import axios from 'axios' +import logger from '../../utils/logger' +import GameItem from '../../models/admin/GameItem' + +const router = new Router() + +// ---------------------------------------------- // + +// 获取游戏道具列表 +router.get('/', async (req, res, next) => { + const query = req.query + try { + const result = await GameItem.find({ + game_id: query.game_id, + }) + res.send({ + errcode: 0, + result: result, + }) + } catch (err) { + next(err) + } +}) + +// 新增游戏道具 +router.post('/', async (req, res, next) => { + logger.db(req, '游戏管理', '游戏道具', '新增游戏道具') + // 权限判断 + 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 + } + const body = req.body + try { + const newGameItem = new GameItem({ + game_id: body.game_id, + item_id: body.item_id, + item_name: body.item_name, + }) + const result = await newGameItem.save() + res.send({ + errcode: 0, + }) + } catch (err) { + next(err) + } +}) + +// 编辑游戏道具信息 +router.put('/', async (req, res, next) => { + logger.db(req, '游戏管理', '游戏道具', '修改游戏道具信息') + // 权限判断 + 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 + } + const body = req.body + try { + const search = await GameItem.findOne({_id: body._id}) + if (search) { + const result = await GameItem.updateOne( + {_id: body._id}, + { + game_id: body.game_id, + item_id: body.item_id, + item_name: body.item_name, + } + ) + res.send({ + errcode: 0, + }) + } else { + res.send({ + errcode: 1, + errmsg: 'uid不存在,修改失败!', + }) + } + } catch (err) { + next(err) + } +}) + +// 删除游戏道具信息 +router.delete('/', async (req, res, next) => { + logger.db(req, '游戏管理', '游戏道具', '删除广告Uid') + // 权限判断 + 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 + } + const body = req.body + try { + const search = await GameItem.findOne({_id: body._id}) + if (search) { + const result = await GameItem.deleteOne({_id: body._id}) + res.send({ + errcode: 0, + }) + } else { + res.send({ + errcode: 1, + errmsg: 'Uid不存在,删除失败!', + }) + } + } catch (err) { + next(err) + } +}) + +// ---------------------------------------------- // + +export default router diff --git a/src/models/admin/GameItem.js b/src/models/admin/GameItem.js new file mode 100644 index 0000000..dfdc314 --- /dev/null +++ b/src/models/admin/GameItem.js @@ -0,0 +1,22 @@ +'use strict' +import mongoose from 'mongoose' + +/** + * 游戏道具 + */ +const GameItem = new mongoose.Schema( + { + // 游戏id + game_id: {type: String}, + // 道具id + item_id: {type: Number}, + // 道具名称 + item_name: {type: String}, + }, + { + collection: 'game_item', + timestamps: true, + } +) + +export default mongoose.model('GameItem', GameItem)