增加用户、角色、权限的关联管理接口
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminGroupRoleController.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminGroupRoleController.java
new file mode 100644
index 0000000..bf06834
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminGroupRoleController.java
@@ -0,0 +1,67 @@
+package com.supwisdom.leaveschool.user.controller.api.admin;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.MimeTypeUtils;
+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.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.supwisdom.leaveschool.common.model.SuccessResponseModel;
+import com.supwisdom.leaveschool.user.repository.RoleRepository;
+import com.supwisdom.leaveschool.user.repository.GroupRepository;
+import com.supwisdom.leaveschool.user.repository.GroupRoleRepository;
+
+@RestController
+@RequestMapping("/api/v1/admin/group-role")
+public class Api1AdminGroupRoleController {
+
+ @Autowired
+ private GroupRoleRepository groupRoleRepository;
+
+ @Autowired
+ private GroupRepository groupRepository;
+
+ @Autowired
+ private RoleRepository roleRepository;
+
+ @RequestMapping(value = "/{groupId}/{roleId}", method = RequestMethod.POST, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel addGroupRole(@PathVariable("groupId") String groupId, @PathVariable("roleId") String roleId) {
+
+ if (groupId == null || groupId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (roleId == null || roleId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ groupRoleRepository.addGroupRole(groupId, roleId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+ @RequestMapping(value = "/{groupId}/{roleId}", method = RequestMethod.DELETE, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel removeGroupRole(@PathVariable("groupId") String groupId, @PathVariable("roleId") String roleId) {
+
+ if (groupId == null || groupId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (roleId == null || roleId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ groupRoleRepository.removeGroupRole(groupId, roleId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminRolePermissionController.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminRolePermissionController.java
new file mode 100644
index 0000000..3c3215d
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminRolePermissionController.java
@@ -0,0 +1,68 @@
+package com.supwisdom.leaveschool.user.controller.api.admin;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.MimeTypeUtils;
+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.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.supwisdom.leaveschool.common.model.SuccessResponseModel;
+import com.supwisdom.leaveschool.user.repository.PermissionRepository;
+import com.supwisdom.leaveschool.user.repository.RolePermissionRepository;
+import com.supwisdom.leaveschool.user.repository.RoleRepository;
+
+@RestController
+@RequestMapping("/api/v1/admin/role-permission")
+public class Api1AdminRolePermissionController {
+
+ @Autowired
+ private RolePermissionRepository groupPermissionRepository;
+
+ @Autowired
+ private RoleRepository roleRepository;
+
+ @Autowired
+ private PermissionRepository permissionRepository;
+
+
+ @RequestMapping(value = "/{roleId}/{permissionId}", method = RequestMethod.POST, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel addRolePermission(@PathVariable("roleId") String roleId, @PathVariable("permissionId") String permissionId) {
+
+ if (roleId == null || roleId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (permissionId == null || permissionId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ groupPermissionRepository.addRolePermission(roleId, permissionId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+ @RequestMapping(value = "/{roleId}/{permissionId}", method = RequestMethod.DELETE, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel removeRolePermission(@PathVariable("roleId") String roleId, @PathVariable("permissionId") String permissionId) {
+
+ if (roleId == null || roleId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (permissionId == null || permissionId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ groupPermissionRepository.removeRolePermission(roleId, permissionId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserGroupController.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserGroupController.java
new file mode 100644
index 0000000..9c8060f
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserGroupController.java
@@ -0,0 +1,67 @@
+package com.supwisdom.leaveschool.user.controller.api.admin;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.MimeTypeUtils;
+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.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.supwisdom.leaveschool.common.model.SuccessResponseModel;
+import com.supwisdom.leaveschool.user.repository.GroupRepository;
+import com.supwisdom.leaveschool.user.repository.UserGroupRepository;
+import com.supwisdom.leaveschool.user.repository.UserRepository;
+
+@RestController
+@RequestMapping("/api/v1/admin/user-group")
+public class Api1AdminUserGroupController {
+
+ @Autowired
+ private UserGroupRepository userGroupRepository;
+
+ @Autowired
+ private UserRepository userRepository;
+
+ @Autowired
+ private GroupRepository groupRepository;
+
+ @RequestMapping(value = "/{userId}/{groupId}", method = RequestMethod.POST, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel addUserGroup(@PathVariable("userId") String userId, @PathVariable("groupId") String groupId) {
+
+ if (userId == null || userId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (groupId == null || groupId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ userGroupRepository.addUserGroup(userId, groupId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+ @RequestMapping(value = "/{userId}/{groupId}", method = RequestMethod.DELETE, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel removeUserGroup(@PathVariable("userId") String userId, @PathVariable("groupId") String groupId) {
+
+ if (userId == null || userId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (groupId == null || groupId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ userGroupRepository.removeUserGroup(userId, groupId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserRoleController.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserRoleController.java
new file mode 100644
index 0000000..f8c7218
--- /dev/null
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/controller/api/admin/Api1AdminUserRoleController.java
@@ -0,0 +1,67 @@
+package com.supwisdom.leaveschool.user.controller.api.admin;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.MimeTypeUtils;
+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.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.supwisdom.leaveschool.common.model.SuccessResponseModel;
+import com.supwisdom.leaveschool.user.repository.RoleRepository;
+import com.supwisdom.leaveschool.user.repository.UserRepository;
+import com.supwisdom.leaveschool.user.repository.UserRoleRepository;
+
+@RestController
+@RequestMapping("/api/v1/admin/user-role")
+public class Api1AdminUserRoleController {
+
+ @Autowired
+ private UserRoleRepository userRoleRepository;
+
+ @Autowired
+ private UserRepository userRepository;
+
+ @Autowired
+ private RoleRepository roleRepository;
+
+ @RequestMapping(value = "/{userId}/{roleId}", method = RequestMethod.POST, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel addUserRole(@PathVariable("userId") String userId, @PathVariable("roleId") String roleId) {
+
+ if (userId == null || userId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (roleId == null || roleId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ userRoleRepository.addUserRole(userId, roleId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+ @RequestMapping(value = "/{userId}/{roleId}", method = RequestMethod.DELETE, consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SuccessResponseModel removeUserRole(@PathVariable("userId") String userId, @PathVariable("roleId") String roleId) {
+
+ if (userId == null || userId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+ if (roleId == null || roleId.length() == 0) {
+ throw new RuntimeException("exception.get.id.must.not.empty"); // FIXME: RestException
+ }
+
+ userRoleRepository.removeUserRole(userId, roleId);
+
+ SuccessResponseModel res = new SuccessResponseModel();
+ res.setSuccess("info.set.success");
+
+ return res;
+ }
+
+}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/GroupRoleRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/GroupRoleRepository.java
index 253f4fe..ee98114 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/GroupRoleRepository.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/GroupRoleRepository.java
@@ -3,6 +3,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
@@ -146,4 +147,45 @@
return groupRoles;
}
+ public default GroupRole selectOneByGroupRole(String groupId, String roleId) {
+
+ GroupRole probe = new GroupRole();
+ probe.setGroupId(groupId);
+ probe.setRoleId(roleId);
+
+ ExampleMatcher matcher = ExampleMatcher.matching()
+ .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact())
+ .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact())
+ ;
+
+ Example<GroupRole> example = Example.of(probe, matcher);
+
+ Optional<GroupRole> o = this.findOne(example);
+
+ return o.isPresent() ? o.get() : null;
+ }
+
+ public default void addGroupRole(String groupId, String roleId) {
+
+ GroupRole groupRole = this.selectOneByGroupRole(groupId, roleId);
+
+ if (groupRole == null) {
+ groupRole = new GroupRole();
+ //groupRole.setCompanyId(companyId);
+ groupRole.setGroupId(groupId);
+ groupRole.setRoleId(roleId);
+
+ this.insert(groupRole);
+ }
+ }
+
+ public default void removeGroupRole(String groupId, String roleId) {
+
+ GroupRole groupRole = this.selectOneByGroupRole(groupId, roleId);
+
+ if (groupRole != null) {
+ this.deleteById(groupRole.getId());
+ }
+ }
+
}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/RolePermissionRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/RolePermissionRepository.java
index 6dc9f2d..4ace464 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/RolePermissionRepository.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/RolePermissionRepository.java
@@ -3,6 +3,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
@@ -148,4 +149,45 @@
return rolePermissions;
}
+ public default RolePermission selectOneByRolePermission(String roleId, String permissionId) {
+
+ RolePermission probe = new RolePermission();
+ probe.setRoleId(roleId);
+ probe.setPermissionId(permissionId);
+
+ ExampleMatcher matcher = ExampleMatcher.matching()
+ .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact())
+ .withMatcher("permissionId", ExampleMatcher.GenericPropertyMatchers.exact())
+ ;
+
+ Example<RolePermission> example = Example.of(probe, matcher);
+
+ Optional<RolePermission> o = this.findOne(example);
+
+ return o.isPresent() ? o.get() : null;
+ }
+
+ public default void addRolePermission(String roleId, String permissionId) {
+
+ RolePermission rolePermission = this.selectOneByRolePermission(roleId, permissionId);
+
+ if (rolePermission == null) {
+ rolePermission = new RolePermission();
+ //rolePermission.setCompanyId(companyId);
+ rolePermission.setRoleId(roleId);
+ rolePermission.setPermissionId(permissionId);
+
+ this.insert(rolePermission);
+ }
+ }
+
+ public default void removeRolePermission(String roleId, String permissionId) {
+
+ RolePermission rolePermission = this.selectOneByRolePermission(roleId, permissionId);
+
+ if (rolePermission != null) {
+ this.deleteById(rolePermission.getId());
+ }
+ }
+
}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserGroupRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserGroupRepository.java
index 04f26d0..4ce86fc 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserGroupRepository.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserGroupRepository.java
@@ -3,6 +3,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
@@ -55,12 +56,11 @@
PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
- Page<UserGroup> page = this.findAll(example, pageRequest); // FIXME: 多表关联查询
+ Page<UserGroup> page = this.findAll(example, pageRequest); // FIXME: 多表关联查询
return page;
}
-
public default void relateUserGroups(User user, List<UserGroup> userGroups) {
List<UserGroup> existUserGroups = this.selectListByUserId(user.getId());
@@ -94,8 +94,8 @@
UserGroup probe = new UserGroup();
probe.setUserId(userId);
- ExampleMatcher matcher = ExampleMatcher.matching()
- .withMatcher("userId", ExampleMatcher.GenericPropertyMatchers.exact());
+ ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("userId",
+ ExampleMatcher.GenericPropertyMatchers.exact());
Example<UserGroup> example = Example.of(probe, matcher);
@@ -104,7 +104,6 @@
return userGroups;
}
-
public default void relateGroupUsers(Group group, List<UserGroup> userGroups) {
List<UserGroup> existGroupUsers = this.selectListByGroupId(group.getId());
@@ -147,5 +146,46 @@
return userGroups;
}
+
+ public default UserGroup selectOneByUserGroup(String userId, String groupId) {
+
+ UserGroup probe = new UserGroup();
+ probe.setUserId(userId);
+ probe.setGroupId(groupId);
+
+ ExampleMatcher matcher = ExampleMatcher.matching()
+ .withMatcher("userId", ExampleMatcher.GenericPropertyMatchers.exact())
+ .withMatcher("groupId", ExampleMatcher.GenericPropertyMatchers.exact())
+ ;
+
+ Example<UserGroup> example = Example.of(probe, matcher);
+
+ Optional<UserGroup> o = this.findOne(example);
+
+ return o.isPresent() ? o.get() : null;
+ }
+
+ public default void addUserGroup(String userId, String groupId) {
+
+ UserGroup userGroup = this.selectOneByUserGroup(userId, groupId);
+
+ if (userGroup == null) {
+ userGroup = new UserGroup();
+ //userGroup.setCompanyId(companyId);
+ userGroup.setUserId(userId);
+ userGroup.setGroupId(groupId);
+
+ this.insert(userGroup);
+ }
+ }
+
+ public default void removeUserGroup(String userId, String groupId) {
+
+ UserGroup userGroup = this.selectOneByUserGroup(userId, groupId);
+
+ if (userGroup != null) {
+ this.deleteById(userGroup.getId());
+ }
+ }
}
diff --git a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRoleRepository.java b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRoleRepository.java
index 995da11..57adced 100644
--- a/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRoleRepository.java
+++ b/samples/user/src/main/java/com/supwisdom/leaveschool/user/repository/UserRoleRepository.java
@@ -3,6 +3,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
@@ -93,8 +94,8 @@
UserRole probe = new UserRole();
probe.setUserId(userId);
- ExampleMatcher matcher = ExampleMatcher.matching()
- .withMatcher("userId", ExampleMatcher.GenericPropertyMatchers.exact());
+ ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("userId",
+ ExampleMatcher.GenericPropertyMatchers.exact());
Example<UserRole> example = Example.of(probe, matcher);
@@ -103,7 +104,6 @@
return userRoles;
}
-
public default void relateRoleUsers(Role role, List<UserRole> userRoles) {
List<UserRole> existRoleUsers = this.selectListByRoleId(role.getId());
@@ -137,8 +137,8 @@
UserRole probe = new UserRole();
probe.setRoleId(roleId);
- ExampleMatcher matcher = ExampleMatcher.matching()
- .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact());
+ ExampleMatcher matcher = ExampleMatcher.matching().withMatcher("roleId",
+ ExampleMatcher.GenericPropertyMatchers.exact());
Example<UserRole> example = Example.of(probe, matcher);
@@ -146,5 +146,46 @@
return userRoles;
}
+
+ public default UserRole selectOneByUserRole(String userId, String roleId) {
+
+ UserRole probe = new UserRole();
+ probe.setUserId(userId);
+ probe.setRoleId(roleId);
+
+ ExampleMatcher matcher = ExampleMatcher.matching()
+ .withMatcher("userId", ExampleMatcher.GenericPropertyMatchers.exact())
+ .withMatcher("roleId", ExampleMatcher.GenericPropertyMatchers.exact())
+ ;
+
+ Example<UserRole> example = Example.of(probe, matcher);
+
+ Optional<UserRole> o = this.findOne(example);
+
+ return o.isPresent() ? o.get() : null;
+ }
+
+ public default void addUserRole(String userId, String roleId) {
+
+ UserRole userRole = this.selectOneByUserRole(userId, roleId);
+
+ if (userRole == null) {
+ userRole = new UserRole();
+ //userRole.setCompanyId(companyId);
+ userRole.setUserId(userId);
+ userRole.setRoleId(roleId);
+
+ this.insert(userRole);
+ }
+ }
+
+ public default void removeUserRole(String userId, String roleId) {
+
+ UserRole userRole = this.selectOneByUserRole(userId, roleId);
+
+ if (userRole != null) {
+ this.deleteById(userRole.getId());
+ }
+ }
}