This commit is contained in:
77
2024-03-31 19:30:36 +08:00
parent 936338e4b8
commit beee0998d9
11 changed files with 103 additions and 38 deletions

View File

@@ -203,7 +203,7 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
LocalDateTime deleteTimeFlag = LocalDateTime.now().plusHours(-hours);
while (true){
List<Dynamic> list = this.list(Wrappers.lambdaUpdate(Dynamic.class)
.eq(Dynamic::getAuditStatus, AuditStatusEnum.AUDITING.getCode())
.ne(Dynamic::getAuditStatus, AuditStatusEnum.AUDITING.getCode())
.lt(Dynamic::getCreateTime, deleteTimeFlag)
.isNull(Dynamic::getSort)
.last("limit 100"));
@@ -213,11 +213,18 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
index++;
for (Dynamic dynamic : list) {
DynamicService dynamicService = SpringUtil.getBean(DynamicService.class);
dynamicService.deleteDynamic(dynamic.getId());
dynamicService.deleteDynamicAdmin(dynamic.getId());
}
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteDynamicAdmin(Long id){
this.removeById(id);
dynamicImagesService.removeByDynamicId(id);
}
@Override
public boolean auditSuccess(List<Long> ids) {
return this.update(Wrappers.lambdaUpdate(Dynamic.class)

View File

@@ -12,6 +12,7 @@ import com.ruoyi.cai.dto.app.query.star.BatchStarReq;
import com.ruoyi.cai.dto.app.vo.user.UserBaseVo;
import com.ruoyi.cai.dto.app.vo.user.UserStarOrVisitorList;
import com.ruoyi.cai.enums.GenderEnum;
import com.ruoyi.cai.manager.LockManager;
import com.ruoyi.cai.mapper.UserFollowMapper;
import com.ruoyi.cai.notice.YunxinHttpService;
import com.ruoyi.cai.service.UserCountService;
@@ -23,6 +24,8 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +54,8 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
private YunxinHttpService yunxinHttpService;
@Autowired
private UserService userService;
@Autowired
private RedissonClient redissonClient;
@Override
public Long getFansNumByUserId(Long userId){
@@ -119,26 +124,56 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
if(GenderEnum.MAN.getCode().equals(user.getGender()) && GenderEnum.MAN.getCode().equals(toUser.getGender())){
throw new ServiceException("无法不能关注男用户哦");
}
this.remove(Wrappers.lambdaQuery(UserFollow.class)
.eq(UserFollow::getUserId,fromUserId)
.eq(UserFollow::getFollowUser, starOrVisitorReq.getToUserId()));
UserFollow userFollow = new UserFollow();
userFollow.setUserId(fromUserId);
userFollow.setFollowUser(starOrVisitorReq.getToUserId());
this.save(userFollow);
userCountService.star(fromUserId, starOrVisitorReq.getToUserId());
// 给你关注的人发消息
yunxinHttpService.followedSendMessage(starOrVisitorReq.getToUserId(), user, LocalDateTime.now());
String userStarRedis = LockManager.getUserStarRedis(fromUserId, toUser.getId());
RLock lock = redissonClient.getLock(userStarRedis);
try {
if(lock.isLocked()){
throw new ServiceException("请勿频繁操作哦");
}
lock.lock();
UserFollow one = this.getOne(Wrappers.lambdaQuery(UserFollow.class)
.eq(UserFollow::getUserId, fromUserId)
.eq(UserFollow::getFollowUser, toUser.getId()));
if(one == null){
UserFollow userFollow = new UserFollow();
userFollow.setUserId(fromUserId);
userFollow.setFollowUser(starOrVisitorReq.getToUserId());
this.save(userFollow);
userCountService.star(fromUserId, starOrVisitorReq.getToUserId());
// 给你关注的人发消息
yunxinHttpService.followedSendMessage(starOrVisitorReq.getToUserId(), user, LocalDateTime.now());
}
}finally {
try {
lock.unlock();
}catch (Exception e){
}
}
return true;
}
@Override
public boolean unStar(StarOrVisitorReq starOrVisitorReq) {
Long fromUserId = LoginHelper.getUserId();
this.remove(Wrappers.lambdaQuery(UserFollow.class)
.eq(UserFollow::getUserId,fromUserId)
.eq(UserFollow::getFollowUser, starOrVisitorReq.getToUserId()));
userCountService.unStar(fromUserId, starOrVisitorReq.getToUserId());
String userStarRedis = LockManager.getUserStarRedis(fromUserId, starOrVisitorReq.getToUserId());
RLock lock = redissonClient.getLock(userStarRedis);
try {
if(lock.isLocked()){
throw new ServiceException("请勿频繁操作哦");
}
lock.lock();
boolean remove = this.remove(Wrappers.lambdaQuery(UserFollow.class)
.eq(UserFollow::getUserId, fromUserId)
.eq(UserFollow::getFollowUser, starOrVisitorReq.getToUserId()));
if(remove){
userCountService.unStar(fromUserId, starOrVisitorReq.getToUserId());
}
}finally {
try {
lock.unlock();
}catch (Exception e){
}
}
return true;
}

View File

@@ -65,7 +65,7 @@ public class UserPictureAuditServiceImpl extends ServiceImpl<UserPictureAuditMap
.eq(User::getId, userPictureAudit.getUserId())
.set(User::getAvatar, userPictureAudit.getUrl())
.set(User::getAvatarState, 1));
imManager.updateImInfo(userPictureAudit.getUserId(), userPictureAudit.getUrl(), null);
imManager.updateImInfo(userPictureAudit.getUserId(), userPictureAudit.getUrl(), null,null);
try {
anchorApplyService.checkAnchorAuto(userPictureAudit.getUserId());
}catch (Exception e){

View File

@@ -290,7 +290,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if(!update){
return;
}
imManager.updateImInfo(user.getId(), null, "用户" + user.getUsercode());
imManager.updateImInfo(user.getId(), null, "用户" + user.getUsercode(),user.getGender());
yunxinHttpService.nickAuditMessage(id);
}
@@ -309,7 +309,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
.eq(User::getId,user.getId())
.set(User::getAvatar,genderEnum.getDefaultAvatar())
.set(User::getAvatarState, 0));
imManager.updateImInfo(user.getId(), genderEnum.getDefaultAvatar(), null);
imManager.updateImInfo(user.getId(), genderEnum.getDefaultAvatar(), null,user.getGender());
}
@Override