commit
25eecf77bf
@ -0,0 +1,65 @@
|
||||
package com.luoo.comment.pojo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
public class PublicationLike implements Serializable {
|
||||
|
||||
|
||||
private String _id;
|
||||
|
||||
private Integer type; // 1 期刊 2 评论
|
||||
|
||||
private String likedItemId;
|
||||
|
||||
private String userId;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
public String get_id() {
|
||||
return _id;
|
||||
}
|
||||
|
||||
public void set_id(String _id) {
|
||||
this._id = _id;
|
||||
}
|
||||
|
||||
public Integer getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(Integer type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getLikedItemId() {
|
||||
return likedItemId;
|
||||
}
|
||||
|
||||
public void setLikedItemId(String likedItemId) {
|
||||
this.likedItemId = likedItemId;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public Date getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(Date createTime) {
|
||||
this.createTime = createTime;
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.luoo.comment.service;
|
||||
|
||||
import com.luoo.comment.pojo.PublicationLike;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Service
|
||||
public class LikeService {
|
||||
|
||||
@Autowired
|
||||
private MongoTemplate mongoTemplate;
|
||||
|
||||
public Integer likePublication(String publicationId, String userId, Integer type) {
|
||||
// 构建查询条件
|
||||
Criteria criteria = Criteria.where("userId").is(userId)
|
||||
.and("type").is(type)
|
||||
.and("likedItemId").is(publicationId);
|
||||
// 创建查询对象并应用查询条件
|
||||
Query query = new Query(criteria);
|
||||
boolean isExists = mongoTemplate.exists(query, PublicationLike.class);
|
||||
if (isExists) {
|
||||
|
||||
// 重复点赞
|
||||
return 0;
|
||||
}
|
||||
// 将点赞记录保存到mongodb
|
||||
PublicationLike publicationLike = new PublicationLike();
|
||||
publicationLike.setType(type);
|
||||
publicationLike.setCreateTime(new Date());
|
||||
publicationLike.setLikedItemId(publicationId);
|
||||
publicationLike.setUserId(userId);
|
||||
mongoTemplate.save(publicationLike);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
public void unlikePublication(String publicationId, String userId, Integer type) {
|
||||
// 构建查询条件
|
||||
Criteria criteria = Criteria.where("userId").is(userId)
|
||||
.and("type").is(type)
|
||||
.and("likedItemId").is(publicationId);
|
||||
// 创建查询对象并应用查询条件
|
||||
Query query = new Query(criteria);
|
||||
boolean isExists = mongoTemplate.exists(query, PublicationLike.class);
|
||||
if (isExists) {
|
||||
|
||||
// 未点赞过内容,无法取消点赞
|
||||
}
|
||||
// 从mongoDB中删除点赞记录
|
||||
mongoTemplate.remove(query, PublicationLike.class);
|
||||
|
||||
|
||||
Query query1 = new Query();
|
||||
query.addCriteria(Criteria.where("_id").is(publicationId));
|
||||
Update update = new Update();
|
||||
update.inc("thumbupCount",-1);
|
||||
mongoTemplate.updateFirst(query1,update,"comment");
|
||||
}
|
||||
}
|
Loading…
Reference in new issue