fix: updateCategoryTagsCount

v1.18.x
Barış Soner Uşaklı 4 years ago
parent f9df6431c9
commit 2dc3283f19

@ -42,12 +42,13 @@ module.exports = function (Topics) {
const counts = await db.sortedSetsCard(
tags.map(tag => `cid:${cid}:tag:${tag}:topics`)
);
const tagToCount = _.zipObject(tags, counts);
const set = `cid:${cid}:tags`;
const bulkAdd = tags.filter((tag, index) => counts[index] > 0)
.map((tag, index) => [set, counts[index], tag]);
const bulkAdd = tags.filter(tag => tagToCount[tag] > 0)
.map(tag => [set, tagToCount[tag], tag]);
const bulkRemove = tags.filter((tag, index) => counts[index] <= 0)
const bulkRemove = tags.filter(tag => tagToCount[tag] <= 0)
.map(tag => [set, tag]);
await Promise.all([
@ -289,13 +290,15 @@ module.exports = function (Topics) {
};
Topics.getTopicTags = async function (tid) {
return await db.getSetMembers(`topic:${tid}:tags`);
const tags = await db.getSetMembers(`topic:${tid}:tags`);
return tags.sort();
};
Topics.getTopicsTags = async function (tids) {
return await db.getSetsMembers(
tids.map(tid => `topic:${tid}:tags`)
);
const keys = tids.map(tid => `topic:${tid}:tags`);
const tags = await db.getSetsMembers(keys);
tags.forEach(tags => tags.sort());
return tags;
};
Topics.getTopicTagsObjects = async function (tid) {
@ -314,6 +317,7 @@ module.exports = function (Topics) {
topicTags.forEach((tags, index) => {
if (Array.isArray(tags)) {
topicTags[index] = tags.map(tag => tagDataMap[tag]);
topicTags[index].sort((tag1, tag2) => tag2.value - tag1.value);
}
});

Loading…
Cancel
Save