Bläddra i källkod

注册给角色权限

liaijie 3 år sedan
förälder
incheckning
77deca35ad

+ 23 - 0
src/main/java/com/izouma/nineth/domain/UserAuthority.java

@@ -0,0 +1,23 @@
+package com.izouma.nineth.domain;
+
+import com.izouma.nineth.annotations.Searchable;
+import com.izouma.nineth.enums.AuthorityName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Entity;
+
+@Data
+@Entity
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class UserAuthority  extends BaseEntity{
+    @Searchable
+    private Long userId;
+
+    @Searchable
+    private AuthorityName authorityName;
+}

+ 10 - 0
src/main/java/com/izouma/nineth/repo/UserAuthorityRepo.java

@@ -0,0 +1,10 @@
+package com.izouma.nineth.repo;
+
+import com.izouma.nineth.domain.Follow;
+import com.izouma.nineth.domain.UserAuthority;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface UserAuthorityRepo extends JpaRepository<UserAuthority, Long>, JpaSpecificationExecutor<UserAuthority> {
+
+}

+ 20 - 0
src/main/java/com/izouma/nineth/service/UserAuthorityService.java

@@ -0,0 +1,20 @@
+package com.izouma.nineth.service;
+
+import com.izouma.nineth.domain.UserAuthority;
+import com.izouma.nineth.repo.UserAuthorityRepo;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Service
+@Slf4j
+@AllArgsConstructor
+public class UserAuthorityService {
+
+    private UserAuthorityRepo userAuthorityRepo;
+
+
+    public void save(UserAuthority userAuthority) {
+        userAuthorityRepo.save(userAuthority);
+    }
+}

+ 2 - 0
src/main/java/com/izouma/nineth/service/UserService.java

@@ -51,6 +51,7 @@ import org.springframework.stereotype.Service;
 import javax.persistence.criteria.Predicate;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Pattern;
@@ -107,6 +108,7 @@ public class UserService {
 
     public User save(User user) {
         if (user.getId() != null) {
+            user.setCreatedAt(LocalDateTime.now());
             cacheService.clearUserMy(user.getId());
         }
         return userRepo.save(user);

+ 14 - 1
src/main/java/com/izouma/nineth/web/AuthenticationController.java

@@ -1,16 +1,20 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.User;
+import com.izouma.nineth.domain.UserAuthority;
 import com.izouma.nineth.enums.AuthorityName;
 import com.izouma.nineth.exception.AuthenticationException;
 import com.izouma.nineth.security.JwtTokenUtil;
 import com.izouma.nineth.security.JwtUserFactory;
 import com.izouma.nineth.service.CaptchaService;
+import com.izouma.nineth.service.UserAuthorityService;
 import com.izouma.nineth.service.UserService;
+import com.izouma.nineth.utils.UserAuthoritySerializer;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -28,6 +32,7 @@ public class AuthenticationController {
     private final JwtTokenUtil          jwtTokenUtil;
     private final UserService           userService;
     private final CaptchaService        captchaService;
+    private final UserAuthorityService userAuthorityService;
 
     @PostMapping("/login")
     public String loginByUserPwd(String username, String password, Integer expiration) {
@@ -61,6 +66,7 @@ public class AuthenticationController {
 
     @PostMapping("/phoneRegister")
     @ApiOperation(value = "手机号密码注册")
+    @Transactional
     public String phonePwdLogin(String phone, String code, String password, String inviteCode, Long invitor,
                                 Long collectionId, String captcha, String captchaKey) {
 //        boolean verify = captchaService.verify(captchaKey, captcha);
@@ -68,7 +74,14 @@ public class AuthenticationController {
 //            throw new BusinessException("验证码错误");
 //        }
         User user = userService.phoneRegister(phone, code, password, inviteCode, invitor, collectionId);
-        return jwtTokenUtil.generateToken(JwtUserFactory.create(user));
+        String s = jwtTokenUtil.generateToken(JwtUserFactory.create(user));
+        if (user.getId() != null){
+            UserAuthority userAuthority = new UserAuthority();
+            userAuthority.setUserId(user.getId());
+            userAuthority.setAuthorityName(AuthorityName.ROLE_USER);
+            userAuthorityService.save(userAuthority);
+        }
+        return s;
     }
 
     @PostMapping("/mqPhoneRegister")