licailing 4 سال پیش
والد
کامیت
3c06d9c528

+ 5 - 0
src/main/java/com/izouma/zhirongip/repo/InstitutionRepo.java

@@ -15,6 +15,11 @@ public interface InstitutionRepo extends JpaRepository<Institution, Long>, JpaSp
     @Transactional
     void softDelete(Long id);
 
+    @Query("update Institution t set t.del = true where t.userId = ?1")
+    @Modifying
+    @Transactional
+    void softDeleteByUserId(Long userId);
+
     Institution findByUserId(Long userId);
 
     long countAllByStatus(ApplyStatus status);

+ 5 - 0
src/main/java/com/izouma/zhirongip/repo/PersonalRepo.java

@@ -15,6 +15,11 @@ public interface PersonalRepo extends JpaRepository<Personal, Long>, JpaSpecific
     @Transactional
     void softDelete(Long id);
 
+    @Query("update Personal t set t.del = true where t.userId = ?1")
+    @Modifying
+    @Transactional
+    void softDeleteByUserId(Long userId);
+
     Personal findByUserId(Long userId);
 
     long countAllByStatus(ApplyStatus status);

+ 18 - 7
src/main/java/com/izouma/zhirongip/service/UserService.java

@@ -10,6 +10,8 @@ import com.izouma.zhirongip.dto.PageQuery;
 import com.izouma.zhirongip.dto.UserRegister;
 import com.izouma.zhirongip.enums.AuthorityName;
 import com.izouma.zhirongip.exception.BusinessException;
+import com.izouma.zhirongip.repo.InstitutionRepo;
+import com.izouma.zhirongip.repo.PersonalRepo;
 import com.izouma.zhirongip.repo.UserRepo;
 import com.izouma.zhirongip.security.Authority;
 import com.izouma.zhirongip.security.JwtTokenUtil;
@@ -33,19 +35,22 @@ import org.springframework.stereotype.Service;
 import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
+import java.util.Set;
 import java.util.UUID;
 
 @Service
 @Slf4j
 @AllArgsConstructor
 public class UserService {
-    private final UserRepo       userRepo;
-    private final WxMaService    wxMaService;
-    private final WxMpService    wxMpService;
-    private final SmsService     smsService;
-    private final StorageService storageService;
-    private final JwtTokenUtil   jwtTokenUtil;
-    private final CaptchaService captchaService;
+    private final UserRepo        userRepo;
+    private final WxMaService     wxMaService;
+    private final WxMpService     wxMpService;
+    private final SmsService      smsService;
+    private final StorageService  storageService;
+    private final JwtTokenUtil    jwtTokenUtil;
+    private final CaptchaService  captchaService;
+    private final PersonalRepo    personalRepo;
+    private final InstitutionRepo institutionRepo;
 
     public Page<User> all(PageQuery pageQuery) {
         return userRepo.findAll(JpaUtils.toSpecification(pageQuery, User.class), JpaUtils.toPageRequest(pageQuery));
@@ -70,6 +75,12 @@ public class UserService {
             user.setPhone(user.getPhone() + "###" + RandomStringUtils.randomAlphabetic(8));
         }
         userRepo.save(user);
+        Set<Authority> authorities = user.getAuthorities();
+        if (authorities.contains(Authority.get(AuthorityName.ROLE_INSTITUTION))) {
+            institutionRepo.softDeleteByUserId(id);
+        } else if (authorities.contains(Authority.get(AuthorityName.ROLE_PERSONAL))) {
+            personalRepo.softDeleteByUserId(id);
+        }
     }
 
     public User loginByPhone(String phone) {