From 26a0e83dc34d85dc1c36f0ab9805ca565b8e442c Mon Sep 17 00:00:00 2001 From: bynt Date: Sat, 8 Oct 2022 14:17:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E9=80=81=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dy-tool-member/dy-tool-member-api/pom.xml | 6 +- .../TiktokVideoCommentController.java | 1 + .../com/baiye/feign/TiktokUserProvider.java | 2 +- .../java/com/baiye/dto/CommentMessageDTO.java | 11 ++ .../request/OptCommentVideoRequestDTO.java | 3 + .../com/baiye/entity/TiktokVideoComment.java | 1 - .../dy-tool-member-service/pom.xml | 6 + .../handler/TiktokSocketServerHandler.java | 24 ++- .../baiye/job/TiktokHotCommentVideoJob.java | 31 ---- .../baiye/service/TiktokMemberService.java | 2 +- .../service/TiktokVideoCommentService.java | 11 ++ .../com/baiye/service/TiktokVideoService.java | 7 +- .../service/impl/TiktokMemberServiceImpl.java | 14 +- .../impl/TiktokVideoCommentServiceImpl.java | 151 ++++++++++++++++-- .../service/impl/TiktokVideoServiceImpl.java | 121 +++----------- .../baiye/feign/TikTokUserFeignProvider.java | 8 +- 16 files changed, 218 insertions(+), 181 deletions(-) create mode 100644 cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/CommentMessageDTO.java rename cdp-tools/cdp-tool-dy/dy-tool-member/{dy-tool-member-api => dy-tool-member-service}/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java (93%) delete mode 100644 cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/pom.xml b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/pom.xml index 034db1e..7c862a6 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/pom.xml +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/pom.xml @@ -25,11 +25,7 @@ 1.0-SNAPSHOT - - com.baiye - cdp-tool-netty-disruptor - 1.0.0-SNAPSHOT - + diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokVideoCommentController.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokVideoCommentController.java index 2dee67c..7a9aeec 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokVideoCommentController.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/controller/TiktokVideoCommentController.java @@ -87,4 +87,5 @@ public class TiktokVideoCommentController { return tiktokVideoCommentService.getEquipmentByOrganizeId(organizeId); } + } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/feign/TiktokUserProvider.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/feign/TiktokUserProvider.java index 25d7bce..7ec1331 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/feign/TiktokUserProvider.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/feign/TiktokUserProvider.java @@ -17,8 +17,8 @@ import org.springframework.web.bind.annotation.RestController; */ @Slf4j @RestController -@RequiredArgsConstructor @Api(tags = "抖音") +@RequiredArgsConstructor public class TiktokUserProvider implements TikTokUserFeignProvider { diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/CommentMessageDTO.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/CommentMessageDTO.java new file mode 100644 index 0000000..a0c2cd8 --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/CommentMessageDTO.java @@ -0,0 +1,11 @@ +package com.baiye.dto; + +import lombok.Data; + +/** + * @author Enzo + * @date : 2022/10/8 + */ +@Data +public class CommentMessageDTO { +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/request/OptCommentVideoRequestDTO.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/request/OptCommentVideoRequestDTO.java index 685b9c2..83cc48e 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/request/OptCommentVideoRequestDTO.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/request/OptCommentVideoRequestDTO.java @@ -41,4 +41,7 @@ public class OptCommentVideoRequestDTO { @ApiModelProperty(value = "用户id") private Long userId; + @ApiModelProperty(value = "用户id") + private Long sopId; + } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokVideoComment.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokVideoComment.java index fc79ced..4796a50 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokVideoComment.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokVideoComment.java @@ -74,5 +74,4 @@ public class TiktokVideoComment implements Serializable { - } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/pom.xml b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/pom.xml index 01beda7..8190568 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/pom.xml +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/pom.xml @@ -116,6 +116,12 @@ + + com.baiye + cdp-tool-netty-disruptor + 1.0.0-SNAPSHOT + + diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java similarity index 93% rename from cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java rename to cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java index c3f6669..56d6ce5 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-api/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/handler/TiktokSocketServerHandler.java @@ -19,14 +19,15 @@ import com.baiye.service.BaseSocketServerHandler; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.*; -import io.netty.handler.codec.http.DefaultFullHttpResponse; -import io.netty.handler.codec.http.FullHttpRequest; -import io.netty.handler.codec.http.HttpHeaderNames; -import io.netty.handler.codec.http.HttpMethod; +import io.netty.handler.codec.http.*; import io.netty.handler.codec.http.websocketx.*; +import io.netty.handler.codec.http.websocketx.WebSocketFrame; +import io.netty.handler.codec.http.websocketx.WebSocketServerHandshaker; +import io.netty.handler.codec.http.websocketx.WebSocketServerHandshakerFactory; import io.netty.util.CharsetUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; + import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -36,10 +37,7 @@ import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; -import static io.netty.handler.codec.http.HttpResponseStatus.BAD_REQUEST; -import static io.netty.handler.codec.http.HttpResponseStatus.FORBIDDEN; -import static io.netty.handler.codec.http.HttpUtil.isKeepAlive; -import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1; + /** * @author Enzo @@ -153,13 +151,13 @@ public class TiktokSocketServerHandler extends SimpleChannelInboundHandler hashMap) { - Channel channel = CHANNEL_MAP.get(wechatId); + public void sendMessage(String userId, Map hashMap) { + Channel channel = CHANNEL_MAP.get(userId); if (ObjectUtil.isNotNull(channel) && channel.isActive()) { WebSocketResponse> data = WebSocketResponse.data (ResultCode.SUCCESS.getCode(), hashMap, WebsocketCode.CHAT_MSG.getMsg()); diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java deleted file mode 100644 index 704fff6..0000000 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/job/TiktokHotCommentVideoJob.java +++ /dev/null @@ -1,31 +0,0 @@ -//package com.baiye.job; -// -//import com.baiye.service.TiktokHotCommentSopService; -//import com.dangdang.ddframe.job.api.ShardingContext; -//import com.dangdang.ddframe.job.api.simple.SimpleJob; -//import com.example.autoconfig.ElasticSimpleJob; -//import lombok.extern.slf4j.Slf4j; -// -//import javax.annotation.PostConstruct; -//import javax.annotation.Resource; -// -//@ElasticSimpleJob(jobName = "TiktokHotCommentVideoJob", cron = "0 0 0/5 * * ? ") -//@Slf4j -//public class TiktokHotCommentVideoJob implements SimpleJob { -// -// private static TiktokHotCommentVideoJob hotCommentVideoJob; -// -// @Resource -// private TiktokHotCommentSopService hotCommentSopService; -// -// @PostConstruct -// public void init(){ -// hotCommentVideoJob = this; -// } -// -// @Override -// public void execute(ShardingContext shardingContext) { -// log.info("===========================开始执行(视频列表更新)定时任务==========================="); -//// hotCommentVideoJob.hotCommentSopService.refreshVideo(); -// } -//} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokMemberService.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokMemberService.java index 6440570..89a505d 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokMemberService.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokMemberService.java @@ -23,7 +23,7 @@ public interface TiktokMemberService extends IService { * @param tiktokId * @return */ - Long saveTiktokMemberByTiktok(String tiktokId); + TiktokMemberDTO saveTiktokMemberByTiktok(String tiktokId); /** * id 查会员 diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoCommentService.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoCommentService.java index 5305d42..5606b27 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoCommentService.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoCommentService.java @@ -2,6 +2,7 @@ package com.baiye.service; import com.baiye.core.base.api.Result; import com.baiye.dto.CommentMessageRecordDTO; +import com.baiye.dto.SaveSopCommentDTO; import com.baiye.entity.TiktokEquipmentEntity; import com.baiye.entity.TiktokVideoComment; import com.baiye.query.CommentRecordQuery; @@ -17,6 +18,7 @@ import java.util.Map; */ public interface TiktokVideoCommentService extends IService { + /** * 分页查找数据评论列表 * @@ -82,4 +84,13 @@ public interface TiktokVideoCommentService extends IService * @param commentsList */ void saveBatchComment(List commentsList); + + + /** + * 保存评论 + * @param dtoList dtoList + * @return + */ + Boolean saveComment(List dtoList); + } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoService.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoService.java index ce39b25..e36ddfc 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoService.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/TiktokVideoService.java @@ -59,12 +59,7 @@ public interface TiktokVideoService { */ Result deleteComment(CommentDeleteRequestDTO deleteRequestDTO); - /** - * 保存评论 - * @param dtoList dtoList - * @return - */ - Boolean saveComment(List dtoList); + } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokMemberServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokMemberServiceImpl.java index 7f1bac7..ba85a11 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokMemberServiceImpl.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokMemberServiceImpl.java @@ -62,12 +62,13 @@ public class TiktokMemberServiceImpl extends ServiceImpl() .eq(TiktokMember::getTiktokId, tiktokId)); + if (ObjectUtil.isNotNull(member)) { - return member.getId(); + return tiktokMemberStruct.toDto(member); } TiktokSearchMemberRequest request = new TiktokSearchMemberRequest(); @@ -87,20 +88,19 @@ public class TiktokMemberServiceImpl extends ServiceImpl DefaultNumberConstants.ZERO_NUMBER ? memberId : DefaultNumberConstants.ZERO_NUMBER; - }*/ + return tiktokMemberMapper.insert(tiktokMember) > DefaultNumberConstants.ZERO_NUMBER ? tiktokMemberStruct.toDto(tiktokMember) : null; + } } } } - return (long) DefaultNumberConstants.ZERO_NUMBER; + return null; } @Override diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoCommentServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoCommentServiceImpl.java index 56a74b0..dba74bd 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoCommentServiceImpl.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoCommentServiceImpl.java @@ -1,16 +1,22 @@ package com.baiye.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baiye.core.base.api.Result; import com.baiye.core.constant.DefaultNumberConstants; import com.baiye.dao.TiktokVideoCommentMapper; import com.baiye.dto.CommentMessageRecordDTO; +import com.baiye.dto.SaveSopCommentDTO; import com.baiye.dto.SelectGroupDTO; import com.baiye.dto.TiktokMemberDTO; import com.baiye.entity.TiktokEquipmentEntity; +import com.baiye.entity.TiktokMember; import com.baiye.entity.TiktokVideoComment; +import com.baiye.handler.TiktokSocketServerHandler; import com.baiye.mapstruct.TiktokVideoCommentStruct; import com.baiye.query.CommentRecordQuery; import com.baiye.service.TiktokEquipmentService; @@ -28,6 +34,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -47,6 +54,11 @@ import static java.util.Comparator.comparing; public class TiktokVideoCommentServiceImpl extends ServiceImpl implements TiktokVideoCommentService { + @Value("${snowflake.workerId}") + private int workerId; + + @Value("${snowflake.datacenterId}") + private int datacenterId; private final GetVendorIdUtil vendorIdUtil; @@ -59,6 +71,9 @@ public class TiktokVideoCommentServiceImpl extends private final TiktokVideoCommentMapper tiktokVideoCommentMapper; + private final TiktokSocketServerHandler tiktokSocketServerHandler; + + @Override public List commentPage(Pageable pageable, Long currentUserId) { @@ -76,9 +91,9 @@ public class TiktokVideoCommentServiceImpl extends // 查询未读数量 int count = this.count (new LambdaQueryWrapper(). - eq(TiktokVideoComment::getUserId, dto.getMemberId()). + eq(TiktokVideoComment::getUserId, dto.getMemberId()). eq(TiktokVideoComment::getVideoId, dto.getVideoId()). - eq(TiktokVideoComment::getIsRead, Boolean.FALSE)); + eq(TiktokVideoComment::getIsRead, Boolean.FALSE)); // 查询用户 TiktokMemberDTO user = @@ -102,7 +117,7 @@ public class TiktokVideoCommentServiceImpl extends messageRecord.sort (comparing(CommentMessageRecordDTO::getIsRead) .thenComparing(CommentMessageRecordDTO::getLastMessageTime).reversed() - .thenComparing(CommentMessageRecordDTO::getLastUpdateTime)); + .thenComparing(CommentMessageRecordDTO::getLastUpdateTime)); return messageRecord; } @@ -110,7 +125,7 @@ public class TiktokVideoCommentServiceImpl extends public void readComment(Long memberId) { this.update(new LambdaUpdateWrapper(). eq(TiktokVideoComment::getMemberId, memberId). - set(TiktokVideoComment::getIsRead, Boolean.TRUE)); + set(TiktokVideoComment::getIsRead, Boolean.TRUE)); } @Override @@ -126,16 +141,16 @@ public class TiktokVideoCommentServiceImpl extends Page page = PageUtils.startPageAndSort(pageable); Wrapper queryWrapper = new LambdaQueryWrapper().eq - (TiktokVideoComment::getTiktokId, - commentRecordQuery.getTiktokId()). - eq(TiktokVideoComment::getVideoId, commentRecordQuery.getVideoId()); + (TiktokVideoComment::getTiktokId, + commentRecordQuery.getTiktokId()). + eq(TiktokVideoComment::getVideoId, commentRecordQuery.getVideoId()); Page selectPage = this.page(page, queryWrapper); Collections.reverse(selectPage.getRecords()); if (CollUtil.isNotEmpty(selectPage.getRecords())) { String belongTiktokId = selectPage.getRecords().get - (selectPage.getRecords().size() - - DefaultNumberConstants.ONE_NUMBER).getBelongTiktokId(); + (selectPage.getRecords().size() - + DefaultNumberConstants.ONE_NUMBER).getBelongTiktokId(); if (CharSequenceUtil.isNotBlank(belongTiktokId)) { TiktokEquipmentEntity equipment = tiktokEquipmentService.getOne @@ -164,7 +179,6 @@ public class TiktokVideoCommentServiceImpl extends } - @Override public Result getEquipmentByOrganizeId(Long organizeId) { @@ -191,4 +205,121 @@ public class TiktokVideoCommentServiceImpl extends public void saveBatchComment(List commentsList) { this.baseMapper.batchInsert(commentsList); } + + @Override + public Boolean saveComment(List dtoList) { + List commentsList = Lists.newArrayList(); + if (CollUtil.isNotEmpty(dtoList)) { + for (SaveSopCommentDTO dto : dtoList) { + if (CollUtil.isNotEmpty(dto.getDtoList())) { + // 视频查询评论列表 + List longs = tiktokVideoCommentMapper.selectCommentByVideoId(dto.getAwemeId()); + for (SaveSopCommentDTO.TiktokSopCommentVideoDTO commentVideoDTO : dto.getDtoList()) { + + // 评论别人 + if (ObjectUtil.isNotNull(commentVideoDTO.getIsCommentOther())) { + // 判断是否包含评论 + if (!longs.contains(commentVideoDTO.getChildCommentId()) && + !longs.contains(commentVideoDTO.getParentCommentId())) { + + if (Boolean.TRUE.equals(commentVideoDTO.getIsCommentOther())) { + TiktokMemberDTO member = tiktokMemberService. + saveTiktokMemberByTiktok(commentVideoDTO.getChildTiktokId()); + if (ObjectUtil.isNotNull(member) && ObjectUtil.isNotNull(member.getId())) { + // 构建父类评论 + TiktokVideoComment parentComment = buildComment + (Boolean.FALSE, commentVideoDTO.getDyVendorId(), + dto.getAwemeId(), commentVideoDTO.getParentTiktokId(), + commentVideoDTO.getParentCommentId(), + commentVideoDTO.getParentCommentContent(), Long.parseLong(member.getId())); + // 构建子类评论 + TiktokVideoComment childComment = buildComment + (Boolean.TRUE, commentVideoDTO.getDyVendorId(), + dto.getAwemeId(), commentVideoDTO.getChildTiktokId(), + commentVideoDTO.getChildCommentId(), + commentVideoDTO.getChildContent(), Long.parseLong(member.getId())); + commentsList.add(parentComment); + commentsList.add(childComment); + sendMessage(dto, commentVideoDTO, member); + } + } + } + + if (Boolean.FALSE.equals(commentVideoDTO.getIsCommentOther())) { + TiktokMemberDTO member = tiktokMemberService. + saveTiktokMemberByTiktok(commentVideoDTO.getChildTiktokId()); + if (ObjectUtil.isNotNull(member) && ObjectUtil.isNotNull(member.getId())) { + if (!longs.contains(commentVideoDTO.getParentCommentId())) { + // 构建父类评论 + TiktokVideoComment parentComment = buildComment + (Boolean.TRUE, commentVideoDTO.getDyVendorId(), + dto.getAwemeId(), commentVideoDTO.getParentTiktokId(), + commentVideoDTO.getParentCommentId(), + commentVideoDTO.getParentCommentContent(), Long.parseLong(member.getId())); + commentsList.add(parentComment); + } + + // 判断是否包含评论 + if (!longs.contains(commentVideoDTO.getChildCommentId())) { + // 构建子类评论 + TiktokVideoComment childComment = buildComment + (Boolean.FALSE, commentVideoDTO.getDyVendorId(), + dto.getAwemeId(), commentVideoDTO.getChildTiktokId(), + commentVideoDTO.getChildCommentId(), + commentVideoDTO.getChildContent(), Long.parseLong(member.getId())); + commentsList.add(childComment); + } + // 发送消息 + sendMessage(dto, commentVideoDTO, member); + } + } + } + } + } + } + // 批量插入评论 + tiktokVideoCommentMapper.batchInsert(commentsList); + } + return Boolean.FALSE; + } + + + + private void sendMessage(SaveSopCommentDTO dto, SaveSopCommentDTO.TiktokSopCommentVideoDTO commentVideoDTO, TiktokMemberDTO member) { + CommentMessageRecordDTO recordDTO = new CommentMessageRecordDTO(); + // 查询未读数量 + recordDTO.setTiktokMember(member); + recordDTO.setIsRead(Boolean.TRUE); + recordDTO.setIsStar(member.getIsStar()); + recordDTO.setLastMessageTime(DateUtil.date()); + recordDTO.setLastUpdateTime(member.getUpdateTime()); + member.setVideoId(String.valueOf(dto.getAwemeId())); + recordDTO.setTiktokVideoComments(Lists.newArrayList()); + recordDTO.setMsgType(DefaultNumberConstants.ONE_NUMBER); + recordDTO.setNotReadNum(DefaultNumberConstants.ONE_NUMBER); + recordDTO.setLastComment(commentVideoDTO.getChildContent()); + // 发送消息 + tiktokSocketServerHandler.sendMessage + (String.valueOf(DefaultNumberConstants.ONE_NUMBER), BeanUtil.beanToMap(recordDTO)); + } + + private TiktokVideoComment buildComment(Boolean flag, + String dyVendorId, Long videoId, + String tiktokId, Long commentId, + String content, Long memberId) { + Long nextId = IdUtil.getSnowflake + (workerId, datacenterId).nextId(); + TiktokVideoComment comment = new TiktokVideoComment(); + comment.setId(nextId); + comment.setMsg(content); + comment.setMsgFlag(flag); + comment.setVideoId(videoId); + comment.setMemberId(memberId); + comment.setTiktokId(tiktokId); + comment.setCommentId(commentId); + comment.setBelongTiktokId(dyVendorId); + comment.setStatus(DefaultNumberConstants.ONE_NUMBER); + comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER); + return comment; + } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoServiceImpl.java index e5a4cb4..2840d92 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoServiceImpl.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokVideoServiceImpl.java @@ -2,11 +2,9 @@ package com.baiye.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; -import cn.hutool.json.JSONUtil; import com.baiye.api.TiktokRequestClient; import com.baiye.api.request.*; import com.baiye.api.response.*; @@ -14,8 +12,9 @@ import com.baiye.core.base.api.Result; import com.baiye.core.base.api.ResultCode; import com.baiye.core.constant.DefaultNumberConstants; import com.baiye.core.constant.TiktokRequestConstants; +import com.baiye.dao.TiktokVideoCommentMapper; import com.baiye.dto.CommentVideoDTO; -import com.baiye.dto.SaveSopCommentDTO; +import com.baiye.dto.TiktokMemberDTO; import com.baiye.dto.request.*; import com.baiye.entity.TiktokEquipmentEntity; import com.baiye.entity.TiktokVideoComment; @@ -23,9 +22,7 @@ import com.baiye.exception.global.BadRequestException; import com.baiye.properties.TiktokProperties; import com.baiye.service.TiktokEquipmentService; import com.baiye.service.TiktokMemberService; -import com.baiye.service.TiktokVideoCommentService; import com.baiye.service.TiktokVideoService; -import com.baiye.utils.GetVendorIdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; @@ -36,7 +33,6 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.List; /** @@ -61,7 +57,10 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { private final TiktokEquipmentService tiktokEquipmentService; - private final TiktokVideoCommentService tiktokVideoCommentService; + + private final TiktokVideoCommentMapper tiktokVideoCommentMapper; + + @Override @@ -132,7 +131,7 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { if (Boolean.TRUE.equals(optCommentVideoRequestDTO.getIsFirstChat()) && StringUtils.isNotBlank(optCommentVideoRequestDTO.getTiktokId())) { - int count = tiktokVideoCommentService.count + int count = tiktokVideoCommentMapper.selectCount (new LambdaQueryWrapper().eq (TiktokVideoComment::getCommentId, optCommentVideoRequestDTO.getCommentId())); if (count == DefaultNumberConstants.ZERO_NUMBER){ @@ -143,7 +142,9 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { comment.setMsgFlag(Boolean.FALSE); comment.setMsg(optCommentVideoRequestDTO.getContent()); comment.setVideoId(optCommentVideoRequestDTO.getAwemeId()); - boolean save = tiktokVideoCommentService.saveComment(comment); + comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER); + comment.setStatus(DefaultNumberConstants.ONE_NUMBER); + boolean save = tiktokVideoCommentMapper.insert(comment) > DefaultNumberConstants.ZERO_NUMBER; log.info("================== the save opt comment result as {} comment id as {} =================", save, nextId); } return Result.success(); @@ -173,7 +174,9 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { comment.setMsg(optCommentVideoRequestDTO.getContent()); comment.setVideoId(optCommentVideoRequestDTO.getAwemeId()); // 创建用户聊天信息 - boolean save = tiktokVideoCommentService.saveComment(comment); + comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER); + comment.setStatus(DefaultNumberConstants.ONE_NUMBER); + boolean save = tiktokVideoCommentMapper.insert(comment) > DefaultNumberConstants.ZERO_NUMBER; log.info("================== the save opt comment result as {} comment id as {} =================", save, nextId); return Result.success(); } @@ -193,13 +196,13 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { public Result commentVideos(CommentVideoRequestDTO commentVideoRequestDTO) { if (ObjectUtil.isNull(commentVideoRequestDTO.getMemberId())) { // 判断用户是否存在 - Long aLong = tiktokMemberService. + TiktokMemberDTO member = tiktokMemberService. saveTiktokMemberByTiktok(commentVideoRequestDTO.getTiktokId()); - if (ObjectUtil.isNull(aLong) || aLong == DefaultNumberConstants.ZERO_NUMBER) { + if (ObjectUtil.isNull(member) || StringUtils.isBlank(member.getId())) { throw new BadRequestException("创建会员账号失败"); } // 设置会员id - commentVideoRequestDTO.setMemberId(aLong); + commentVideoRequestDTO.setMemberId(Long.parseLong(member.getId())); } // 判断小组id 是否为空 @@ -225,7 +228,9 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { comment.setMsgFlag(Boolean.FALSE); comment.setVideoId(commentVideoRequestDTO.getAwemeId()); // 创建用户聊天信息 - boolean save = tiktokVideoCommentService.saveComment(comment); + comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER); + comment.setStatus(DefaultNumberConstants.ONE_NUMBER); + boolean save = tiktokVideoCommentMapper.insert(comment) > DefaultNumberConstants.ZERO_NUMBER; log.info("================== the save comment result as {} comment id as {} =================", save, nextId); } TiktokCommentVideoRequest tiktokCommentVideoRequest = new TiktokCommentVideoRequest(); @@ -245,7 +250,9 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { comment.setMsgFlag(Boolean.TRUE); comment.setVideoId(commentVideoRequestDTO.getAwemeId()); // 创建用户聊天信息 - boolean save = tiktokVideoCommentService.saveComment(comment); + comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER); + comment.setStatus(DefaultNumberConstants.ONE_NUMBER); + boolean save = tiktokVideoCommentMapper.insert(comment) > DefaultNumberConstants.ZERO_NUMBER; log.info("================== the save comment result as {} comment id as {} =================", save, nextId); return Result.success(); } @@ -275,91 +282,7 @@ public class TiktokVideoServiceImpl implements TiktokVideoService { return Result.fail(ResultCode.DELETE_COMMENT_FAILED.getMsg()); } - @Override - public Boolean saveComment(List dtoList) { - List commentsList = Lists.newArrayList(); - if (CollUtil.isNotEmpty(dtoList)) { - for (SaveSopCommentDTO dto : dtoList) { - if (CollUtil.isNotEmpty(dto.getDtoList())) { - // 视频查询评论列表 - List longs = tiktokVideoCommentService.queryCommentIdByVideoId(dto.getAwemeId()); - for (SaveSopCommentDTO.TiktokSopCommentVideoDTO commentVideoDTO : dto.getDtoList()) { - // 判断是否包含评论 - if (!longs.contains(commentVideoDTO.getChildCommentId()) && - !longs.contains(commentVideoDTO.getParentCommentId())) { - // 评论别人 - if (ObjectUtil.isNotNull(commentVideoDTO.getIsCommentOther())) { - - if (Boolean.TRUE.equals(commentVideoDTO.getIsCommentOther())) { - Long memberId = tiktokMemberService. - saveTiktokMemberByTiktok(commentVideoDTO.getParentTiktokId()); - // TODO 发送socket消息 - // 构建父类评论 - TiktokVideoComment parentComment = buildComment - (Boolean.FALSE, commentVideoDTO.getDyVendorId(), - dto.getAwemeId(), commentVideoDTO.getParentTiktokId(), - commentVideoDTO.getParentCommentId(), - commentVideoDTO.getParentCommentContent(), memberId); - // 构建子类评论 - TiktokVideoComment childComment = buildComment - (Boolean.TRUE, commentVideoDTO.getDyVendorId(), - dto.getAwemeId(), commentVideoDTO.getChildTiktokId(), - commentVideoDTO.getChildCommentId(), - commentVideoDTO.getChildContent(), memberId); - commentsList.add(parentComment); - commentsList.add(childComment); - } - - // 被人评论 - if (Boolean.FALSE.equals(commentVideoDTO.getIsCommentOther())) { - Long memberId = tiktokMemberService. - saveTiktokMemberByTiktok(commentVideoDTO.getChildTiktokId()); - // 构建父类评论 - TiktokVideoComment parentComment = buildComment - (Boolean.TRUE, commentVideoDTO.getDyVendorId(), - dto.getAwemeId(), commentVideoDTO.getParentTiktokId(), - commentVideoDTO.getParentCommentId(), - commentVideoDTO.getParentCommentContent(), memberId); - - // 构建子类评论 - TiktokVideoComment childComment = buildComment - (Boolean.FALSE, commentVideoDTO.getDyVendorId(), - dto.getAwemeId(), commentVideoDTO.getChildTiktokId(), - commentVideoDTO.getChildCommentId(), - commentVideoDTO.getChildContent(), memberId); - commentsList.add(parentComment); - commentsList.add(childComment); - } - } - } - } - } - } - // 批量插入评论 - tiktokVideoCommentService.saveBatchComment(commentsList); - } - return Boolean.FALSE; - } - private TiktokVideoComment buildComment(Boolean flag, - String dyVendorId, Long videoId, - String tiktokId, Long commentId, - String content, Long memberId) { - Long nextId = IdUtil.getSnowflake - (workerId, datacenterId).nextId(); - TiktokVideoComment comment = new TiktokVideoComment(); - comment.setId(nextId); - comment.setMsg(content); - comment.setMsgFlag(flag); - comment.setVideoId(videoId); - comment.setMemberId(memberId); - comment.setTiktokId(tiktokId); - comment.setCommentId(commentId); - comment.setBelongTiktokId(dyVendorId); - comment.setStatus(DefaultNumberConstants.ONE_NUMBER); - comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER); - return comment; - } } diff --git a/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/feign/TikTokUserFeignProvider.java b/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/feign/TikTokUserFeignProvider.java index 5c7921a..58ab76f 100644 --- a/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/feign/TikTokUserFeignProvider.java +++ b/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/feign/TikTokUserFeignProvider.java @@ -1,14 +1,8 @@ package com.baiye.feign; import com.baiye.core.base.api.Result; -import com.baiye.dto.request.CommentVideoRequestDTO; -import com.baiye.dto.request.CommentDeleteRequestDTO; - -import com.baiye.dto.request.LikeVideoCommentRequestDTO; -import com.baiye.dto.request.LikeVideoRequestDTO; -import com.baiye.dto.request.OptCommentVideoRequestDTO; +import com.baiye.dto.request.*; import io.swagger.annotations.ApiOperation; -import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody;