调整权限验证
This commit is contained in:
parent
b34c2d3df2
commit
fb213adac5
@ -1,116 +1,117 @@
|
||||
import { Router } from 'express';
|
||||
import data from '../../../config/china_area';
|
||||
import ChinaRegion from '../../models/snoopy/ChinaRegion';
|
||||
import ChinaArea from '../../models/snoopy/ChinaArea';
|
||||
import GameShareImage from '../../models/snoopy/GameShareImage';
|
||||
import {Router} from 'express'
|
||||
import data from '../../../config/china_area'
|
||||
import ChinaRegion from '../../models/snoopy/ChinaRegion'
|
||||
import ChinaArea from '../../models/snoopy/ChinaArea'
|
||||
import getGameShareImage from '../../models/snoopy/GameShareImage'
|
||||
import logger from '../../utils/logger'
|
||||
|
||||
const router = new Router();
|
||||
const GameShareImage = getGameShareImage()
|
||||
|
||||
const router = new Router()
|
||||
|
||||
/* 获取省市列表, id为地区英文名*/
|
||||
router.get('/china_region', async (req, res, next) => {
|
||||
try {
|
||||
const provinces = await ChinaRegion.find({ level: 1 });
|
||||
const citys = await ChinaRegion.find({ level: 2, pinyin: { $ne: null } });
|
||||
const result = [];
|
||||
const map = new Map();
|
||||
const pIdx = {};
|
||||
const provinces = await ChinaRegion.find({level: 1})
|
||||
const citys = await ChinaRegion.find({level: 2, pinyin: {$ne: null}})
|
||||
const result = []
|
||||
const map = new Map()
|
||||
const pIdx = {}
|
||||
for (let i = 0; i < provinces.length; i++) {
|
||||
result.push({
|
||||
id: provinces[i].pinyin,
|
||||
parent: '#',
|
||||
text: provinces[i].name,
|
||||
children: []
|
||||
});
|
||||
map.set(provinces[i]._id, provinces[i]);
|
||||
children: [],
|
||||
})
|
||||
map.set(provinces[i]._id, provinces[i])
|
||||
|
||||
if (!pIdx[provinces[i]._id]) {
|
||||
pIdx[provinces[i]._id] = i;
|
||||
pIdx[provinces[i]._id] = i
|
||||
}
|
||||
}
|
||||
for (const c of citys) {
|
||||
if (map.has(c.parent_id)) {
|
||||
const pIndex = pIdx[c.parent_id];
|
||||
const pIndex = pIdx[c.parent_id]
|
||||
result[pIndex].children.push({
|
||||
id: `${map.get(c.parent_id).pinyin}_${c.pinyin}`,
|
||||
parent: map.get(c.parent_id).pinyin,
|
||||
text: c.name
|
||||
});
|
||||
text: c.name,
|
||||
})
|
||||
}
|
||||
}
|
||||
res.json({
|
||||
errcode: 0,
|
||||
records: result
|
||||
});
|
||||
records: result,
|
||||
})
|
||||
} catch (err) {
|
||||
next(err);
|
||||
next(err)
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
/* 获取所有定义好的地域列表*/
|
||||
router.get('/china_area', async (req, res, next) => {
|
||||
try {
|
||||
const records = await ChinaArea.find({ deleted: false });
|
||||
res.json({ errcode: 0, records: records });
|
||||
const records = await ChinaArea.find({deleted: false})
|
||||
res.json({errcode: 0, records: records})
|
||||
} catch (err) {
|
||||
next(err);
|
||||
next(err)
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
/* 更新*/
|
||||
router.post('/china_area', async (req, res, next) => {
|
||||
logger.db(req, '公共', '地域', '保存地域');
|
||||
const body = req.body;
|
||||
const id = body.id;
|
||||
const name = body.name;
|
||||
const locations = body.locations;
|
||||
let record;
|
||||
logger.db(req, '公共', '地域', '保存地域')
|
||||
const body = req.body
|
||||
const id = body.id
|
||||
const name = body.name
|
||||
const locations = body.locations
|
||||
let record
|
||||
try {
|
||||
if (id) {
|
||||
record = await ChinaArea.findById(id);
|
||||
record = await ChinaArea.findById(id)
|
||||
} else {
|
||||
record = new ChinaArea({});
|
||||
record = new ChinaArea({})
|
||||
}
|
||||
record.name = name;
|
||||
record.locations = locations;
|
||||
await record.save();
|
||||
res.json({ errcode: 0, record: record });
|
||||
record.name = name
|
||||
record.locations = locations
|
||||
await record.save()
|
||||
res.json({errcode: 0, record: record})
|
||||
} catch (err) {
|
||||
next(err);
|
||||
next(err)
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
/* 删除*/
|
||||
router.delete('/china_area', async (req, res, next) => {
|
||||
logger.db(req, '公共', '地域', '删除地域');
|
||||
const body = req.body;
|
||||
const id = body.id;
|
||||
logger.db(req, '公共', '地域', '删除地域')
|
||||
const body = req.body
|
||||
const id = body.id
|
||||
try {
|
||||
if (!id) {
|
||||
return res.json({ errcode: 101, errmsg: '未定义要删除的地域id' });
|
||||
return res.json({errcode: 101, errmsg: '未定义要删除的地域id'})
|
||||
}
|
||||
const record = await ChinaArea.findById(id);
|
||||
const record = await ChinaArea.findById(id)
|
||||
if (!record) {
|
||||
return res.json({ errcode: 102, errmsg: '未找到要删除的地域' });
|
||||
return res.json({errcode: 102, errmsg: '未找到要删除的地域'})
|
||||
}
|
||||
const usedRecord = await GameShareImage.findOne({
|
||||
area: id,
|
||||
deleted: false
|
||||
});
|
||||
deleted: false,
|
||||
})
|
||||
if (usedRecord) {
|
||||
return res.json({
|
||||
errcode: 103,
|
||||
errmsg: '要删除的记录已被使用,不能删除!'
|
||||
});
|
||||
errmsg: '要删除的记录已被使用,不能删除!',
|
||||
})
|
||||
}
|
||||
record.deleted = true;
|
||||
record.delete_time = new Date();
|
||||
await record.save();
|
||||
res.json({ errcode: 0, record: record });
|
||||
record.deleted = true
|
||||
record.delete_time = new Date()
|
||||
await record.save()
|
||||
res.json({errcode: 0, record: record})
|
||||
} catch (err) {
|
||||
next(err);
|
||||
next(err)
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
export default router;
|
||||
export default router
|
||||
|
@ -1,231 +0,0 @@
|
||||
// 获取单个游戏广告位
|
||||
import {Router} from 'express'
|
||||
import axios from 'axios'
|
||||
import config from '../../../config/config'
|
||||
|
||||
const router = new Router()
|
||||
|
||||
const gameReportApiUrl = config.game_report
|
||||
|
||||
// 获取游戏日报
|
||||
router.get('/report', 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
|
||||
const game_id = parseInt(query.game_id)
|
||||
const platform_id = parseInt(query.platform_id)
|
||||
const date = query.date
|
||||
const isNew = parseInt(query.isNew)
|
||||
|
||||
try {
|
||||
const categoryRes = await axios({
|
||||
url: gameReportApiUrl,
|
||||
method: 'get',
|
||||
params: {
|
||||
c: 'Ops',
|
||||
a: 'descField',
|
||||
body: JSON.stringify({
|
||||
gameid: game_id,
|
||||
channel: platform_id,
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
if (categoryRes.data.errcode === 0) {
|
||||
const categoryInfo = categoryRes.data.result
|
||||
const category = []
|
||||
for (const key in categoryInfo) {
|
||||
if (categoryInfo.hasOwnProperty(key)) {
|
||||
category.push(key)
|
||||
}
|
||||
}
|
||||
|
||||
if (category.length === 0) {
|
||||
res.send({
|
||||
errcode: 404,
|
||||
errmsg: '暂无数据!',
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
const getDataArr = []
|
||||
|
||||
category.map(item => {
|
||||
getDataArr.push(
|
||||
getCategoryData(item, date, isNew, game_id, platform_id)
|
||||
)
|
||||
})
|
||||
|
||||
const dataArr = await Promise.all(getDataArr)
|
||||
const allData = Object.assign(...dataArr)
|
||||
|
||||
const result = {}
|
||||
|
||||
for (const key in categoryInfo) {
|
||||
if (categoryInfo.hasOwnProperty(key)) {
|
||||
const cate = categoryInfo[key]
|
||||
result[key] = []
|
||||
|
||||
for (let i = 0; i < cate.length; i++) {
|
||||
const field = cate[i]
|
||||
const fieldName = field.name
|
||||
if (fieldName.endsWith('_%')) {
|
||||
let idx = 1
|
||||
let tempName = fieldName.replace(/%/, idx)
|
||||
while (allData[tempName]) {
|
||||
const obj = JSON.parse(JSON.stringify(field))
|
||||
obj.name = tempName
|
||||
obj.explan += `_${idx}`
|
||||
obj.value = allData[tempName]
|
||||
result[key].push(obj)
|
||||
idx++
|
||||
tempName = fieldName.replace(/%/, idx)
|
||||
}
|
||||
} else {
|
||||
field.value = allData[fieldName]
|
||||
result[key].push(field)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res.send({
|
||||
errcode: 0,
|
||||
result: result,
|
||||
})
|
||||
} else {
|
||||
res.send({
|
||||
errcode: categoryRes.errcode,
|
||||
errmsg: categoryRes.errmsg,
|
||||
})
|
||||
return
|
||||
}
|
||||
} catch (err) {
|
||||
next(err)
|
||||
}
|
||||
})
|
||||
|
||||
function getCategoryData(cateName, date, is_new, game_id, platform_id) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const dataRes = await axios({
|
||||
url: gameReportApiUrl,
|
||||
method: 'get',
|
||||
params: {
|
||||
c: 'Ops',
|
||||
a: 'gameReport',
|
||||
body: JSON.stringify({
|
||||
gameid: game_id,
|
||||
channel: platform_id,
|
||||
times: date,
|
||||
is_new: is_new,
|
||||
category: cateName,
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
if (dataRes.data.errcode === 0) {
|
||||
const data = dataRes.data.result
|
||||
resolve(data)
|
||||
} else {
|
||||
reject({
|
||||
errcode: 404,
|
||||
errmsg: '数据获取失败,暂无数据!',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 获取游戏数据(画图表用)
|
||||
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
|
@ -1,10 +1,9 @@
|
||||
// 获取单个游戏广告位
|
||||
import {Router} from 'express'
|
||||
import axios from 'axios'
|
||||
|
||||
import GameItem from '../../models/admin/GameItem'
|
||||
|
||||
import config from '../../../config/config'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
|
||||
|
@ -4,6 +4,7 @@ import axios from 'axios'
|
||||
import config from '../../../config/config'
|
||||
import logger from '../../utils/logger'
|
||||
import getOpsToken from '../../utils/get-ops-token'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
|
||||
|
@ -14,7 +14,6 @@ const GameInfo = getGameInfoModel()
|
||||
const GameInfoTest = getGameInfoModel('test')
|
||||
|
||||
// 获取游戏列表
|
||||
// TODO: 整理接口返回数据
|
||||
router.get('/list', async (req, res, next) => {
|
||||
const query = req.query || {}
|
||||
const userPerms = req.user.permissions
|
||||
|
@ -2,6 +2,7 @@ import {Router} from 'express'
|
||||
import axios from 'axios'
|
||||
import logger from '../../utils/logger'
|
||||
import GameItem from '../../models/admin/GameItem'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {Router} from 'express'
|
||||
import logger from '../../utils/logger'
|
||||
import GameLib from '../../models/admin/GameLib'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
|
||||
|
@ -5,6 +5,7 @@ import path from 'path'
|
||||
import painter from '../../utils/painter'
|
||||
import config from '../../../config/config'
|
||||
import Template from '../../models/mp_share/Template'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import Platform from '../../models/admin/Platform'
|
||||
import {Router} from 'express'
|
||||
import logger from '../../utils/logger'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
// 获取平台列表
|
||||
|
@ -5,6 +5,7 @@ import RedisDao from '../../redis/redis.dao'
|
||||
import getOpsToken from '../../utils/get-ops-token'
|
||||
import config from '../../../config/config'
|
||||
import axios from 'axios'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
const redisDao = new RedisDao()
|
||||
|
@ -6,6 +6,7 @@ import {Router} from 'express'
|
||||
import redis from 'redis'
|
||||
import config from '../../../config/config'
|
||||
import logger from '../../utils/logger'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
|
||||
const router = new Router()
|
||||
const redisDao = new RedisDao()
|
||||
|
@ -4,6 +4,7 @@ import SystemDic from '../../models/admin/SystemDic'
|
||||
import ChinaArea from '../../models/snoopy/ChinaArea'
|
||||
import {Router} from 'express'
|
||||
import logger from '../../utils/logger'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
const router = new Router()
|
||||
const GameInfo = getGameInfoModel()
|
||||
const GameInfoTest = getGameInfoModel('test')
|
||||
|
@ -2,7 +2,7 @@ import {Router} from 'express'
|
||||
import path from 'path'
|
||||
import cors from 'cors'
|
||||
import Fontmin from 'fontmin'
|
||||
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
const router = new Router()
|
||||
|
||||
const whitelist = ['https://servicewechat.com']
|
||||
|
@ -2,8 +2,10 @@
|
||||
|
||||
import {Router} from 'express'
|
||||
import getGameInfoModel from '../../models/admin/GameInfo'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
const GameInfo = getGameInfoModel()
|
||||
|
||||
|
||||
import cors from 'cors'
|
||||
import {platform} from 'os'
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
import {Router} from 'express'
|
||||
import AdArea from '../../models/admin/AdArea'
|
||||
import AdUid from '../../models/admin/AdUid'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
import cors from 'cors'
|
||||
|
||||
const router = new Router()
|
||||
|
@ -1,6 +1,7 @@
|
||||
import OpLog from '../../models/admin/OpLog';
|
||||
import { Router } from 'express';
|
||||
import logger from '../../utils/logger';
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
const router = new Router();
|
||||
|
||||
router.get('/', async function permissionListCtrl(req, res, next) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {Role} from '../../models/admin/User'
|
||||
import {Router} from 'express'
|
||||
import logger from '../../utils/logger'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
const router = new Router()
|
||||
|
||||
router.get('/', async function permissionListCtrl(req, res, next) {
|
||||
|
@ -4,6 +4,7 @@ import {User, LdapUser} from '../../models/admin/User'
|
||||
import {combPer, combRole} from '../../utils/comb-permissions'
|
||||
import {Router} from 'express'
|
||||
import logger from '../../utils/logger'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
import getOpsToken from '../../utils/get-ops-token'
|
||||
const router = new Router()
|
||||
|
||||
|
@ -3,6 +3,7 @@ import {Router} from 'express'
|
||||
import axios from 'axios'
|
||||
import config from '../../../config/config'
|
||||
import logger from '../../utils/logger'
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
import getOpsToken from '../../utils/get-ops-token'
|
||||
const router = new Router()
|
||||
|
||||
|
@ -4,6 +4,7 @@ import { LdapUser, User } from '../../models/admin/User';
|
||||
import { combPer, combRole } from '../../utils/comb-permissions';
|
||||
import { Router } from 'express';
|
||||
import logger from '../../utils/logger';
|
||||
import validPerm from '../../utils/valid-perm'
|
||||
const router = new Router();
|
||||
|
||||
router.get('/info', function(req, res, next) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user