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;