diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCircleController.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCircleController.java index 7d7eb38..b7480ea 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCircleController.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCircleController.java @@ -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; + /** * 新增分享圈 */ diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java index 40f8f96..cb986a3 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareCommentReplyController.java @@ -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 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 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 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> listComment(@RequestParam String detailId) { try { - List result= (List) caffeineUtil - .caffeineBuild().getIfPresent("listcomment"+detailId); - if (result!=null){ + List result = (List) 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> listCommentHot(@RequestParam String detailId) { try { - List result= (List) caffeineUtil - .caffeineBuild().getIfPresent("listcomment"+detailId); - if (result!=null){ + List result = (List) 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 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 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("删除评论回复表信息失败"); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java index f821049..d298fb3 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-controller/src/main/java/com/schisandra/share/application/controller/SchisandraShareDetailController.java @@ -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 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 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 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 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("删除分享详情表信息失败"); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/pom.xml b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/pom.xml index 1d473ae..14dbb5a 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/pom.xml +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/pom.xml @@ -14,5 +14,17 @@ UTF-8 + + + com.schisandra.share + schisandra-cloud-storage-share-common + 1.0-SNAPSHOT + + + com.schisandra.share + schisandra-cloud-storage-share-domain + 1.0-SNAPSHOT + + diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CircleCountsConsumer.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CircleCountsConsumer.java new file mode 100644 index 0000000..4d91a02 --- /dev/null +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CircleCountsConsumer.java @@ -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 { + @Resource + private SchisandraShareCircleDomainService schisandraShareCircleDomainService; + @Override + public void onMessage(String message) { + Gson gson = new Gson(); + HashMap 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); + } +} diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CircleViewsConsumer.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CircleViewsConsumer.java new file mode 100644 index 0000000..b28fa24 --- /dev/null +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CircleViewsConsumer.java @@ -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 { + @Resource + SchisandraShareCircleDomainService schisandraShareCircleDomainService; + @Override + public void onMessage(String message) { + Gson gson = new Gson(); + HashMap 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); + } + +} diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CommentCountsConsumer.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CommentCountsConsumer.java new file mode 100644 index 0000000..15bb81f --- /dev/null +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CommentCountsConsumer.java @@ -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 { + @Resource + SchisandraShareDetailDomainService schisandraShareDetailDomainService; + @Override + public void onMessage(String s) { + Gson gson = new Gson(); + HashMap 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); + } +} diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CommentLikesConsumer.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CommentLikesConsumer.java new file mode 100644 index 0000000..3dc5da5 --- /dev/null +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/CommentLikesConsumer.java @@ -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 { + @Resource + SchisandraShareCommentReplyDomainService schisandraShareCommentReplyDomainService; + + @Override + public void onMessage(String message) { + Gson gson = new Gson(); + HashMap 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); + + } + + +} \ No newline at end of file diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/DetailViewsConsumer.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/DetailViewsConsumer.java new file mode 100644 index 0000000..d42959d --- /dev/null +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-application/schisandra-cloud-storage-share-application-mq/src/main/java/com/schisandra/share/mq/comment/DetailViewsConsumer.java @@ -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 { + @Resource + SchisandraShareDetailDomainService schisandraShareDetailDomainService; + @Override + public void onMessage(String message) { + Gson gson = new Gson(); + HashMap 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); + } +} diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/pom.xml b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/pom.xml index f491d3a..9b65244 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/pom.xml +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-common/pom.xml @@ -106,5 +106,10 @@ 5.1.1 compile + + org.apache.rocketmq + rocketmq-spring-boot-starter + 2.0.4 + diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCircleDomainService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCircleDomainService.java index 67934d3..3ea54c2 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCircleDomainService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCircleDomainService.java @@ -30,4 +30,9 @@ public interface SchisandraShareCircleDomainService { SchisandraShareCircleBO queryById(String id); List queryAll(); + + Boolean updateCircleViews(String Id,Boolean isView); + + Boolean updateCircleCounts(String Id,Boolean isCount); + } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCommentReplyDomainService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCommentReplyDomainService.java index 20d2fd1..f98b025 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCommentReplyDomainService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareCommentReplyDomainService.java @@ -39,5 +39,6 @@ public interface SchisandraShareCommentReplyDomainService { Long returnLike(String Id); + Boolean updateCommentsLikes(String Id,Boolean isLike); Long returnCount(String detailId); } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java index 168f80d..d6d3914 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/SchisandraShareDetailDomainService.java @@ -34,4 +34,7 @@ public interface SchisandraShareDetailDomainService { Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO); List mydetail(String userId); + + Boolean updateCommentsLikes(String id,Boolean isReply); + Boolean updateDetailViews(String id,Boolean isView); } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java index ff3fe4b..0430e29 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCircleDomainServiceImpl.java @@ -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; + } + } + } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java index 29e6d42..0b0a1c5 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareCommentReplyDomainServiceImpl.java @@ -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); diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java index 354029b..6cce0bc 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-domain/src/main/java/com/schisandra/share/domain/service/impl/SchisandraShareDetailDomainServiceImpl.java @@ -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; + } + } } diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCircleService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCircleService.java index bcf4715..8197171 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCircleService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCircleService.java @@ -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查询单条数据 * diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCommentReplyService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCommentReplyService.java index ef942e5..691f6f0 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCommentReplyService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareCommentReplyService.java @@ -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查询单条数据 * diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareDetailService.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareDetailService.java index 0eab1f0..c4fcceb 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareDetailService.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/SchisandraShareDetailService.java @@ -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查询单条数据 diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCircleServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCircleServiceImpl.java index 4ad3628..db8bffa 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCircleServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCircleServiceImpl.java @@ -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查询单条数据 * diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java index cbac620..974434b 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareCommentReplyServiceImpl.java @@ -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查询单条数据 * diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java index d9d7328..e1c3cc8 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-infra/src/main/java/com/schisandra/share/infra/basic/service/impl/SchisandraShareDetailServiceImpl.java @@ -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查询单条数据 * diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/pom.xml b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/pom.xml index 2e0618e..f438ab5 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/pom.xml +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/pom.xml @@ -63,6 +63,11 @@ schisandra-cloud-storage-share-api 1.0-SNAPSHOT + + com.schisandra.share + schisandra-cloud-storage-share-application-mq + 1.0-SNAPSHOT + diff --git a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/src/main/resources/application.yml b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/src/main/resources/application.yml index 4166646..1cebdf4 100644 --- a/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/src/main/resources/application.yml +++ b/schisandra-cloud-storage-share/schisandra-cloud-storage-share-starter/src/main/resources/application.yml @@ -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 \ No newline at end of file