添加评论内容 增加私信请求

master
bynt 2 years ago
parent db2d949f16
commit 8e75c9705f

@ -9,6 +9,6 @@ import lombok.Setter;
*/
@Getter
@Setter
public abstract class BaseTiktokRequest<T extends BaseTiktokResponse> implements TiktokRequest {
public abstract class BaseTiktokRequest implements TiktokRequest {
private String sessionKey;
}

@ -11,6 +11,7 @@ import lombok.Setter;
@Setter
public class BaseTiktokResponse<T> {
private String businessReqId;
private Integer status;

@ -4,12 +4,12 @@ package com.baiye.core.base.api;
* @author Enzo
* @date : 2022/8/24
*/
public interface TiktokRequest<T extends BaseTiktokResponse> {
public interface TiktokRequest {
/**
*
* @return
*/
Class<T> getResponseClass();
Class<?> getResponseClass();
}

@ -82,9 +82,30 @@ public interface TiktokRequestConstants {
*
*/
String GET_USER_PROFILE = "/api/user/getUserProfile";
/**
*
*/
String GET_FOLLOWER_LIST = "/api/user/optFollowerList";
/**
*
*/
String TIK_TOK_SEND_MESSAGE = "/api/user/sendMessage";
/**
*
*/
String TIK_TOK_GET_FRIEND_MESSAGE = "/api/user/getFriendMessage";
/**
*
*/
String TIK_TOK_GET_RECENT_STRANGER_MESSAGE = "/api/user/getFriendMessage";
}

File diff suppressed because one or more lines are too long

@ -8,7 +8,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@ -0,0 +1,30 @@
package com.baiye.job.dy_tool_member;
import com.baiye.properties.TiktokProperties;
import com.dangdang.ddframe.job.api.ShardingContext;
import com.dangdang.ddframe.job.api.simple.SimpleJob;
import com.example.autoconfig.ElasticSimpleJob;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
*
* @author Enzo
* @date : 2022/9/30
*/
@Slf4j
@Component
@RequiredArgsConstructor
@ElasticSimpleJob(jobName = "tiktokPrivateLetterJob", cron = "0 0/10 * * * ? ")
public class TiktokPrivateLetterJop implements SimpleJob {
private final TiktokProperties tiktokProperties;
@Override
public void execute(ShardingContext shardingContext) {
}
}

@ -1,15 +1,19 @@
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import com.baiye.TiktokMemberApiApplication;
import com.baiye.core.constant.DefaultNumberConstants;
import com.baiye.dao.TiktokVideoCommentMapper;
import com.baiye.entity.TiktokVideoComment;
import com.baiye.service.TiktokMemberService;
import com.google.common.collect.Lists;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author Enzo
@ -28,27 +32,24 @@ public class TiktokMessageTest {
private TiktokMemberService tiktokMemberService;
@Test
public void saveRecord() {
for (int i = 0; i < 20; i++) {
/* TiktokVideoComment record = new TiktokVideoComment();
int i1 = RandomUtil.randomInt(2);
record.setId(IdUtil.getSnowflakeNextId());
record.setStatus(1);
record.setIsRead(i1);
record.setMsg("评论消息" + i);
record.setMsgFlag(i1 > 1);
// record.setSenderId(RandomUtil.randomLong());
record.setUserId(1L);
record.setTiktokId(String.valueOf(RandomUtil.randomLong()));
record.setReceiverId(RandomUtil.randomLong());
record.setMemberId(RandomUtil.randomLong());
record.setReceiverId(RandomUtil.randomLong());
tiktokVideoCommentMapper.insert(record);*/
List<TiktokVideoComment> objects = Lists.newArrayList();
for (int i = 0; i < 5; i++) {
long nextId = IdUtil.getSnowflake().nextId();
TiktokVideoComment comment = new TiktokVideoComment();
comment.setId(nextId);
comment.setMsgFlag(RandomUtil.randomBoolean());
comment.setVideoId(RandomUtil.randomLong());
comment.setMsg("娃哈哈");
comment.setMemberId(RandomUtil.randomLong());
comment.setTiktokId(String.valueOf(RandomUtil.randomLong()));
comment.setCommentId(RandomUtil.randomLong());
comment.setBelongTiktokId(IdUtil.randomUUID());
comment.setStatus(DefaultNumberConstants.ONE_NUMBER);
comment.setIsRead(DefaultNumberConstants.ZERO_NUMBER);
objects.add(comment);
}
tiktokVideoCommentMapper.batchInsert(objects);
}
@Test

@ -1,6 +1,9 @@
package com.baiye.dto;
import com.baiye.core.constant.DateConstant;
import com.baiye.core.constant.DefaultNumberConstants;
import com.baiye.core.convert.EmojiConverterListJson;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -26,6 +29,9 @@ public class TiktokVideoCommentDTO implements Serializable {
@ApiModelProperty(value = "发送者id")
private Long senderId;
@ApiModelProperty(value = "作者id")
private Long authorId;
@ApiModelProperty(value = "抖音id")
private String tiktokId;
@ -49,6 +55,7 @@ public class TiktokVideoCommentDTO implements Serializable {
private Integer isRead;
@ApiModelProperty(value = "创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateConstant.NORM_DATETIME_PATTERN, timezone = "GMT+8")
private Date createTime;
@ApiModelProperty(value = "mq消息")
@ -57,5 +64,8 @@ public class TiktokVideoCommentDTO implements Serializable {
@ApiModelProperty(value = "true发送false接收")
private Boolean msgFlag;
@ApiModelProperty(value = "1 文本评论 3 图片评论")
private Integer msgType = DefaultNumberConstants.ONE_NUMBER;
}

@ -17,6 +17,9 @@ public class OptCommentVideoRequestDTO {
@ApiModelProperty(value = "评论id")
private Long commentId;
@ApiModelProperty(value = "作者id")
private Long authorId;
@ApiModelProperty(value = "评论 ,评论时@某人,直接在文本前面加上@的人的昵称就行了")
private String content;

@ -24,7 +24,7 @@ public class TiktokMember implements Serializable {
@ApiModelProperty(value = "抖音会员id")
@TableId(value = "id", type = IdType.AUTO)
@TableId(value = "id", type = IdType.INPUT)
private Long id;
@ApiModelProperty(value = "抖音id")

@ -30,6 +30,9 @@ public class TiktokVideoComment implements Serializable {
@ApiModelProperty(value = "视频id")
private Long videoId;
@ApiModelProperty(value = "作者id")
private Long authorId;
@ApiModelProperty(value = "发送者id")
private String senderId;
@ -50,7 +53,7 @@ public class TiktokVideoComment implements Serializable {
@ApiModelProperty(value = "评论内容")
@Convert(converter = EmojiConverterListJson.class)
private String content;
private String msg;
@ApiModelProperty(value = "评论状态")
private Integer status;
@ -69,4 +72,7 @@ public class TiktokVideoComment implements Serializable {
@ApiModelProperty(value = "true发送false接收")
private Boolean msgFlag;
}

@ -16,9 +16,7 @@
package com.baiye.mapstruct;
import com.baiye.core.base.BaseMapStruct;
import com.baiye.dto.TiktokMemberDTO;
import com.baiye.dto.TiktokVideoCommentDTO;
import com.baiye.entity.TiktokMember;
import com.baiye.entity.TiktokVideoComment;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;

@ -12,7 +12,6 @@ import com.baiye.exception.global.BadRequestException;
import com.baiye.properties.TiktokProperties;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
/**
* @author Enzo
@ -26,18 +25,16 @@ public class TiktokRequestClient {
* Enzo
*/
@SneakyThrows
public static <T extends BaseTiktokResponse<?>> T createTiktokResponse(String requestUrl,
BaseTiktokRequest<T> tiktokRequest,
public static <T extends BaseTiktokResponse<?>> T createTiktokResponse(String requestUrl, BaseTiktokRequest tiktokRequest,
TiktokProperties tiktokProperties) {
tiktokRequest.setSessionKey(tiktokProperties.getSessionKey());
String response = HttpUtil.post
(tiktokProperties.getGatewayHost().concat(requestUrl),
JSONUtil.toJsonStr(tiktokRequest));
Object parseObject = JSON.parseObject
(response, TypeUtil.getTypeArgument
(tiktokRequest.getResponseClass().newInstance().getClass()));
if (ObjectUtil.isNotNull(parseObject)) {
return (T) parseObject;
Object bean = JSONUtil.toBean(response,
tiktokRequest.getResponseClass().newInstance().getClass());
if (ObjectUtil.isNotNull(bean)) {
return (T) bean;
}
throw new BadRequestException("请求失败");
}

@ -3,7 +3,6 @@ package com.baiye.api.request;
import com.baiye.api.response.TiktokCommentVideoListResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import com.baiye.dto.request.CommentVideoListRequestDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
@ -17,7 +16,7 @@ import lombok.Setter;
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokCommentVideoListRequest extends BaseTiktokRequest<TiktokCommentVideoListResponse> {
public class TiktokCommentVideoListRequest extends BaseTiktokRequest {
private CommentVideoListRequestDTO data;

@ -16,7 +16,7 @@ import lombok.Setter;
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokCommentVideoRequest extends BaseTiktokRequest<TiktokCommentVideoResponse> {
public class TiktokCommentVideoRequest extends BaseTiktokRequest {
private TiktokCommentVideoDTO data;

@ -16,7 +16,7 @@ import lombok.Setter;
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokDeleteCommentRequest extends BaseTiktokRequest<TiktokDeleteCommentResponse> {
public class TiktokDeleteCommentRequest extends BaseTiktokRequest {
private CommentDeleteRequestDTO data;

@ -16,7 +16,7 @@ import lombok.Setter;
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokLikeVideCommentRequest extends BaseTiktokRequest<TiktokLikeVideoCommentResponse> {
public class TiktokLikeVideCommentRequest extends BaseTiktokRequest {
private LikeVideoCommentRequestDTO data;

@ -16,7 +16,7 @@ import lombok.Setter;
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokLikeVideRequest extends BaseTiktokRequest<TiktokLikeVideoResponse> {
public class TiktokLikeVideRequest extends BaseTiktokRequest {
private LikeVideoRequestDTO data;

@ -3,9 +3,7 @@ package com.baiye.api.request;
import com.baiye.api.response.TiktokOptCommentVideoResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
@ -14,9 +12,7 @@ import lombok.Setter;
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokOptCommentVideoRequest extends BaseTiktokRequest<TiktokOptCommentVideoResponse> {
public class TiktokOptCommentVideoRequest extends BaseTiktokRequest {
private TiktokOptCommentVideoDTO data;
@ -27,6 +23,9 @@ public class TiktokOptCommentVideoRequest extends BaseTiktokRequest<TiktokOptCom
@ApiModelProperty(value = "设备抖音标识")
private String vendorId;
@ApiModelProperty(value = "作者id")
private String authorId;
@ApiModelProperty(value = "视频ID")
private Long awemeId;
@ -45,7 +44,7 @@ public class TiktokOptCommentVideoRequest extends BaseTiktokRequest<TiktokOptCom
@Override
public Class<TiktokOptCommentVideoResponse> getResponseClass() {
public Class<TiktokOptCommentVideoResponse> getResponseClass() {
return TiktokOptCommentVideoResponse.class;
}

@ -0,0 +1,43 @@
package com.baiye.api.request;
import com.baiye.api.response.TiktokPrivateLetterResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
/**
* @author Enzo
* @date : 2022/9/30
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokPrivateLetterRequest extends BaseTiktokRequest {
private PrivateLetterDTO data;
@lombok.Data
public class PrivateLetterDTO {
@ApiModelProperty(value = "设备抖音标识")
private String vendorId;
@ApiModelProperty(value = "作者id")
private String maxTime;
@ApiModelProperty(value = "是否需要登录")
private Boolean checkLogin = Boolean.TRUE;
@ApiModelProperty(value = "是否需要详细信息")
private Boolean checkProxyInfo = Boolean.FALSE;
}
@Override
public Class<?> getResponseClass() {
return TiktokPrivateLetterResponse.class;
}
}

@ -16,7 +16,7 @@ import lombok.Setter;
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class TiktokSearchMemberRequest extends BaseTiktokRequest<TiktokSearchMemberResponse> {
public class TiktokSearchMemberRequest extends BaseTiktokRequest {
private SearchMemberRequestDTO data;

@ -16,9 +16,10 @@ import java.util.List;
@Getter
@Setter
@AllArgsConstructor
public class TiktokCommentVideoListResponse extends BaseTiktokResponse implements Serializable {
public class TiktokCommentVideoListResponse extends
BaseTiktokResponse<TiktokCommentVideoListResponse> implements Serializable {
private List<CommentVideoDTO> data;
private static final long serialVersionUID = 7515504688664430338L;

@ -1,6 +1,9 @@
package com.baiye.api.response;
import com.baiye.core.base.api.BaseTiktokResponse;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@ -8,7 +11,10 @@ import java.io.Serializable;
* @author Enzo
* @date : 2022/8/24
*/
public class TiktokCommentVideoResponse extends BaseTiktokResponse implements Serializable {
@Getter
@Setter
@AllArgsConstructor
public class TiktokCommentVideoResponse extends BaseTiktokResponse<TiktokCommentVideoResponse> implements Serializable {
private static final long serialVersionUID = 7515504688664430338L;

@ -1,12 +1,21 @@
package com.baiye.api.response;
import com.baiye.core.base.api.BaseTiktokResponse;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* @author Enzo
* @date : 2022/8/24
*/
public class TiktokDeleteCommentResponse extends BaseTiktokResponse {
@Getter
@Setter
@AllArgsConstructor
public class TiktokDeleteCommentResponse extends
BaseTiktokResponse<TiktokDeleteCommentResponse> implements Serializable {
private static final long serialVersionUID = 7515504688664430338L;

@ -2,10 +2,13 @@ package com.baiye.api.response;
import com.baiye.core.base.api.BaseTiktokResponse;
import java.io.Serializable;
/**
* @author Enzo
* @date : 2022/8/25
*/
public class TiktokLikeVideoCommentResponse extends BaseTiktokResponse {
public class TiktokLikeVideoCommentResponse extends
BaseTiktokResponse<TiktokLikeVideoCommentResponse> implements Serializable {
private static final long serialVersionUID = -6908842863924012996L;
}

@ -1,12 +1,20 @@
package com.baiye.api.response;
import com.baiye.core.base.api.BaseTiktokResponse;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
/**
* @author Enzo
* @date : 2022/8/25
*/
public class TiktokLikeVideoResponse extends BaseTiktokResponse {
@Getter
@Setter
@AllArgsConstructor
public class TiktokLikeVideoResponse extends BaseTiktokResponse<TiktokLikeVideoResponse> implements Serializable {
private static final long serialVersionUID = 2965000915571628034L;
}

@ -1,13 +1,64 @@
package com.baiye.api.response;
import com.baiye.core.base.api.BaseTiktokResponse;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
/**
* @author Enzo
* @date : 2022/8/24
*/
public class TiktokOptCommentVideoResponse extends BaseTiktokResponse<TiktokOptCommentVideoResponse> {
@Getter
@Setter
@AllArgsConstructor
public class TiktokOptCommentVideoResponse extends
BaseTiktokResponse<TiktokOptCommentVideoResponse.OptCommentResponse> implements Serializable {
private static final long serialVersionUID = -5825557293915616077L;
@Getter
@Setter
@AllArgsConstructor
public class OptCommentResponse implements Serializable {
private static final long serialVersionUID = -3833181293850917321L;
@JsonProperty("status_code")
private Integer statusCode;
@JsonProperty("comment")
private Comment comment;
@Getter
@Setter
@AllArgsConstructor
public class Comment implements Serializable {
private static final long serialVersionUID = 5350130949106794018L;
@JsonProperty("reply_to_reply_id")
private Integer replyToReplyId;
@JsonProperty("create_time")
private Date createTime;
@JsonProperty("digg_count")
private Integer diggCount;
@JsonProperty("aweme_id")
private Long awemeId;
@JsonProperty("status")
private Integer status;
@JsonProperty("cid")
private Long cid;
@JsonProperty("text")
private String text;
}
}
}

@ -0,0 +1,100 @@
package com.baiye.api.response;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baiye.core.base.api.BaseTiktokResponse;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author Enzo
* @date : 2022/9/30
*/
public class TiktokPrivateLetterResponse extends BaseTiktokResponse<TiktokPrivateLetterResponse.PrivateLetterResponse> implements Serializable {
private static final long serialVersionUID = 523432110634536903L;
@Getter
@Setter
@AllArgsConstructor
public class PrivateLetterResponse implements Serializable {
private static final long serialVersionUID = 762547411155582997L;
@JsonProperty("maxTime")
private Long maxTime;
private List<TikTokMessageDTO> convList;
@Getter
@Setter
@AllArgsConstructor
public class TikTokMessageDTO implements Serializable {
private static final long serialVersionUID = -5089773201629019673L;
@JsonProperty("converstionId")
private String converstionId;
@JsonProperty("converstionId")
private List<MessageDTO> msgList;
@Getter
@Setter
@AllArgsConstructor
public class MessageDTO implements Serializable {
private static final long serialVersionUID = -6577882390878456793L;
@JsonProperty("converstionId")
private String converstionId;
@JsonProperty("senderId")
private String senderId;
@JsonProperty("text")
private Text text;
@JsonProperty("time")
private Long time;
@Getter
@Setter
@AllArgsConstructor
public class Text implements Serializable {
private static final long serialVersionUID = 7514779462685131112L;
@JsonProperty("type")
private Integer type;
@JsonProperty("isShareText")
private Boolean isShareText;
@JsonProperty("item_type_local")
private Integer itemTypeLocal;
@JsonProperty("text")
private String text;
@JsonProperty("is_card")
private Boolean isCard;
@JsonProperty("aweType")
private Boolean aweType;
}
}
}
}
public static void main(String[] args) {
String str = "\"{\\\"type\\\":0,\\\"isShareText\\\":false,\\\"item_type_local\\\":-1,\\\"richTextInfos\\\":[],\\\"text\\\":\\\"噢噢噢噢\\\",\\\"createdAt\\\":0,\\\"is_card\\\":false,\\\"msgHint\\\":\\\"\\\",\\\"aweType\\\":700}\"";
JSONUtil.toBean(StrUtil.removeAll("\\", ""), PrivateLetterResponse.TikTokMessageDTO.MessageDTO.Text.class);
}
}

@ -16,7 +16,7 @@ import java.util.List;
@Getter
@Setter
@AllArgsConstructor
public class TiktokSearchMemberResponse extends BaseTiktokResponse<TiktokSearchMemberResponse> {
public class TiktokSearchMemberResponse extends BaseTiktokResponse<TiktokSearchMemberResponse.User> {
@Getter

@ -31,4 +31,11 @@ public interface TiktokMemberService extends IService<TiktokMember> {
* @return
*/
TiktokMemberDTO queryById(Long memberId);
/**
*
* @param tiktokId
* @return
*/
Long saveTiktokMember(String tiktokId);
}

@ -3,6 +3,7 @@ package com.baiye.service.impl;
import cn.hutool.core.collection.CollUtil;
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.TiktokSearchMemberRequest;
@ -86,8 +87,8 @@ 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.getData()), TiktokSearchMemberResponse.User.class);
/* TiktokSearchMemberResponse.User user = JSONUtil.toBean
(JSONUtil.toJsonStr(tiktokResponse()), TiktokSearchMemberResponse.User.class);
if (ObjectUtil.isNotNull(user) && ObjectUtil.isNotNull(user.getUniqueId())) {
Long memberId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
TiktokMember tiktokMember = TiktokMember.builder().tiktokId(tiktokId).
@ -95,7 +96,7 @@ public class TiktokMemberServiceImpl extends ServiceImpl<TiktokMemberMapper, Tik
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;
}
}*/
}
}
}
@ -108,4 +109,22 @@ public class TiktokMemberServiceImpl extends ServiceImpl<TiktokMemberMapper, Tik
return tiktokMemberStruct.toDto(this.getById(memberId));
}
@Override
public Long saveTiktokMember(String tiktokId) {
TiktokMember member = this.getOne
(new LambdaQueryWrapper<TiktokMember>()
.eq(TiktokMember::getTiktokId, tiktokId));
if (ObjectUtil.isNotNull(member)) {
return member.getId();
}
Long memberId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
TiktokMember tiktokMember = TiktokMember.builder().id(memberId).tiktokId(tiktokId).
avatar("https://img2.woyaogexing.com/2022/06/26/5ac1d7cb3f440140!400x400.jpg").
city("佳木斯").nickname("娃哈哈".concat(String.valueOf(RandomUtil.randomInt()))).province("黑龙江").
gender(1).build();
return tiktokMemberMapper.insert(tiktokMember) >
DefaultNumberConstants.ZERO_NUMBER ? memberId : DefaultNumberConstants.ZERO_NUMBER;
}
}

@ -67,7 +67,6 @@ public class TiktokVideoCommentServiceImpl extends
Page<CommentMessageRecordDTO> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
IPage<SelectGroupDTO> queryMemberId = tiktokVideoCommentMapper.queryMemberId(page, currentUserId);
if (CollUtil.isNotEmpty(queryMemberId.getRecords())) {
@ -127,7 +126,7 @@ public class TiktokVideoCommentServiceImpl extends
Page<TiktokVideoComment> page = PageUtils.startPageAndSort(pageable);
Wrapper<TiktokVideoComment> queryWrapper =
new LambdaQueryWrapper<TiktokVideoComment>().eq
(TiktokVideoComment::getMemberId,
(TiktokVideoComment::getTiktokId,
commentRecordQuery.getTiktokId()).
eq(TiktokVideoComment::getVideoId, commentRecordQuery.getVideoId());
Page<TiktokVideoComment> selectPage = this.page(page, queryWrapper);
@ -135,8 +134,9 @@ public class TiktokVideoCommentServiceImpl extends
if (CollUtil.isNotEmpty(selectPage.getRecords())) {
String belongTiktokId = selectPage.getRecords().get
(DefaultNumberConstants.ZERO_NUMBER).getBelongTiktokId();
if (CharSequenceUtil.isNotBlank(belongTiktokId)){
(selectPage.getRecords().size() -
DefaultNumberConstants.ONE_NUMBER).getBelongTiktokId();
if (CharSequenceUtil.isNotBlank(belongTiktokId)) {
TiktokEquipmentEntity equipment =
tiktokEquipmentService.getOne
(new LambdaQueryWrapper<TiktokEquipmentEntity>().

@ -2,9 +2,11 @@ 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.*;
@ -24,10 +26,12 @@ 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;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -45,6 +49,12 @@ import java.util.List;
public class TiktokVideoServiceImpl implements TiktokVideoService {
@Value("${snowflake.workerId}")
private int workerId;
@Value("${snowflake.datacenterId}")
private int datacenterId;
private final TiktokProperties tiktokProperties;
private final TiktokMemberService tiktokMemberService;
@ -99,7 +109,8 @@ public class TiktokVideoServiceImpl implements TiktokVideoService {
(TiktokRequestConstants.TIK_TOK_COMMENT_VIDEO_LIST, likeVideRequest, tiktokProperties);
if (ObjectUtil.isNotNull(tiktokResponse.getStatus())
&& tiktokResponse.getStatus() == HttpStatus.OK.value()) {
return tiktokResponse.getData();
return Lists.newArrayList();
// return Convert.toList(CommentVideoDTO.class, tiktokResponse.getData());
}
return Lists.newArrayList();
}
@ -108,7 +119,8 @@ public class TiktokVideoServiceImpl implements TiktokVideoService {
public Result<Object> optCommentVideo(OptCommentVideoRequestDTO optCommentVideoRequestDTO) {
if (ObjectUtil.isNull(optCommentVideoRequestDTO.getMemberId())) {
// 判断用户是否存在
Long aLong = RandomUtil.randomLong();
Long aLong = tiktokMemberService.
saveTiktokMember(optCommentVideoRequestDTO.getTiktokId());
/* Long aLong = tiktokMemberService.
saveTiktokMemberByTiktok(optCommentVideoRequestDTO.getTiktokId());*/
if (ObjectUtil.isNull(aLong) || aLong == DefaultNumberConstants.ZERO_NUMBER) {
@ -120,14 +132,20 @@ public class TiktokVideoServiceImpl implements TiktokVideoService {
if (Boolean.TRUE.equals(optCommentVideoRequestDTO.getIsFirstChat())
&& StringUtils.isNotBlank(optCommentVideoRequestDTO.getTiktokId())) {
long nextId = IdUtil.getSnowflake().nextId();
// 创建用户聊天信息
TiktokVideoComment comment = new TiktokVideoComment();
BeanUtil.copyProperties(optCommentVideoRequestDTO, comment);
comment.setMsgFlag(Boolean.FALSE);
comment.setVideoId(optCommentVideoRequestDTO.getAwemeId());
boolean save = tiktokVideoCommentService.saveComment(comment);
log.info("================== the save opt comment result as {} comment id as {} =================", save, nextId);
int count = tiktokVideoCommentService.count
(new LambdaQueryWrapper<TiktokVideoComment>().eq
(TiktokVideoComment::getCommentId, optCommentVideoRequestDTO.getCommentId()));
if (count == DefaultNumberConstants.ZERO_NUMBER){
Long nextId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
// 创建用户聊天信息
TiktokVideoComment comment = new TiktokVideoComment();
BeanUtil.copyProperties(optCommentVideoRequestDTO, comment);
comment.setMsgFlag(Boolean.FALSE);
comment.setMsg(optCommentVideoRequestDTO.getContent());
comment.setVideoId(optCommentVideoRequestDTO.getAwemeId());
boolean save = tiktokVideoCommentService.saveComment(comment);
log.info("================== the save opt comment result as {} comment id as {} =================", save, nextId);
}
return Result.success();
}
@ -135,22 +153,30 @@ public class TiktokVideoServiceImpl implements TiktokVideoService {
// 创建内部类赋值
TiktokOptCommentVideoRequest.TiktokOptCommentVideoDTO videoDTO = tiktokCommentVideoRequest.new TiktokOptCommentVideoDTO();
BeanUtil.copyProperties(optCommentVideoRequestDTO, videoDTO);
videoDTO.setAuthorId(optCommentVideoRequestDTO.getTiktokId());
videoDTO.setVendorId(optCommentVideoRequestDTO.getBelongTiktokId());
tiktokCommentVideoRequest.setData(videoDTO);
// 请求参数
TiktokOptCommentVideoResponse optCommentVideoResponse = TiktokRequestClient.createTiktokResponse
(TiktokRequestConstants.TIK_TOK_COMMENT_VIDEO, tiktokCommentVideoRequest, tiktokProperties);
(TiktokRequestConstants.TIK_TOK_OPT_COMMENT_VIDEO_LIST, tiktokCommentVideoRequest, tiktokProperties);
if (ObjectUtil.isNotNull(optCommentVideoResponse.getSuccess())
&& Boolean.TRUE.equals(optCommentVideoResponse.getSuccess())) {
if (optCommentVideoResponse.getStatus() == HttpStatus.OK.value()) {
long nextId = IdUtil.getSnowflake().nextId();
TiktokVideoComment comment = new TiktokVideoComment();
BeanUtil.copyProperties(optCommentVideoRequestDTO, comment);
comment.setMsgFlag(Boolean.TRUE);
comment.setVideoId(optCommentVideoRequestDTO.getAwemeId());
// 创建用户聊天信息
boolean save = tiktokVideoCommentService.saveComment(comment);
log.info("================== the save opt comment result as {} comment id as {} =================", save, nextId);
return Result.success();
TiktokOptCommentVideoResponse.OptCommentResponse data = optCommentVideoResponse.getData();
if (ObjectUtil.isNotNull(data) && ObjectUtil.isNotNull(data.getComment())) {
long nextId = IdUtil.getSnowflake().nextId();
TiktokVideoComment comment = new TiktokVideoComment();
BeanUtil.copyProperties(optCommentVideoRequestDTO, comment);
comment.setMsgFlag(Boolean.TRUE);
comment.setCommentId(data.getComment().getCid());
comment.setMsg(optCommentVideoRequestDTO.getContent());
comment.setVideoId(optCommentVideoRequestDTO.getAwemeId());
// 创建用户聊天信息
boolean save = tiktokVideoCommentService.saveComment(comment);
log.info("================== the save opt comment result as {} comment id as {} =================", save, nextId);
return Result.success();
}
}
return Result.fail(StringUtils.isNotBlank
(optCommentVideoResponse.getMsg()) ? optCommentVideoResponse.getMsg()
@ -158,7 +184,7 @@ public class TiktokVideoServiceImpl implements TiktokVideoService {
}
return Result.fail(StringUtils.isNotBlank
(optCommentVideoResponse.getMsg()) ? optCommentVideoResponse.getMsg() :
ResultCode.OPT_COMMENT_VIDEO_FAILED.getMsg());
ResultCode.OPT_COMMENT_VIDEO_FAILED.getMsg());
}
@ -319,12 +345,13 @@ public class TiktokVideoServiceImpl implements TiktokVideoService {
String dyVendorId, Long videoId,
String tiktokId, Long commentId,
String content, Long memberId) {
long nextId = IdUtil.getSnowflake().nextId();
Long nextId = IdUtil.getSnowflake
(workerId, datacenterId).nextId();
TiktokVideoComment comment = new TiktokVideoComment();
comment.setId(nextId);
comment.setMsg(content);
comment.setMsgFlag(flag);
comment.setVideoId(videoId);
comment.setContent(content);
comment.setMemberId(memberId);
comment.setTiktokId(tiktokId);
comment.setCommentId(commentId);

@ -15,7 +15,7 @@
SELECT a.create_time as createTime,
a.member_id as memberId,
a.video_id as videoId,
a.content as content,
a.msg as content,
a.is_read as isRead
FROM tb_tiktok_video_comment AS a,
(SELECT MAX(id) as id,
@ -32,7 +32,7 @@
<select id="queryLastMessageByVideoIdAndMemberId" resultType="com.baiye.dto.LatsCommentDTO">
SELECT create_time AS createTime,
content as content
msg as content
FROM `tb_tiktok_video_comment`
WHERE member_id = #{memberId}
AND video_id = #{videoId}
@ -56,13 +56,13 @@
tiktok_id,
comment_id,
member_id,
content,
msg,
status,
is_read,
create_time,
update_time,
msg_flag,
belong_tiktok_id,
belong_tiktok_id
)
VALUES
<foreach collection="list" item="comment" separator=",">
@ -71,7 +71,7 @@
#{comment.tiktokId},
#{comment.commentId},
#{comment.memberId},
#{comment.content},
#{comment.msg},
#{comment.status},
#{comment.isRead},
#{comment.createTime},

@ -26,7 +26,7 @@ public class TiktokRequestClient {
*/
@SneakyThrows
public static <T extends BaseTiktokResponse> T createTiktokResponse(String requestUrl,
BaseTiktokRequest<T> tiktokRequest,
BaseTiktokRequest tiktokRequest,
TiktokProperties tiktokProperties) {
tiktokRequest.setSessionKey(tiktokProperties.getSessionKey());
String response = HttpUtil.post

@ -1,6 +1,5 @@
package com.baiye.api.request;
import com.baiye.api.response.TiktokCommentVideoListResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import com.baiye.dto.CommentVideoListRequestDTO;
import lombok.Getter;
@ -12,7 +11,7 @@ import lombok.Setter;
*/
@Getter
@Setter
public class TiktokCommentVideoListRequest extends BaseTiktokRequest<TiktokCommentVideoListResponse> {
public class TiktokCommentVideoListRequest extends BaseTiktokRequest {
private CommentVideoListRequestDTO data;

@ -1,6 +1,5 @@
package com.baiye.api.request;
import com.baiye.api.response.TiktokCommentVideoResponse;
import com.baiye.dto.CommentVideoRequestDTO;
import com.baiye.core.base.api.BaseTiktokRequest;
import lombok.Getter;
@ -12,7 +11,7 @@ import lombok.Setter;
*/
@Getter
@Setter
public class TiktokCommentVideoRequest extends BaseTiktokRequest<TiktokCommentVideoResponse> {
public class TiktokCommentVideoRequest extends BaseTiktokRequest {
private CommentVideoRequestDTO data;

@ -1,6 +1,5 @@
package com.baiye.api.request;
import com.baiye.api.response.TiktokLikeVideoCommentResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import com.baiye.dto.LikeVideoCommentDTO;
import lombok.Getter;
@ -12,7 +11,7 @@ import lombok.Setter;
*/
@Getter
@Setter
public class TiktokLikeVideCommentRequest extends BaseTiktokRequest<TiktokLikeVideoCommentResponse> {
public class TiktokLikeVideCommentRequest extends BaseTiktokRequest {
private LikeVideoCommentDTO data;
@Override

@ -1,6 +1,5 @@
package com.baiye.api.request;
import com.baiye.api.response.TiktokLikeVideoResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import com.baiye.dto.LikeVideoDTO;
import lombok.Getter;
@ -12,7 +11,7 @@ import lombok.Setter;
*/
@Getter
@Setter
public class TiktokLikeVideRequest extends BaseTiktokRequest<TiktokLikeVideoResponse> {
public class TiktokLikeVideRequest extends BaseTiktokRequest {
private LikeVideoDTO data;
@Override

@ -1,6 +1,5 @@
package com.baiye.api.request;
import com.baiye.api.response.TiktokOptCommentVideoResponse;
import com.baiye.core.base.api.BaseTiktokRequest;
import com.baiye.dto.OptCommentVideoListRequestDTO;
import lombok.Getter;
@ -12,7 +11,7 @@ import lombok.Setter;
*/
@Getter
@Setter
public class TiktokOptCommentVideoRequest extends BaseTiktokRequest<TiktokOptCommentVideoResponse> {
public class TiktokOptCommentVideoRequest extends BaseTiktokRequest {
private OptCommentVideoListRequestDTO data;

@ -1,8 +1,9 @@
package com.baiye.service;
import com.baiye.dto.*;
import java.util.List;
import com.baiye.dto.CommentVideoRequestDTO;
import com.baiye.dto.LikeVideoCommentDTO;
import com.baiye.dto.LikeVideoDTO;
import com.baiye.dto.OptCommentVideoListRequestDTO;
/**
* @author Enzo

@ -2,7 +2,10 @@ package com.baiye.controller;
import com.baiye.core.annotation.Log;
import com.baiye.core.base.api.Result;
import com.baiye.dto.*;
import com.baiye.dto.CommentVideoRequestDTO;
import com.baiye.dto.LikeVideoCommentDTO;
import com.baiye.dto.LikeVideoDTO;
import com.baiye.dto.OptCommentVideoListRequestDTO;
import com.baiye.service.TiktokVideoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -13,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author Enzo
* @date : 2022/8/24
@ -53,6 +54,7 @@ public class TiktokVideoController {
}
@Log
@ApiOperation("评论视频中评论")
@PostMapping("/optCommentVideo")
public Result<Boolean> optCommentList(@RequestBody OptCommentVideoListRequestDTO optCommentVideoListRequestDTO) {

Loading…
Cancel
Save