123
This commit is contained in:
@@ -13,7 +13,9 @@ import com.ruoyi.cai.dto.app.query.im.ImMessageDTO;
|
||||
*/
|
||||
public interface UserChatRecordService extends IService<UserChatRecord> {
|
||||
|
||||
UserChatRecord saveRecord(User fromUser, User toUser,Long traceId, ImMessageDTO message);
|
||||
UserChatRecord getByCache(String recordId);
|
||||
|
||||
UserChatRecord saveRecord(User fromUser, User toUser, Long traceId, ImMessageDTO message);
|
||||
|
||||
void clearChatRecord(Integer hours);
|
||||
}
|
||||
|
||||
@@ -37,6 +37,8 @@ public interface UserMemberService extends IService<UserMember> {
|
||||
|
||||
void relieveMember(Long id);
|
||||
|
||||
void checkAndUpdateUser(Long userId);
|
||||
|
||||
MemberInfoVo memberApp(Long userId, Integer type);
|
||||
|
||||
void updateRankHide(UpdateRankHideReq updateRankHideReq);
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.ruoyi.cai.dto.app.query.index.UserQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserInfoVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserMinInfoVo;
|
||||
import com.ruoyi.cai.dto.commom.user.MinUser;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
/**
|
||||
@@ -21,6 +22,10 @@ public interface UserService extends IService<User> {
|
||||
|
||||
User getByUsername(String username);
|
||||
|
||||
MinUser getMinUserByIdBomCache(Long userId);
|
||||
|
||||
MinUser getMinUserById(Long userId);
|
||||
|
||||
Page<UserAdminVo> pageAdmin(PageQuery pageQuery, UserAdminVo query);
|
||||
|
||||
Page<UserListVo> pageApp(PageQuery page, UserQuery query);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.constant.RedisHttpConstant;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.domain.UserChatRecord;
|
||||
import com.ruoyi.cai.dto.app.query.im.ImMessageDTO;
|
||||
@@ -9,10 +10,14 @@ import com.ruoyi.cai.mapper.UserChatRecordMapper;
|
||||
import com.ruoyi.cai.service.UserChatRecordService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.redisson.api.RBucket;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -25,6 +30,16 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class UserChatRecordServiceImpl extends ServiceImpl<UserChatRecordMapper,UserChatRecord> implements UserChatRecordService {
|
||||
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
|
||||
@Override
|
||||
public UserChatRecord getByCache(String recordId){
|
||||
String key = String.format(RedisHttpConstant.CHAT_RECORD_CACHE_REDIS, recordId);
|
||||
RBucket<UserChatRecord> bucket = redissonClient.getBucket(key);
|
||||
return bucket.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserChatRecord saveRecord(User fromUser, User toUser,Long traceId, ImMessageDTO message) {
|
||||
UserChatRecord userChatRecord = new UserChatRecord();
|
||||
@@ -37,6 +52,9 @@ public class UserChatRecordServiceImpl extends ServiceImpl<UserChatRecordMapper,
|
||||
userChatRecord.setCreateTime(LocalDateTime.now());
|
||||
userChatRecord.setTraceId(traceId);
|
||||
this.save(userChatRecord);
|
||||
String key = String.format(RedisHttpConstant.CHAT_RECORD_CACHE_REDIS, userChatRecord.getId());
|
||||
RBucket<UserChatRecord> bucket = redissonClient.getBucket(key);
|
||||
bucket.set(userChatRecord,10, TimeUnit.MINUTES);
|
||||
return userChatRecord;
|
||||
}
|
||||
|
||||
|
||||
@@ -102,6 +102,17 @@ public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMem
|
||||
.set(UserMember::getMemberStatus, MemberStatusEnum.FAIL.getCode()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkAndUpdateUser(Long userId){
|
||||
UserMemberTypeEnum typeEnum = checkUserIsMember(userId);
|
||||
if(typeEnum == null){
|
||||
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId, userId)
|
||||
.set(User::getNoGreet, 0)
|
||||
.set(User::getRankHide, 0));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public MemberInfoVo memberApp(Long userId, Integer type) {
|
||||
User user = userService.getById(userId);
|
||||
|
||||
@@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.auth.CaiLoginManager;
|
||||
import com.ruoyi.cai.constant.RedisHttpConstant;
|
||||
import com.ruoyi.cai.domain.*;
|
||||
import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
|
||||
import com.ruoyi.cai.dto.app.query.index.GreetQuery;
|
||||
import com.ruoyi.cai.dto.app.query.index.UserMapperQuery;
|
||||
import com.ruoyi.cai.dto.app.query.index.UserQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.user.*;
|
||||
import com.ruoyi.cai.dto.commom.user.MinUser;
|
||||
import com.ruoyi.cai.enums.GenderEnum;
|
||||
import com.ruoyi.cai.im.ImManager;
|
||||
import com.ruoyi.cai.mapper.UserMapper;
|
||||
@@ -23,12 +25,15 @@ import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.redisson.api.RBucket;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 用户Service业务层处理
|
||||
@@ -81,6 +86,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
private ImManager imManager;
|
||||
@Autowired
|
||||
private YunxinHttpService yunxinHttpService;
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
|
||||
@Override
|
||||
public User getByUsername(String username) {
|
||||
@@ -88,6 +95,30 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
.eq(User::getMobile,username));
|
||||
}
|
||||
|
||||
@Override
|
||||
public MinUser getMinUserByIdBomCache(Long userId){
|
||||
if(userId == null){
|
||||
return null;
|
||||
}
|
||||
String redisKey = String.format(RedisHttpConstant.MIN_USER_IM_REDIS, userId);
|
||||
RBucket<MinUser> bucket = redissonClient.getBucket(redisKey);
|
||||
MinUser user = bucket.get();
|
||||
if(user != null){
|
||||
return user;
|
||||
}
|
||||
MinUser minUser = this.getMinUserById(userId);
|
||||
if(minUser == null){
|
||||
return null;
|
||||
}
|
||||
bucket.set(minUser,3, TimeUnit.HOURS);
|
||||
return minUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MinUser getMinUserById(Long userId) {
|
||||
return baseMapper.getMinUserById(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<UserAdminVo> pageAdmin(PageQuery pageQuery, UserAdminVo query) {
|
||||
return baseMapper.pageAdmin(pageQuery.build(),query);
|
||||
|
||||
Reference in New Issue
Block a user