[fix]修改取消点赞,修改消费消息

This commit is contained in:
wangqx 2025-09-03 13:15:58 +08:00
parent 5e6f6c9c3d
commit 82c06e75a8
9 changed files with 85 additions and 15 deletions

View File

@ -46,6 +46,9 @@ public class AppSearchController {
} catch (Exception e) { } catch (Exception e) {
log.error("用户没登陆", e); log.error("用户没登陆", e);
} }
if(searchBO.getTitle()==null || "".equals(searchBO.getTitle())){
throw new ServiceException("请输入检索内容");
}
IPage<?> pages = null; IPage<?> pages = null;
// 视频检索信息 // 视频检索信息

View File

@ -43,4 +43,12 @@ public enum MessageActionEnum {
} }
return null; return null;
} }
public static MessageActionEnum getByAccount(String account) {
for (MessageActionEnum actionEnum : values()) {
if (actionEnum.getAccount().equals(account)) {
return actionEnum;
}
}
return null;
}
} }

View File

@ -1,6 +1,7 @@
package com.wzj.soopin.content.service.impl; package com.wzj.soopin.content.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -346,7 +347,10 @@ public class VlogServiceImpl extends ServiceImpl<VlogMapper, Vlog> implements Vl
} }
// 我取消点赞的视频关联关系删除 // 我取消点赞的视频关联关系删除
this.userUnLikeVlog(userId, vlogId); LambdaQueryWrapper<MyLikedVlog> 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_VLOGER_BE_LIKED_COUNTS, vlog.getMemberId(), 1);
cache.zSetDecrement(REDIS_VLOG_BE_LIKED_COUNTS, vlogId, 1); cache.zSetDecrement(REDIS_VLOG_BE_LIKED_COUNTS, vlogId, 1);

View File

@ -48,7 +48,7 @@ public class MQMessageHandleServiceImpl implements IMQMessageHandleService {
Map<String, Object> params = (Map<String, Object>) message.getData(); Map<String, Object> params = (Map<String, Object>) message.getData();
String action = (String) params.get("action"); String action = (String) params.get("action");
//根据action获取消息模板 //根据action获取消息模板
MessageActionEnum actionEnum = MessageActionEnum.valueOf(action); MessageActionEnum actionEnum = MessageActionEnum.getByAccount(action);
SysMessageTemplate template = templateService.getTemplateByAction(actionEnum.getCode()); SysMessageTemplate template = templateService.getTemplateByAction(actionEnum.getCode());

View File

@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@ -133,4 +134,5 @@ public class FansController {
} }
} }

View File

@ -139,5 +139,20 @@ public class MemberVO {
/** 内部账号id*/ /** 内部账号id*/
private Long userId; private Long userId;
/**
* 是否关注
*/
private Integer followFlag;
/**
* 是否粉丝
*/
private Integer fansFlag;
/**
* 是否好友
*/
private Integer friendFlag;
} }

View File

@ -84,4 +84,6 @@ public interface IMemberService extends IService<Member> {
* @return * @return
*/ */
IPage<MemberVO> getMemberPageList(MemberBO bo, Page<Member> page); IPage<MemberVO> getMemberPageList(MemberBO bo, Page<Member> page);
} }

View File

