点赞和评论
This commit is contained in:
@@ -10,6 +10,7 @@ import kotlin.math.min
|
||||
interface MomentService {
|
||||
suspend fun getMomentById(id: Int): MomentItem
|
||||
suspend fun likeMoment(id: Int)
|
||||
suspend fun dislikeMoment(id: Int)
|
||||
suspend fun getMoments(
|
||||
pageNumber: Int,
|
||||
author: Int? = null,
|
||||
@@ -81,6 +82,10 @@ class TestMomentServiceImpl() : MomentService {
|
||||
testMomentBackend.likeMoment(id)
|
||||
}
|
||||
|
||||
override suspend fun dislikeMoment(id: Int) {
|
||||
testMomentBackend.dislikeMoment(id)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class TestMomentBackend(
|
||||
@@ -113,6 +118,12 @@ class TestMomentBackend(
|
||||
)
|
||||
}
|
||||
val currentSublist = rawList.subList(from, min(to, rawList.size))
|
||||
currentSublist.forEach {
|
||||
val myLikeIdList = TestDatabase.likeMomentList.filter { it.second == 1 }.map { it.first }
|
||||
if (myLikeIdList.contains(it.id)) {
|
||||
it.liked = true
|
||||
}
|
||||
}
|
||||
// delay
|
||||
kotlinx.coroutines.delay(loadDelay)
|
||||
return ListContainer(
|
||||
@@ -124,7 +135,14 @@ class TestMomentBackend(
|
||||
}
|
||||
|
||||
suspend fun getMomentById(id: Int): MomentItem {
|
||||
return TestDatabase.momentData[id]
|
||||
var moment = TestDatabase.momentData.first {
|
||||
it.id == id
|
||||
}
|
||||
val isLike = TestDatabase.likeMomentList.any {
|
||||
it.first == id && it.second == 1
|
||||
}
|
||||
moment = moment.copy(liked = isLike)
|
||||
return moment
|
||||
}
|
||||
|
||||
suspend fun likeMoment(id: Int) {
|
||||
@@ -133,6 +151,17 @@ class TestMomentBackend(
|
||||
}
|
||||
val newMoment = oldMoment.copy(likeCount = oldMoment.likeCount + 1)
|
||||
TestDatabase.updateMomentById(id, newMoment)
|
||||
TestDatabase.likeMomentList += Pair(id, 1)
|
||||
}
|
||||
suspend fun dislikeMoment(id: Int) {
|
||||
val oldMoment = TestDatabase.momentData.first {
|
||||
it.id == id
|
||||
}
|
||||
val newMoment = oldMoment.copy(likeCount = oldMoment.likeCount - 1)
|
||||
TestDatabase.updateMomentById(id, newMoment)
|
||||
TestDatabase.likeMomentList = TestDatabase.likeMomentList.filter {
|
||||
it.first != id
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user