修改发送消息

master
bynt 2 years ago
parent d9db731886
commit 26a0e83dc3

@ -25,11 +25,7 @@
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baiye</groupId>
<artifactId>cdp-tool-netty-disruptor</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>

@ -87,4 +87,5 @@ public class TiktokVideoCommentController {
return tiktokVideoCommentService.getEquipmentByOrganizeId(organizeId);
}
}

@ -17,8 +17,8 @@ import org.springframework.web.bind.annotation.RestController;
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "抖音")
@RequiredArgsConstructor
public class TiktokUserProvider implements TikTokUserFeignProvider {

@ -0,0 +1,11 @@
package com.baiye.dto;
import lombok.Data;
/**
* @author Enzo
* @date : 2022/10/8
*/
@Data
public class CommentMessageDTO {
}

@ -41,4 +41,7 @@ public class OptCommentVideoRequestDTO {
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "用户id")
private Long sopId;
}

@ -116,6 +116,12 @@
<dependency>
<groupId>com.baiye</groupId>
<artifactId>cdp-tool-netty-disruptor</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- &lt;!&ndash;代码生成&ndash;&gt;-->
<!-- <dependency>-->

@ -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<Objec
FullHttpRequest req) {
// Handle a bad request.
if (!req.decoderResult().isSuccess()) {
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, BAD_REQUEST, Unpooled.EMPTY_BUFFER));
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST, Unpooled.EMPTY_BUFFER));
return;
}
// Allow only GET methods.
if (!HttpMethod.GET.equals(req.method())) {
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN, Unpooled.EMPTY_BUFFER));
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN, Unpooled.EMPTY_BUFFER));
return;
}
@ -211,7 +209,7 @@ public class TiktokSocketServerHandler extends SimpleChannelInboundHandler<Objec
}
ChannelFuture f = ctx.channel().writeAndFlush(res);
// 如果是非Keep-Alive关闭连接
if (!isKeepAlive(req) || res.status().code() != HttpStatus.HTTP_OK) {
if (!HttpUtil.isKeepAlive(req) || res.status().code() != HttpStatus.HTTP_OK) {
f.addListener(ChannelFutureListener.CLOSE);
}
}
@ -282,8 +280,8 @@ public class TiktokSocketServerHandler extends SimpleChannelInboundHandler<Objec
return "ws://" + location;
}
public void sendMessage(String wechatId, Map<String, Object> hashMap) {
Channel channel = CHANNEL_MAP.get(wechatId);
public void sendMessage(String userId, Map<String, Object> hashMap) {
Channel channel = CHANNEL_MAP.get(userId);
if (ObjectUtil.isNotNull(channel) && channel.isActive()) {
WebSocketResponse<Map<String, Object>> data = WebSocketResponse.data
(ResultCode.SUCCESS.getCode(), hashMap, WebsocketCode.CHAT_MSG.getMsg());

@ -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();
// }
//}

@ -23,7 +23,7 @@ public interface TiktokMemberService extends IService<TiktokMember> {
* @param tiktokId
* @return
*/
Long saveTiktokMemberByTiktok(String tiktokId);
TiktokMemberDTO saveTiktokMemberByTiktok(String tiktokId);
/**
* id

@ -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<TiktokVideoComment> {
/**
*
*
@ -82,4 +84,13 @@ public interface TiktokVideoCommentService extends IService<TiktokVideoComment>
* @param commentsList
*/
void saveBatchComment(List<TiktokVideoComment> commentsList);
/**
*
* @param dtoList dtoList
* @return
*/
Boolean saveComment(List<SaveSopCommentDTO> dtoList);
}

@ -59,12 +59,7 @@ public interface TiktokVideoService {
*/
Result<Object> deleteComment(CommentDeleteRequestDTO deleteRequestDTO);
/**
*
* @param dtoList dtoList
* @return
*/
Boolean saveComment(List<SaveSopCommentDTO> dtoList);
}

@ -62,12 +62,13 @@ public class TiktokMemberServiceImpl extends ServiceImpl<TiktokMemberMapper, Tik
}
@Override
public Long saveTiktokMemberByTiktok(String tiktokId) {
public TiktokMemberDTO saveTiktokMemberByTiktok(String tiktokId) {
TiktokMember member = this.getOne
(new LambdaQueryWrapper<TiktokMember>()
.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<TiktokMemberMapper, Tik
(TiktokRequestConstants.GET_USER_PROFILE, request, tiktokProperties);
if (Boolean.TRUE.equals(tiktokResponse.getSuccess())
&& tiktokResponse.getStatus() == HttpStatus.SUCCESS) {
/* TiktokSearchMemberResponse.User user = JSONUtil.toBean
(JSONUtil.toJsonStr(tiktokResponse()), TiktokSearchMemberResponse.User.class);
TiktokSearchMemberResponse.User user = tiktokResponse.getData();
if (ObjectUtil.isNotNull(user) && ObjectUtil.isNotNull(user.getUniqueId())) {
Long memberId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
TiktokMember tiktokMember = TiktokMember.builder().tiktokId(tiktokId).
avatar(user.getAvatarMedium().get(DefaultNumberConstants.ZERO_NUMBER)).
city(user.getCity()).nickname(user.getNickname()).province(user.getProvince()).
gender(user.getGender()).id(memberId).build();
return tiktokMemberMapper.insert(tiktokMember) > 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

@ -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<TiktokVideoCommentMapper, TiktokVideoComment> 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<CommentMessageRecordDTO> commentPage(Pageable pageable, Long currentUserId) {
@ -76,9 +91,9 @@ public class TiktokVideoCommentServiceImpl extends
// 查询未读数量
int count = this.count
(new LambdaQueryWrapper<TiktokVideoComment>().
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<TiktokVideoComment>().
eq(TiktokVideoComment::getMemberId, memberId).
set(TiktokVideoComment::getIsRead, Boolean.TRUE));
set(TiktokVideoComment::getIsRead, Boolean.TRUE));
}
@Override
@ -126,16 +141,16 @@ public class TiktokVideoCommentServiceImpl extends
Page<TiktokVideoComment> page = PageUtils.startPageAndSort(pageable);
Wrapper<TiktokVideoComment> queryWrapper =
new LambdaQueryWrapper<TiktokVideoComment>().eq
(TiktokVideoComment::getTiktokId,
commentRecordQuery.getTiktokId()).
eq(TiktokVideoComment::getVideoId, commentRecordQuery.getVideoId());
(TiktokVideoComment::getTiktokId,
commentRecordQuery.getTiktokId()).
eq(TiktokVideoComment::getVideoId, commentRecordQuery.getVideoId());
Page<TiktokVideoComment> 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<TiktokEquipmentEntity> getEquipmentByOrganizeId(Long organizeId) {
@ -191,4 +205,121 @@ public class TiktokVideoCommentServiceImpl extends
public void saveBatchComment(List<TiktokVideoComment> commentsList) {
this.baseMapper.batchInsert(commentsList);
}
@Override
public Boolean saveComment(List<SaveSopCommentDTO> dtoList) {
List<TiktokVideoComment> commentsList = Lists.newArrayList();
if (CollUtil.isNotEmpty(dtoList)) {
for (SaveSopCommentDTO dto : dtoList) {
if (CollUtil.isNotEmpty(dto.getDtoList())) {
// 视频查询评论列表
List<Long> 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;
}
}

@ -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<TiktokVideoComment>().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<Object> 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<SaveSopCommentDTO> dtoList) {
List<TiktokVideoComment> commentsList = Lists.newArrayList();
if (CollUtil.isNotEmpty(dtoList)) {
for (SaveSopCommentDTO dto : dtoList) {
if (CollUtil.isNotEmpty(dto.getDtoList())) {
// 视频查询评论列表
List<Long> 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;
}
}

@ -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;

Loading…
Cancel
Save