Commit fe68b42a8ca25e2dc6884db606ab540ee7cd7f8e
1 parent
2584911d
会员:修改会员标签名称唯一校验逻辑
Showing
2 changed files
with
16 additions
and
8 deletions
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/tag/MemberTagMapper.java
| ... | ... | @@ -22,9 +22,7 @@ public interface MemberTagMapper extends BaseMapperX<MemberTagDO> { |
| 22 | 22 | .orderByDesc(MemberTagDO::getId)); |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | - default boolean exists(Long id, String name) { | |
| 26 | - return exists(new LambdaQueryWrapperX<MemberTagDO>() | |
| 27 | - .neIfPresent(MemberTagDO::getId, id) | |
| 28 | - .eq(MemberTagDO::getName, name)); | |
| 25 | + default MemberTagDO selelctByName(String name) { | |
| 26 | + return selectOne(MemberTagDO::getName, name); | |
| 29 | 27 | } |
| 30 | 28 | } | ... | ... |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/tag/MemberTagServiceImpl.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.tag; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.collection.ListUtil; |
| 5 | +import cn.hutool.core.util.StrUtil; | |
| 5 | 6 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 7 | import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagCreateReqVO; |
| 7 | 8 | import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagPageReqVO; |
| ... | ... | @@ -62,8 +63,6 @@ public class MemberTagServiceImpl implements MemberTagService { |
| 62 | 63 | tagMapper.deleteById(id); |
| 63 | 64 | } |
| 64 | 65 | |
| 65 | - // TODO @疯狂:校验 tag name 不重复,参考 validateMobileUnique 方法,Mapper 尽量逻辑通用,处理交给 Service | |
| 66 | - | |
| 67 | 66 | private void validateTagExists(Long id) { |
| 68 | 67 | if (tagMapper.selectById(id) == null) { |
| 69 | 68 | throw exception(TAG_NOT_EXISTS); |
| ... | ... | @@ -71,8 +70,19 @@ public class MemberTagServiceImpl implements MemberTagService { |
| 71 | 70 | } |
| 72 | 71 | |
| 73 | 72 | private void validateTagNameUnique(Long id, String name) { |
| 74 | - boolean exists = tagMapper.exists(id, name); | |
| 75 | - if (exists) { | |
| 73 | + if (StrUtil.isBlank(name)) { | |
| 74 | + return; | |
| 75 | + } | |
| 76 | + MemberTagDO tag = tagMapper.selelctByName(name); | |
| 77 | + if (tag == null) { | |
| 78 | + return; | |
| 79 | + } | |
| 80 | + | |
| 81 | + // 如果 id 为空,说明不用比较是否为相同 id 的标签 | |
| 82 | + if (id == null) { | |
| 83 | + throw exception(TAG_NAME_EXISTS); | |
| 84 | + } | |
| 85 | + if (!tag.getId().equals(id)) { | |
| 76 | 86 | throw exception(TAG_NAME_EXISTS); |
| 77 | 87 | } |
| 78 | 88 | } | ... | ... |