fix: 官方群公告删除逻辑修复

This commit is contained in:
ql
2025-06-24 18:08:40 +08:00
parent 6358549cd0
commit 0b1f570a0d
3 changed files with 29 additions and 3 deletions

View File

@@ -43,8 +43,10 @@ import com.hula.core.chat.service.adapter.RoomAdapter;
import com.hula.core.chat.service.cache.*;
import com.hula.core.chat.service.strategy.msg.AbstractMsgHandler;
import com.hula.core.chat.service.strategy.msg.MsgHandlerFactory;
import com.hula.core.user.dao.UserBackpackDao;
import com.hula.core.user.dao.UserDao;
import com.hula.core.user.domain.entity.User;
import com.hula.core.user.domain.entity.UserBackpack;
import com.hula.core.user.domain.enums.RoleTypeEnum;
import com.hula.core.user.domain.enums.WsBaseResp;
import com.hula.core.user.domain.vo.req.MergeMessageReq;
@@ -77,8 +79,9 @@ import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class RoomAppServiceImpl implements RoomAppService {
private ContactDao contactDao;
private final UserBackpackDao userBackpackDao;
private ContactDao contactDao;
private RoomCache roomCache;
private RoomGroupCache roomGroupCache;
private RoomFriendCache roomFriendCache;
@@ -374,7 +377,9 @@ public class RoomAppServiceImpl implements RoomAppService {
RoomGroup roomGroup = roomGroupCache.get(resp.getRoomId());
GroupMember groupMember = verifyGroupPermissions(uid, roomGroup);
if(GroupRoleEnum.MEMBER.getType().equals(groupMember.getRole())) {
long count = userBackpackDao.countByUidAndItemId(uid, "HuLa项目贡献者专属徽章");
if(count == 0 && GroupRoleEnum.MEMBER.getType().equals(groupMember.getRole())) {
return false;
}

View File

@@ -1,5 +1,6 @@
package com.hula.core.user.dao;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hula.core.user.domain.entity.ItemConfig;
import com.hula.core.user.mapper.ItemConfigMapper;
@@ -22,4 +23,9 @@ public class ItemConfigDao extends ServiceImpl<ItemConfigMapper, ItemConfig> {
.eq(ItemConfig::getType, type)
.list();
}
public ItemConfig getByDesc(String desc) {
return baseMapper.selectOne(new LambdaQueryWrapper<ItemConfig>()
.eq(ItemConfig::getDescribe, desc));
}
}

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hula.common.enums.YesOrNoEnum;
import com.hula.core.user.domain.entity.ItemConfig;
import com.hula.core.user.domain.entity.UserBackpack;
import com.hula.core.user.mapper.UserBackpackMapper;
import org.springframework.stereotype.Service;
@@ -20,6 +21,12 @@ import java.util.List;
@Service
public class UserBackpackDao extends ServiceImpl<UserBackpackMapper, UserBackpack> {
private final ItemConfigDao itemConfigDao;
public UserBackpackDao(ItemConfigDao itemConfigDao) {
this.itemConfigDao = itemConfigDao;
}
public Integer getCountByValidItemId(Long uid, Long itemId) {
return Math.toIntExact(lambdaQuery().eq(UserBackpack::getUid, uid)
.eq(UserBackpack::getItemId, itemId)
@@ -60,4 +67,12 @@ public class UserBackpackDao extends ServiceImpl<UserBackpackMapper, UserBackpac
public UserBackpack getByIdp(String idempotent) {
return lambdaQuery().eq(UserBackpack::getIdempotent, idempotent).one();
}
public long countByUidAndItemId(Long uid, String desc) {
ItemConfig itemConfig = itemConfigDao.getByDesc(desc);
return baseMapper.selectCount(new LambdaQueryWrapper<UserBackpack>()
.eq(UserBackpack::getUid, uid)
.eq(UserBackpack::getItemId, itemConfig.getId())
);
}
}