Эх сурвалжийг харах

fix 修复评论日期不能正确显示问题

tumobi 8 жил өмнө
parent
commit
0597c417ad

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
database/nideshop.sql


+ 1 - 2
src/api/controller/comment.js

@@ -89,12 +89,11 @@ export default class extends Base {
         let commentList = [];
         for (let commentItem of comments.data) {
             let comment = {};
-            let addTime = new Date(commentItem.add_time);
             comment.content = new Buffer(commentItem.content, 'base64').toString();
             comment.type_id = commentItem.type_id;
             comment.value_id = commentItem.value_id;
             comment.id = commentItem.id;
-            comment.add_time = addTime.getFullYear() + '-' + addTime.getMonth() + '-' + addTime.getDay() + ' ' + addTime.getHours() + ':' + addTime.getMinutes() + ':' + addTime.getSeconds();
+            comment.add_time = think.datetime(new Date(commentItem.add_time * 1000));
             comment.user_info = await this.model('user').field(['username', 'avatar', 'nickname']).where({id: commentItem.user_id}).find();
             comment.pic_list = await this.model('comment_picture').where({comment_id: commentItem.id}).select();
             commentList.push(comment);

+ 289 - 292
src/api/controller/goods.js

@@ -3,321 +3,318 @@
 import Base from './base.js';
 
 export default class extends Base {
-  /**
-   * index action
-   * @return {Promise} []
-   */
-  async indexAction() {
-
-    let model = this.model('goods');
-    let goodsList = await model.select();
-
-    return this.success(goodsList);
-  }
-
-
-  /**
-   * 获取sku信息,用于购物车编辑时选择规格
-   * @returns {Promise.<Promise|PreventPromise|void>}
-   */
-  async skuAction() {
-
-    let goodsId = this.get('id');
-    let model = this.model('goods');
-
-    return this.success({
-      specificationList: await model.getSpecificationList(goodsId),
-      productList: await model.getProductList(goodsId)
-    });
-  }
-
-  /**
-   * 商品详情页数据
-   * @returns {Promise.<Promise|PreventPromise|void>}
-   */
-  async detailAction() {
-
-    let goodsId = this.get('id');
-    let model = this.model('goods');
-
-    let info = await model.where({ 'id': goodsId }).find();
-    let gallery = await this.model('goods_gallery').where({ goods_id: goodsId }).limit(4).select();
-    let attribute = await this.model('goods_attribute').field('nideshop_goods_attribute.value, nideshop_attribute.name').join('nideshop_attribute ON nideshop_goods_attribute.attribute_id=nideshop_attribute.id').order({ 'nideshop_goods_attribute.id': 'asc' }).where({ 'nideshop_goods_attribute.goods_id': goodsId }).select();
-    let issue = await this.model('goods_issue').select();
-    let brand = await this.model('brand').where({ id: info.brand_id }).find();
-    let commentCount = await this.model('comment').where({ value_id: goodsId, type_id: 0 }).count();
-    let hotComment = await this.model('comment').where({ value_id: goodsId, type_id: 0 }).find();
-    let commentInfo = {};
-    if (!think.isEmpty(hotComment)) {
-      let commentContent = new Buffer(hotComment.content, 'base64').toString();
-      let addTime = new Date(hotComment.add_time);
-      commentInfo = {
-        content: new Buffer(hotComment.content, 'base64').toString(),
-        add_time: addTime.getFullYear() + '-' + addTime.getMonth() + '-' + addTime.getDay() + ' ' + addTime.getHours() + ':' + addTime.getMinutes() + ':' + addTime.getSeconds(),
-        username: '明××天',
-        avatar: 'http://yanxuan.nosdn.127.net/8bbc224d0f062596b8f64037a88d527e',
-        level: 'V3',
-        pic_list: await this.model('comment_picture').where({ comment_id: hotComment.id }).select()
-
-      }
-    }
-    let comment = {
-      count: commentCount,
-      data: commentInfo
-    };
-
-
-    //当前用户是否收藏
-    let userHasCollect = await this.model('collect').isUserHasCollect(think.userId, 0, goodsId);
-
-    //记录用户的足迹 TODO
-    await await this.model('footprint').addFootprint(goodsId);
-
-    // return this.json(jsonData);
-    return this.success({
-      info: info,
-      gallery: gallery,
-      attribute: attribute,
-      userHasCollect: userHasCollect,
-      issue: issue,
-      comment: comment,
-      brand: brand,
-      specificationList: await model.getSpecificationList(goodsId),
-      productList: await model.getProductList(goodsId)
-    });
-  }
-
-  /**
-   * 获取分类下的商品
-   * @returns {Promise.<Promise|PreventPromise|void>}
-   */
-  async categoryAction() {
-
-    const model = this.model('category');
-    let currentCategory = await model.where({ id: this.get('id') }).find();
-    let parentCategory = await model.where({ id: currentCategory.parent_id }).find();
-    let brotherCategory = await model.where({ parent_id: currentCategory.parent_id }).select();
-    let categoryGoods = await this.model('goods').field(['id', 'name', 'list_pic_url', 'retail_price']).where({ category_id: currentCategory.id }).select();
-
-    // return this.success(ftlData);
-    return this.success({
-      currentCategory: currentCategory,
-      parentCategory: parentCategory,
-      brotherCategory: brotherCategory
-    });
-  }
-
-  /**
-   * 获取商品列表
-   * @returns {Promise.<Promise|PreventPromise|void>}
-   */
-  async listAction() {
-
-    let categoryId = this.get('categoryId');
-    let brandId = this.get('brandId');
-    let keyword = this.get('keyword');
-    let isNew = this.get('isNew');
-    let isHot = this.get('isHot');
-    let page = this.get('page');
-    let size = this.get('size');
-    let sort = this.get('sort');
-    let order = this.get('order');
-
-    let goodsQuery = this.model('goods');
-
-    let whereMap = {};
-    if (!think.isEmpty(isNew)) {
-      whereMap.is_new = isNew;
-    }
+    /**
+     * index action
+     * @return {Promise} []
+     */
+    async indexAction() {
+
+        let model = this.model('goods');
+        let goodsList = await model.select();
 
-    if (!think.isEmpty(isHot)) {
-      whereMap.is_hot = isHot;
+        return this.success(goodsList);
     }
 
-    if (!think.isEmpty(keyword)) {
-      whereMap.name = ['like', `%${keyword}%`];
 
-      //添加到搜索历史
-      let keywords = await this.model('search_history').add({
-        keyword: keyword,
-        user_id: think.userId,
-        add_time: parseInt(new Date().getTime() / 1000)
-      });
+    /**
+     * 获取sku信息,用于购物车编辑时选择规格
+     * @returns {Promise.<Promise|PreventPromise|void>}
+     */
+    async skuAction() {
 
-    }
+        let goodsId = this.get('id');
+        let model = this.model('goods');
 
-    if (!think.isEmpty(brandId)) {
-      whereMap.brand_id = brandId;
+        return this.success({
+            specificationList: await model.getSpecificationList(goodsId),
+            productList: await model.getProductList(goodsId)
+        });
     }
 
-    //排序
-    let orderMap = {};
-    if (sort === 'price') {
-      //按价格
-      orderMap = {
-        retail_price: order
-      };
-    } else {
-      //按商品添加时间
-      orderMap = {
-        id: 'desc'
-      };
+    /**
+     * 商品详情页数据
+     * @returns {Promise.<Promise|PreventPromise|void>}
+     */
+    async detailAction() {
+
+        let goodsId = this.get('id');
+        let model = this.model('goods');
+
+        let info = await model.where({'id': goodsId}).find();
+        let gallery = await this.model('goods_gallery').where({goods_id: goodsId}).limit(4).select();
+        let attribute = await this.model('goods_attribute').field('nideshop_goods_attribute.value, nideshop_attribute.name').join('nideshop_attribute ON nideshop_goods_attribute.attribute_id=nideshop_attribute.id').order({'nideshop_goods_attribute.id': 'asc'}).where({'nideshop_goods_attribute.goods_id': goodsId}).select();
+        let issue = await this.model('goods_issue').select();
+        let brand = await this.model('brand').where({id: info.brand_id}).find();
+        let commentCount = await this.model('comment').where({value_id: goodsId, type_id: 0}).count();
+        let hotComment = await this.model('comment').where({value_id: goodsId, type_id: 0}).find();
+        let commentInfo = {};
+        if (!think.isEmpty(hotComment)) {
+            let commentUser = await this.model('user').field(['nickname', 'username', 'avatar']).where({id: hotComment.user_id}).find();
+            commentInfo = {
+                content: new Buffer(hotComment.content, 'base64').toString(),
+                add_time: think.datetime(new Date(hotComment.add_time * 1000)),
+                nickname: commentUser.nickname,
+                avatar: commentUser.avatar,
+                pic_list: await this.model('comment_picture').where({comment_id: hotComment.id}).select()
+            }
+        }
+        let comment = {
+            count: commentCount,
+            data: commentInfo
+        };
+
+
+        //当前用户是否收藏
+        let userHasCollect = await this.model('collect').isUserHasCollect(think.userId, 0, goodsId);
+
+        //记录用户的足迹 TODO
+        await await this.model('footprint').addFootprint(goodsId);
+
+        // return this.json(jsonData);
+        return this.success({
+            info: info,
+            gallery: gallery,
+            attribute: attribute,
+            userHasCollect: userHasCollect,
+            issue: issue,
+            comment: comment,
+            brand: brand,
+            specificationList: await model.getSpecificationList(goodsId),
+            productList: await model.getProductList(goodsId)
+        });
     }
 
-    //筛选的分类
-    let filterCategory = [{
-      'id': 0,
-      'name': '全部',
-      'checked': false
-    }];
-
-    let categoryIds = await goodsQuery.where(whereMap).getField('category_id', 10000);
-    if (!think.isEmpty(categoryIds)) {
-      //查找二级分类的parent_id
-      let parentIds = await this.model('category').where({ id: { 'in': categoryIds } }).getField('parent_id', 10000);
-      //一级分类
-      let parentCategory = await this.model('category').field(['id', 'name']).order({ 'sort_order': 'asc' }).where({ 'id': { 'in': parentIds } }).select();
-
-      if (!think.isEmpty(parentCategory)) {
-        filterCategory = filterCategory.concat(parentCategory);
-      }
+    /**
+     * 获取分类下的商品
+     * @returns {Promise.<Promise|PreventPromise|void>}
+     */
+    async categoryAction() {
+
+        const model = this.model('category');
+        let currentCategory = await model.where({id: this.get('id')}).find();
+        let parentCategory = await model.where({id: currentCategory.parent_id}).find();
+        let brotherCategory = await model.where({parent_id: currentCategory.parent_id}).select();
+        let categoryGoods = await this.model('goods').field(['id', 'name', 'list_pic_url', 'retail_price']).where({category_id: currentCategory.id}).select();
+
+        // return this.success(ftlData);
+        return this.success({
+            currentCategory: currentCategory,
+            parentCategory: parentCategory,
+            brotherCategory: brotherCategory
+        });
     }
 
-    //加入分类条件
-    if (!think.isEmpty(categoryId) && parseInt(categoryId) > 0) {
-      whereMap.category_id = ['in', await this.model('category').getCategoryWhereIn(categoryId)];
-    }
-    console.log(whereMap);
-
-    //搜索到的商品
-    let goodsData = await goodsQuery.where(whereMap).field(['id', 'name', 'list_pic_url', 'retail_price']).order(orderMap).page(page, size).countSelect();
-    goodsData.filterCategory = filterCategory.map(function (v) {
-      if ((think.isEmpty(categoryId) && v.id === 0) || v.id === parseInt(categoryId)) {
-        v.checked = true;
-      } else {
-        v.checked = false;
-      }
-      return v;
-    });
-    goodsData.goodsList = goodsData.data;
-    return this.success(goodsData);
-  }
-
-  /**
-   * 商品列表筛选的分类列表
-   * @returns {Promise.<Promise|void|PreventPromise>}
-   */
-  async filterAction() {
-
-    let categoryId = this.get('categoryId');
-    let keyword = this.get('keyword');
-    let isNew = this.get('isNew');
-    let isHot = this.get('isHot');
-
-    let goodsQuery = this.model('goods');
-
-    if (!think.isEmpty(categoryId)) {
-      goodsQuery.where({ category_id: { 'in': await this.model('category').getChildCategoryId(categoryId) } });
+    /**
+     * 获取商品列表
+     * @returns {Promise.<Promise|PreventPromise|void>}
+     */
+    async listAction() {
+
+        let categoryId = this.get('categoryId');
+        let brandId = this.get('brandId');
+        let keyword = this.get('keyword');
+        let isNew = this.get('isNew');
+        let isHot = this.get('isHot');
+        let page = this.get('page');
+        let size = this.get('size');
+        let sort = this.get('sort');
+        let order = this.get('order');
+
+        let goodsQuery = this.model('goods');
+
+        let whereMap = {};
+        if (!think.isEmpty(isNew)) {
+            whereMap.is_new = isNew;
+        }
+
+        if (!think.isEmpty(isHot)) {
+            whereMap.is_hot = isHot;
+        }
+
+        if (!think.isEmpty(keyword)) {
+            whereMap.name = ['like', `%${keyword}%`];
+
+            //添加到搜索历史
+            let keywords = await this.model('search_history').add({
+                keyword: keyword,
+                user_id: think.userId,
+                add_time: parseInt(new Date().getTime() / 1000)
+            });
+
+        }
+
+        if (!think.isEmpty(brandId)) {
+            whereMap.brand_id = brandId;
+        }
+
+        //排序
+        let orderMap = {};
+        if (sort === 'price') {
+            //按价格
+            orderMap = {
+                retail_price: order
+            };
+        } else {
+            //按商品添加时间
+            orderMap = {
+                id: 'desc'
+            };
+        }
+
+        //筛选的分类
+        let filterCategory = [{
+            'id': 0,
+            'name': '全部',
+            'checked': false
+        }];
+
+        let categoryIds = await goodsQuery.where(whereMap).getField('category_id', 10000);
+        if (!think.isEmpty(categoryIds)) {
+            //查找二级分类的parent_id
+            let parentIds = await this.model('category').where({id: {'in': categoryIds}}).getField('parent_id', 10000);
+            //一级分类
+            let parentCategory = await this.model('category').field(['id', 'name']).order({'sort_order': 'asc'}).where({'id': {'in': parentIds}}).select();
+
+            if (!think.isEmpty(parentCategory)) {
+                filterCategory = filterCategory.concat(parentCategory);
+            }
+        }
+
+        //加入分类条件
+        if (!think.isEmpty(categoryId) && parseInt(categoryId) > 0) {
+            whereMap.category_id = ['in', await this.model('category').getCategoryWhereIn(categoryId)];
+        }
+        console.log(whereMap);
+
+        //搜索到的商品
+        let goodsData = await goodsQuery.where(whereMap).field(['id', 'name', 'list_pic_url', 'retail_price']).order(orderMap).page(page, size).countSelect();
+        goodsData.filterCategory = filterCategory.map(function (v) {
+            if ((think.isEmpty(categoryId) && v.id === 0) || v.id === parseInt(categoryId)) {
+                v.checked = true;
+            } else {
+                v.checked = false;
+            }
+            return v;
+        });
+        goodsData.goodsList = goodsData.data;
+        return this.success(goodsData);
     }
 
-    if (!think.isEmpty(isNew)) {
-      goodsQuery.where({ is_new: isNew });
+    /**
+     * 商品列表筛选的分类列表
+     * @returns {Promise.<Promise|void|PreventPromise>}
+     */
+    async filterAction() {
+
+        let categoryId = this.get('categoryId');
+        let keyword = this.get('keyword');
+        let isNew = this.get('isNew');
+        let isHot = this.get('isHot');
+
+        let goodsQuery = this.model('goods');
+
+        if (!think.isEmpty(categoryId)) {
+            goodsQuery.where({category_id: {'in': await this.model('category').getChildCategoryId(categoryId)}});
+        }
+
+        if (!think.isEmpty(isNew)) {
+            goodsQuery.where({is_new: isNew});
+        }
+
+        if (!think.isEmpty(isHot)) {
+            goodsQuery.where({is_hot: isHot});
+        }
+
+        if (!think.isEmpty(keyword)) {
+            goodsQuery.where({name: {'like': `%${keyword}%`}});
+        }
+
+        let filterCategory = [{
+            'id': 0,
+            'name': '全部'
+        }];
+
+        //二级分类id
+        let categoryIds = await goodsQuery.getField('category_id', 10000);
+        if (!think.isEmpty(categoryIds)) {
+            //查找二级分类的parent_id
+            let parentIds = await this.model('category').where({id: {'in': categoryIds}}).getField('parent_id', 10000);
+            //一级分类
+            let parentCategory = await this.model('category').field(['id', 'name']).order({'sort_order': 'asc'}).where({'id': {'in': parentIds}}).select();
+
+            if (!think.isEmpty(parentCategory)) {
+                filterCategory = filterCategory.concat(parentCategory);
+            }
+        }
+
+        return this.success(filterCategory);
     }
 
-    if (!think.isEmpty(isHot)) {
-      goodsQuery.where({ is_hot: isHot });
+    /**
+     * 新品首发
+     * @returns {Promise.<Promise|void|PreventPromise>}
+     */
+    async newAction() {
+
+        return this.success({
+            bannerInfo: {
+                url: '',
+                name: '坚持初心,为你寻觅世间好物',
+                img_url: 'http://yanxuan.nosdn.127.net/8976116db321744084774643a933c5ce.png',
+            }
+        });
     }
 
-    if (!think.isEmpty(keyword)) {
-      goodsQuery.where({ name: { 'like': `%${keyword}%` } });
+    /**
+     * 人气推荐
+     * @returns {Promise.<Promise|void|PreventPromise>}
+     */
+    async hotAction() {
+
+        return this.success({
+            bannerInfo: {
+                url: '',
+                name: '大家都在买的严选好物',
+                img_url: 'http://yanxuan.nosdn.127.net/8976116db321744084774643a933c5ce.png',
+            }
+        });
     }
 
-    let filterCategory = [{
-      'id': 0,
-      'name': '全部'
-    }];
-
-    //二级分类id
-    let categoryIds = await goodsQuery.getField('category_id', 10000);
-    if (!think.isEmpty(categoryIds)) {
-      //查找二级分类的parent_id
-      let parentIds = await this.model('category').where({ id: { 'in': categoryIds } }).getField('parent_id', 10000);
-      //一级分类
-      let parentCategory = await this.model('category').field(['id', 'name']).order({ 'sort_order': 'asc' }).where({ 'id': { 'in': parentIds } }).select();
-
-      if (!think.isEmpty(parentCategory)) {
-        filterCategory = filterCategory.concat(parentCategory);
-      }
+    /**
+     * 商品详情页的大家都在看的商品
+     * @returns {Promise.<Promise|PreventPromise|void>}
+     */
+    async relatedAction() {
+        //大家都在看商品,取出关联表的商品,如果没有则随机取同分类下的商品
+
+        const model = this.model('goods');
+        const goodsId = this.get('id');
+        let relatedGoodsIds = await this.model('related_goods').where({goods_id: goodsId}).getField('related_goods_id');
+        let relatedGoods = null;
+        if (think.isEmpty(relatedGoodsIds)) {
+            //查找同分类下的商品
+            let goodsCategory = await model.where({id: goodsId}).find();
+            relatedGoods = await model.where({category_id: goodsCategory.category_id}).field(['id', 'name', 'list_pic_url', 'retail_price']).limit(8).select();
+        } else {
+            relatedGoods = await model.where({id: ['IN', relatedGoodsIds]}).field(['id', 'name', 'list_pic_url', 'retail_price']).select();
+        }
+
+        return this.success({
+            goodsList: relatedGoods,
+        });
     }
 
-    return this.success(filterCategory);
-  }
-
-  /**
-   * 新品首发
-   * @returns {Promise.<Promise|void|PreventPromise>}
-   */
-  async newAction() {
-
-    return this.success({
-      bannerInfo: {
-        url: '',
-        name: '坚持初心,为你寻觅世间好物',
-        img_url: 'http://yanxuan.nosdn.127.net/8976116db321744084774643a933c5ce.png',
-      }
-    });
-  }
-
-  /**
-   * 人气推荐
-   * @returns {Promise.<Promise|void|PreventPromise>}
-   */
-  async hotAction() {
-
-    return this.success({
-      bannerInfo: {
-        url: '',
-        name: '大家都在买的严选好物',
-        img_url: 'http://yanxuan.nosdn.127.net/8976116db321744084774643a933c5ce.png',
-      }
-    });
-  }
-
-  /**
-   * 商品详情页的大家都在看的商品
-   * @returns {Promise.<Promise|PreventPromise|void>}
-   */
-  async relatedAction() {
-    //大家都在看商品,取出关联表的商品,如果没有则随机取同分类下的商品
-
-    const model = this.model('goods');
-    const goodsId = this.get('id');
-    let relatedGoodsIds = await this.model('related_goods').where({ goods_id: goodsId }).getField('related_goods_id');
-    let relatedGoods = null;
-    if (think.isEmpty(relatedGoodsIds)) {
-      //查找同分类下的商品
-      let goodsCategory = await model.where({ id: goodsId }).find();
-      relatedGoods = await model.where({ category_id: goodsCategory.category_id }).field(['id', 'name', 'list_pic_url', 'retail_price']).limit(8).select();
-    } else {
-      relatedGoods = await model.where({ id: ['IN', relatedGoodsIds] }).field(['id', 'name', 'list_pic_url', 'retail_price']).select();
-    }
-
-    return this.success({
-      goodsList: relatedGoods,
-    });
-  }
+    /**
+     * 在售的商品总数
+     * @returns {Promise.<Promise|PreventPromise|void>}
+     */
+    async countAction() {
 
-  /**
-   * 在售的商品总数
-   * @returns {Promise.<Promise|PreventPromise|void>}
-   */
-  async countAction() {
+        let goodsCount = await this.model('goods').where({is_delete: 0, is_on_sale: 1}).count('id');
 
-    let goodsCount = await this.model('goods').where({ is_delete: 0, is_on_sale: 1 }).count('id');
-
-    return this.success({
-      goodsCount: goodsCount,
-    });
-  }
+        return this.success({
+            goodsCount: goodsCount,
+        });
+    }
 
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно