Files
t/uniCloud-alipay/cloudfunctions/cms-articles-like/index.obj.js
T
2025-03-12 20:11:03 +08:00

81 lines
1.5 KiB
JavaScript

const db = uniCloud.database();
const _ = db.command;
module.exports = {
_before: function () {
},
async likeArticle(query) {
let user_id = query.user_id;
let article_id = query.article_id;
let datetime = new Date().getTime();
const transaction = await db.startTransaction();
try {
const exist = await transaction.collection('cms-articles-like')
.where({
user_id: user_id,
article_id: article_id,
create_time: datetime
}).count();
if (exist.total > 0) throw new Error('已点喜欢');
await transaction.collection('cms-articles-like').add({
user_id: user_id,
article_id: article_id,
create_time: datetime
});
await transaction.collection('uni-cms-articles').doc(article_id)
.update({
like_count: _.inc(1)
});
await transaction.commit();
return {
code: 200
};
} catch (e) {
await transaction.rollback();
return {
code: 500,
msg: e.message
};
}
},
async relikeArticle(query) {
try {
let user_id = query.user_id;
let article_id = query.article_id;
let datetime = new Date().getTime();
const likeRes = await db.collection('cms-articles-like')
.where({
user_id: user_id,
article_id: article_id,
}).remove();
if (likeRes.deleted === 0) throw new Error('未找到点赞记录');
await db.collection('uni-cms-articles').doc(article_id)
.update({
like_count: _.inc(-1)
});
return {
code: 200
};
} catch (e) {
return {
code: 500,
msg: e.message
};
}
},
}