diff --git a/app/src/card/openCard.ts b/app/src/card/openCard.ts index 0024a5b2b..065c09083 100644 --- a/app/src/card/openCard.ts +++ b/app/src/card/openCard.ts @@ -176,7 +176,6 @@ export const openCardByData = (cardsData: ICard[], html = "") => { fetchPost("/api/riff/reviewRiffCard", { deckID: blocks[index].deckID, cardID: blocks[index].cardID, - blockID: blocks[index].blockID, rating: parseInt(type) }, () => { index++; diff --git a/kernel/api/riff.go b/kernel/api/riff.go index a141c4d0e..870b2778d 100644 --- a/kernel/api/riff.go +++ b/kernel/api/riff.go @@ -76,9 +76,8 @@ func reviewRiffCard(c *gin.Context) { deckID := arg["deckID"].(string) cardID := arg["cardID"].(string) - blockID := arg["blockID"].(string) rating := int(arg["rating"].(float64)) - err := model.ReviewFlashcard(deckID, cardID, blockID, riff.Rating(rating)) + err := model.ReviewFlashcard(deckID, cardID, riff.Rating(rating)) if nil != err { ret.Code = -1 ret.Msg = err.Error() @@ -148,8 +147,10 @@ func removeRiffCards(c *gin.Context) { return } - deck := model.Decks[deckID] - ret.Data = deckData(deck) + if "" != deckID { + deck := model.Decks[deckID] + ret.Data = deckData(deck) + } } func addRiffCards(c *gin.Context) { diff --git a/kernel/model/flashcard.go b/kernel/model/flashcard.go index fb24dedbb..9e07e3734 100644 --- a/kernel/model/flashcard.go +++ b/kernel/model/flashcard.go @@ -134,7 +134,7 @@ func getCardsBlocks(cards []riff.Card, page int) (blocks []*Block, total, pageCo // reviewCardCache 用于复习时缓存卡片,以便支持撤销。 var reviewCardCache = map[string]riff.Card{} -func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err error) { +func ReviewFlashcard(deckID, cardID string, rating riff.Rating) (err error) { deckLock.Lock() defer deckLock.Unlock() @@ -150,16 +150,16 @@ func ReviewFlashcard(deckID, cardID, blockID string, rating riff.Rating) (err er return } - if cachedCard := reviewCardCache[card.ID()]; nil != cachedCard { + if cachedCard := reviewCardCache[cardID]; nil != cachedCard { // 命中缓存说明这张卡片已经复习过了,这次调用复习是撤销后再次复习 // 将缓存的卡片重新覆盖回卡包中,以恢复最开始复习前的状态 deck.SetCard(cachedCard) } else { // 首次复习该卡片,将卡片缓存以便后续支持撤销后再次复习 - reviewCardCache[card.ID()] = card + reviewCardCache[cardID] = card } - deck.Review(blockID, rating) + deck.Review(cardID, rating) err = deck.Save() if nil != err { logging.LogErrorf("save deck [%s] failed: %s", deckID, err)