360 lines
9.2 KiB
JavaScript
360 lines
9.2 KiB
JavaScript
const { urlencoded } = require('express');
|
||
|
||
var express = require('express'),
|
||
router = express.Router(),
|
||
utils = require("../utils"),
|
||
config = require("../config"),
|
||
bmobUtils = require("../utils/bmob");
|
||
|
||
/**
|
||
* 后端代理,实现调用原网站的 App 接口获取数据
|
||
*/
|
||
|
||
// 进入详情
|
||
// http://127.0.0.1:3000/api/json/agent/info?id=48476
|
||
router.get('/agent/info', async (req, res, next) => {
|
||
var ids = req.query.id;
|
||
var url = `${config.AgentUrl}&c=Tuji&a=index`
|
||
var data = await utils.AgentPost(url, { id: ids })
|
||
res.json(data)
|
||
})
|
||
|
||
// 标签列表
|
||
// http://127.0.0.1:3000/api/json/agent/classList?id=124&page=1
|
||
router.get('/agent/classList', async (req, res, next) => {
|
||
var id = req.query.id;
|
||
var page = req.query.page;
|
||
var url = `${config.AgentUrl}&c=Biaoqian&a=tulist&id=${id}&p=${page}`;
|
||
var result = await utils.AgentPost(url);
|
||
result.data.page = String(page);
|
||
res.json(result)
|
||
})
|
||
|
||
// 机构列表
|
||
// http://127.0.0.1:3000/api/json/agent/mechanismList?id=39&page=1
|
||
router.get('/agent/mechanismList', async (req, res, next) => {
|
||
var id = req.query.id;
|
||
var page = req.query.page;
|
||
var url = `${config.AgentUrl}&c=Jigou&a=tulist&id=${id}&p=${page}`;
|
||
var result = await utils.AgentPost(url);
|
||
result.data.page = String(page);
|
||
res.json(result)
|
||
})
|
||
|
||
// 最近更新
|
||
// http://127.0.0.1:3000/api/json/agent/recently?page=1
|
||
router.get('/agent/recently', async (req, res, next) => {
|
||
var page = req.query.page;
|
||
var url = `${config.AgentUrl}&c=Index&a=gengxin&p=${page}`;
|
||
var result = await utils.AgentPost(url);
|
||
result.data.page = String(page);
|
||
res.json(result.data)
|
||
})
|
||
|
||
// 搜索接口 正常
|
||
// http://127.0.0.1:3000/api/json/agent/search?keyword=jk
|
||
router.get('/agent/search', async (req, res, next) => {
|
||
var keyword = req.query.keyword;
|
||
var url = `${config.AgentUrl}&c=Search&a=Tuji&key=${encodeURIComponent(keyword)}`;
|
||
var result = await utils.AgentPost(url);
|
||
res.json(result)
|
||
})
|
||
|
||
// 随机展示接口 正常
|
||
// http://127.0.0.1:3000/api/json/agent/random
|
||
router.get('/agent/random', async (req, res, next) => {
|
||
var url = config.AgentUrl;
|
||
var result = await utils.AgentPost(url);
|
||
result.data.page = String("1");
|
||
res.json(result)
|
||
})
|
||
|
||
router.get('/updateVersion', async (req, res, next) => {
|
||
const query = bmobUtils.bmob.Query("UpdateVersion");
|
||
var update = function () {
|
||
query.find()
|
||
.then(result => {
|
||
res.json(result[0]);
|
||
})
|
||
.catch(err => {
|
||
console.log(`升级出现错误 ------- ${err}`);
|
||
update();
|
||
});
|
||
}
|
||
update();
|
||
|
||
})
|
||
|
||
// 普通注册
|
||
// http://127.0.0.1:3000/api/json/register
|
||
router.post('/register', async (req, res, next) => {
|
||
var userphone = req.body.userphone;
|
||
var userpwd = req.body.userpwd;
|
||
var superior = req.body.hasOwnProperty("superior") ? req.body.superior : '';
|
||
|
||
let params = {
|
||
username: userphone,
|
||
password: userpwd,
|
||
mobilePhoneNumber: userphone,
|
||
userType: '0',
|
||
FreeNumber: 6,
|
||
superiorObjectId: superior
|
||
};
|
||
|
||
var response = {
|
||
code: '',
|
||
error: '',
|
||
createdAt: '',
|
||
objectId: '',
|
||
}
|
||
|
||
bmobUtils.bmob.User.register(params).then(result => {
|
||
response.code = 200;
|
||
response.createdAt = result.createdAt;
|
||
response.objectId = result.objectId;
|
||
res.json(response);
|
||
|
||
}).catch(err => {
|
||
response.code = err.code;
|
||
response.error = err.error;
|
||
res.json(response);
|
||
});
|
||
});
|
||
|
||
// 代理用户注册
|
||
// http://127.0.0.1:3000/api/json/agentreg
|
||
router.post('/agentreg', async (req, res, next) => {
|
||
var userphone = req.body.userphone;
|
||
var userpwd = req.body.userpwd;
|
||
var agentCode = req.body.agentcode;
|
||
var userWeiXin = req.body.userweixin;
|
||
|
||
var response = {
|
||
code: '',
|
||
error: '',
|
||
createdAt: '',
|
||
objectId: '',
|
||
}
|
||
|
||
// 去代理码表查询这个激活码是否存在
|
||
const query = bmobUtils.bmob.Query('AgentCode');
|
||
query.equalTo("code", "==", agentCode);
|
||
let codeList = await query.find();
|
||
// 激活码存在
|
||
if (codeList.length != 0) {
|
||
bmobUtils.bmob.User.register({
|
||
username: userphone,
|
||
password: userpwd,
|
||
mobilePhoneNumber: userphone,
|
||
userType: '1',
|
||
userWeiXin: userWeiXin,
|
||
FreeNumber: 6
|
||
}).then(result => {
|
||
response.code = 200;
|
||
response.createdAt = result.createdAt;
|
||
response.objectId = result.objectId;
|
||
res.json(response);
|
||
|
||
// 注册代理失败
|
||
}).catch(err => {
|
||
response.code = err.code;
|
||
response.error = err.error;
|
||
res.json(response);
|
||
});
|
||
|
||
// 激活码不存在
|
||
} else {
|
||
response.code = 404;
|
||
response.error = "无法注册,因为激活码不存在,请找总代理确认!";
|
||
res.json(response);
|
||
}
|
||
|
||
});
|
||
|
||
|
||
// 登录
|
||
// http://127.0.0.1:3000/api/json/login
|
||
router.post('/login', async (req, res, next) => {
|
||
var username = req.body.username;
|
||
var userpwd = req.body.userpwd;
|
||
|
||
var response = {
|
||
code: '',
|
||
error: '',
|
||
username: '',
|
||
createdAt: '',
|
||
objectId: '',
|
||
userType: '',
|
||
userWeiXin: '',
|
||
}
|
||
|
||
bmobUtils.bmob.User.login(username, userpwd).then(result => {
|
||
console.log("result ===== ", result);
|
||
response.code = 200;
|
||
response.username = result.username;
|
||
response.createdAt = result.createdAt;
|
||
response.objectId = result.objectId;
|
||
response.userType = result.userType;
|
||
response.userWeiXin = result.userWeiXin;
|
||
|
||
res.json(response);
|
||
|
||
}).catch(err => {
|
||
response.code = err.code;
|
||
response.error = err.error;
|
||
res.json(response);
|
||
});
|
||
});
|
||
|
||
// 每访问一次详情页,就减少一次使用次数,总共6次免费使用
|
||
// http://127.0.0.1:3000/api/json/freeUse
|
||
router.post('/freeUse', async (req, res, next) => {
|
||
let objectId = req.body.objectId;
|
||
let query = bmobUtils.bmob.Query('_User');
|
||
query.equalTo("objectId", "==", objectId);
|
||
|
||
query.find().then((data) => {
|
||
// 剩余次数
|
||
let FreeNumber = data[0].FreeNumber;
|
||
if (FreeNumber != -1) {
|
||
FreeNumber--;
|
||
|
||
if (FreeNumber <= 0) {
|
||
updateNumbers(0)
|
||
res.json({
|
||
code: 403,
|
||
error: '免费次数用尽,请开通VIP',
|
||
FreeNumber: 0
|
||
})
|
||
return;
|
||
} else {
|
||
updateNumbers(FreeNumber)
|
||
}
|
||
} else {
|
||
res.json({
|
||
code: 200,
|
||
error: '',
|
||
FreeNumber: FreeNumber
|
||
});
|
||
return;
|
||
}
|
||
})
|
||
.catch(err => {
|
||
});
|
||
|
||
|
||
var updateNumbers = function (number) {
|
||
query.get(objectId).then(list => {
|
||
list.set('FreeNumber', number);
|
||
list.save()
|
||
res.json({
|
||
code: 200,
|
||
error: '',
|
||
FreeNumber: number
|
||
})
|
||
}).catch(err => {
|
||
|
||
})
|
||
}
|
||
});
|
||
|
||
// 办理会员的时候的 下单接口
|
||
// http://127.0.0.1:3000/api/json/placeOrder
|
||
router.post('/placeOrder', async (req, res, next) => {
|
||
let objectId = req.body.objectId;
|
||
let vipLevel = req.body.vipLevel;
|
||
|
||
const query = bmobUtils.bmob.Query('_User');
|
||
const savePurchase = bmobUtils.bmob.Query('purchase');
|
||
|
||
query.get(objectId).then(async result => {
|
||
if (result.hasOwnProperty('superiorObjectId')) {
|
||
console.log("有上级代理");
|
||
|
||
let superiorInfo = await query.get(result.superiorObjectId);
|
||
console.log("上级代理的用户信息为: ", superiorInfo);
|
||
saveOrderItem(superiorInfo.userWeiXin, result.objectId)
|
||
|
||
} else {
|
||
console.log("没有上级代理,返回总代理");
|
||
saveOrderItem('xy7145', result.objectId)
|
||
}
|
||
}).catch(err => {
|
||
console.log(err)
|
||
});
|
||
|
||
let saveOrderItem = async (weixin, objectId) => {
|
||
var response = {
|
||
code: '',
|
||
error: '',
|
||
createdAt: '',
|
||
objectId: '',
|
||
}
|
||
|
||
savePurchase.equalTo("userObjectId", "==", objectId);
|
||
let isHave = await savePurchase.find();
|
||
|
||
// 拒绝重复购买,如果等于0表示没有买,那么下单
|
||
if (isHave.length == 0) {
|
||
// 用户的objectId
|
||
savePurchase.set("userObjectId", objectId)
|
||
// 用户的购买类型
|
||
savePurchase.set("vipLevel", vipLevel)
|
||
// 订单号,也就是 用户的object
|
||
savePurchase.set("orderNumber", objectId)
|
||
// 当前用户的上级代理的微信号
|
||
savePurchase.set("superiorWeixin", weixin)
|
||
// 这笔订单的状态,0 未支付
|
||
savePurchase.set("activateStatus", "0")
|
||
|
||
savePurchase.save().then(saveInfo => {
|
||
console.log(saveInfo)
|
||
response.code = 200;
|
||
response.createdAt = saveInfo.createdAt;
|
||
response.objectId = saveInfo.objectId;
|
||
res.json(response)
|
||
}).catch(err => {
|
||
response.code = err.code;
|
||
response.error = err.error;
|
||
res.json(response)
|
||
})
|
||
|
||
} else {
|
||
response.code = 505;
|
||
response.error = '已经办理过,请转账完成激活';
|
||
res.json(response)
|
||
}
|
||
}
|
||
|
||
|
||
});
|
||
|
||
// 查询订单状态
|
||
// http://127.0.0.1:3000/api/json/orderStatus
|
||
router.post('/orderStatus', async (req, res, next) => {
|
||
let objectId = req.body.objectId;
|
||
const query = bmobUtils.bmob.Query('purchase');
|
||
|
||
var response = {
|
||
code: '',
|
||
error: '',
|
||
arr: ''
|
||
}
|
||
|
||
query.equalTo("userObjectId", "==", objectId);
|
||
let result = await query.find();
|
||
if (result.length == 0) {
|
||
response.code = 404;
|
||
response.error = '没有记录',
|
||
response.arr = []
|
||
} else {
|
||
response.code = 200;
|
||
response.error = '',
|
||
response.arr = result
|
||
}
|
||
|
||
res.json(response);
|
||
})
|
||
|
||
|
||
module.exports = router; |