Files
2024-09-27 02:06:13 +08:00

360 lines
9.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;