Commit fe68b42a8ca25e2dc6884db606ab540ee7cd7f8e

Authored by owen
1 parent 2584911d

会员:修改会员标签名称唯一校验逻辑

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 }
... ...