From 82c06e75a8f1a0d73d2fb670c99d9485b91a5581 Mon Sep 17 00:00:00 2001 From: wangqx Date: Wed, 3 Sep 2025 13:15:58 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E7=82=B9=E8=B5=9E=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=B6=88=E8=B4=B9?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/app/AppSearchController.java | 3 ++ .../common/mq/enums/MessageActionEnum.java | 8 +++++ .../content/service/impl/VlogServiceImpl.java | 6 +++- .../impl/MQMessageHandleServiceImpl.java | 2 +- .../member/controller/FansController.java | 2 ++ .../wzj/soopin/member/domain/vo/MemberVO.java | 15 ++++++++ .../soopin/member/service/IMemberService.java | 2 ++ .../member/service/impl/FansServiceImpl.java | 26 +++++++------- .../service/impl/MemberServiceImpl.java | 36 ++++++++++++++++++- 9 files changed, 85 insertions(+), 15 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/app/AppSearchController.java b/ruoyi-admin/src/main/java/org/dromara/app/AppSearchController.java index 41a4f288b..e2beca2a4 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/AppSearchController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/AppSearchController.java @@ -46,6 +46,9 @@ public class AppSearchController { } catch (Exception e) { log.error("用户没登陆", e); } + if(searchBO.getTitle()==null || "".equals(searchBO.getTitle())){ + throw new ServiceException("请输入检索内容"); + } IPage pages = null; // 视频检索信息 diff --git a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java index 62a2b14cf..aeb3b7fe2 100644 --- a/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java +++ b/ruoyi-common/ruoyi-common-mq/src/main/java/org/dromara/common/mq/enums/MessageActionEnum.java @@ -43,4 +43,12 @@ public enum MessageActionEnum { } return null; } + public static MessageActionEnum getByAccount(String account) { + for (MessageActionEnum actionEnum : values()) { + if (actionEnum.getAccount().equals(account)) { + return actionEnum; + } + } + return null; + } } diff --git a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java index 253393237..3908fea89 100644 --- a/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java +++ b/ruoyi-modules/ruoyi-content/src/main/java/com/wzj/soopin/content/service/impl/VlogServiceImpl.java @@ -1,6 +1,7 @@ package com.wzj.soopin.content.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -346,7 +347,10 @@ public class VlogServiceImpl extends ServiceImpl implements Vl } // 我取消点赞的视频,关联关系删除 - this.userUnLikeVlog(userId, vlogId); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MyLikedVlog::getUserId, userId); + queryWrapper.eq(MyLikedVlog::getVlogId, vlogId); + myLikedVlogMapper.delete(queryWrapper); cache.zSetDecrement(REDIS_VLOGER_BE_LIKED_COUNTS, vlog.getMemberId(), 1); cache.zSetDecrement(REDIS_VLOG_BE_LIKED_COUNTS, vlogId, 1); diff --git a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java index 2e3b7e420..a81edb311 100644 --- a/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java +++ b/ruoyi-modules/ruoyi-im/src/main/java/com/wzj/soopin/im/service/impl/MQMessageHandleServiceImpl.java @@ -48,7 +48,7 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService { Map params = (Map) message.getData(); String action = (String) params.get("action"); //根据action获取消息模板 - MessageActionEnum actionEnum = MessageActionEnum.valueOf(action); + MessageActionEnum actionEnum = MessageActionEnum.getByAccount(action); SysMessageTemplate template = templateService.getTemplateByAction(actionEnum.getCode()); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java index 3d30cd290..10ae0a817 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/controller/FansController.java @@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; +import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -133,4 +134,5 @@ public class FansController { } + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java index 98fd8f5ab..5d3a0e3d2 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/domain/vo/MemberVO.java @@ -139,5 +139,20 @@ public class MemberVO { /** 内部账号id*/ private Long userId; + /** + * 是否关注 + */ + private Integer followFlag; + + /** + * 是否粉丝 + */ + private Integer fansFlag; + + /** + * 是否好友 + */ + private Integer friendFlag; + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java index 222f8c1c7..4a16bc93a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/IMemberService.java @@ -84,4 +84,6 @@ public interface IMemberService extends IService { * @return */ IPage getMemberPageList(MemberBO bo, Page page); + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java index 33b734cff..9c9de886c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/FansServiceImpl.java @@ -9,11 +9,13 @@ import com.wzj.soopin.member.domain.po.Fans; import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.vo.FansVO; import com.wzj.soopin.member.mapper.FansMapper; +import com.wzj.soopin.member.mapper.MemberMapper; import com.wzj.soopin.member.service.IFansService; import com.wzj.soopin.member.service.IMemberService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.CacheConstants; +import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.enums.YesOrNo; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mq.domain.MQMessage; @@ -22,6 +24,7 @@ import org.dromara.common.mq.utils.MqUtil; import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.utils.RedisUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,12 +40,7 @@ public class FansServiceImpl extends ServiceImpl implements IF private final RedisCache redisCache; - @Autowired - private IMemberService memberService; - - - - + private final MemberMapper memberMapper; @Transactional(rollbackFor = Exception.class) @Override @@ -71,15 +69,15 @@ public class FansServiceImpl extends ServiceImpl implements IF } baseMapper.insert(fans); // 推送关注消息 - Member follower = memberService.getById(myId); - Member vlogger = memberService.getById(vloggerId); + Member follower = memberMapper.selectById(myId); + Member vlogger = memberMapper.selectById(vloggerId); if (follower != null && vlogger != null && !myId.equals(vloggerId)) { // 新版:使用模板类型编号和参数 Map params = new HashMap<>(); params.put("userId", follower.getId()); params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname()); params.put("faceUrl", vlogger.getAvatar() == null ? "" : vlogger.getAvatar()); - params.put("action", MessageActionEnum.NEW_FOUCS.name()); + params.put("action", MessageActionEnum.NEW_FOUCS.getAccount()); params.put("toUserId",vloggerId); MQMessage message = MQMessage.builder() .messageType("follow") @@ -129,15 +127,15 @@ public class FansServiceImpl extends ServiceImpl implements IF RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId); RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId); // 推送取关消息 - Member follower = memberService.getById(myId); - Member vlogger = memberService.getById(vloggerId); + Member follower = memberMapper.selectById(myId); + Member vlogger = memberMapper.selectById(vloggerId); if (follower != null && vlogger != null && !myId.equals(vloggerId)) { // 新版:使用模板类型编号和参数 Map params = new HashMap<>(); params.put("userId", follower.getUserId()); params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname()); params.put("faceUrl", vlogger.getAvatar() == null ? "" : vlogger.getAvatar()); - params.put("action", MessageActionEnum.NEW_FOUCS.name()); + params.put("action", MessageActionEnum.NEW_FOUCS.getAccount()); params.put("toUserId",vloggerId); MQMessage message = MQMessage.builder() .messageType("follow") @@ -208,4 +206,8 @@ public class FansServiceImpl extends ServiceImpl implements IF baseMapper.deleteById(fan.getId()); } } + + + //从缓存中获取我的关注列表 + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java index 4b3689c15..f3efb6edf 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/wzj/soopin/member/service/impl/MemberServiceImpl.java @@ -11,12 +11,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.domain.bo.MemberBO; import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; +import com.wzj.soopin.member.domain.po.Fans; import com.wzj.soopin.member.domain.po.Member; import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.member.mapper.MemberAccountMapper; import com.wzj.soopin.member.mapper.MemberCartMapper; import com.wzj.soopin.member.mapper.MemberMapper; +import com.wzj.soopin.member.service.IFansService; import com.wzj.soopin.member.service.IMemberService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -25,6 +27,7 @@ import org.dromara.common.core.constant.CachePrefix; import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.constant.ResultCode; import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.enums.YesOrNo; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.satoken.utils.LoginHelper; @@ -64,6 +67,7 @@ public class MemberServiceImpl extends ServiceImpl implemen private final MemberConvert memberConvert; private final MemberMapper memberMapper; + private final IFansService fansService; @Override public boolean usernameExists(String username) { @@ -293,6 +297,36 @@ public class MemberServiceImpl extends ServiceImpl implemen */ @Override public IPage getMemberPageList(MemberBO query, Page page) { - return memberMapper.getMember(page, query); + IPage memeberPage= memberMapper.getMember(page, query); + //检查是否是朋友 + LoginUser tokenUser = LoginHelper.getLoginUser(); + if (tokenUser != null) { + List records = memeberPage.getRecords(); + for (MemberVO memberVO : records) { + + boolean followFlag = fansService.queryDoIFollowVloger(tokenUser.getUserId(), memberVO.getId()); + boolean fansFlag = fansService.queryDoIFollowVloger(memberVO.getId(), tokenUser.getUserId()); + + if(followFlag){ + memberVO.setFollowFlag(YesOrNo.YES.type); + }else{ + memberVO.setFollowFlag(YesOrNo.NO.type); + } + if(fansFlag){ + memberVO.setFansFlag(YesOrNo.YES.type); + }else{ + memberVO.setFansFlag(YesOrNo.NO.type); + } + if(followFlag &&fansFlag){ + memberVO.setFriendFlag(YesOrNo.YES.type); + }else{ + memberVO.setFriendFlag(YesOrNo.NO.type); + } + + } + } + return memeberPage; } + + }