[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) {
log.error("用户没登陆", e);
}
if(searchBO.getTitle()==null || "".equals(searchBO.getTitle())){
throw new ServiceException("请输入检索内容");
}
IPage<?> pages = null;
// 视频检索信息

View File

@ -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;
}
}

View File

@ -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<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_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();
String action = (String) params.get("action");
//根据action获取消息模板
MessageActionEnum actionEnum = MessageActionEnum.valueOf(action);
MessageActionEnum actionEnum = MessageActionEnum.getByAccount(action);
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.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 {
}
}

View File

@ -139,5 +139,20 @@ public class MemberVO {
/** 内部账号id*/
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
*/
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.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<FansMapper, Fans> 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<FansMapper, Fans> 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<String, Object> 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<FansMapper, Fans> 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<String, Object> 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<FansMapper, Fans> implements IF
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.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<MemberMapper,Member> 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<MemberMapper,Member> implemen
*/
@Override
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;
}
}