|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- /*
- * @Description: 我的收藏模块控制器
- * @Author: hai-27
- * @Date: 2020-03-04 22:30:31
- * @LastEditors: hai-27
- * @LastEditTime: 2020-03-04 23:32:23
- */
- const collectDao = require('../models/dao/collectDao');
- const productDao = require('../models/dao/productDao');
- const checkLogin = require('../middleware/checkLogin');
-
- module.exports = {
- /**
- * 添加收藏
- * @param {Object} ctx
- */
- AddCollect: async ctx => {
- let { user_id, product_id } = ctx.request.body;
-
- // 校验用户是否登录
- if (!checkLogin(ctx, user_id)) {
- return;
- }
-
- // 判断该用户的收藏列表是否存在该商品
- let tempCollect = await collectDao.FindCollect(user_id, product_id);
-
- if (tempCollect.length > 0) {
- ctx.body = {
- code: '003',
- msg: '该商品已经添加收藏,请到我的收藏查看'
- }
- return;
- }
-
- // 获取当前时间戳
- const timeTemp = new Date().getTime();
- try {
- // 把收藏商品信息插入数据库
- const result = await collectDao.AddCollect(user_id, product_id, timeTemp);
- // 插入成功
- if (result.affectedRows === 1) {
- ctx.body = {
- code: '001',
- msg: '添加收藏成功'
- }
- return;
- }
- } catch (error) {
- reject(error);
- }
-
- ctx.body = {
- code: '002',
- msg: '添加收藏失败'
- }
- },
- /**
- * 获取用户的所有收藏商品信息
- * @param {Object} ctx
- */
- GetCollect: async ctx => {
- let { user_id } = ctx.request.body;
- // 校验用户是否登录
- if (!checkLogin(ctx, user_id)) {
- return;
- }
- // 获取所有收藏信息
- const collect = await collectDao.GetCollect(user_id);
-
- // 该用户没有收藏的商品,直接返回信息
- if (collect.length == 0) {
- ctx.body = {
- code: '002',
- msg: '该用户没有收藏的商品'
- }
- return;
- }
-
- let collectList = [];
- // 生成收藏商品的详细信息列表
- for (let i = 0; i < collect.length; i++) {
- const temp = collect[i];
- // 获取每个商品详细信息
- const product = await productDao.GetProductById(temp.product_id);
- collectList.push(product[0]);
- }
-
- ctx.body = {
- code: '001',
- collectList: collectList
- }
- },
- /**
- * 删除用户的收藏商品信息
- * @param {Object} ctx
- */
- DeleteCollect: async ctx => {
- let { user_id, product_id } = ctx.request.body;
- // 校验用户是否登录
- if (!checkLogin(ctx, user_id)) {
- return;
- }
-
- // 判断该用户的收藏列表是否存在该商品
- let tempCollect = await collectDao.FindCollect(user_id, product_id);
-
- if (tempCollect.length > 0) {
- // 如果存在则删除
- try {
- const result = await collectDao.DeleteCollect(user_id, product_id);
- // 判断是否删除成功
- if (result.affectedRows === 1) {
- ctx.body = {
- code: '001',
- msg: '删除收藏成功'
- }
- return;
- }
- } catch (error) {
- reject(error);
- }
- } else {
- // 不存在则返回信息
- ctx.body = {
- code: '002',
- msg: '该商品不在收藏列表'
- }
- }
- }
- }
|