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;