Prechádzať zdrojové kódy

user 添加 UserRecommend 表示为该用户推荐数据的模式

reghao 11 mesiacov pred
rodič
commit
bd856fe7fb

+ 2 - 0
user/user-api/src/main/java/cn/reghao/tnb/user/api/iface/UserService.java

@@ -14,4 +14,6 @@ public interface UserService {
     List<Long> getFollowingIds(long userId);
     boolean isVip(long userId);
     void sendUserMessage(UserMessageDto userMessageDto);
+    int getRecommendMode(long userId);
+    void setRecommendMode(long userId, boolean mode);
 }

+ 16 - 0
user/user-service/src/main/java/cn/reghao/tnb/user/app/db/mapper/UserRecommendMapper.java

@@ -0,0 +1,16 @@
+package cn.reghao.tnb.user.app.db.mapper;
+
+import cn.reghao.jutil.jdk.db.BaseMapper;
+import cn.reghao.tnb.user.app.model.po.UserRecommend;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author reghao
+ * @date 2025-03-31 16:00:40
+ */
+@Mapper
+public interface UserRecommendMapper extends BaseMapper<UserRecommend> {
+    void updateMode(@Param("userId") long userId, @Param("mode") int mode);
+    Integer findByUserId(long userId);
+}

+ 18 - 0
user/user-service/src/main/java/cn/reghao/tnb/user/app/model/po/UserRecommend.java

@@ -0,0 +1,18 @@
+package cn.reghao.tnb.user.app.model.po;
+
+import cn.reghao.jutil.jdk.db.BaseObject;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author reghao
+ * @date 2025-03-31 15:59:55
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter
+public class UserRecommend extends BaseObject<Integer> {
+    private long userId;
+    private int mode;
+}

+ 32 - 2
user/user-service/src/main/java/cn/reghao/tnb/user/app/rpc/UserServiceImpl.java

@@ -5,6 +5,8 @@ import cn.reghao.tnb.account.api.iface.AccountQuery;
 import cn.reghao.tnb.user.api.dto.UserCard;
 import cn.reghao.tnb.user.api.dto.UserMessageDto;
 import cn.reghao.tnb.user.api.iface.UserService;
+import cn.reghao.tnb.user.app.db.mapper.UserRecommendMapper;
+import cn.reghao.tnb.user.app.model.po.UserRecommend;
 import cn.reghao.tnb.user.app.service.UserMessageService;
 import cn.reghao.tnb.user.app.service.UserRelationService;
 import cn.reghao.tnb.user.app.service.UserProfileService;
@@ -30,16 +32,18 @@ public class UserServiceImpl implements UserService {
     private final UserVipService userVipService;
     private final UserProfileService userProfileService;
     private final UserMessageService userMessageService;
-    private IDObfuscation userIdObfuscation;
+    private final IDObfuscation userIdObfuscation;
+    private UserRecommendMapper userRecommendMapper;
 
     public UserServiceImpl(UserRelationService userRelationService, UserVipService userVipService,
                            UserProfileService userProfileService, UserMessageService userMessageService,
-                           IDObfuscation userIdObfuscation) {
+                           IDObfuscation userIdObfuscation, UserRecommendMapper userRecommendMapper) {
         this.userRelationService = userRelationService;
         this.userVipService = userVipService;
         this.userProfileService = userProfileService;
         this.userMessageService = userMessageService;
         this.userIdObfuscation = userIdObfuscation;
+        this.userRecommendMapper = userRecommendMapper;
     }
 
     @Override
@@ -66,4 +70,30 @@ public class UserServiceImpl implements UserService {
     public void sendUserMessage(UserMessageDto userMessageDto) {
         userMessageService.addMessage(userMessageDto);
     }
+
+    @Override
+    public int getRecommendMode(long userId) {
+        Integer mode = userRecommendMapper.findByUserId(userId);
+        if (mode == null) {
+            return 0;
+        }
+
+        return mode;
+    }
+
+    @Override
+    public void setRecommendMode(long userId, boolean mode) {
+        int modeInt = 0;
+        if (mode) {
+            modeInt = 1;
+        }
+
+        Integer mode1 = userRecommendMapper.findByUserId(userId);
+        if (mode1 == null) {
+            UserRecommend userRecommend = new UserRecommend(userId, modeInt);
+            userRecommendMapper.save(userRecommend);
+        } else if (mode1 != modeInt) {
+            userRecommendMapper.updateMode(userId, mode1);
+        }
+    }
 }

+ 22 - 0
user/user-service/src/main/resources/mapper/UserRecommendMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="cn.reghao.tnb.user.app.db.mapper.UserRecommendMapper">
+    <insert id="save">
+        insert into user_recommend
+        (`user_id`,`mode`,`id`,`deleted`,`create_time`,`update_time`)
+        values
+        (#{userId},#{mode},#{id},#{deleted},#{createTime},#{updateTime})
+    </insert>
+    <update id="updateMode">
+        update user_recommend
+        set `mode`=#{mode}
+        where user_id=#{userId}
+    </update>
+
+    <select id="findByUserId" resultType="java.lang.Integer">
+        select `mode`
+        from user_recommend
+        where user_id=#{userId}
+    </select>
+</mapper>