category.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. 'use strict';
  2. import mongoose from 'mongoose'
  3. import categoryData from '../../InitData/category'
  4. const Schema = mongoose.Schema;
  5. const categorySchema = new Schema({
  6. count: Number,
  7. id: Number,
  8. ids: [],
  9. image_url: String,
  10. level: Number,
  11. name: String,
  12. sub_categories: [
  13. {
  14. count: Number,
  15. id: Number,
  16. image_url: String,
  17. level: Number,
  18. name: String
  19. },
  20. ]
  21. });
  22. categorySchema.statics.addCategory = async function (type){
  23. const categoryName = type.split('/');
  24. try{
  25. const allcate = await this.findOne();
  26. const subcate = await this.findOne({name: categoryName[0]});
  27. allcate.count ++;
  28. subcate.count ++ ;
  29. subcate.sub_categories.map(item => {
  30. if (item.name == categoryName[1]) {
  31. return item.count ++
  32. }
  33. })
  34. await allcate.save();
  35. await subcate.save();
  36. console.log('保存cetegroy成功');
  37. return
  38. }catch(err){
  39. console.log('保存cetegroy失败');
  40. throw new Error('保存cetegroy失败')
  41. }
  42. }
  43. const Category = mongoose.model('Category', categorySchema)
  44. Category.findOne((err, data) => {
  45. if (!data) {
  46. for (let i = 0; i < categoryData.length; i++) {
  47. Category.create(categoryData[i]);
  48. }
  49. }
  50. })
  51. export default Category