You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
6.7 KiB

1 week ago
const express = require("express");
const router = express.Router();
const SQLConnect = require("./SQLConnect.js");
const url = require("url");
const request = require("request");
const authorization_code = "itbaizhan"
const appid = "wxe4135ba344b525f4"
const secret = "a3e4a228cf68dbd055f63487352b582b"
/**
* banner接口地址
*/
router.get("/banner", (req, res) => {
const sql = "select * from banner";
SQLConnect(sql, [], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: {
result: result
}
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
})
/**
* 推荐商品
*/
router.get("/goods", (req, res) => {
var page = url.parse(req.url, true).query.page || 1;
const sql = "select * from goods limit 10 offset " + (page - 1) * 10;
SQLConnect(sql, [page], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: {
result: result
}
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
})
/**
* 搜索模糊查询
*/
router.get("/goods/search", (req, res) => {
var search = url.parse(req.url, true).query.search;
const sql = "select * from goods where title like '%" + search + "%'";
SQLConnect(sql, null, (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: result
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
});
/**
* search keywords
*/
router.get("/keywords", (req, res) => {
const sql = "select * from keywords";
SQLConnect(sql, [], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: {
result: result
}
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
})
/**
* goodsdetails
*/
router.get("/goods/details", (req, res) => {
var id = url.parse(req.url, true).query.id;
const sql = "select * from goodsdetails where id=?";
SQLConnect(sql, [id], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: result
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
});
/**
* 加入购物车
*/
router.get("/cart/add", (req, res) => {
var title = url.parse(req.url, true).query.title;
var price = url.parse(req.url, true).query.price;
var image = url.parse(req.url, true).query.image;
var currentID = url.parse(req.url, true).query.currentID;
const sql = "insert into cart values (null,?,?,?,?)";
SQLConnect(sql, [title, image, price, currentID], (result) => {
if (result.affectedRows > 0) {
res.send({
status: 200,
success: true,
msg: "添加成功"
})
} else {
res.status(500).send({
status: 500,
msg: "添加失败"
});
}
})
});
/**
* 购物车
*/
router.get("/cart", (req, res) => {
const sql = "select * from cart";
SQLConnect(sql, [], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: result
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
});
/**
* 删除购物车
*/
router.get("/cart/del", (req, res) => {
var id = url.parse(req.url, true).query.currentID;
const sql = "DELETE FROM cart WHERE id=?";
SQLConnect(sql, [id], (result) => {
if (result.affectedRows > 0) {
res.send({
status: 200,
success: true
})
} else {
res.status(500).send({
msg: "删除失败"
});
}
})
});
/**
* 购买商品查询
*/
router.get("/buy", (req, res) => {
var id = url.parse(req.url, true).query.id;
const sql = "select * from goods where id=?";
SQLConnect(sql, [id], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: result
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
});
/**
* 类别
*/
router.get("/category", (req, res) => {
var tag = url.parse(req.url, true).query.tag;
const sql = "select * from category where cate=?";
SQLConnect(sql, [tag], (result) => {
if (result.length > 0) {
res.send({
status: 200,
data: result
});
} else {
res.send({
status: 500,
msg: "暂无数据"
});
}
})
});
/**
* 登录
*/
router.post("/login", (req, res) => {
const { code } = req.body;
request(`https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${secret}&js_code=${code}&grant_type=${authorization_code}`, (err, response, body) => {
if (err) console.log(err);
const data = JSON.parse(body);
/**
* 签名校验以及数据加解密涉及用户的会话密钥session_key 需要保存在服务器
* openid 判断是否是同一个用户
* session_key 判断用户是否失效
* data: {
* openid: '**********',
* session_key: '********'
* }
*/
const sql = "insert into user values (null,?,?)"
if(data.openid && data.session_key){
SQLConnect(sql, [data.openid,data.session_key], (result) => {
if (result.affectedRows > 0) {
res.send({
status: 200,
data: data.session_key,
msg: "添加成功"
})
} else {
res.status(500).send({
status: 500,
msg: "添加失败"
});
}
})
}else{
res.send({
status:500,
msg:"登录失败"
})
}
})
})
module.exports = router;