Browse Source

用户保存bug

licailing 4 years ago
parent
commit
45e951c86c

+ 3 - 0
src/main/java/com/izouma/wenlvju/repo/UserRepo.java

@@ -25,4 +25,7 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
     User findByPhoneAndDelFalse(String phone);
 
     List<User> findAllByDistrictAndAuthoritiesContainsAndDelFalse(String district, Authority authorities);
+
+    User findByPhoneAndDelFalseAndIdIsNot(String phone, Long id);
+
 }

+ 5 - 6
src/main/java/com/izouma/wenlvju/web/UserController.java

@@ -1,6 +1,7 @@
 package com.izouma.wenlvju.web;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.izouma.wenlvju.domain.User;
 import com.izouma.wenlvju.dto.ExpertDTO;
 import com.izouma.wenlvju.dto.OrganizationRegDTO;
@@ -69,15 +70,13 @@ public class UserController extends BaseController {
     public User save(@RequestBody User user) {
         if (user.getId() != null) {
             User orig = userRepo.findById(user.getId()).orElseThrow(new BusinessException("无记录"));
-            ObjUtils.merge(orig, user);
-            if (ObjectUtil.isNotNull(orig.getPhone())) {
-                User byPhone = userRepo.findByPhoneAndDelFalse(orig.getPhone());
+            if (StrUtil.isNotEmpty(user.getPhone())) {
+                User byPhone = userRepo.findByPhoneAndDelFalseAndIdIsNot(user.getPhone(), user.getId());
                 if (ObjectUtil.isNotNull(byPhone)) {
-                    if (!byPhone.getId().equals(user.getId())) {
-                        throw new BusinessException("该手机号已绑定");
-                    }
+                    throw new BusinessException("该手机号已绑定");
                 }
             }
+            ObjUtils.merge(orig, user);
             return userRepo.save(orig);
         }
         return userRepo.save(user);