浏览代码

修改获取企业已有用户的角色的请求的实现

suntg 7 年之前
父节点
当前提交
78fa645889

+ 10 - 2
src/main/java/com/uas/platform/b2c/common/account/dao/RoleDao.java

@@ -67,7 +67,7 @@ public interface RoleDao extends JpaRepository<Role, Long> {
      * @param useruu
      * @return
      */
-    @Query(value = "select count(1) from sec$roles r left join sec$userrole u on r.role_id = u.role_id where r.role_enuu = :enuu and u.user_uu = :useruu and (r.role_name = 'ROLE_ADMIN' or r.role_name = 'ROLE_SALEMANAGER')",nativeQuery = true)
+    @Query(value = "select count(1) from sec$roles_b2c r left join sec$userrole_b2c u on r.role_id = u.role_id where r.role_enuu = :enuu and u.user_uu = :useruu and (r.role_name = 'ROLE_ADMIN' or r.role_name = 'ROLE_SALEMANAGER')",nativeQuery = true)
     Double findByEnuuAndUseruu(@Param("enuu") Long enuu, @Param("useruu") Long useruu);
 
     /**
@@ -77,6 +77,14 @@ public interface RoleDao extends JpaRepository<Role, Long> {
      * @param useruu
      * @return
      */
-    @Query(value = "select count(1) from sec$roles r left join sec$userrole u on r.role_id = u.role_id where r.role_enuu = :enuu and u.user_uu = :useruu and r.role_name = 'ROLE_ADMIN'",nativeQuery = true)
+    @Query(value = "select count(1) from sec$roles_b2c r left join sec$userrole_b2c u on r.role_id = u.role_id where r.role_enuu = :enuu and u.user_uu = :useruu and r.role_name = 'ROLE_ADMIN'",nativeQuery = true)
     Double findByEnuuAndUserUU(@Param("enuu") Long enuu, @Param("useruu") Long useruu);
+
+    /**
+     * 查找角色对应的用户个数
+     * @param roleId
+     * @return
+     */
+    @Query(nativeQuery = true, value = "select count(1) from sec$userrole_b2c where role_id=:roleId")
+    Long findCountUserByRoleId(@Param("roleId") Long roleId);
 }

+ 6 - 8
src/main/java/com/uas/platform/b2c/common/account/service/impl/RoleServiceImpl.java

@@ -45,16 +45,14 @@ public class RoleServiceImpl implements RoleService {
     @Override
     public Set<Role> getRolesByExist() {
         Long enuu = SystemSession.getUser().getEnterprise().getUu();
-        List<User> users = userDao.findByEnUU(enuu);
-        Set<Role> roles = new HashSet<>();
-        for (User u : users) {
-            for (Role role : u.getRoles()) {
-                if (role.getEnUU().equals(enuu)) {
-                    roles.add(role);
-                }
+        List<Role> roles = roleDao.findByEnUU(enuu);
+        Set<Role> existRoles = new HashSet<>();
+        for (Role role : roles) {
+            if (roleDao.findCountUserByRoleId(role.getId()) > 0) {
+                existRoles.add(role);
             }
         }
-        return roles;
+        return existRoles;
     }
 
     @Override