diff --git a/README.md b/README.md index 4cc4702..41a06af 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,7 @@ [![English-Burning-Backend CI](https://github.com/tolerious/English-Burning-Backend/actions/workflows/English-Burning-Backend.yml/badge.svg?branch=master)](https://github.com/tolerious/English-Burning-Backend/actions/workflows/English-Burning-Backend.yml) [See Here](https://github.com/tolerious/English-Burning-Frontend) + +## Feature List + +- 没创建一个用户都需要为其船舰一个默认的单词组,添加单词后都放到这个组里面 diff --git a/routes/wordGroup.js b/routes/wordGroup.js index 6b2cda8..0c6f6bc 100644 --- a/routes/wordGroup.js +++ b/routes/wordGroup.js @@ -31,7 +31,7 @@ router.get('/child', async function (req, res, next) { router.post("/", async function (req, res, next) { let user = req.tUser; let body = req.body; - Object.assign(body, { userID: user._id, parentGroupID: '' }); + Object.assign(body, { creator: user._id, parentGroupID: '' }); let t = await wordGroupModel.create(body); res.json(generateResponse(t)); }); @@ -104,7 +104,7 @@ router.post('/sharing/count', async function (req, res, next) { let c = await wordGroupModel.countDocuments() res.json(generateResponse({ wordCount: g.wordCount, - videoCount: g.groupMediaUrl.split(',').filter(item => { !item }).length, + videoCount: g.groupVideoUrl.split(',').filter(item => { !item }).length, audioCount: g.groupAudioUrl.split(',').filter(item => { !item }).length, articleCount: g.groupArticleUrl.split(',').filter(item => { !item }).length, groupCount: c diff --git a/schemas/articleSchema.js b/schemas/articleSchema.js index 9fda008..5b26edd 100644 --- a/schemas/articleSchema.js +++ b/schemas/articleSchema.js @@ -10,7 +10,8 @@ const articleSchema = new Schema( author: String, content: String, tags: [String], - link: { type: String, default: "" }, //文章链接 + /** 文章链接 */ + link: { type: String, default: "" }, }, { diff --git a/schemas/userSchema.js b/schemas/userSchema.js index eac7a75..a93d045 100644 --- a/schemas/userSchema.js +++ b/schemas/userSchema.js @@ -6,7 +6,9 @@ const userSchema = new Schema( { username: String, password: String, + /** 注册来源,默认是web */ source: { type: String, default: "web" }, + /** 登陆后的token */ token: { type: String, default: "" }, }, { diff --git a/schemas/userSettingsSchema.js b/schemas/userSettingsSchema.js index 9dec6a0..e3168c8 100644 --- a/schemas/userSettingsSchema.js +++ b/schemas/userSettingsSchema.js @@ -3,14 +3,19 @@ const mongoose = require("mongoose"); const { Schema } = mongoose; +/** + * 用户设置 + */ const userSettingSchema = new Schema( { userID: ObjectId, + /** 默认单词组,即当前正在背诵的单词所属于的单词组 */ defaultGroupID: ObjectId, }, { timestamps: true, statics: { + // FIXME: 这个函数应该在UserSchema中 async getUserByUserName(username) { return await mongoose.model("UserSetting", userSettingSchema).find({ username: username, diff --git a/schemas/wordGroupSchema.js b/schemas/wordGroupSchema.js index 1b25a3b..986e71a 100644 --- a/schemas/wordGroupSchema.js +++ b/schemas/wordGroupSchema.js @@ -5,27 +5,36 @@ const { Schema } = mongoose; const wordGroupSchema = new Schema( { - userID: ObjectId, - groupMediaUrl: { type: String, default: '' }, - groupAudioUrl: { type: String, default: '' }, - groupArticleUrl: { type: String, default: '' }, - parentGroupID: { type: String, default: '' }, - isPublic: { type: Boolean, default: false }, name: { type: String, default: "" }, + creator: ObjectId, + groupDescription: { type: String, default: "" }, + groupCoverUrl: { type: String, default: "" }, + groupVideoUrl: { type: String, default: "" }, + groupAudioUrl: { type: String, default: "" }, + groupArticleUrl: { type: String, default: "" }, + parentGroupID: { type: String, default: "" }, + isPublic: { type: Boolean, default: false }, wordCount: { type: Number, default: 0 }, }, { timestamps: true, statics: { - getOnlyChildGroup(userID) { - return mongoose.model("WordGroup").find({ userID: userID, parentGroupID: { $ne: '' } }) + getOnlyChildGroup(creator) { + return mongoose + .model("WordGroup") + .find({ creator: creator, parentGroupID: { $ne: "" } }); }, getPublicGroup() { - return mongoose.model("WordGroup").find({ isPublic: true, parentGroupID: { $ne: '' } }) + return mongoose + .model("WordGroup") + .find({ isPublic: true, parentGroupID: { $ne: "" } }); }, - getOnlyParentGroup(userID) { - return mongoose.model("WordGroup").find({ userID }) - .where('parentGroupID').equals(''); + getOnlyParentGroup(creator) { + return mongoose + .model("WordGroup") + .find({ creator }) + .where("parentGroupID") + .equals(""); }, }, }