diff --git a/douyu-live-user-interface/pom.xml b/douyu-live-user-interface/pom.xml index 935eb6e..c36d752 100644 --- a/douyu-live-user-interface/pom.xml +++ b/douyu-live-user-interface/pom.xml @@ -16,5 +16,12 @@ 8 UTF-8 + + + org.projectlombok + lombok + provided + + \ No newline at end of file diff --git a/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/CacheAsyncDeleteCode.java b/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/CacheAsyncDeleteCode.java new file mode 100644 index 0000000..08f4728 --- /dev/null +++ b/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/CacheAsyncDeleteCode.java @@ -0,0 +1,23 @@ +package com.douyu.live.user.constants; + +import lombok.Getter; + +/** + * @author liuguanyi + * * @date 2025/1/3 + */ +@Getter +enum CacheAsyncDeleteCode { + + USER_INFO_DELETE(0, "用户基础信息删除"), + USER_TAG_DELETE(1, "用户标签删除"); + + int code; + String desc; + + CacheAsyncDeleteCode(int code, String desc) { + this.code = code; + this.desc = desc; + } + +} diff --git a/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/UserTagFieldNameConstants.java b/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/UserTagFieldNameConstants.java new file mode 100644 index 0000000..59102ee --- /dev/null +++ b/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/UserTagFieldNameConstants.java @@ -0,0 +1,15 @@ +package com.douyu.live.user.constants; + +import lombok.Getter; + +/** + * @author liuguanyi + * * @date 2025/1/3 + */ +@Getter +public class UserTagFieldNameConstants { + + public static final String TAG_INFO_01 = "tag_info_01"; + public static final String TAG_INFO_02 = "tag_info_02"; + public static final String TAG_INFO_03 = "tag_info_03"; +} diff --git a/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/UserTagsEnum.java b/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/UserTagsEnum.java new file mode 100644 index 0000000..4d5ba74 --- /dev/null +++ b/douyu-live-user-interface/src/main/java/com/douyu/live/user/constants/UserTagsEnum.java @@ -0,0 +1,25 @@ +package com.douyu.live.user.constants; + +import lombok.Getter; + +/** + * @author liuguanyi + * * @date 2025/1/3 + */ +@Getter +public enum UserTagsEnum { + + IS_RICH((long) Math.pow(2, 0), "是否是有钱用户", "tag_info_01"), + IS_VIP((long) Math.pow(2, 1), "是否是VIP用户", "tag_info_01"), + IS_OLD_USER((long) Math.pow(2, 2), "是否是老用户", "tag_info_01"); + + long tag; + String desc; + String fieldName; + + UserTagsEnum(long tag, String desc, String fieldName) { + this.tag = tag; + this.desc = desc; + this.fieldName = fieldName; + } +} diff --git a/douyu-live-user-interface/src/main/java/com/douyu/live/user/dto/UserDTO.java b/douyu-live-user-interface/src/main/java/com/douyu/live/user/dto/UserDTO.java index 4e69c33..0cb69dc 100644 --- a/douyu-live-user-interface/src/main/java/com/douyu/live/user/dto/UserDTO.java +++ b/douyu-live-user-interface/src/main/java/com/douyu/live/user/dto/UserDTO.java @@ -1,11 +1,14 @@ package com.douyu.live.user.dto; +import lombok.Data; + import java.util.Date; /** * @author luiguanyi * * @date 2024/12/16 */ +@Data public class UserDTO { private Long userId; private String nickName; @@ -18,99 +21,4 @@ public class UserDTO { private Date createTime; private Date updateTime; - @Override - public String toString() { - return "UserDTO{" + - "userId=" + userId + - ", nickName='" + nickName + '\'' + - ", trueName='" + trueName + '\'' + - ", avatar='" + avatar + '\'' + - ", sex=" + sex + - ", workCity=" + workCity + - ", bornCity=" + bornCity + - ", bornDate=" + bornDate + - ", createTime=" + createTime + - ", updateTime=" + updateTime + - '}'; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public String getNickName() { - return nickName; - } - - public void setNickName(String nickName) { - this.nickName = nickName; - } - - public String getTrueName() { - return trueName; - } - - public void setTrueName(String trueName) { - this.trueName = trueName; - } - - public String getAvatar() { - return avatar; - } - - public void setAvatar(String avatar) { - this.avatar = avatar; - } - - public Integer getSex() { - return sex; - } - - public void setSex(Integer sex) { - this.sex = sex; - } - - public Integer getWorkCity() { - return workCity; - } - - public void setWorkCity(Integer workCity) { - this.workCity = workCity; - } - - public Integer getBornCity() { - return bornCity; - } - - public void setBornCity(Integer bornCity) { - this.bornCity = bornCity; - } - - public Date getBornDate() { - return bornDate; - } - - public void setBornDate(Date bornDate) { - this.bornDate = bornDate; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } } diff --git a/douyu-live-user-interface/src/main/java/com/douyu/live/user/interfaces/rpc/IUserTagRpc.java b/douyu-live-user-interface/src/main/java/com/douyu/live/user/interfaces/rpc/IUserTagRpc.java new file mode 100644 index 0000000..5158692 --- /dev/null +++ b/douyu-live-user-interface/src/main/java/com/douyu/live/user/interfaces/rpc/IUserTagRpc.java @@ -0,0 +1,37 @@ +package com.douyu.live.user.interfaces.rpc; + + +import com.douyu.live.user.constants.UserTagsEnum; + +/** + * 用户标签rpc + * @author liuguanyi + * * @date 2025/1/3 + */ +public interface IUserTagRpc { + /** + * 设置标签 + * + * @param userId + * @param userTagsEnum + * @return + */ + boolean setTag(Long userId, UserTagsEnum userTagsEnum); + /** + * 取消标签 + * + * @param userId + * @param userTagsEnum + * @return + */ + boolean cancelTag(Long userId,UserTagsEnum userTagsEnum); + /** + * 是否包含某个标签 + * + * @param userId + * @param userTagsEnum + * @return + */ + boolean containTag(Long userId,UserTagsEnum userTagsEnum); + +} diff --git a/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/dao/mapper/IUserTagMapper.java b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/dao/mapper/IUserTagMapper.java new file mode 100644 index 0000000..b704e68 --- /dev/null +++ b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/dao/mapper/IUserTagMapper.java @@ -0,0 +1,14 @@ +package com.douyu.live.user.provider.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.douyu.live.user.provider.dao.po.UserTagPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户标签mapper + * @author liuguanyi + * * @date 2025/1/3 + */ +@Mapper +public interface IUserTagMapper extends BaseMapper { +} diff --git a/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/dao/po/UserTagPO.java b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/dao/po/UserTagPO.java new file mode 100644 index 0000000..e337c46 --- /dev/null +++ b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/dao/po/UserTagPO.java @@ -0,0 +1,50 @@ +package com.douyu.live.user.provider.dao.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.util.Date; + +/** + * @author liuguanyi + * * @date 2025/1/3 + */ +@Data +public class UserTagPO { + /** + * 用户id + */ + @TableId(type = IdType.INPUT) + private Long userId; + + /** + * 标签记录字段 + */ + @TableField(value = "tag_info_01") + private Long tagInfo01; + + /** + * 标签记录字段 + */ + @TableField(value = "tag_info_02") + private Long tagInfo02; + + /** + * 标签记录字段 + */ + @TableField(value = "tag_info_03") + private Long tagInfo03; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + +} diff --git a/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/rpc/UserTagRpcImpl.java b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/rpc/UserTagRpcImpl.java new file mode 100644 index 0000000..2679153 --- /dev/null +++ b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/rpc/UserTagRpcImpl.java @@ -0,0 +1,33 @@ +package com.douyu.live.user.provider.rpc; + +import com.douyu.live.user.constants.UserTagsEnum; +import com.douyu.live.user.interfaces.rpc.IUserTagRpc; +import com.douyu.live.user.provider.service.IUserTagService; +import jakarta.annotation.Resource; +import org.apache.dubbo.config.annotation.DubboService; + +/** + * @author liuguanyi + * * @date 2025/1/3 + */ +@DubboService +public class UserTagRpcImpl implements IUserTagRpc { + @Resource + private IUserTagService userTagService; + + @Override + public boolean setTag(Long userId, UserTagsEnum userTagsEnum) { + return userTagService.setTag(userId, userTagsEnum); + } + + @Override + public boolean cancelTag(Long userId, UserTagsEnum + userTagsEnum) { + return userTagService.cancelTag(userId, userTagsEnum); + } + + @Override + public boolean containTag(Long userId, UserTagsEnum userTagsEnum) { + return userTagService.containTag(userId, userTagsEnum); + } +} diff --git a/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/service/IUserTagService.java b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/service/IUserTagService.java new file mode 100644 index 0000000..e85686a --- /dev/null +++ b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/service/IUserTagService.java @@ -0,0 +1,35 @@ +package com.douyu.live.user.provider.service; + +import com.douyu.live.user.constants.UserTagsEnum; + +/** + * 用户标签service + * @author liuguanyi + * * @date 2025/1/3 + */ +public interface IUserTagService { + /** + * 设置标签 只能设置成功一次 + * + * @param userId + * @param userTagsEnum + * @return + */ + boolean setTag(Long userId, UserTagsEnum userTagsEnum); + /** + * 取消标签 + * + * @param userId + * @param userTagsEnum + * @return + */ + boolean cancelTag(Long userId,UserTagsEnum userTagsEnum); + /** + * 是否包含某个标签 + * + * @param userId + * @param userTagsEnum + * @return + */ + boolean containTag(Long userId,UserTagsEnum userTagsEnum); +} diff --git a/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/service/impl/UserTagServiceImpl.java b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/service/impl/UserTagServiceImpl.java new file mode 100644 index 0000000..0d3afd5 --- /dev/null +++ b/douyu-live-user-provider/src/main/java/com/douyu/live/user/provider/service/impl/UserTagServiceImpl.java @@ -0,0 +1,35 @@ +package com.douyu.live.user.provider.service.impl; + + +import com.douyu.live.user.constants.UserTagsEnum; +import com.douyu.live.user.provider.dao.mapper.IUserTagMapper; +import com.douyu.live.user.provider.service.IUserTagService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +/** + * @author liuguanyi + * * @date 2025/1/3 + */ +@Service +public class UserTagServiceImpl implements IUserTagService { + + @Resource + private IUserTagMapper userTagMapper; + + + @Override + public boolean setTag(Long userId, UserTagsEnum userTagsEnum) { + return false; + } + + @Override + public boolean cancelTag(Long userId, UserTagsEnum userTagsEnum) { + return false; + } + + @Override + public boolean containTag(Long userId, UserTagsEnum userTagsEnum) { + return false; + } +}