81 lines
1.5 KiB
JavaScript
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
|
|
};
|
|
}
|
|
},
|
|
}
|