Kaynağa Gözat

update AccountService

reghao 1 yıl önce
ebeveyn
işleme
203b955580

+ 7 - 7
web/src/main/java/cn/reghao/devops/web/account/controller/page/UserPageController.java

@@ -1,9 +1,9 @@
 package cn.reghao.devops.web.account.controller.page;
 
-import cn.reghao.devops.web.account.db.query.UserQuery;
 import cn.reghao.devops.web.account.model.po.User;
 import cn.reghao.devops.web.account.model.vo.RoleVO;
 import cn.reghao.devops.web.account.model.vo.UserVO;
+import cn.reghao.devops.web.account.service.AccountService;
 import cn.reghao.devops.web.account.service.AccountSessionService;
 import cn.reghao.devops.web.account.service.RoleService;
 import cn.reghao.devops.web.account.service.UserContext;
@@ -28,12 +28,12 @@ import java.util.stream.Collectors;
 @RequestMapping("/rbac/user")
 @Controller
 public class UserPageController {
-    private final UserQuery userQuery;
+    private final AccountService accountService;
     private final RoleService roleService;
     private final AccountSessionService accountSessionService;
 
-    public UserPageController(UserQuery userQuery, RoleService roleService, AccountSessionService accountSessionService) {
-        this.userQuery = userQuery;
+    public UserPageController(AccountService accountService, RoleService roleService, AccountSessionService accountSessionService) {
+        this.accountService = accountService;
         this.roleService = roleService;
         this.accountSessionService = accountSessionService;
     }
@@ -57,11 +57,11 @@ public class UserPageController {
     public String userPage(@RequestParam(value = "screenName", required = false) String screenName, Model model) {
         Page<UserVO> page;
         if (screenName != null) {
-            List<UserVO> list = userQuery.getByMatchScreenName(screenName);
+            List<UserVO> list = accountService.getByMatchScreenName(screenName);
             page = new PageImpl<>(list);
         } else {
             PageRequest pageRequest = PageSort.pageRequest();
-            page = userQuery.getUserVOByPage(pageRequest);
+            page = accountService.getUserVOByPage(pageRequest);
         }
 
         Map<Integer, String> map = accountSessionService.getLastAccess();
@@ -90,7 +90,7 @@ public class UserPageController {
     @ApiOperation(value = "用户详细信息页面")
     @GetMapping("/detail/{id}")
     public String userDetailPage(@PathVariable("id") int id, Model model) {
-        User user = userQuery.findById(id);
+        User user = accountService.getById(id);
         Set<RoleVO> roles = roleService.getUserRoles(user.getId());
         List<String> names = roles.stream().map(RoleVO::getName).collect(Collectors.toList());
 

+ 0 - 19
web/src/main/java/cn/reghao/devops/web/account/db/query/UserQuery.java

@@ -1,19 +0,0 @@
-package cn.reghao.devops.web.account.db.query;
-
-import cn.reghao.devops.web.account.model.po.Role;
-import cn.reghao.devops.web.account.model.po.User;
-import cn.reghao.devops.web.account.model.vo.UserVO;
-import cn.reghao.jutil.jdk.db.BaseQuery;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-
-import java.util.*;
-
-/**
- * @author reghao
- * @date 2021-07-12 15:32:26
- */
-public interface UserQuery extends BaseQuery<User> {
-    Page<UserVO> getUserVOByPage(PageRequest pageRequest);
-    List<UserVO> getByMatchScreenName(String screenName);
-}

+ 0 - 46
web/src/main/java/cn/reghao/devops/web/account/db/query/UserQueryImpl.java

@@ -1,46 +0,0 @@
-package cn.reghao.devops.web.account.db.query;
-
-import cn.reghao.devops.web.account.db.repository.UserRepository;
-import cn.reghao.devops.web.account.model.po.User;
-import cn.reghao.devops.web.account.model.vo.UserVO;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-
-import javax.persistence.criteria.Predicate;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2021-07-12 15:32:26
- */
-@Service
-public class UserQueryImpl implements UserQuery {
-    private final UserRepository userRepository;
-
-    public UserQueryImpl(UserRepository userRepository) {
-        this.userRepository = userRepository;
-    }
-
-    @Override
-    public User findById(int id) {
-        return userRepository.getOne(id);
-    }
-
-    @Override
-    public Page<UserVO> getUserVOByPage(PageRequest pageRequest) {
-        return userRepository.findAll(pageRequest).map(UserVO::new);
-    }
-
-    @Override
-    public List<UserVO> getByMatchScreenName(String screenName) {
-        Specification<User> specification = (root, query, cb) -> {
-            String likeQuery = String.format("%%%s%%", screenName);
-            Predicate predicate = cb.like(root.get("screenName"), likeQuery);
-            return cb.and(predicate);
-        };
-        return userRepository.findAll(specification).stream().map(UserVO::new).collect(Collectors.toList());
-    }
-}

+ 9 - 0
web/src/main/java/cn/reghao/devops/web/account/service/AccountService.java

@@ -3,7 +3,13 @@ package cn.reghao.devops.web.account.service;
 import cn.reghao.devops.web.account.model.dto.CreateAccountDto;
 import cn.reghao.devops.web.account.model.dto.AccountProfile;
 import cn.reghao.devops.web.account.model.dto.AccountRole;
+import cn.reghao.devops.web.account.model.po.User;
+import cn.reghao.devops.web.account.model.vo.UserVO;
 import cn.reghao.jutil.jdk.result.Result;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+
+import java.util.List;
 
 /**
  * @author reghao
@@ -16,4 +22,7 @@ public interface AccountService {
     void updateAccountRole(AccountRole accountRole);
     void updateAccountStatus(Integer userId, Boolean enable);
     Result deleteAccount(Integer userId);
+    Page<UserVO> getUserVOByPage(PageRequest pageRequest);
+    List<UserVO> getByMatchScreenName(String screenName);
+    User getById(Integer userId);
 }

+ 24 - 0
web/src/main/java/cn/reghao/devops/web/account/service/impl/AccountServiceImpl.java

@@ -5,6 +5,7 @@ import cn.reghao.devops.web.account.db.repository.UserRepository;
 import cn.reghao.devops.web.account.model.constant.RoleType;
 import cn.reghao.devops.web.account.model.dto.CreateAccountDto;
 import cn.reghao.devops.web.account.model.po.Role;
+import cn.reghao.devops.web.account.model.vo.UserVO;
 import cn.reghao.devops.web.account.service.AccountService;
 import cn.reghao.devops.web.account.service.AccountSessionService;
 import cn.reghao.jutil.jdk.result.Result;
@@ -14,10 +15,13 @@ import cn.reghao.devops.web.account.model.dto.AccountProfile;
 import cn.reghao.devops.web.account.model.dto.AccountRole;
 import cn.reghao.devops.web.account.model.po.User;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 
+import javax.persistence.criteria.Predicate;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -136,4 +140,24 @@ public class AccountServiceImpl implements AccountService {
         userRepository.delete(userEntity);
         return Result.success();
     }
+
+    @Override
+    public Page<UserVO> getUserVOByPage(PageRequest pageRequest) {
+        return userRepository.findAll(pageRequest).map(UserVO::new);
+    }
+
+    @Override
+    public List<UserVO> getByMatchScreenName(String screenName) {
+        Specification<User> specification = (root, query, cb) -> {
+            String likeQuery = String.format("%%%s%%", screenName);
+            Predicate predicate = cb.like(root.get("screenName"), likeQuery);
+            return cb.and(predicate);
+        };
+        return userRepository.findAll(specification).stream().map(UserVO::new).collect(Collectors.toList());
+    }
+
+    @Override
+    public User getById(Integer userId) {
+        return userRepository.findById(userId).orElse(null);
+    }
 }