[fix]修改消息

This commit is contained in:
wangqx 2025-09-24 12:05:00 +08:00
parent 1238837d62
commit 9ad1de7d1c
15 changed files with 37 additions and 79 deletions

View File

@ -89,7 +89,7 @@ public class AppMemberController {
}
memberId = loginUser.getUserId();
}
return R.ok(service.getMemberInfo(memberId));
return R.ok(memberBusiness.info(memberId));
}
@Operation(summary = "获取会员账户表详细信息")

View File

@ -1,17 +1,8 @@
package com.wzj.soopin.content.domain.base;
package org.dromara.common.core.constant;
import com.wzj.soopin.content.utils.PagedGridResult;
import com.wzj.soopin.content.utils.RedisOperator;
import org.dromara.common.redis.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
public class BaseInfoProperties {
public RedisCache redis;
public static final Integer COMMON_START_PAGE = 1;
public static final Integer COMMON_START_PAGE_ZERO = 0;

View File

@ -1,6 +1,6 @@
package com.wzj.soopin.content.controller;
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
import org.dromara.common.core.constant.BaseInfoProperties;
import com.wzj.soopin.content.domain.mo.MessageMO;
import org.dromara.common.core.domain.R;
import com.wzj.soopin.content.service.MsgService;

View File

@ -3,7 +3,7 @@ package com.wzj.soopin.content.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
import org.dromara.common.core.constant.BaseInfoProperties;
import com.wzj.soopin.content.domain.bo.VlogBO;
import com.wzj.soopin.content.domain.vo.IndexVlogVO;
import com.wzj.soopin.content.enums.YesOrNo;

View File

@ -1,13 +1,12 @@
package com.wzj.soopin.content.controller.admin;
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
import org.dromara.common.core.constant.BaseInfoProperties;
import com.wzj.soopin.content.service.VlogService;
import com.wzj.soopin.content.service.VlogUploadService;
import com.wzj.soopin.content.utils.RedisOperator;
import com.wzj.soopin.content.utils.TencentCloudUtil;
import com.wzj.soopin.member.service.IFansService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

View File

@ -1,35 +1,26 @@
package com.wzj.soopin.content.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
import org.dromara.common.core.constant.BaseInfoProperties;
import com.wzj.soopin.content.domain.bo.CommentBO;
import com.wzj.soopin.content.domain.po.Comment;
import com.wzj.soopin.content.domain.po.Vlog;
import com.wzj.soopin.content.domain.po.Users;
import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.content.domain.vo.ChildCommentVO;
import com.wzj.soopin.content.domain.vo.CommentVO;
import com.wzj.soopin.content.enums.MessageEnum;
import com.wzj.soopin.content.enums.YesOrNo;
import com.wzj.soopin.content.mapper.CommentMapper;
import com.wzj.soopin.content.mapper.CommentMapperCustom;
import com.wzj.soopin.content.mapper.UsersMapper;
import com.wzj.soopin.member.mapper.MemberMapper;
import com.wzj.soopin.content.mapper.VlogMapper;
import com.wzj.soopin.content.service.CommentService;
import com.wzj.soopin.content.service.MsgService;
import com.wzj.soopin.content.service.VlogService;
import com.wzj.soopin.content.utils.PagedGridResult;
import com.wzj.soopin.content.utils.Sid;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.mq.domain.MQMessage;
import org.dromara.common.mq.enums.MQMessageType;
import org.dromara.common.mq.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -38,7 +29,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.redis.redis.RedisCache;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;

View File

@ -1,7 +1,7 @@
package com.wzj.soopin.content.service.impl;
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
import org.dromara.common.core.constant.BaseInfoProperties;
import com.wzj.soopin.content.domain.mo.MessageMO;
import com.wzj.soopin.content.enums.MessageEnum;
import com.wzj.soopin.content.mapper.repository.MessageRepository;
@ -10,6 +10,7 @@ import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.member.mapper.MemberMapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.dromara.common.redis.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
@ -25,11 +26,12 @@ import java.util.Map;
@RequiredArgsConstructor
public class MsgServiceImpl extends BaseInfoProperties implements MsgService {
@Autowired
private MessageRepository messageRepository;
private final MessageRepository messageRepository;
private final MemberMapper memberMapper;
private final RedisCache cache;
@Override
public void createMsg(String fromUserId,
String toUserId,
@ -80,7 +82,7 @@ public class MsgServiceImpl extends BaseInfoProperties implements MsgService {
map = new HashMap<>();
}
String relationship = redis.getCacheObject(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + msg.getToUserId() + ":" + msg.getFromUserId());
String relationship = cache.getCacheObject(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + msg.getToUserId() + ":" + msg.getFromUserId());
if (StringUtils.isNotBlank(relationship) && relationship.equalsIgnoreCase("1")) {
map.put("isFriend", true);
} else {

View File

@ -16,7 +16,6 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.message.MessageExt;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.json.utils.JsonUtils;
import org.dromara.common.mq.domain.MQMessage;
@ -30,8 +29,8 @@ import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import static com.wzj.soopin.content.domain.base.BaseInfoProperties.REDIS_USER_LIKE_VLOG;
import static com.wzj.soopin.content.domain.base.BaseInfoProperties.REDIS_VLOG_COMMENT_COUNTS;
import static org.dromara.common.core.constant.BaseInfoProperties.REDIS_USER_LIKE_VLOG;
import static org.dromara.common.core.constant.BaseInfoProperties.REDIS_VLOG_COMMENT_COUNTS;
import static org.dromara.common.core.constant.GlobalConstants.HOT_VLOG_TAG;
@Service

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wzj.soopin.content.domain.po.Vlog;
import com.wzj.soopin.content.service.IVlogPushService;
import com.wzj.soopin.content.service.VlogService;
import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.member.service.IMemberService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -23,7 +22,7 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import static com.wzj.soopin.content.domain.base.BaseInfoProperties.REDIS_VLOG_BE_LIKED_COUNTS;
import static org.dromara.common.core.constant.BaseInfoProperties.REDIS_VLOG_BE_LIKED_COUNTS;
import static org.dromara.common.core.constant.GlobalConstants.HOT_VLOG_TAG;
@Service

View File

@ -1,8 +1,6 @@
package com.wzj.soopin.content.service.impl;
import cn.hutool.json.JSONUtil;
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;
@ -10,30 +8,24 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
import com.wzj.soopin.content.domain.bo.*;
import com.wzj.soopin.content.domain.po.MyLikedVlog;
import com.wzj.soopin.content.domain.po.Vlog;
import com.wzj.soopin.content.domain.po.Users;
import com.wzj.soopin.content.domain.vo.VlogerVO;
import com.wzj.soopin.content.enums.VlogStatusEnum;
import com.wzj.soopin.member.domain.po.Member;
import com.wzj.soopin.content.domain.vo.IndexVlogVO;
import com.wzj.soopin.content.enums.YesOrNo;
import com.wzj.soopin.content.mapper.CommentMapper;
import com.wzj.soopin.content.mapper.MyLikedVlogMapper;
import com.wzj.soopin.content.mapper.UsersMapper;
import com.wzj.soopin.member.domain.vo.MemberVO;
import com.wzj.soopin.member.mapper.MemberMapper;
import com.wzj.soopin.content.mapper.VlogMapper;
import com.wzj.soopin.content.mapper.VlogMapperCustom;
import com.wzj.soopin.content.service.MsgService;
import com.wzj.soopin.content.service.VlogService;
import com.wzj.soopin.content.utils.PagedGridResult;
import com.wzj.soopin.content.utils.RedisOperator;
import com.wzj.soopin.content.utils.Sid;
import com.wzj.soopin.content.utils.TencentCloudUtil;
import com.wzj.soopin.member.service.IFansService;
import com.wzj.soopin.content.convert.VlogConvert;
import com.wzj.soopin.member.service.IMemberService;
@ -44,13 +36,10 @@ import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.mq.config.RocketMQConfig;
import org.dromara.common.mq.domain.MQMessage;
import org.dromara.common.mq.enums.MQMessageType;
import org.dromara.common.mq.enums.MessageActionEnum;
import org.dromara.common.mq.utils.MqUtil;
import org.dromara.common.mq.utils.UserRocketMQConsumerManager;
import org.dromara.common.redis.redis.RedisCache;
import org.dromara.common.satoken.utils.LoginHelper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
@ -61,14 +50,13 @@ import org.dromara.common.core.utils.MapstructUtils;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import java.util.ArrayList;
import lombok.extern.slf4j.Slf4j;
import static com.wzj.soopin.content.domain.base.BaseInfoProperties.*;
import static org.dromara.common.core.constant.BaseInfoProperties.*;
@Slf4j
@Service

View File

@ -2,16 +2,11 @@ package com.wzj.soopin.content.service.impl;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.vod.v20180717.VodClient;
import com.tencentcloudapi.vod.v20180717.models.DescribeTaskDetailRequest;
import com.tencentcloudapi.vod.v20180717.models.DescribeTaskDetailResponse;
import com.tencentcloudapi.vod.v20180717.models.PullUploadRequest;
import com.tencentcloudapi.vod.v20180717.models.PullUploadResponse;
import com.tencentcloudapi.vod.v20180717.models.SearchMediaRequest;
import com.tencentcloudapi.vod.v20180717.models.SearchMediaResponse;
import com.wzj.soopin.content.domain.vo.CommentVO;
import com.wzj.soopin.content.service.VlogUploadService;
import com.wzj.soopin.content.utils.TencentCloudUtil;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.constant.BaseInfoProperties;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.redis.redis.RedisCache;
@ -20,7 +15,6 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -200,10 +194,10 @@ public class VlogUploadServiceImpl implements VlogUploadService {
}
// 2. 点赞数量优先 Redis无则 MySQL
int likeCounts=redisCache.zSetScore(com.wzj.soopin.content.domain.base.BaseInfoProperties.REDIS_VLOG_BE_LIKED_COUNTS , vlogId).intValue();
int likeCounts=redisCache.zSetScore(BaseInfoProperties.REDIS_VLOG_BE_LIKED_COUNTS , vlogId).intValue();
// 3. 评论数量优先 Redis无则 MySQL
int commentCounts=redisCache.zSetScore(com.wzj.soopin.content.domain.base.BaseInfoProperties.REDIS_VLOG_COMMENT_COUNTS , vlogId).intValue();
int commentCounts=redisCache.zSetScore(BaseInfoProperties.REDIS_VLOG_COMMENT_COUNTS , vlogId).intValue();
// 4. 评论内容只查 MySQL

View File

@ -12,13 +12,17 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.redis.redis.RedisCache;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BusinessImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.time.LocalDateTime;
import static org.dromara.common.core.constant.BaseInfoProperties.*;
@Service
@AllArgsConstructor
@Slf4j
@ -26,6 +30,7 @@ public class MemberBusinessImpl extends BusinessImpl<IMemberService, MemberConve
implements IMemberBusiness {
private final IFansService fansService;
private final RedisCache cache;
@Override
public void bindSpread(MemberBO memberBO) {
//获取用户信息
@ -75,5 +80,15 @@ public class MemberBusinessImpl extends BusinessImpl<IMemberService, MemberConve
}
@Override
public MemberVO info(Serializable id) {
MemberVO vo= super.info(id);
Double score = cache.zSetScore(REDIS_VLOGER_BE_LIKED_COUNTS, String.valueOf(id));
vo.setVlogLikeCount(score != null ? score.intValue() : 0);
Double myFansCount= cache.zSetScore(REDIS_MY_FANS_COUNTS, String.valueOf(id));
vo.setFansCount(myFansCount != null ? myFansCount.intValue() : 0);
Double myFollowCount= cache.zSetScore(REDIS_MY_FOLLOWS_COUNTS, String.valueOf(id));
vo.setFollowCount(myFollowCount != null ? myFollowCount.intValue() : 0);
return vo;
}
}

View File

@ -70,6 +70,7 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
fans.setFriendFlag(YesOrNo.YES.type);
}
baseMapper.insert(fans);
MqUtil.sendIMMessage(buildMessage(fans));
return true;
}
@ -133,25 +134,6 @@ public class FansServiceImpl extends ServiceImpl<FansMapper, Fans> implements IF
// 博主的粉丝-1我的关注-1
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FANS + ":" + vloggerId);
RedisUtils.decrAtomicValue(CacheConstants.MEMBER_FOLLOW + ":" + myId);
// 推送取关消息
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() );
params.put("action", MessageActionEnum.NEW_FOUCS.getAccount());
params.put("toUserId", vloggerId);
MQMessage message = MQMessage.builder()
.messageType("follow")
.data(params)
.source("member")
.build();
// 关注消息
MqUtil.sendIMMessage(message);
}
return true;
}

View File

@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select * from ums_member
<where>
<if test="query.nickname != null and query.nickname != ''">
and nickname LIKE CONCAT('%', #{query.nickname}, '%')
and (nickname LIKE CONCAT('%', #{query.nickname}, '%') or phone_hidden LIKE CONCAT('%', #{query.nickname}, '%'))
</if>
</where>
</select>

View File

@ -100,5 +100,4 @@ public class PayOrder extends BaseAudit {
@TableField(value = "del_flag", fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR)
private String delFlag;
private String title;
}