|
- /*
- * @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: '该商品不在收藏列表'
- }
- }
- }
- }
|