Commit df4a32fe authored by yaobeibei's avatar yaobeibei

git change Dockerfile

parent 3185bc10
......@@ -15,8 +15,8 @@ RUN npm i --only=production --registry https://registry.npm.taobao.org
ENV SERVICE_PORT=8082
ENV PROJECT_LEVEL=production
ENV MONGO='mongodb://mongo-adpro-ssp-v2-rs-1.localhost:1301/remarketing?replicaSet=adpro_ssp_v2_rs'
# ENV MONGO='mongodb://mongo-adpro-ssp-v2-rs-2.localhost:1301/remarketing?replicaSet=adpro_ssp_v2_rs'
ENV MONGO='mongodb://mongo-adpro-ssp-v2-rs-1.localhost:1301,mongo-adpro-ssp-v2-rs-2.localhost:1301,mongo-adpro-ssp-v2-rs-3.localhost:1301/remarketingAgent?replicaSet=adpro_ssp_v2_rs&adpro_ssp_v2_rs=SECONDARY'
ENV MONGO_OEM='mongodb://bjwjh-admin:c9yJ2gBFkp7U6@mongo-bjwjh-rs-1.localhost:1302,mongo-bjwjh-rs-2.localhost:1302,mongo-bjwjh-rs-3.localhost:1302/oem_maitian_remarketingAgent?replicaSet=bjwjh-rs&authSource=admin'
ENV NODE_ENV='production'
EXPOSE 8082
......
......@@ -5,61 +5,54 @@ const _ = require('lodash')
const moment = require('moment')
const xlsx = require('node-xlsx')
// var reg = /@test.com$|@123.com$|@goyoo.com$|@xiaoyun.com$|^@|^test|@dis.com$|time-stone.cn$|^tangyong|^875652541|@1.com$|@xioayun.com$/i
var reg = /@test.com$|@123.com$|@goyoo.com$|@xiaoyun.com$|^@|^test|@dis.com$|time-stone.cn$|^tangyong|^875652541|@1.com$|@xioayun.com$/i
var dbpath = null
// master test
if (process.env.MONGO) {
dbpath = process.env.MONGO || 'mongodb://10.11.3.123:1301/remarketing'
dbpath = process.env.MONGO || 'mongodb://10.11.3.127:1301/remarketing'
} else {
dbpath = 'mongodb://localhost:27017/remarketing'
}
var dbpath_oem = null
if (process.env.MONGO) {
dbpath_oem = 'mongodb://bjwjh-admin:c9yJ2gBFkp7U6@mongo-bjwjh-rs-1.localhost:1302,mongo-bjwjh-rs-2.localhost:1302,mongo-bjwjh-rs-3.localhost:1302/oem_maitian_remarketingAgent?replicaSet=bjwjh-rs&authSource=admin'
} else {
dbpath_oem = 'mongodb://localhost:27017/remarketing2'
}
var db = {}
var db_oem_mtty = {}
var db_oem_xibao = {}
var db_agent = {}
mongoClient.connect(dbpath, function (err, res) {
mongoClient.connect(dbpath, {useNewUrlParser: true}, function (err, res) {
if (err) return console.log(err)
db = res.db('remarketing')
db_agent = res.db('remarketingAgent')
})
mongoClient.connect(dbpath_oem, function (err, res) {
mongoClient.connect(dbpath_oem, {useNewUrlParser: true}, function (err, res) {
if (err) return console.log(err)
if (process.env.MONGO) {
db_oem_mtty = res.db('oem_mtty_remarketing')
db_oem_xibao = res.db('oem_xibao_remarketing')
console.log('线上')
} else {
db_oem_mtty = res.db('remarketing2')
db_oem_xibao = res.db('remarketing3')
db_agent = res.db('remarketingAgent')
}
})
// function getSession (sessionID, res) {
// if (!sessionID) {
// // res.send({status: 500, data: '数据库连接失败'})
// } else if (sessionID === 'admin') {
// return db
// } else {
// db = db_oem_mtty
// return db
// }
// }
// 登陆接口
app.post('/login', async function (req, res) {
......@@ -85,39 +78,24 @@ app.post('/login', async function (req, res) {
}
})
app.post('/creatOEM', async function (req, res) {
// 创建代理商运营账号(备用,可能直接引用代理商账号,同步登陆)
app.post('/creatAgent', async function (req, res) {
console.log(res.body)
let { OEM_email, OEM_account, OEM_password, OEM_company } = req.body
let { email, password, password2, company } = req.body
await db.collection('OEM_account').insert({OEM_email: OEM_email, OEM_account: OEM_account, OEM_password: OEM_password, OEM_company: OEM_company})
await db.collection('OEM_account').insert({email: email, password: password, company: company}, (err, rep) => {
if (err) { console.log (err) }
if (req) {
res.send({status: 200, message: '创建成功'})
}
})
res.send({status: 200, message: '创建成功'})
})
// 获取登陆账号信息
// app.post('/getAccount', async function (req, res) {
// console.log('获取账号信息')
// console.log(req.body)
// let {sessionID} = req.body
// let oem_account = null
// if (sessionID !== 'admin') {
// console.log(1)
// oem_account = await db.collection('OEM_account').find({_id: mongodb.ObjectId(sessionID)}).toArray()
// console.log(oem_account)
// } else {
// oem_account = [{OEM_email: 'admin', OEM_account: 'admin'}]
// }
//
// console.log(oem_account)
//
// res.send({status: 200, datas: oem_account})
//
// })
// 获取统计数据
app.post('/dataList', async function (req, res) {
console.log('进入了统计')
......@@ -127,7 +105,6 @@ app.post('/dataList', async function (req, res) {
console.log(startTime, endTime)
let dateQs = getTimeRange({ start: startTime, end: endTime, key: 'date' })
// console.log(dateQs)
let results = await db.collection('dailyStats').aggregate([
{
......@@ -141,7 +118,6 @@ app.post('/dataList', async function (req, res) {
}
}
]).sort({ 'date': -1 }).toArray()
// console.log(results)
let touchCount = await db.collection('recognition').aggregate([
{
......@@ -154,7 +130,6 @@ app.post('/dataList', async function (req, res) {
}
}
]).sort({ 'date': -1 }).toArray()
// console.log(touchCount)
let creatQs = getTimeRange({ start: startTime, end: endTime, key: 'createdAt' })
console.log(creatQs)
......@@ -169,7 +144,6 @@ app.post('/dataList', async function (req, res) {
msgCount: { $sum: 1 }
}
}]).sort({ 'date': -1 }).toArray()
// console.log(msgTask)
let callTask = await db.collection('callTask').aggregate([
{
......@@ -181,28 +155,29 @@ app.post('/dataList', async function (req, res) {
callCount: { $sum: 1 }
}
}]).sort({ 'date': -1 }).toArray()
// console.log(callTask)
let companyName = await db.collection('account').find({ from: { $exists: false }, $or: [{ formID: { $exists: false } }, { formID: { $exists: true, $in: ['self', null] } }] }).sort({ 'date': -1 }).toArray()
// console.log(companyName)
let companyName = await db.collection('account').find({ from: { $exists: false }, $or: [{ formID: { $exists: false } }, { formID: { $exists: true, $in: ['self', null] } }], isDelete: {$ne: true} }).sort({ 'date': -1 }).toArray()
let auditDate = getTimeRange({ start: startTime, end: endTime, key: 'auditAt' })
console.log(auditDate)
let getCount = await db.collection('recognition').aggregate([
let start = moment(startTime).startOf('day').toDate()
let end = moment(endTime).endOf('day').toDate()
let getCount = await db.collection('bills').aggregate([
{
$match: auditDate
$match: {'type': 'audit', 'pre': false, 'createdAt': {$gt: start, $lte: end}}
},
{
$group: {
_id: '$pubID',
getCount: { $sum: 1 }
_id: '$accountID',
getCount: { $sum: '$number' }
}
}]).sort({ 'date': -1 }).toArray()
let dataArr = []
let item = {}
companyName.forEach(x => {
let item = {}
item.time = startTime + ' 至 ' + endTime
item.company = x.company
item.email = x.email
......@@ -219,7 +194,7 @@ app.post('/dataList', async function (req, res) {
})
getCount.forEach(m => {
if (m._id + '' === x._id + '') {
item.getCount = m.getCount
item.getCount = m.getCount / 3
}
})
msgTask.forEach(n => {
......@@ -235,11 +210,10 @@ app.post('/dataList', async function (req, res) {
// if (item.pv || item.touchCount || item.getCount || item.msgCount || item.callCount) {
// dataArr.push(item)
// }
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
item = {}
if (!reg.test(item.email)) {
dataArr.push(item)
}
// dataArr.push(item)
})
let arrTotal = dataArr.length
......@@ -257,8 +231,7 @@ app.post('/distributor', async function (req, res) {
console.log(startTime, endTime)
let dateQs = getTimeRange({ start: startTime, end: endTime, key: 'date' })
// console.log(dateQs)
let results = await db.collection('dailyStats').aggregate([
{
$match: dateQs
......@@ -271,7 +244,6 @@ app.post('/distributor', async function (req, res) {
}
}
]).sort({ 'date': -1 }).toArray()
// console.log(results)
let touchCount = await db.collection('recognition').aggregate([
{
......@@ -284,7 +256,6 @@ app.post('/distributor', async function (req, res) {
}
}
]).sort({ 'date': -1 }).toArray()
// console.log(touchCount)
let creatQs = getTimeRange({ start: startTime, end: endTime, key: 'createdAt' })
console.log(creatQs)
......@@ -299,7 +270,6 @@ app.post('/distributor', async function (req, res) {
msgCount: { $sum: 1 }
}
}]).sort({ 'date': -1 }).toArray()
// console.log(msgTask)
let callTask = await db.collection('callTask').aggregate([
{
......@@ -311,13 +281,11 @@ app.post('/distributor', async function (req, res) {
callCount: { $sum: 1 }
}
}]).sort({ 'date': -1 }).toArray()
// console.log(callTask)
let companyName = await db.collection('account').find({ fromID: { $exists: true, $nin: ['self', null] } }).sort({ 'date': -1 }).toArray()
// console.log(companyName)
let companyName = await db.collection('account').find({ fromID: { $exists: true, $nin: ['self', null] }, isDelete: {$ne: true} }).sort({ 'date': -1 }).toArray()
let auditDate = getTimeRange({ start: startTime, end: endTime, key: 'auditAt' })
console.log(auditDate)
let getCount = await db.collection('recognition').aggregate([
{
$match: auditDate
......@@ -330,9 +298,10 @@ app.post('/distributor', async function (req, res) {
}]).sort({ 'date': -1 }).toArray()
let dataArr = []
let item = {}
companyName.forEach(x => {
let item = {}
item.time = startTime + ' 至 ' + endTime
item.company = x.company
item.email = x.email
......@@ -366,11 +335,11 @@ app.post('/distributor', async function (req, res) {
// if (item.pv || item.touchCount || item.getCount || item.msgCount || item.callCount) {
// dataArr.push(item)
// }
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
item = {}
if (!reg.test(item.email)) {
dataArr.push(item)
}
// dataArr.push(item)
})
let arrTotal = dataArr.length
......@@ -405,7 +374,7 @@ app.post('/consume', async function (req, res) {
console.log(counsume)
let companyName = await db.collection('account').find({}).sort({ 'date': -1 }).toArray()
let companyName = await db.collection('account').find({isDelete: {$ne: true}}).sort({ 'date': -1 }).toArray()
let data = []
let preData = []
......@@ -416,17 +385,14 @@ app.post('/consume', async function (req, res) {
data.push({ _id: counsume[i]._id.accountID, number: counsume[i].number })
}
}
// console.log(data)
// console.log(preData)
startTime = moment(startTime).startOf('day').format('YYYY-MM-DD')
endTime = moment(endTime).endOf('day').format('YYYY-MM-DD')
let dataArr = []
let item = {}
companyName.forEach(x => {
let item = {}
item.time = startTime + ' 至 ' + endTime
item.company = x.company
item.email = x.email
......@@ -443,14 +409,13 @@ app.post('/consume', async function (req, res) {
// if (item.number || item.preNumber) {
// dataArr.push(item)
// }
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
item = {}
if (!reg.test(item.email)) {
dataArr.push(item)
}
// dataArr.push(item)
})
let dataTotal = dataArr.length
console.log(dataArr)
let preTotalNumber = 0
let consumeTotalNumber = 0
......@@ -492,21 +457,15 @@ app.post('/finance', async function (req, res) {
}
}]).toArray()
let companyName = await db.collection('account').aggregate([
{
$project: {
_id: '$_id',
company: '$company',
email: '$email'
}
}]).sort({ 'date': -1 }).toArray()
let companyName = await db.collection('account').find({isDelete: {$ne: true}}).sort({ 'date': -1 }).toArray()
startTime = moment(startTime).startOf('day').format('YYYY-MM-DD')
endTime = moment(endTime).startOf('day').format('YYYY-MM-DD')
let dataArr = []
let item = {}
companyName.forEach(x => {
let item = {}
item.time = startTime + ' 至 ' + endTime
item.company = x.company
item.email = x.email
......@@ -519,11 +478,10 @@ app.post('/finance', async function (req, res) {
// dataArr.push(item)
// }
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
item = {}
if (!reg.test(item.email)) {
dataArr.push(item)
}
})
let dataTolal = dataArr.length
......@@ -572,7 +530,7 @@ app.post('/surplus', async function (req, res) {
}]).toArray()
let companyName = await db.collection('account').find({}).sort({ 'date': -1 }).toArray()
let companyName = await db.collection('account').find({isDelete: {$ne: true}}).sort({ 'date': -1 }).toArray()
let dataArr = []
......@@ -605,10 +563,10 @@ app.post('/surplus', async function (req, res) {
}
})
item.surplus = item.addNum - item.consumeNum
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
if (!reg.test(item.email)) {
dataArr.push(item)
}
// dataArr.push(item)
})
let surPlusTotal = 0
dataArr.forEach(x => {
......@@ -616,7 +574,7 @@ app.post('/surplus', async function (req, res) {
})
surPlusTotal = surPlusTotal.toFixed(2)
let dataTotal = dataArr.length
console.log(dataArr)
// console.log(dataArr)
// dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
res.send({ status: 200, total: dataTotal, data: dataArr, surplusTotal: surPlusTotal })
})
......@@ -646,14 +604,14 @@ app.post('/releaseInfo', async function (req, res) {
console.log('进入更新公告')
let {title, content, releaseMen, sessionID} = req.body
// getSession(sessionID, res)
let time = new Date()
await db.collection('inform').insertOne({title: title, content: content, releaseMen: releaseMen, time: time}, function (err, rep) {
if (!err) {
db.collection('account').update({}, { $set: { inform: true } }, { multi: true })
res.send({ status: 200, message: '更新成功' })
} else {
res.send({ status: 500, message: '更新失败' })
}
})
})
......@@ -665,13 +623,10 @@ app.post('/getInfo', async function (req, res) {
console.log(req.body)
let { currentPage, pageSize, sessionID} = req.body
// getSession(sessionID, res)
console.log(db)
let info = await db.collection('inform').find().sort({ 'createdAt': -1 }).toArray()
console.log(info)
let dataArr = []
info.forEach(x => {
let item = {}
......@@ -681,6 +636,7 @@ app.post('/getInfo', async function (req, res) {
item.time = moment(x.time).format('YYYY-MM-DD HH:mm:ss')
dataArr.push(item)
})
let dataArrTotal = dataArr.length
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
res.send({ status: 200, data: dataArr, dataTotal: dataArrTotal })
......@@ -695,20 +651,21 @@ app.post('/checkCall', async function (req, res) {
console.log(req.body)
console.log(choose)
startTime = moment(startTime).startOf('day').toDate()
endTime = moment(endTime).endOf('day').toDate()
// 获取remarketing数据库数据
console.log(startTime)
console.log(endTime)
// 获取remarketing数据库数据
let comapnyName = await db.collection('account').find({}).sort({ 'date': -1 }).toArray()
let callName = await db.collection('bills').find({ 'type': 'dspbuynumber', 'groupID': { $exists: 1 }, 'createdAt': { $gt: startTime, $lte: endTime } }).toArray()
let dspCallGroupsName = await db.collection('dspCallGroups').find().toArray()
let agent = await db_agent.collection('account').find({}).toArray()
let dataArr = []
callName.forEach(x => {
......@@ -721,12 +678,21 @@ app.post('/checkCall', async function (req, res) {
item.sendNum = 0
}
item.time = moment(x.createdAt).format('YYYY-MM-DD HH:mm')
comapnyName.forEach(y => {
if (x.accountID + '' === y._id + '' || x.accountID === y._id) {
item.companyName = y.company
if (y.fromID) {
agent.forEach(m => {
if (y.fromID === m._id || y.fromID + '' === m._id + '' ) {
item.agent = m.company
item.agentEmail = m.email
}
})
}
}
})
dspCallGroupsName.forEach(z => {
if (x.groupID + '' === z._id + '' || x.groupID === z._id) {
......@@ -756,7 +722,6 @@ app.post('/checkCall', async function (req, res) {
if (z.applist) {
item.popover.applist = z.applist
}
}
})
if (item.popover) {
......@@ -889,7 +854,6 @@ app.post('/checkCall', async function (req, res) {
item.status = '审核通过'
item.disable = true
}
// console.log(item)
dataArr.push(item)
}
}
......@@ -907,7 +871,6 @@ app.post('/checkCall', async function (req, res) {
oem_xibao_callName.forEach(x => {
console.log(x)
let item = {}
item.oem = x.oem
item.preNum = x.preNum / 3
......@@ -986,7 +949,6 @@ app.post('/checkCall', async function (req, res) {
item.status = '审核通过'
item.disable = true
}
// console.log(item)
dataArr.push(item)
}
}
......@@ -1007,10 +969,8 @@ app.post('/checkCall', async function (req, res) {
app.post('/send', async function (req, res) {
console.log('进入send')
console.log(req.body)
let {taskId, groupId, interestlist, hostlist, applist, status, oem} = req.body
// getSession(sessionID, res)
let {taskId, groupId, interestlist, hostlist, applist, status, oem} = req.body
if (status === 8) {
if (oem === '微聚合' || oem === null || oem === undefined) {
......@@ -1020,9 +980,10 @@ app.post('/send', async function (req, res) {
} else {
await db_oem_xibao.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $unset: { 'checkStatus': '' } })
}
res.send({ status: 200, message: '状态已重置' })
res.send({ status: 202, message: '状态已重置' })
}
if (status === 0) {
if (oem === '微聚合' || oem === null || oem === undefined) {
await db.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 0, pre: false, number: 0 } })
......@@ -1031,18 +992,20 @@ app.post('/send', async function (req, res) {
} else {
await db_oem_xibao.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 0, pre: false, number: 0 } })
}
res.send({ status: 200, message: '审核未通过' })
res.send({ status: 201, message: '审核未通过' })
}
if (status === 1) {
let updateTime = new Date()
if (oem === '微聚合' || oem === null || oem === undefined) {
await db.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1 , 'updateTime': updateTime} })
await db.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1 , 'checkTime': updateTime} })
await db.collection('dspCallGroups').update({ '_id': mongodb.ObjectId(groupId) }, { $set: { 'interestlist': interestlist, 'hostlist': hostlist, 'applist': applist } })
} else if (oem === '麦田'){
await db_oem_mtty.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'updateTime': updateTime} })
await db_oem_mtty.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'checkTime': updateTime} })
await db_oem_mtty.collection('dspCallGroups').update({ '_id': mongodb.ObjectId(groupId) }, { $set: { 'interestlist': interestlist, 'hostlist': hostlist , 'applist': applist} })
} else {
await db_oem_xibao.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'updateTime': updateTime } })
await db_oem_xibao.collection('bills').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'checkTime': updateTime } })
await db_oem_xibao.collection('dspCallGroups').update({ '_id': mongodb.ObjectId(groupId) }, { $set: { 'interestlist': interestlist, 'hostlist': hostlist, 'applist': applist } })
}
......@@ -1100,7 +1063,6 @@ app.post('/getCheckNote', async function (req, res) {
console.log('进入了getData')
let { startTime, endTime, total, pageSize, currentPage, chooseId, operatorId, sessionID} = req.body
console.log(req.body)
console.log(chooseId)
......@@ -1120,6 +1082,8 @@ app.post('/getCheckNote', async function (req, res) {
let dspTask = await db.collection('dspTask').find({ 'createdAt': { $gte: startTime, $lte: endTime } }).sort({ 'date': 1 }).toArray()
let agent = await db_agent.collection('account').find({}).toArray()
let dataArr = []
dspTask.forEach(x => {
let item = {}
......@@ -1138,6 +1102,14 @@ app.post('/getCheckNote', async function (req, res) {
comapnyName.forEach(y => {
if (x.accountID + '' === y._id + '') {
item.companyName = y.company
if (y.fromID) {
agent.forEach(m => {
if (y.fromID === m._id || y.fromID + '' === m._id + '' ) {
item.agent = m.company
item.agentEmail = m.email
}
})
}
}
})
msgTagName.forEach(z => {
......@@ -1170,7 +1142,7 @@ app.post('/getCheckNote', async function (req, res) {
if (m.hostlist) {
item.popover.hostlist = m.hostlist
}
if (m.interestlist) {
if (m.applist) {
item.popover.applist = m.applist
}
......@@ -1273,11 +1245,9 @@ app.post('/getCheckNote', async function (req, res) {
}
if (m.applist) {
item.popover.applist = m.applist
}
item.popover.meta = m.meta || '无'
}
......@@ -1372,7 +1342,7 @@ app.post('/getCheckNote', async function (req, res) {
if (m.hostlist) {
item.popover.hostlist = m.hostlist
}
if (m.interestlist) {
if (m.applist) {
item.popover.applist = m.applist
}
......@@ -1411,9 +1381,6 @@ app.post('/getCheckNote', async function (req, res) {
}
})
dataArr = dataArr.reverse()
let dataStatus = []
let dataTotal = dataArr.length
......@@ -1469,16 +1436,16 @@ app.post('/creatNoteTag', async function (req, res) {
}
res.send({status: 200, data: 'OK'})
})
// 短信审核
app.post('/sendCheckNote', async function (req, res) {
console.log('进入send')
console.log(req.body)
let { taskId, status, sendNum, operatorId, oem} = req.body
// getSession(sessionID, res)
if (status === 8) {
db.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'status': 0 } })
res.send({ status: 200, message: '状态已重置' })
res.send({ status: 203, message: '状态已重置' })
}
if (operatorId === '联通' || operatorId === null || operatorId === undefined) {
......@@ -1497,16 +1464,16 @@ app.post('/sendCheckNote', async function (req, res) {
await db_oem_xibao.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'status': 1 } })
await db_oem_xibao.collection('bills').update({ taskID: mongodb.ObjectId(taskId), pre: true }, { $set: { pre: false, number: 0 } })
}
res.send({ status: 200, message: '审核未通过' })
res.send({ status: 201, message: '审核未通过' })
}
if (status === 2) {
let updateTime = new Date()
if (oem === '微聚合' || oem === null || oem === undefined) {
await db.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'updateTime': updateTime } })
await db.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'checkTime': updateTime } })
} else if ( oem === '麦田'){
await db_oem_mtty.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'updateTime': updateTime } })
await db_oem_mtty.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'checkTime': updateTime } })
} else {
await db_oem_xibao.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'updateTime': updateTime } })
await db_oem_xibao.collection('dspTask').update({ '_id': mongodb.ObjectId(taskId) }, { $set: { 'checkStatus': 1, 'checkTime': updateTime } })
}
res.send({ status: 200, message: '审核通过' })
}
......@@ -1542,7 +1509,7 @@ app.post('/sendCheckNote', async function (req, res) {
await db_oem_xibao.collection('bills').update({ taskID: mongodb.ObjectId(taskId), pre: true }, { $set: { pre: false, number: 0 } });
}
res.send({ status: 200, message: '审核未通过,任务驳回' })
res.send({ status: 201, message: '审核未通过,任务驳回' })
}
} else {
res.send({ status: 200, message: '状态无法更改' })
......@@ -1604,8 +1571,11 @@ app.post('/makeAccountTag', async function(req, res){
console.log('进入打标签')
console.log(req.body)
let {accountID, onelevelTag, twolevelTag} = req.body
await db.collection('account').update({'_id': mongodb.ObjectId(accountID)}, {$set: {onelevelTag: onelevelTag, twolevelTag: twolevelTag}})
res.send({status: 200, data: '打入标签了'})
await db.collection('account').update({'_id': mongodb.ObjectId(accountID)}, {$set: {onelevelTag: onelevelTag, twolevelTag: twolevelTag}}, (err, rep) => {
if (rep) {
res.send({status: 200, data: '打入标签了'})
}
})
})
// 注销接口
......@@ -1613,14 +1583,14 @@ app.post('/deleteAccount', async function (req, res) {
console.log('进入用户控制')
console.log(req.body)
let { accountId, status, sessionID} = req.body
// getSession(sessionID, res)
if (status === 0 || status === '0') {
await db.collection('account').update({ '_id': mongodb.ObjectId(accountId) }, { $set: { 'isDelete': true } })
res.send({ status: 200, data: '用户注销成功' })
}
if (status === 1 || status === '1') {
await db.collection('account').update({ '_id': mongodb.ObjectId(accountId) }, { $set: { 'isDelete': false } })
res.send({ status: 200, data: '用户恢复成功' })
res.send({ status: 201, data: '用户恢复成功' })
}
})
......@@ -1629,14 +1599,14 @@ app.post('/closeBtn', async function (req, res) {
console.log('进入自动备案')
console.log(req.body)
let { accountId, status, sessionID} = req.body
// getSession(sessionID, res)
if (status === 0 || status === '0') {
await db.collection('account').update({ '_id': mongodb.ObjectId(accountId) }, { $set: { 'isCloseAuto': true } })
res.send({ status: 200, data: '自动备案关闭成功' })
}
if (status === 1 || status === '1') {
await db.collection('account').update({ '_id': mongodb.ObjectId(accountId) }, { $set: { 'isCloseAuto': false } })
res.send({ status: 200, data: '自动备案开启成功' })
res.send({ status: 201, data: '自动备案开启成功' })
}
})
......@@ -1647,8 +1617,6 @@ app.post('/getSlot', async function (req, res) {
let { currentPage, pageSize, choose, sessionID} = req.body
// getSession(sessionID, res)
let company = await db.collection('account').find({}).toArray()
let slot = await db.collection('slotTemps').find().sort({createdAt: -1}).toArray()
......@@ -1702,7 +1670,7 @@ app.post('/getSlot', async function (req, res) {
app.post('/slotAutoRule', async function (req, res) {
console.log(req.body)
let { slotId, autoRule, sessionID} = req.body
// getSession(sessionID, res)
await db.collection('slotTemps').update({ '_id': mongodb.ObjectId(slotId) }, { $set: { 'autoRule': autoRule } })
res.send({ status: 200, message: '备案策略更改成功' })
})
......@@ -1712,14 +1680,14 @@ app.post('/deleteSlot', async function (req, res) {
console.log('进入代码位控制')
console.log(req.body)
let { slotId, status, sessionID } = req.body
// getSession(sessionID, res)
if (status === 0 || status === '0') {
await db.collection('slotTemps').update({ '_id': mongodb.ObjectId(slotId) }, { $set: { 'isSlotDelete': true } })
res.send({ status: 200, data: '代码位注销成功' })
}
if (status === 1 || status === '1') {
await db.collection('slotTemps').update({ '_id': mongodb.ObjectId(slotId) }, { $set: { 'isSlotDelete': false } })
res.send({ status: 200, data: '代码位恢复成功' })
res.send({ status: 201, data: '代码位恢复成功' })
}
})
......@@ -1732,8 +1700,6 @@ app.post('/poolData', async function (req, res) {
let recognition = await db.collection('marketingPool').find({}).toArray()
let dataArr = []
recognition.forEach(x => {
......@@ -1804,9 +1770,7 @@ app.post('/leadPool', async function (req, res) {
user = _.uniqBy(user, 'unikey')
// console.log('**********')
// console.log(user)
// console.log('**********')
user.forEach(x => {
let item = {}
item.unikey = x.unikey
......@@ -1872,7 +1836,6 @@ app.post('/leadPool', async function (req, res) {
let filterNumber = filterArr.length
await db.collection('leadTask').insert({ leadNumber: leadNumber, filterNumber: filterNumber, leadTime: leadTime, fromEmail: leadFromEmail, fromCompany: leadFromName })
res.send({ status: 200, message: '进去了' })
......@@ -1884,6 +1847,7 @@ app.post('/getLeadTask', async function (req, res) {
let leadTask = await db.collection('leadTask').find().toArray()
let dataArr = []
leadTask.forEach(x => {
let item = {}
item.taskID = x._id
......@@ -1947,22 +1911,17 @@ app.post('/exprot', async function (req, res) {
let errCount = 0
// let upsertArr = []
selectUnikeyArr.forEach(async x => {
await db.collection('marketingPool').update({ unikey: x }, { $addToSet: { exportDataArr: { $each: exportDataArr } }, $inc: { exportNum: 1 } })
exportDataArr.forEach(async y => {
// let { upsertId } = await db.collection('recognition').updateOne({unikey: x, pubID: y.accountID, slotID: y.slotID},{},{upsert: true}).catch(err => { console.log(err)})
// upsertArr.push(upsertId._id)
// await db.collection('recognition').updateMany()
await db.collection('recognition').find({ unikey: x, pubID: y.accountID, slotID: y.slotID }).toArray(async (err, response) => {
if (err) { count(err) }
if (response === [] || response.length === 0) {
await db.collection('recognition').insert({ unikey: x, pubID: y.accountID, slotID: y.slotID, updateTimestamp: exportTime, auditStatus: 0, score: 3, scoreTimestamp: exportTime, fromPool: true })
let date = moment(exportTime).format('YYYYMMDD')
await db.collection('recognition').insert({ unikey: x, pubID: y.accountID, slotID: y.slotID, updateTimestamp: exportTime, auditStatus: 0, score: 3, scoreTimestamp: exportTime, fromPool: true, date: date})
count()
} else {
count(true)
......
<template>
<el-container>
<el-main>
<div style='width: 50%;'>
<p style='margin: 5px 0'>邮箱:</p>
<el-input
placeholder="请输入邮箱名"
suffix-icon="el-icon-date"
v-model="OEM_email"
style='margin: 10px 0'
>
</el-input>
<p style='margin: 5px 0'>用户名:</p>
<el-input
placeholder="请输入用户名"
suffix-icon="el-icon-date"
v-model="OEM_account"
style='margin: 10px 0'
>
</el-input>
<p style='margin: 5px 0'>密码:</p>
<el-input
placeholder="请输入密码"
style='margin: 10px 0'
type='password'
prefix-icon="el-icon-search"
v-model="OEM_password">
</el-input>
<p style='margin: 5px 0'>重复密码:</p>
<el-input
placeholder="请输入再次密码"
style='margin: 10px 0'
type='password'
prefix-icon="el-icon-search"
v-model="OEM_password2">
</el-input>
<p style='margin: 5px 0'>公司名:</p>
<el-input
placeholder="请输入公司名"
style='margin: 10px 0'
prefix-icon="el-icon-search"
v-model="OEM_company">
</el-input>
</div>
<el-button type='primary' @click='creatOEM'>确定</el-button>
</el-main>
</el-container>
</template>
<script>
export default {
name: 'OEM',
data () {
return {
OEM_email: null,
OEM_account: null,
OEM_password: null,
OEM_password2: null,
OEM_company: null
}
},
methods: {
creatOEM () {
let self = this
let OEM_email = self.OEM_email
let OEM_account = self.OEM_account
let OEM_password = self.OEM_password
let OEM_company = self.OEM_company
if (self.OEM_password !== self.OEM_password2) {
this.$message.error('请确认两次密码输入相同')
} else {
fetch('/api/creatOEM', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify({OEM_email, OEM_account, OEM_password, OEM_company})
}).then(res => { return res.json() }).then(data => {
console.log(data)
self.OEM_account = null
self.OEM_password = null
self.OEM_password2 = null
self.OEM_company = null
self.OEM_email = null
if (data.status === 200) {
this.$message({
message: 'OEM运营账号创建成功',
type: 'success'
})
}
})
}
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<el-container>
<el-main>
<h2>调试阶段,暂不可用</h2>
<el-card style='width: 40%;margin: 20px;font-size: 14px'>
<el-form :label-position="right" label-width="80px" :model="formLabelAlign">
<el-form-item label="邮箱">
<el-input v-model="formLabelAlign.email" placeholder="请输入邮箱"></el-input>
</el-form-item>
<!-- <el-form-item label="用户名">
<el-input v-model="formLabelAlign.name" placeholder="请输入用户名"></el-input>
</el-form-item> -->
<el-form-item label="密码">
<el-input v-model="formLabelAlign.password" placeholder="请输入密码"></el-input>
</el-form-item>
<el-form-item label="确认密码">
<el-input v-model="formLabelAlign.passwword2" placeholder="请输入再次密码"></el-input>
</el-form-item>
<el-form-item label="公司名称">
<el-input v-model="formLabelAlign.company" placeholder="请输入公司名"></el-input>
</el-form-item>
<el-button type='primary' @click='creatAgent'>确定</el-button>
</el-form>
</el-card>
</el-main>
</el-container>
</template>
<script>
export default {
name: 'OEM',
data () {
return {
formLabelAlign: {
email: '',
password: '',
password2: '',
company: ''
}
}
},
methods: {
creatAgent () {
let self = this
let form = self.formLabelAlign
if (self.formLabelAlign.password !== self.formLabelAlign.password2) {
this.$message.error('请确认两次密码输入相同')
} else {
fetch('/api/creatAgent', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify(form)
}).then(res => { return res.json() }).then(data => {
console.log(data)
self.formLabelAlign.email = null
self.formLabelAlign.password = null
self.formLabelAlign.password2 = null
self.formLabelAlign.company = null
if (data.status === 200) {
this.$message({
message: '代理商运营账号创建成功',
type: 'success'
})
}
})
}
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
......@@ -40,8 +40,10 @@
<el-table-column label='序号' type='index' width=50></el-table-column>
<el-table-column label='任务名称' prop='name'></el-table-column>
<el-table-column label='公司名称' prop='companyName'></el-table-column>
<el-table-column label='代理商' prop='agent'></el-table-column>
<el-table-column label='代理商账号' prop='agentEmail'></el-table-column>
<el-table-column label='时间' prop='time' ></el-table-column>
<el-table-column label='筛选标签' width=200>
<el-table-column label='筛选标签'>
<template slot-scope="scope">
<el-popover trigger="hover" placement="left">
<div>
......@@ -55,6 +57,10 @@
<p>月出帐: <span style='padding: 4px' v-for='item in scope.row.popover.consumelist'>{{item}}</span></p>
<p>平均流量: <span style='padding: 4px' v-for='item in scope.row.popover.flowlist'>{{item}}</span></p>
<p>终端品牌: <span style='padding: 4px' v-for='item in scope.row.popover.phonelist'>{{item}}</span></p>
<p v-if="scope.row.popover.hobbylist">兴趣爱好: <span style='padding: 4px' v-for='item in scope.row.popover.hobbylist'>{{mapHobby[item]}}({{item}})</span></p>
<p v-if="scope.row.popover.interestlist">关键词: <span style='padding: 4px' v-for='item in scope.row.popover.interestlist'>{{item}}</span></p>
<p v-if="scope.row.popover.hostlist">域名: <span style='padding: 4px' v-for='item in scope.row.popover.hostlist'>{{item}}</span></p>
<p v-if="scope.row.popover.applist">APP: <span style='padding: 4px' v-for='item in scope.row.popover.applist'>{{item}}</span></p>
</div>
<!-- <div>
<h4>筛选条件:</h4>
......@@ -260,8 +266,6 @@
},
methods: {
openForm (data, index) {
this.interestlist = []
this.hostlist = []
this.dialogFormVisible = true
this.interestlist = data.popover.interestlist || []
this.hostlist = data.popover.hostlist || []
......
......@@ -47,6 +47,8 @@
<el-table-column label='序号' type='index' width=50></el-table-column>
<el-table-column label='任务名称' prop='taskName'></el-table-column>
<el-table-column label='公司名称' prop='companyName'></el-table-column>
<el-table-column label='代理商' prop='agent'></el-table-column>
<el-table-column label='代理商账号' prop='agentEmail'></el-table-column>
<el-table-column label='提交时间' prop='createdAt'></el-table-column>
<el-table-column label='筛选标签'>
<template slot-scope="scope">
......@@ -60,7 +62,10 @@
<p>平均消费: <span style='padding: 4px' v-for='item in scope.row.popover.consumelist'>{{item}}</span></p>
<p>平均流量: <span style='padding: 4px' v-for='item in scope.row.popover.flowlist'>{{item}}</span></p>
<p>所在城市: <span style='padding: 4px' v-for='item in scope.row.popover.citylist'>{{item}}</span></p>
<p>兴趣爱好: <span style='padding: 4px' v-for='item in scope.row.popover.hobbylist'>{{mapHobby[item]}}({{item}})</span></p>
<p v-if="scope.row.popover.hobbylist">兴趣爱好: <span style='padding: 4px' v-for='item in scope.row.popover.hobbylist'>{{mapHobby[item]}}({{item}})</span></p>
<p v-if="scope.row.popover.interestlist">关键词: <span style='padding: 4px' v-for='item in scope.row.popover.interestlist'>{{item}}</span></p>
<p v-if="scope.row.popover.hostlist">域名: <span style='padding: 4px' v-for='item in scope.row.popover.hostlist'>{{item}}</span></p>
<p v-if="scope.row.popover.applist">APP: <span style='padding: 4px' v-for='item in scope.row.popover.applist'>{{item}}</span></p>
<p>标签持续时间: <span style='padding: 4px'>30天</span></p>
<span slot="reference">
查看详情
......@@ -536,7 +541,7 @@
return res.json()
}).then(data => {
console.log(data)
slef.currentdata.popover.applist = applist
self.currentdata.popover.applist = applist
this.$set(self.datas, self.currentIndex, self.currentdata)
this.currentdata = null
this.currentIndex = null
......
......@@ -116,7 +116,7 @@
<i class='el-icon-setting'></i>
<span>代理商运营账号</span>
</template>
<el-menu-item index='/OEM' @click="routeTo">
<el-menu-item index='/agent' @click="routeTo">
创建代理商运营账号
</el-menu-item>
</el-submenu>
......
......@@ -16,7 +16,7 @@ import distributor from '@/components/distributor'
import userPool from '@/components/userPool'
import leadPoolTask from '@/components/leadPoolTask'
import exportPoolTask from '@/components/exportPoolTask'
import OEM from '@/components/OEM'
import agent from '@/components/agent'
import welcome from '@/components/welcome'
Vue.use(Router)
......@@ -44,7 +44,7 @@ export default new Router({
{name: 'leadPoolTask', path: '/leadPoolTask', meta: {requiresId: false}, component: leadPoolTask},
{name: 'exportPoolTask', path: '/exportPoolTask', meta: {requiresId: false}, component: exportPoolTask},
{name: 'distributor', path: '/distributor', meta: {requiresId: false}, component: distributor},
{name: 'OEM', path: '/OEM', meta: {requiresId: false}, component: OEM}
{name: 'agent', path: '/agent', meta: {requiresId: false}, component: agent}
]
},
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment