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,9 +22,7 @@ public interface MemberTagMapper extends BaseMapperX<MemberTagDO> {
22 .orderByDesc(MemberTagDO::getId)); 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,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.tag;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.collection.ListUtil; 4 import cn.hutool.core.collection.ListUtil;
  5 +import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagCreateReqVO; 7 import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagCreateReqVO;
7 import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagPageReqVO; 8 import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagPageReqVO;
@@ -62,8 +63,6 @@ public class MemberTagServiceImpl implements MemberTagService { @@ -62,8 +63,6 @@ public class MemberTagServiceImpl implements MemberTagService {
62 tagMapper.deleteById(id); 63 tagMapper.deleteById(id);
63 } 64 }
64 65
65 - // TODO @疯狂:校验 tag name 不重复,参考 validateMobileUnique 方法,Mapper 尽量逻辑通用,处理交给 Service  
66 -  
67 private void validateTagExists(Long id) { 66 private void validateTagExists(Long id) {
68 if (tagMapper.selectById(id) == null) { 67 if (tagMapper.selectById(id) == null) {
69 throw exception(TAG_NOT_EXISTS); 68 throw exception(TAG_NOT_EXISTS);
@@ -71,8 +70,19 @@ public class MemberTagServiceImpl implements MemberTagService { @@ -71,8 +70,19 @@ public class MemberTagServiceImpl implements MemberTagService {
71 } 70 }
72 71
73 private void validateTagNameUnique(Long id, String name) { 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 throw exception(TAG_NAME_EXISTS); 86 throw exception(TAG_NAME_EXISTS);
77 } 87 }
78 } 88 }