Browse Source

添加用户到企业接口

huxz 8 years ago
parent
commit
edf21150a9

+ 2 - 0
sso-manage-console/src/main/java/com/uas/sso/sso/backend/api/UserManageController.java

@@ -35,4 +35,6 @@ public class UserManageController {
         // Controller中的Pageable类型参数默认根据查询参数 page 和 size 注入并实例化
         return new ResultBean<>(userService.showUserByPagination(page, name, phone));
     }
+
+
 }

+ 8 - 0
sso-manage-console/src/main/java/com/uas/sso/sso/backend/api/UserSpaceManageController.java

@@ -6,6 +6,7 @@ import com.uas.sso.sso.backend.support.ResultBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -36,4 +37,11 @@ public class UserSpaceManageController {
 
         return new ResultBean<>(spaceService.showSpaceByPagination(page, spaceName, businessCode, validCode));
     }
+
+    @RequestMapping(method = RequestMethod.PUT, path = "/{spaceUu}/addUserToSpace",
+            produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public ResultBean<Boolean> addUserToSpace(@PathVariable("spaceUu") Long spaceUu, Long userUu) {
+        spaceService.addUserToSpace(spaceUu, userUu);
+        return new ResultBean<>(true);
+    }
 }

+ 2 - 0
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/UserSpaceService.java

@@ -12,4 +12,6 @@ import org.springframework.data.domain.Pageable;
 public interface UserSpaceService {
 
     Page<Userspace> showSpaceByPagination(Pageable page, String spaceName, String businessCode, Short validCode);
+
+    void addUserToSpace(Long spaceUu, Long userUu);
 }

+ 32 - 1
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/UserSpaceServiceImpl.java

@@ -1,6 +1,8 @@
 package com.uas.sso.sso.backend.service.impl;
 
+import com.uas.sso.dao.UserDao;
 import com.uas.sso.dao.UserspaceDao;
+import com.uas.sso.entity.User;
 import com.uas.sso.entity.Userspace;
 import com.uas.sso.sso.backend.exceptions.ValidationFailedException;
 import com.uas.sso.sso.backend.service.UserSpaceService;
@@ -12,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 /**
@@ -24,9 +27,12 @@ public class UserSpaceServiceImpl implements UserSpaceService {
 
     private final UserspaceDao userspaceDao;
 
+    private final UserDao userDao;
+
     @Autowired
-    public UserSpaceServiceImpl(UserspaceDao userspaceDao) {
+    public UserSpaceServiceImpl(UserspaceDao userspaceDao, UserDao userDao) {
         this.userspaceDao = userspaceDao;
+        this.userDao = userDao;
     }
 
     @Override
@@ -61,4 +67,29 @@ public class UserSpaceServiceImpl implements UserSpaceService {
             return null;
         }, page);
     }
+
+    @Override
+    @Transactional(rollbackFor = RuntimeException.class)
+    public void addUserToSpace(Long spaceUu, Long userUu) {
+        if (spaceUu == null || userUu == null) {
+            throw new ValidationFailedException("企业UU和用户UU不能为空");
+        }
+
+        Userspace space = userspaceDao.findOne(spaceUu);
+        if (space == null) {
+            throw new ValidationFailedException(String.format("UU %d 对应企业不存在", spaceUu));
+        }
+
+        User user = userDao.findOne(userUu);
+        if (user == null) {
+            throw new ValidationFailedException(String.format("UU %d 对应用户不存在", userUu));
+        }
+
+        List<User> users = space.getUsers();
+        if (!users.contains(user)) {
+            users.add(user);
+
+            userspaceDao.save(space);
+        }
+    }
 }