From 443688a1619cfd65e2c18073507961cee17f0e2c Mon Sep 17 00:00:00 2001 From: bynt Date: Thu, 20 Oct 2022 14:13:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/convert/StringConverterListJson.java | 23 ++++++++ .../java/com/baiye/dto/SaveSopCommentDTO.java | 4 ++ .../java/com/baiye/dto/TiktokMemberDTO.java | 7 +++ .../src/main/java/com/baiye/dto/UserDTO.java | 55 +++++++++++++++++++ .../java/com/baiye/entity/TiktokMember.java | 8 +++ .../response/TiktokSearchMemberResponse.java | 18 ++++-- .../baiye/service/TiktokMemberService.java | 11 ++++ .../service/impl/TiktokMemberServiceImpl.java | 43 +++++++++++++-- .../impl/TiktokUserMessageServiceImpl.java | 1 - .../impl/TiktokVideoCommentServiceImpl.java | 4 +- .../response/TiktokSearchMemberResponse.java | 13 ++++- 11 files changed, 172 insertions(+), 15 deletions(-) create mode 100644 cdp-common/cdp-common-core/src/main/java/com/baiye/core/convert/StringConverterListJson.java create mode 100644 cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/UserDTO.java diff --git a/cdp-common/cdp-common-core/src/main/java/com/baiye/core/convert/StringConverterListJson.java b/cdp-common/cdp-common-core/src/main/java/com/baiye/core/convert/StringConverterListJson.java new file mode 100644 index 0000000..a7c381e --- /dev/null +++ b/cdp-common/cdp-common-core/src/main/java/com/baiye/core/convert/StringConverterListJson.java @@ -0,0 +1,23 @@ +package com.baiye.core.convert; + +import cn.hutool.json.JSONUtil; + +import javax.persistence.AttributeConverter; +import javax.persistence.Converter; + +/** + * @author Enzo + * @date : 2021/12/28 + */ +@Converter +public class StringConverterListJson implements AttributeConverter { + @Override + public String convertToDatabaseColumn(Object obj) { + return JSONUtil.toJsonStr(obj); + } + + @Override + public Object convertToEntityAttribute(String s) { + return JSONUtil.parseArray(s); + } +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SaveSopCommentDTO.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SaveSopCommentDTO.java index 1a1cc45..ebf1c48 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SaveSopCommentDTO.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/SaveSopCommentDTO.java @@ -20,6 +20,8 @@ public class SaveSopCommentDTO { @ApiModelProperty(value = "小组id") private Long organizeId; + @ApiModelProperty(value = "sopId") + private Long sopId; private List dtoList; @@ -51,5 +53,7 @@ public class SaveSopCommentDTO { @ApiModelProperty(value = "评论使用设备号") private String dyVendorId; + @ApiModelProperty(value = "用户信息") + private UserDTO userDTO; } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/TiktokMemberDTO.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/TiktokMemberDTO.java index 0d2fbbc..007ee61 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/TiktokMemberDTO.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/TiktokMemberDTO.java @@ -1,10 +1,13 @@ package com.baiye.dto; +import com.baiye.core.convert.StringConverterListJson; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.persistence.Convert; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @author Enzo @@ -47,4 +50,8 @@ public class TiktokMemberDTO implements Serializable { @ApiModelProperty("视频id") private String videoId; + + @ApiModelProperty(value = "sopId") + @Convert(converter = StringConverterListJson.class) + private List sopStr; } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/UserDTO.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/UserDTO.java new file mode 100644 index 0000000..8087d9f --- /dev/null +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/dto/UserDTO.java @@ -0,0 +1,55 @@ +package com.baiye.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.*; + +import java.io.Serializable; +import java.util.List; + +/** + * @author Enzo + * @date : 2022/10/19 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserDTO implements Serializable { + + @JsonProperty("uid") + private Long uid; + + @JsonProperty("gender") + private Integer gender; + + @JsonProperty("is_star") + private String isStar; + + @JsonProperty("city") + private String city; + + @JsonProperty("location") + private String location; + + @JsonProperty("country") + private String country; + + @JsonProperty("province") + private String province; + + @JsonProperty("nickname") + private String nickname; + + @JsonProperty("unique_id") + private String uniqueId; + + @JsonProperty("avatar_medium") + private AvatarMedium avatarMedium; + + @Getter + @Setter + @AllArgsConstructor + public class AvatarMedium implements Serializable { + @JsonProperty("url_list") + private List urlList; + } +} diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokMember.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokMember.java index 33c9533..53a57d8 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokMember.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-core/src/main/java/com/baiye/entity/TiktokMember.java @@ -1,13 +1,17 @@ package com.baiye.entity; +import com.baiye.core.convert.EmojiConverterListJson; +import com.baiye.core.convert.StringConverterListJson; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.Builder; import lombok.Getter; import lombok.Setter; +import javax.persistence.Convert; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * @author Enzo @@ -49,6 +53,10 @@ public class TiktokMember implements Serializable { @ApiModelProperty(value = "城市") private String city; + @Convert(converter = StringConverterListJson.class) + @ApiModelProperty(value = "sopId") + private List sopStr; + @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建时间") private Date createTime; diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java index 4344850..9c27634 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java @@ -1,12 +1,11 @@ package com.baiye.api.response; import com.baiye.core.base.api.BaseTiktokResponse; +import com.baiye.dto.UserDTO; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; +import java.io.Serializable; import java.util.List; /** @@ -25,6 +24,9 @@ public class TiktokSearchMemberResponse extends BaseTiktokResponse avatarMedium; + private AvatarMedium avatarMedium; + + @Data + public class AvatarMedium implements Serializable { + @JsonProperty("url_list") + private List urlList; + } } 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 b21533c..00933b0 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 @@ -1,6 +1,7 @@ package com.baiye.service; import com.baiye.dto.TiktokMemberDTO; +import com.baiye.dto.UserDTO; import com.baiye.entity.TiktokMember; import com.baomidou.mybatisplus.extension.service.IService; @@ -40,4 +41,14 @@ public interface TiktokMemberService extends IService { * @return */ Long saveTiktokMember(String tiktokId); + + + /** + * 保存会员信息 + * + * @param userDTO + * @param sopId + * @return + */ + TiktokMemberDTO saveTiktokMemberByUser(UserDTO userDTO, Long sopId); } 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 4aff1a1..02b436b 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 @@ -11,6 +11,7 @@ import com.baiye.core.constant.HttpStatus; import com.baiye.core.constant.TiktokRequestConstants; import com.baiye.dao.TiktokMemberMapper; import com.baiye.dto.TiktokMemberDTO; +import com.baiye.dto.UserDTO; import com.baiye.dto.request.SearchMemberRequestDTO; import com.baiye.entity.TiktokMember; import com.baiye.mapstruct.TiktokMemberStruct; @@ -19,11 +20,15 @@ import com.baiye.service.TiktokEquipmentService; import com.baiye.service.TiktokMemberService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @author Enzo * @date : 2022/9/22 @@ -70,8 +75,8 @@ public class TiktokMemberServiceImpl extends // 设置请求参数 SearchMemberRequestDTO data = SearchMemberRequestDTO.builder(). userId(tiktokId). - checkLogin(Boolean.FALSE). - vendorId(belongTiktokId). + checkLogin(Boolean.FALSE). + vendorId(belongTiktokId). checkProxyInfo(Boolean.FALSE).build(); request.setData(data); // 设置请求参数 @@ -83,9 +88,9 @@ public class TiktokMemberServiceImpl extends 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(); + avatar(user.getAvatarMedium().getUrlList().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 ? tiktokMemberStruct.toDto(tiktokMember) : null; } @@ -117,4 +122,32 @@ public class TiktokMemberServiceImpl extends DefaultNumberConstants.ZERO_NUMBER ? memberId : DefaultNumberConstants.ZERO_NUMBER; } + @Override + public TiktokMemberDTO saveTiktokMemberByUser(UserDTO userDTO, Long sopId) { + TiktokMember member = this.getOne + (new LambdaQueryWrapper() + .eq(TiktokMember::getTiktokId, userDTO.getUid())); + if (ObjectUtil.isNotNull(member)) { + List sopStr = member.getSopStr(); + if (!sopStr.contains(sopId)) { + List strings = member.getSopStr(); + strings.add(sopId); + member.setSopStr(strings); + tiktokMemberMapper.insert(member); + } + return tiktokMemberStruct.toDto(member); + } + if (ObjectUtil.isNotNull(userDTO) && ObjectUtil.isNotNull(userDTO.getUniqueId())) { + List list = Lists.newArrayList(); + list.add(sopId); + Long memberId = IdUtil.getSnowflake(workerId, datacenterId).nextId(); + TiktokMember tiktokMember = TiktokMember.builder().tiktokId(userDTO.getUniqueId()). + avatar(userDTO.getAvatarMedium().getUrlList().get(DefaultNumberConstants.ZERO_NUMBER)). + city(userDTO.getCity()).nickname(userDTO.getNickname()).province(userDTO.getProvince()). + gender(userDTO.getGender()).id(memberId).sopStr(list).build(); + return tiktokMemberMapper.insert(tiktokMember) > + DefaultNumberConstants.ZERO_NUMBER ? tiktokMemberStruct.toDto(tiktokMember) : null; + } + return null; + } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokUserMessageServiceImpl.java b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokUserMessageServiceImpl.java index 4402131..3e17e87 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokUserMessageServiceImpl.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-member/dy-tool-member-service/src/main/java/com/baiye/service/impl/TiktokUserMessageServiceImpl.java @@ -70,7 +70,6 @@ public class TiktokUserMessageServiceImpl implements TiktokUserMessageService { = tiktokEquipmentService.findByDyVendorId(messageRequestDTO.getVendorId()); TiktokMemberDTO tiktokMemberDTO = tiktokMemberService.saveTiktokMemberByTiktok (messageRequestDTO.getUserId(), messageRequestDTO.getVendorId()); - // 构建实体 TiktokPrivateLetter privateLetter = TiktokPrivateLetter.builder().id(nextId).senderId(Long.parseLong(byDyVendorId.getDyUserId())). 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 12088aa..922840e 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 @@ -223,13 +223,13 @@ public class TiktokVideoCommentServiceImpl extends // 评论别人 if (Boolean.TRUE.equals(commentVideoDTO.getIsCommentOther())) { TiktokMemberDTO member = tiktokMemberService. - saveTiktokMemberByTiktok(commentVideoDTO.getChildTiktokId(),searchVendorId); + saveTiktokMemberByUser(commentVideoDTO.getUserDTO(),dto.getSopId()); buildSendMessage(commentsList, dto, longs, commentVideoDTO, member, Boolean.FALSE, Boolean.TRUE); } // 被人评论 if (Boolean.FALSE.equals(commentVideoDTO.getIsCommentOther())) { TiktokMemberDTO member = tiktokMemberService. - saveTiktokMemberByTiktok(commentVideoDTO.getParentTiktokId(), searchVendorId); + saveTiktokMemberByUser(commentVideoDTO.getUserDTO(), dto.getSopId()); buildSendMessage(commentsList, dto, longs, commentVideoDTO, member, Boolean.TRUE, Boolean.FALSE); } } diff --git a/cdp-tools/cdp-tool-dy/dy-tool-video/dy-tool-video-api/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java b/cdp-tools/cdp-tool-dy/dy-tool-video/dy-tool-video-api/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java index d13015e..3fccbd9 100644 --- a/cdp-tools/cdp-tool-dy/dy-tool-video/dy-tool-video-api/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java +++ b/cdp-tools/cdp-tool-dy/dy-tool-video/dy-tool-video-api/src/main/java/com/baiye/api/response/TiktokSearchMemberResponse.java @@ -7,6 +7,7 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.io.Serializable; import java.util.List; /** @@ -49,9 +50,17 @@ public class TiktokSearchMemberResponse extends BaseTiktokResponse avatarMedium; + @JsonProperty("avatar_medium") + private AvatarMedium avatarMedium; + + @Getter + @Setter + @AllArgsConstructor + public class AvatarMedium implements Serializable { + @JsonProperty("url_list") + private List urlList; + } }