Files
ClassContent/项目合集/电商App/shop_backend/routes/users.js
2025-02-19 00:34:51 +08:00

256 lines
6.2 KiB
JavaScript
Raw 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 _ = require("../import");
/**
* @api {post} /user/login login
* @apiDescription 用户登录的接口注意用户登录成功后会在result中包含token参数请前端本地保存token。
* @apiName login
* @apiGroup user
* @apiParam {string} name 用户名
* @apiParam {string} pwd 用户密码
* @apiSuccessExample {json} 请求成功的返回:
* {
* "status" : 200,
* "message" : "请求成功"
* "result" : "asjXzXxmnSp8TZGWiTSlJF8Gb...5LhYoHs86SEI2LBXrTZ9e/a4frZOWHZ"
* }
* @apiErrorExample {json} 请求失败的返回
* {
* "status": 404,
* "message" : "请求错误"
* "result": null
* }
* @apiSampleRequest http://127.0.0.1:9090/user/login
* @apiVersion 1.0.0
*/
_.router.post('/login', async function (req, res, next) {
var username = req.headers.data.name,
userpwd = req.headers.data.pwd;
console.log("username: ", username);
console.log("userpwd: ", userpwd);
var data = await _.db.query({
sql: _.config.sql.userLogin,
data: [username,_.utils.Md5Password(userpwd)]
})
if (data.length != 0 ){
var token = _.jwt.sign({
id: data[0].user_id,
username: data[0].user_name
}, _.config.jwt, { expiresIn: '3h' }); // 1m
res.json({
status: 200,
message: '登录成功',
result: {
token: token
}
});
} else {
res.json({
status: 404,
message: '账户名或密码有误',
result: null
});
}
});
/**
* @api {post} /user/add add
* @apiDescription 用户注册的接口
* @apiName add
* @apiGroup user
* @apiParam {string} name 用户名
* @apiParam {string} pwd 用户密码
* @apiParam {string} phone 用户手机号
* @apiSuccessExample {json} 请求成功的返回:
* {
* "status" : 200,
* "message" : "注册成功"
* "result" : "asjXzXxmnSp8TZGWiTSlJF8Gb...5LhYoHs86SEI2LBXrTZ9e/a4frZOWHZ"
* }
* @apiErrorExample {json} 请求失败的返回
* {
* "status": 404,
* "message" : "注册失败"
* "result": null
* }
* @apiSampleRequest http://127.0.0.1:9090/user/add
* @apiVersion 1.0.0
*/
_.router.post('/add', async function (req, res, next) {
var username = req.headers.data.name,
userpwd = req.headers.data.pwd,
userphone = req.headers.data.phone;
var data = await _.db.query({
sql: _.config.sql.addUser,
data: [username,_.utils.Md5Password(userpwd),userphone, _.utils.getTime()]
})
if(data.hasOwnProperty('insertId')) {
res.json({
status: 200,
message: '注册成功',
result: {}
});
} else {
res.json({
status: 404,
message: '注册失败',
result: null
});
}
});
/**
* @api {post} /user/like like
* @apiDescription 用户在详情页收藏商品使用的接口
* @apiName like
* @apiGroup user
* @apiParam {number} shopid 需要被收藏商品的id这里是商品的 wares_id 字段
* @apiSuccessExample {json} 请求成功的返回:
* {
* "status" : 200,
* "message" : "收藏成功"
* "result" : "asjXzXxmnSp8TZGWiTSlJF8Gb...5LhYoHs86SEI2LBXrTZ9e/a4frZOWHZ"
* }
* @apiErrorExample {json} 请求失败的返回
* {
* "status": 404,
* "message" : "抱歉,请勿重复收藏"
* "result": null
* }
* @apiSampleRequest http://127.0.0.1:9090/user/like
* @apiVersion 1.0.0
*/
_.router.post('/like', async function (req, res, next) {
var like_shop = req.headers.data.shopid;
var IsLike = await _.db.query({
sql: _.config.sql.selectLike,
data: [like_shop,_.jwt.decode(req.headers.token).id]
});
if(IsLike.length != 0) {
res.json({
status: 404,
message: '抱歉,请勿重复收藏',
result: {}
});
} else {
var data = await _.db.query({
sql: _.config.sql.likeShop,
data: [like_shop, _.jwt.decode(req.headers.token).id]
});
if(data.hasOwnProperty('insertId')) {
res.json({
status: 200,
message: '收藏成功',
result: {}
});
} else {
res.json({
status: 404,
message: '收藏失败',
result: null
});
}
}
});
/**
* @api {post} /user/likeList likeList
* @apiDescription 获取用户收藏的商品不需要参数后端会解密请求头token获取user_id
* @apiName likeList
* @apiGroup user
* @apiSuccessExample {json} 请求成功的返回:
* {
* "status" : 200,
* "message" : "请求成功"
* "result" : "asjXzXxmnSp8TZGWiTSlJF8Gb...5LhYoHs86SEI2LBXrTZ9e/a4frZOWHZ"
* }
* @apiErrorExample {json} 请求失败的返回
* {
* "status": 404,
* "message" : "请求失败"
* "result": null
* }
* @apiSampleRequest http://127.0.0.1:9090/user/likeList
* @apiVersion 1.0.0
*/
_.router.post('/likeList', async function(req, res, next) {
var data = await _.db.query({
sql: _.config.sql.getLikeList,
data: [ _.jwt.decode(req.headers.token).id ]
});
res.json({
status: 200,
message: '请求成功',
result: data
});
});
/**
* @api {post} /user/getUserAddress getUserAddress
* @apiDescription 获取用户的收货地址(不需要参数,传空对象 {} 即可
* @apiName getUserAddress
* @apiGroup user
* @apiSuccessExample {json} 请求成功的返回:
* {
* "status" : 200,
* "message" : "请求成功"
* "result" : "asjXzXxmnSp8TZGWiTSlJF8Gb...5LhYoHs86SEI2LBXrTZ9e/a4frZOWHZ"
* }
* @apiErrorExample {json} 请求失败的返回
* {
* "status": 200,
* "message" : "没有收货地址"
* "result": null
* }
* @apiSampleRequest http://127.0.0.1:9090/user/getUserAddress
* @apiVersion 1.0.0
*/
_.router.post('/getUserAddress', async function(req, res, next) {
var data = await _.db.query({
sql: _.config.sql.getUserAddress,
data: [ _.jwt.decode(req.headers.token).id ]
});
if (data[0].user_address == null || data[0].user_address.length == 0) {
res.json({
status: 200,
message: '没有收货地址',
result: {}
});
} else {
res.json({
status: 200,
message: '请求成功',
result: data
});
}
});
module.exports = _.router;