@ -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.po.Member;
import com.wzj.soopin.member.domain.vo.FansVO; import com.wzj.soopin.member.domain.vo.FansVO;
import com.wzj.soopin.member.mapper.FansMapper; 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.IFansService;
import com.wzj.soopin.member.service.IMemberService; import com.wzj.soopin.member.service.IMemberService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.constant.CacheConstants; 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.enums.YesOrNo;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mq.domain.MQMessage; 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.redis.RedisCache;
import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.redis.utils.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -37,12 +40,7 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
private final RedisCache redisCache; private final RedisCache redisCache;
@Autowired private final MemberMapper memberMapper;
private IMemberService memberService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
@ -71,15 +69,15 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
} }
baseMapper.insert(fans); baseMapper.insert(fans);
// 推送关注消息 // 推送关注消息
Member follower = memberService.getById(myId); Member follower = memberMapper.selectById(myId);
Member vlogger = memberService.getById(vloggerId); Member vlogger = memberMapper.selectById(vloggerId);
if (follower != null && vlogger != null && !myId.equals(vloggerId)) { if (follower != null && vlogger != null && !myId.equals(vloggerId)) {
// 新版使用模板类型编号和参数 // 新版使用模板类型编号和参数
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("userId", follower.getId()); params.put("userId", follower.getId());
params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname()); params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname());
params.put("faceUrl", vlogger.getAvatar() == null ? "" : vlogger.getAvatar()); 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); params.put("toUserId",vloggerId);
MQMessage message = MQMessage.builder() MQMessage message = MQMessage.builder()
.messageType("follow") .messageType("follow")
@ -129,15 +127,15 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId); RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId);
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId); RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId);
// 推送取关消息 // 推送取关消息
Member follower = memberService.getById(myId); Member follower = memberMapper.selectById(myId);
Member vlogger = memberService.getById(vloggerId); Member vlogger = memberMapper.selectById(vloggerId);
if (follower != null && vlogger != null && !myId.equals(vloggerId)) { if (follower != null && vlogger != null && !myId.equals(vloggerId)) {
// 新版使用模板类型编号和参数 // 新版使用模板类型编号和参数
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("userId", follower.getUserId()); params.put("userId", follower.getUserId());
params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname()); params.put("nickname", follower.getNickname() == null ? "" : follower.getNickname());
params.put("faceUrl", vlogger.getAvatar() == null ? "" : vlogger.getAvatar()); 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); params.put("toUserId",vloggerId);
MQMessage message = MQMessage.builder() MQMessage message = MQMessage.builder()
.messageType("follow") .messageType("follow")
@ -208,4 +206,8 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
baseMapper.deleteById(fan.getId()); baseMapper.deleteById(fan.getId());
} }
} }
//从缓存中获取我的关注列表
} }

View File

@ -11,12 +11,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.member.convert.MemberConvert; import com.wzj.soopin.member.convert.MemberConvert;
import com.wzj.soopin.member.domain.bo.MemberBO; import com.wzj.soopin.member.domain.bo.MemberBO;
import com.wzj.soopin.member.domain.form.ChangeMemberStatusForm; 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.Member;
import com.wzj.soopin.member.domain.po.MemberAccount; import com.wzj.soopin.member.domain.po.MemberAccount;
import com.wzj.soopin.member.domain.vo.MemberVO; import com.wzj.soopin.member.domain.vo.MemberVO;
import com.wzj.soopin.member.mapper.MemberAccountMapper; import com.wzj.soopin.member.mapper.MemberAccountMapper;
import com.wzj.soopin.member.mapper.MemberCartMapper; import com.wzj.soopin.member.mapper.MemberCartMapper;
import com.wzj.soopin.member.mapper.MemberMapper; import com.wzj.soopin.member.mapper.MemberMapper;
import com.wzj.soopin.member.service.IFansService;
import com.wzj.soopin.member.service.IMemberService; import com.wzj.soopin.member.service.IMemberService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; 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.GlobalConstants;
import org.dromara.common.core.constant.ResultCode; import org.dromara.common.core.constant.ResultCode;
import org.dromara.common.core.domain.model.LoginUser; 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.core.exception.ServiceException;
import org.dromara.common.redis.redis.RedisCache; import org.dromara.common.redis.redis.RedisCache;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
@ -64,6 +67,7 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
private final MemberConvert memberConvert; private final MemberConvert memberConvert;
private final MemberMapper memberMapper; private final MemberMapper memberMapper;
private final IFansService fansService;
@Override @Override
public boolean usernameExists(String username) { public boolean usernameExists(String username) {
@ -293,6 +297,36 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper,Member> implemen
*/ */
@Override @Override
public IPage<MemberVO> getMemberPageList(MemberBO query, Page<Member> page) { public IPage<MemberVO> getMemberPageList(MemberBO query, Page<Member> page) {
return memberMapper.getMember(page, query); IPage<MemberVO> memeberPage= memberMapper.getMember(page, query);
//检查是否是朋友
LoginUser tokenUser = LoginHelper.getLoginUser();
if (tokenUser != null) {
List<MemberVO> 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;
}
}