Commit 5a2d9d14df7b90e468bac1a6c0dc530f975b8a28
1 parent
7fd497fc
会员: 删除用户标签, 用户等级时, 校验是否关联了用户
Showing
3 changed files
with
33 additions
and
3 deletions
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java
| @@ -67,4 +67,14 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> { | @@ -67,4 +67,14 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> { | ||
| 67 | default Long selectCountByGroupId(Long groupId) { | 67 | default Long selectCountByGroupId(Long groupId) { |
| 68 | return selectCount(MemberUserDO::getGroupId, groupId); | 68 | return selectCount(MemberUserDO::getGroupId, groupId); |
| 69 | } | 69 | } |
| 70 | + | ||
| 71 | + default Long selectCountByLevelId(Long levelId) { | ||
| 72 | + return selectCount(MemberUserDO::getLevelId, levelId); | ||
| 73 | + } | ||
| 74 | + | ||
| 75 | + default Long selectCountByTagId(Long tagId) { | ||
| 76 | + return selectCount(new LambdaQueryWrapperX<MemberUserDO>() | ||
| 77 | + .apply("FIND_IN_SET({0}, tag_ids)", tagId)); | ||
| 78 | + } | ||
| 79 | + | ||
| 70 | } | 80 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImpl.java
| @@ -74,9 +74,10 @@ public class MemberLevelServiceImpl implements MemberLevelService { | @@ -74,9 +74,10 @@ public class MemberLevelServiceImpl implements MemberLevelService { | ||
| 74 | 74 | ||
| 75 | @Override | 75 | @Override |
| 76 | public void deleteLevel(Long id) { | 76 | public void deleteLevel(Long id) { |
| 77 | - // TODO @疯狂:校验是否有用户使用该等级 | ||
| 78 | // 校验存在 | 77 | // 校验存在 |
| 79 | validateLevelExists(id); | 78 | validateLevelExists(id); |
| 79 | + // 校验分组下是否有用户 | ||
| 80 | + validateLevelHasUser(id); | ||
| 80 | // 删除 | 81 | // 删除 |
| 81 | levelMapper.deleteById(id); | 82 | levelMapper.deleteById(id); |
| 82 | } | 83 | } |
| @@ -149,6 +150,14 @@ public class MemberLevelServiceImpl implements MemberLevelService { | @@ -149,6 +150,14 @@ public class MemberLevelServiceImpl implements MemberLevelService { | ||
| 149 | validateExperienceOutRange(list, id, level, experience); | 150 | validateExperienceOutRange(list, id, level, experience); |
| 150 | } | 151 | } |
| 151 | 152 | ||
| 153 | + @VisibleForTesting | ||
| 154 | + void validateLevelHasUser(Long id) { | ||
| 155 | + Long count = memberUserMapper.selectCountByLevelId(id); | ||
| 156 | + if (count > 0) { | ||
| 157 | + throw exception(GROUP_HAS_USER); | ||
| 158 | + } | ||
| 159 | + } | ||
| 160 | + | ||
| 152 | @Override | 161 | @Override |
| 153 | public MemberLevelDO getLevel(Long id) { | 162 | public MemberLevelDO getLevel(Long id) { |
| 154 | return levelMapper.selectById(id); | 163 | return levelMapper.selectById(id); |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/tag/MemberTagServiceImpl.java
| @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagUpdateReq | @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagUpdateReq | ||
| 10 | import cn.iocoder.yudao.module.member.convert.tag.MemberTagConvert; | 10 | import cn.iocoder.yudao.module.member.convert.tag.MemberTagConvert; |
| 11 | import cn.iocoder.yudao.module.member.dal.dataobject.tag.MemberTagDO; | 11 | import cn.iocoder.yudao.module.member.dal.dataobject.tag.MemberTagDO; |
| 12 | import cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper; | 12 | import cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper; |
| 13 | +import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; | ||
| 13 | import org.springframework.stereotype.Service; | 14 | import org.springframework.stereotype.Service; |
| 14 | import org.springframework.validation.annotation.Validated; | 15 | import org.springframework.validation.annotation.Validated; |
| 15 | 16 | ||
| @@ -18,8 +19,7 @@ import java.util.Collection; | @@ -18,8 +19,7 @@ import java.util.Collection; | ||
| 18 | import java.util.List; | 19 | import java.util.List; |
| 19 | 20 | ||
| 20 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 21 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 21 | -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.TAG_NAME_EXISTS; | ||
| 22 | -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.TAG_NOT_EXISTS; | 22 | +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; |
| 23 | 23 | ||
| 24 | /** | 24 | /** |
| 25 | * 会员标签 Service 实现类 | 25 | * 会员标签 Service 实现类 |
| @@ -32,6 +32,8 @@ public class MemberTagServiceImpl implements MemberTagService { | @@ -32,6 +32,8 @@ public class MemberTagServiceImpl implements MemberTagService { | ||
| 32 | 32 | ||
| 33 | @Resource | 33 | @Resource |
| 34 | private MemberTagMapper tagMapper; | 34 | private MemberTagMapper tagMapper; |
| 35 | + @Resource | ||
| 36 | + private MemberUserMapper memberUserMapper; | ||
| 35 | 37 | ||
| 36 | @Override | 38 | @Override |
| 37 | public Long createTag(MemberTagCreateReqVO createReqVO) { | 39 | public Long createTag(MemberTagCreateReqVO createReqVO) { |
| @@ -59,6 +61,8 @@ public class MemberTagServiceImpl implements MemberTagService { | @@ -59,6 +61,8 @@ public class MemberTagServiceImpl implements MemberTagService { | ||
| 59 | public void deleteTag(Long id) { | 61 | public void deleteTag(Long id) { |
| 60 | // 校验存在 | 62 | // 校验存在 |
| 61 | validateTagExists(id); | 63 | validateTagExists(id); |
| 64 | + // 校验标签下是否有用户 | ||
| 65 | + validateTagHasUser(id); | ||
| 62 | // 删除 | 66 | // 删除 |
| 63 | tagMapper.deleteById(id); | 67 | tagMapper.deleteById(id); |
| 64 | } | 68 | } |
| @@ -87,6 +91,13 @@ public class MemberTagServiceImpl implements MemberTagService { | @@ -87,6 +91,13 @@ public class MemberTagServiceImpl implements MemberTagService { | ||
| 87 | } | 91 | } |
| 88 | } | 92 | } |
| 89 | 93 | ||
| 94 | + void validateTagHasUser(Long id) { | ||
| 95 | + Long count = memberUserMapper.selectCountByTagId(id); | ||
| 96 | + if (count > 0) { | ||
| 97 | + throw exception(TAG_HAS_USER); | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + | ||
| 90 | @Override | 101 | @Override |
| 91 | public MemberTagDO getTag(Long id) { | 102 | public MemberTagDO getTag(Long id) { |
| 92 | return tagMapper.selectById(id); | 103 | return tagMapper.selectById(id); |