feat: mq,点赞,view等

This commit is contained in:
zlg
2024-07-20 11:34:57 +08:00
parent 7e3de7fd95
commit 5002a578a5
24 changed files with 593 additions and 48 deletions

View File

@@ -2,16 +2,21 @@ package com.schisandra.share.application.controller;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.schisandra.share.application.convert.SchisandraShareCircleDTOConverter;
import com.schisandra.share.application.dto.SchisandraShareCircleDTO;
import com.schisandra.share.common.entity.Result;
import com.schisandra.share.domain.bo.SchisandraShareCircleBO;
import com.schisandra.share.domain.service.SchisandraShareCircleDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
/**
@@ -27,6 +32,9 @@ public class SchisandraShareCircleController {
@Resource
private SchisandraShareCircleDomainService schisandraShareCircleDomainService;
@Resource
private RocketMQTemplate rocketMQTemplate;
/**
* 新增分享圈
*/

View File

@@ -2,6 +2,7 @@ package com.schisandra.share.application.controller;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.schisandra.share.application.convert.SchisandraShareCommentReplyDTOConverter;
import com.schisandra.share.application.dto.SchisandraShareCommentReplyDTO;
import com.schisandra.share.common.entity.Result;
@@ -9,9 +10,13 @@ import com.schisandra.share.common.utils.CaffeineUtil;
import com.schisandra.share.domain.bo.SchisandraShareCommentReplyBO;
import com.schisandra.share.domain.service.SchisandraShareCommentReplyDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
/**
@@ -25,26 +30,65 @@ import java.util.List;
@Slf4j
public class SchisandraShareCommentReplyController {
/**
* 点赞
*
* @param Id
* @return
*/
@Resource
RocketMQTemplate rocketMQTemplate;
@Resource
CaffeineUtil caffeineUtil;
@Resource
private SchisandraShareCommentReplyDomainService schisandraShareCommentReplyDomainService;
@Resource
CaffeineUtil caffeineUtil;
@GetMapping("addlike")
public void addLike(@RequestParam String Id) {
HashMap<String, Object> map = new HashMap<>();
map.put("Id", Id);
map.put("like", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CommentLikes-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
/**
* 返回评论回复总数
* @param detailId
* @return
*/
@GetMapping("returncount")
public Result returncount(String detailId) {
try{
return Result.ok(schisandraShareCommentReplyDomainService.returnCount(detailId));
} catch (Exception e) {
return Result.fail("获取评论数量失败!!!");
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
}
@GetMapping("dellike")
public void delLike(String Id) {
HashMap<String, Object> map = new HashMap<>();
map.put("Id", Id);
map.put("like", false);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CommentLikes-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
}
/**
* 返回点赞总数
* @param Id
@@ -52,16 +96,17 @@ public class SchisandraShareCommentReplyController {
*/
@GetMapping("returnlikes")
public Result<Long> returnlikes(@RequestParam String Id) {
try{
try {
Long l = schisandraShareCommentReplyDomainService.returnLike(Id);
return Result.ok(l);
}catch(Exception e){
} catch (Exception e) {
return Result.fail("获取点赞数量失败!!!");
}
}
/**
* 返回当前评论的回复
*
* @param commentId
* @return
*/
@@ -88,13 +133,13 @@ public class SchisandraShareCommentReplyController {
@GetMapping(value = "listcomment")
public Result<List<SchisandraShareCommentReplyDTO>> listComment(@RequestParam String detailId) {
try {
List<SchisandraShareCommentReplyBO> result= (List<SchisandraShareCommentReplyBO>) caffeineUtil
.caffeineBuild().getIfPresent("listcomment"+detailId);
if (result!=null){
List<SchisandraShareCommentReplyBO> result = (List<SchisandraShareCommentReplyBO>) caffeineUtil
.caffeineBuild().getIfPresent("listcomment" + detailId);
if (result != null) {
return Result.ok(result);
}
result = schisandraShareCommentReplyDomainService.listComment(detailId);
caffeineUtil.caffeineBuild().put("listcomment"+detailId, result);
caffeineUtil.caffeineBuild().put("listcomment" + detailId, result);
if (log.isInfoEnabled()) {
log.info("获取当前文章评论内容{}", JSON.toJSONString(result));
}
@@ -114,13 +159,13 @@ public class SchisandraShareCommentReplyController {
@GetMapping(value = "listcommenthot")
public Result<List<SchisandraShareCommentReplyDTO>> listCommentHot(@RequestParam String detailId) {
try {
List<SchisandraShareCommentReplyBO> result= (List<SchisandraShareCommentReplyBO>) caffeineUtil
.caffeineBuild().getIfPresent("listcomment"+detailId);
if (result!=null){
List<SchisandraShareCommentReplyBO> result = (List<SchisandraShareCommentReplyBO>) caffeineUtil
.caffeineBuild().getIfPresent("listcomment" + detailId);
if (result != null) {
return Result.ok(result);
}
result = schisandraShareCommentReplyDomainService.listCommenthot(detailId);
caffeineUtil.caffeineBuild().put("listcommenthot"+detailId, result);
caffeineUtil.caffeineBuild().put("listcommenthot" + detailId, result);
if (log.isInfoEnabled()) {
log.info("获取当前文章评论内容{}", JSON.toJSONString(result));
}
@@ -136,6 +181,7 @@ public class SchisandraShareCommentReplyController {
/**
* 新增回复
*
* @param schisandraShareCommentReplyDTO
* @return
*/
@@ -151,7 +197,24 @@ public class SchisandraShareCommentReplyController {
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getUserId(), "发布人id不能为空");
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getToId(), "评论目标id不能为空");
SchisandraShareCommentReplyBO SchisandraShareCommentReplyBO = SchisandraShareCommentReplyDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCommentReplyDTO);
return Result.ok(schisandraShareCommentReplyDomainService.addReply(SchisandraShareCommentReplyBO));
if (schisandraShareCommentReplyDomainService.addReply(SchisandraShareCommentReplyBO)){
HashMap<String, Object> map = new HashMap<>();
map.put("Id", schisandraShareCommentReplyDTO.getDetailId());
map.put("isReply", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CommentCounts-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {System.out.println(sendResult);}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
return Result.ok();
}
return Result.fail();
} catch (Exception e) {
log.error("SchisandraShareCommentReplyController.register.error:{}", e.getMessage(), e);
return Result.fail("新增回复失败");
@@ -174,8 +237,8 @@ public class SchisandraShareCommentReplyController {
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getDetailId(), "分享文章id不能为空");
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getUserId(), "发布人id不能为空");
SchisandraShareCommentReplyBO schisandraShareCommentReplyBO = SchisandraShareCommentReplyDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCommentReplyDTO);
caffeineUtil.caffeineBuild().invalidate("listcommenthot"+schisandraShareCommentReplyBO.getDetailId());
caffeineUtil.caffeineBuild().invalidate("listcomment"+schisandraShareCommentReplyBO.getDetailId());
caffeineUtil.caffeineBuild().invalidate("listcommenthot" + schisandraShareCommentReplyBO.getDetailId());
caffeineUtil.caffeineBuild().invalidate("listcomment" + schisandraShareCommentReplyBO.getDetailId());
return Result.ok(schisandraShareCommentReplyDomainService.addComment(schisandraShareCommentReplyBO));
} catch (Exception e) {
log.error("SchisandraShareCommentReplyController.register.error:{}", e.getMessage(), e);
@@ -248,9 +311,25 @@ public class SchisandraShareCommentReplyController {
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getUpdateTime(), "更新时间不能为空");
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getIsDeleted(), "不能为空");
SchisandraShareCommentReplyBO schisandraShareCommentReplyBO = SchisandraShareCommentReplyDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCommentReplyDTO);
caffeineUtil.caffeineBuild().invalidate("listcommenthot"+schisandraShareCommentReplyBO.getDetailId());
caffeineUtil.caffeineBuild().invalidate("listcomment"+schisandraShareCommentReplyBO.getDetailId());
return Result.ok(schisandraShareCommentReplyDomainService.delete(schisandraShareCommentReplyBO));
if (schisandraShareCommentReplyDomainService.delete(schisandraShareCommentReplyBO)){
HashMap<String, Object> map = new HashMap<>();
map.put("Id", schisandraShareCommentReplyDTO.getDetailId());
map.put("isReply", false);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CommentCounts-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {System.out.println(sendResult);}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
}
caffeineUtil.caffeineBuild().invalidate("listcommenthot" + schisandraShareCommentReplyBO.getDetailId());
caffeineUtil.caffeineBuild().invalidate("listcomment" + schisandraShareCommentReplyBO.getDetailId());
return Result.ok();
} catch (Exception e) {
log.error("SchisandraShareCommentReplyController.delete.error:{}", e.getMessage(), e);
return Result.fail("删除评论回复表信息失败");

View File

@@ -2,6 +2,7 @@ package com.schisandra.share.application.controller;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.schisandra.share.application.convert.SchisandraShareDetailDTOConverter;
import com.schisandra.share.application.dto.SchisandraShareDetailDTO;
import com.schisandra.share.common.entity.Result;
@@ -9,10 +10,14 @@ import com.schisandra.share.common.utils.CaffeineUtil;
import com.schisandra.share.domain.bo.SchisandraShareDetailBO;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
/**
@@ -28,11 +33,25 @@ public class SchisandraShareDetailController {
@Resource
private SchisandraShareDetailDomainService schisandraShareDetailDomainService;
@Resource
private RocketMQTemplate rocketMQTemplate;
@Resource
CaffeineUtil caffeineUtil;
/**
* 返回评论回复总数
*
* @param detailId
* @return
*/
@GetMapping("returncount")
public Result returncount(String detailId) {
try {
return Result.ok(schisandraShareDetailDomainService.getDetailsById(detailId).getCommentCount());
} catch (Exception e) {
return Result.fail("获取评论数量失败!!!");
}
}
/**
* 获取我的分享
*/
@@ -54,16 +73,37 @@ public class SchisandraShareDetailController {
* @param schisandraShareDetailDTO
* @return
*/
@PostMapping("add_detail")
public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) {
Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "标题不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "图标不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "摘要不能为空");
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
return Result.ok(schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO));
}
@PostMapping("add_detail")
public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) {
Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(),"标题不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(),"图标不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(),"摘要不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(),"摘要不能为空");
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
if (schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO)){
HashMap<String, Object> map = new HashMap<>();
map.put("Id", schisandraShareDetailDTO.getCircleId());
map.put("isCount", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CircleCounts-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
return Result.ok();
}
return Result.fail();
}
/**
@@ -74,6 +114,22 @@ public class SchisandraShareDetailController {
public Result selectDetail(@RequestParam("Id") String Id) {
try {
SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById(Id);
HashMap<String, Object> map = new HashMap<>();
map.put("Id", Id);
map.put("Views", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("DetailViews-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
return Result.ok(resultList);
} catch (Exception e) {
return Result.fail();
@@ -97,6 +153,22 @@ public class SchisandraShareDetailController {
caffeineUtil.caffeineBuild().put("list" + circleId, result);
return Result.ok(SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(result));
}
HashMap<String, Object> map = new HashMap<>();
map.put("Id", circleId);
map.put("Views", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CircleViews-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
return Result.ok(result);
}
@@ -176,11 +248,28 @@ public class SchisandraShareDetailController {
}
Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "详情id不能为空");
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
if(schisandraShareDetailDomainService.delete(schisandraShareDetailBO)){
if (schisandraShareDetailDomainService.delete(schisandraShareDetailBO)){
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
HashMap<String, Object> map = new HashMap<>();
map.put("Id", schisandraShareDetailDTO.getCircleId());
map.put("isCount", false);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CircleCounts-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
return Result.ok();
}
return Result.ok(schisandraShareDetailDomainService.delete(schisandraShareDetailBO));
return Result.fail();
} catch (Exception e) {
log.error("SchisandraShareDetailController.delete.error:{}", e.getMessage(), e);
return Result.fail("删除分享详情表信息失败");

View File

@@ -14,5 +14,17 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-domain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,28 @@
package com.schisandra.share.mq.comment;
import com.google.gson.Gson;
import com.schisandra.share.domain.service.SchisandraShareCircleDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@RocketMQMessageListener(topic = "CircleCounts-topic", consumerGroup = "schisandra-cloud-storage-CircleCounts-consumer-group")
@Slf4j
@Component
public class CircleCountsConsumer implements RocketMQListener<String> {
@Resource
private SchisandraShareCircleDomainService schisandraShareCircleDomainService;
@Override
public void onMessage(String message) {
Gson gson = new Gson();
HashMap<Object, Object> map = gson.fromJson(message, HashMap.class);
log.info("收到消息:{}", map);
String id = (String) map.get("Id");
Boolean isCount = (Boolean) map.get("isCount");
schisandraShareCircleDomainService.updateCircleCounts(id, isCount);
}
}

View File

@@ -0,0 +1,29 @@
package com.schisandra.share.mq.comment;
import com.google.gson.Gson;
import com.schisandra.share.domain.service.SchisandraShareCircleDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@RocketMQMessageListener(topic = "CircleViews-topic", consumerGroup = "schisandra-cloud-storage-CircleViews-consumer-group")
@Slf4j
@Component
public class CircleViewsConsumer implements RocketMQListener<String> {
@Resource
SchisandraShareCircleDomainService schisandraShareCircleDomainService;
@Override
public void onMessage(String message) {
Gson gson = new Gson();
HashMap<Object, Object> map = gson.fromJson(message, HashMap.class);
log.info("收到消息:{}", map);
String id = (String) map.get("Id");
Boolean isView = (Boolean) map.get("Views");
schisandraShareCircleDomainService.updateCircleViews(id, isView);
}
}

View File

@@ -0,0 +1,29 @@
package com.schisandra.share.mq.comment;
import com.google.gson.Gson;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@RocketMQMessageListener(topic = "CommentCounts-topic", consumerGroup = "schisandra-cloud-storage-CommentCounts-consumer-group")
@Slf4j
@Component
public class CommentCountsConsumer implements RocketMQListener<String> {
@Resource
SchisandraShareDetailDomainService schisandraShareDetailDomainService;
@Override
public void onMessage(String s) {
Gson gson = new Gson();
HashMap<Object, Object> map = gson.fromJson(s, HashMap.class);
log.info("收到消息:{}", map);
String id = (String) map.get("Id");
Boolean isReply = (Boolean) map.get("isReply");
schisandraShareDetailDomainService.updateCommentsLikes(id, isReply);
}
}

View File

@@ -0,0 +1,34 @@
package com.schisandra.share.mq.comment;
import com.google.gson.Gson;
import com.schisandra.share.domain.service.SchisandraShareCommentReplyDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@RocketMQMessageListener(topic = "CommentLikes-topic", consumerGroup = "schisandra-cloud-storage-CommentLikes-consumer-group")
@Slf4j
@Component
public class CommentLikesConsumer implements RocketMQListener<String> {
@Resource
SchisandraShareCommentReplyDomainService schisandraShareCommentReplyDomainService;
@Override
public void onMessage(String message) {
Gson gson = new Gson();
HashMap<Object, Object> map = gson.fromJson(message, HashMap.class);
log.info("收到消息:{}", map);
String id = (String) map.get("Id");
Boolean likes = (Boolean) map.get("like");
schisandraShareCommentReplyDomainService.updateCommentsLikes(id, likes);
}
}

View File

@@ -0,0 +1,28 @@
package com.schisandra.share.mq.comment;
import com.google.gson.Gson;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
@RocketMQMessageListener(topic = "DetailViews-topic", consumerGroup = "schisandra-cloud-storage-DetailViews-consumer-group")
@Slf4j
@Component
public class DetailViewsConsumer implements RocketMQListener<String> {
@Resource
SchisandraShareDetailDomainService schisandraShareDetailDomainService;
@Override
public void onMessage(String message) {
Gson gson = new Gson();
HashMap<Object, Object> map = gson.fromJson(message, HashMap.class);
log.info("收到消息:{}", map);
String id = (String) map.get("Id");
Boolean isView = (Boolean) map.get("Views");
schisandraShareDetailDomainService.updateDetailViews(id, isView);
}
}

View File

@@ -106,5 +106,10 @@
<version>5.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
</dependencies>
</project>

View File

@@ -30,4 +30,9 @@ public interface SchisandraShareCircleDomainService {
SchisandraShareCircleBO queryById(String id);
List<SchisandraShareCircleBO> queryAll();
Boolean updateCircleViews(String Id,Boolean isView);
Boolean updateCircleCounts(String Id,Boolean isCount);
}

View File

@@ -39,5 +39,6 @@ public interface SchisandraShareCommentReplyDomainService {
Long returnLike(String Id);
Boolean updateCommentsLikes(String Id,Boolean isLike);
Long returnCount(String detailId);
}

View File

@@ -34,4 +34,7 @@ public interface SchisandraShareDetailDomainService {
Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO);
List<SchisandraShareDetailBO> mydetail(String userId);
Boolean updateCommentsLikes(String id,Boolean isReply);
Boolean updateDetailViews(String id,Boolean isView);
}

View File

@@ -80,5 +80,23 @@ public class SchisandraShareCircleDomainServiceImpl implements SchisandraShareCi
return arrayList;
}
@Override
public Boolean updateCircleViews(String Id, Boolean isView) {
if (isView) {
return schisandraShareCircleService.addView(Id)>0;
}else {
return schisandraShareCircleService.delView(Id)>0;
}
}
@Override
public Boolean updateCircleCounts(String Id, Boolean isCount) {
if (isCount) {
return schisandraShareCircleService.addCount(Id)>0;
}else {
return schisandraShareCircleService.delCount(Id)>0;
}
}
}

View File

@@ -128,6 +128,16 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS
return schisandraShareCommentReply.getLikes();
}
@Override
public Boolean updateCommentsLikes(String Id, Boolean isLike) {
if (isLike) {
return schisandraShareCommentReplyService.addLike(Id)>0;
}else {
return schisandraShareCommentReplyService.delLike(Id)>0;
}
}
@Override
public Long returnCount(String detailId) {
return schisandraShareCommentReplyService.returnCount(detailId);

View File

@@ -28,6 +28,8 @@ import java.util.stream.Collectors;
@Slf4j
public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDetailDomainService {
@Resource
UserRpc userRpc;
@Resource
private SchisandraShareDetailService schisandraShareDetailService;
@Resource
@@ -39,9 +41,6 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
@Resource
private SchisandraShareUrlService schisandraShareUrlService;
@Resource
UserRpc userRpc;
@Override
public Boolean add(SchisandraShareDetailBO schisandraShareDetailBO) {
SchisandraShareDetail schisandraShareDetail = SchisandraShareDetailBOConverter.INSTANCE.convertBOToEntity(schisandraShareDetailBO);
@@ -181,4 +180,23 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
});
return resultList;
}
@Override
public Boolean updateCommentsLikes(String Id, Boolean isReply) {
if (isReply) {
return schisandraShareDetailService.addCommentCount(Id) > 0;
} else {
return schisandraShareDetailService.delCommentCount(Id) > 0;
}
}
@Override
public Boolean updateDetailViews(String id, Boolean isView) {
if (isView) {
return schisandraShareDetailService.addDetailViews(id) > 0;
} else {
return schisandraShareDetailService.delDetailViews(id) > 0;
}
}
}

View File

@@ -12,6 +12,11 @@ import java.util.List;
*/
public interface SchisandraShareCircleService {
int addView(String id);
int delView(String id);
int addCount(String id);
int delCount(String id);
/**
* 通过ID查询单条数据
*

View File

@@ -11,6 +11,15 @@ import java.util.List;
*/
public interface SchisandraShareCommentReplyService {
/**
* @description: 点赞
* @param: [Id]
* @return: int
* @author zlg
* @date: 2024/7/20 9:55
*/
int addLike(String Id);
int delLike(String Id);
/**
* 通过ID查询单条数据
*

View File

@@ -1,6 +1,10 @@
package com.schisandra.share.infra.basic.service;
import com.mybatisflex.core.update.UpdateWrapper;
import com.mybatisflex.core.util.UpdateEntity;
import com.schisandra.share.infra.basic.entity.SchisandraShareCommentReply;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareCommentReplyTableDef;
import java.util.List;
@@ -11,6 +15,22 @@ import java.util.List;
* @since 2024-07-15 09:09:16
*/
public interface SchisandraShareDetailService {
/**
* @description: 增加评论数
* @param: [Id]
* @return: int
* @author zlg
* @date: 2024/7/20 10:15
*/
int addCommentCount(String Id);
int delCommentCount(String Id);
int addDetailViews(String Id);
int delDetailViews(String Id);
/**
* 通过ID查询单条数据

View File

@@ -1,7 +1,12 @@
package com.schisandra.share.infra.basic.service.impl;
import com.mybatisflex.core.update.UpdateWrapper;
import com.mybatisflex.core.util.UpdateEntity;
import com.schisandra.share.infra.basic.entity.SchisandraShareCircle;
import com.schisandra.share.infra.basic.dao.SchisandraShareCircleDao;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareCircleTableDef;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareDetailTableDef;
import com.schisandra.share.infra.basic.service.SchisandraShareCircleService;
import org.springframework.stereotype.Service;
@@ -20,6 +25,42 @@ public class SchisandraShareCircleServiceImpl implements SchisandraShareCircleSe
@Resource
private SchisandraShareCircleDao schisandraShareCircleDao;
@Override
public int addView(String id) {
SchisandraShareCircle schisandraShareCircle = UpdateEntity.of(SchisandraShareCircle.class, id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareCircle);
wrapper.set(SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.VIEWS,
SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.VIEWS.add(1));
return schisandraShareCircleDao.update(schisandraShareCircle);
}
@Override
public int delView(String id) {
SchisandraShareCircle schisandraShareCircle = UpdateEntity.of(SchisandraShareCircle.class, id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareCircle);
wrapper.set(SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.VIEWS,
SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.VIEWS.subtract(1));
return schisandraShareCircleDao.update(schisandraShareCircle);
}
@Override
public int addCount(String id) {
SchisandraShareCircle schisandraShareCircle = UpdateEntity.of(SchisandraShareCircle.class, id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareCircle);
wrapper.set(SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.COUNT,
SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.COUNT.add(1));
return schisandraShareCircleDao.update(schisandraShareCircle);
}
@Override
public int delCount(String id) {
SchisandraShareCircle schisandraShareCircle = UpdateEntity.of(SchisandraShareCircle.class, id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareCircle);
wrapper.set(SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.COUNT,
SchisandraShareCircleTableDef.SCHISANDRA_SHARE_CIRCLE.COUNT.subtract(1));
return schisandraShareCircleDao.update(schisandraShareCircle);
}
/**
* 通过ID查询单条数据
*

View File

@@ -1,6 +1,8 @@
package com.schisandra.share.infra.basic.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateWrapper;
import com.mybatisflex.core.util.UpdateEntity;
import com.schisandra.share.infra.basic.entity.SchisandraShareCommentReply;
import com.schisandra.share.infra.basic.dao.SchisandraShareCommentReplyDao;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareCommentReplyTableDef;
@@ -23,6 +25,25 @@ public class SchisandraShareCommentReplyServiceImpl implements SchisandraShareCo
@Resource
private SchisandraShareCommentReplyDao schisandraShareCommentReplyDao;
@Override
public int addLike(String Id) {
SchisandraShareCommentReply schisandraShareCommentReply = UpdateEntity.of(SchisandraShareCommentReply.class, Id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareCommentReply);
wrapper.set(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.LIKES,
SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.LIKES.add(1));
return schisandraShareCommentReplyDao.update(schisandraShareCommentReply);
}
@Override
public int delLike(String Id) {
SchisandraShareCommentReply schisandraShareCommentReply = UpdateEntity.of(SchisandraShareCommentReply.class, Id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareCommentReply);
wrapper.set(SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.LIKES,
SchisandraShareCommentReplyTableDef.SCHISANDRA_SHARE_COMMENT_REPLY.LIKES.subtract(1));
return schisandraShareCommentReplyDao.update(schisandraShareCommentReply);
}
/**
* 通过ID查询单条数据
*

View File

@@ -1,7 +1,11 @@
package com.schisandra.share.infra.basic.service.impl;
import com.mybatisflex.core.update.UpdateWrapper;
import com.mybatisflex.core.util.UpdateEntity;
import com.schisandra.share.infra.basic.dao.SchisandraShareDetailDao;
import com.schisandra.share.infra.basic.entity.SchisandraShareCommentReply;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareCommentReplyTableDef;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareDetailTableDef;
import com.schisandra.share.infra.basic.service.SchisandraShareDetailService;
import org.springframework.stereotype.Service;
@@ -18,9 +22,49 @@ import java.util.List;
@Service("SchisandraShareDetailService")
public class SchisandraShareDetailServiceImpl implements SchisandraShareDetailService {
@Resource
private SchisandraShareDetailDao schisandraShareDetailDao;
@Override
public int addCommentCount(String Id) {
SchisandraShareDetail schisandraShareDetail = UpdateEntity.of(SchisandraShareDetail.class, Id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareDetail);
wrapper.set(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.COMMENT_COUNT,
SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.COMMENT_COUNT.add(1));
return schisandraShareDetailDao.update(schisandraShareDetail);
}
@Override
public int delCommentCount(String Id) {
SchisandraShareDetail schisandraShareDetail = UpdateEntity.of(SchisandraShareDetail.class, Id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareDetail);
wrapper.set(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.COMMENT_COUNT,
SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.COMMENT_COUNT.subtract(1));
return schisandraShareDetailDao.update(schisandraShareDetail);
}
@Override
public int addDetailViews(String Id) {
SchisandraShareDetail schisandraShareDetail = UpdateEntity.of(SchisandraShareDetail.class, Id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareDetail);
wrapper.set(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.VIEWS,
SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.VIEWS.add(1));
return schisandraShareDetailDao.update(schisandraShareDetail);
}
@Override
public int delDetailViews(String Id) {
SchisandraShareDetail schisandraShareDetail = UpdateEntity.of(SchisandraShareDetail.class, Id);
UpdateWrapper wrapper = UpdateWrapper.of(schisandraShareDetail);
wrapper.set(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.VIEWS,
SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.VIEWS.subtract(1));
return schisandraShareDetailDao.update(schisandraShareDetail);
}
/**
* 通过ID查询单条数据
*

View File

@@ -63,6 +63,11 @@
<artifactId>schisandra-cloud-storage-share-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-application-mq</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>

View File

@@ -62,4 +62,8 @@ mybatis-flex:
logic-delete-column: is_deleted
mapper-locations:
- "classpath*:/mapper/**/*.xml"
rocketmq:
name-server: 1.95.0.111:9876
producer:
group: schisandra-cloud-storage-share-group
send-message-timeout: 6000