一、需求分析
需求:用户手机号码字段,必须保持唯一;
分析:新增时,手机号码不能在库里查到;更新时,如果在库里查看,比较用户id是否一致。
二、代码实现
public void checkMobileUnique(Long id, String mobile) { //手机号为空不进行校验 if (StrUtil.isBlank(mobile)) { return; } AdminUserDO user = userMapper.selectByMobile(mobile); //没有查到有用户使用此手机号码 if (user == null) { return; } //新增时校验 if (id == null) { //手机号已经存在 throw exception("手机号已经存在"); } //更新时校验,判断查出的用户是否是当前用户 if (!user.getId().equals(id)) { //手机号已经存在 throw exception("手机号已经存在"); } }
三、使用示例
//新增 checkMobileUnique(null,mobile); //更新 checkMobileUnique(id,mobile)