TRX 1 рік тому
батько
коміт
efd9fcf7c6

+ 10 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/orgUser/OrganizationUserSearch.java

@@ -9,6 +9,8 @@ import com.zhongshu.card.client.type.user.OrgAddType;
 import com.zhongshu.card.client.type.user.OrgUserState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.List;
 
@@ -91,4 +93,12 @@ public class OrganizationUserSearch extends SuperSearch {
     @Schema(description = "审核结束")
     private Long endReViewTime;
 
+    public boolean hasSearchFilter() {
+        if (StringUtils.isNotEmpty(getOid()) || ObjectUtils.isNotEmpty(departmentIds)
+                || ObjectUtils.isNotEmpty(roleIds) || StringUtils.isNotEmpty(positionId)
+                || state != null || StringUtils.isNotEmpty(keyWord)) {
+            return true;
+        }
+        return false;
+    }
 }

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/userGroup/UserGroupToUserSearch.java

@@ -6,6 +6,9 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author TRX
  * @date 2024/12/19
@@ -18,4 +21,5 @@ public class UserGroupToUserSearch extends OrganizationUserSearch {
     @Schema(description = "所属用户分组ID")
     private String groupId;
 
+    private List<String> userIds = new ArrayList<>();
 }

+ 2 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/service/org/UserAccountService.java

@@ -15,6 +15,8 @@ import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
+import java.util.List;
+
 public interface UserAccountService {
 
     // 注册基本用户
@@ -26,7 +28,6 @@ public interface UserAccountService {
     // 查询机构用户列表
     ResultContent<Page<OrganizationUserModel>> projectUserOpenPage(OrganizationUserSearch param, Pageable pageable);
 
-
     /**
      * 得到机构用户详情
      *

+ 5 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/impl/UserGroupToUserDaoImpl.java

@@ -6,6 +6,7 @@ import com.zhongshu.card.server.core.dao.BaseImpl;
 import com.zhongshu.card.server.core.dao.org.extend.UserGroupToUserDaoExtend;
 import com.zhongshu.card.server.core.domain.org.UserGroup;
 import com.zhongshu.card.server.core.domain.org.UserGroupToUser;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -52,13 +53,16 @@ public class UserGroupToUserDaoImpl extends BaseImpl implements UserGroupToUserD
             criteria.and("userGroup").is(UserGroup.build(param.getGroupId()));
         }
 
+        if (ObjectUtils.isNotEmpty(param.getUserIds())) {
+            criteria.and("userId").in(param.getUserIds());
+        }
+
         // 模糊搜索
         List<Criteria> criterias = new ArrayList<>();
 
         if (!CollectionUtils.isEmpty(criterias)) {
             criteria.andOperator(criterias.toArray(new Criteria[]{}));
         }
-
         return criteria;
     }
 

+ 25 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/UserGroupService.java

@@ -4,8 +4,10 @@ import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
 import com.zhongshu.card.client.model.base.IDsParam;
+import com.zhongshu.card.client.model.org.orgUser.OrganizationUserSearch;
 import com.zhongshu.card.client.model.org.userGroup.*;
 import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.user.OrgUserState;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationUserDao;
 import com.zhongshu.card.server.core.dao.org.UserGroupDao;
@@ -15,11 +17,13 @@ import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.devices.permiss.DevicePermissEventService;
 import com.zhongshu.card.server.core.service.user.UserAccountServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
+import com.zhongshu.card.server.core.util.CommonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
@@ -230,7 +234,27 @@ public class UserGroupService extends SuperService {
             return ResultContent.buildFail("groupId不能为空");
         }
 
-        Page<UserGroupToUser> page = userGroupToUserDao.page(pageable, param);
+        Page<UserGroupToUser> page = null;
+        boolean isSearch = true;
+        // 先筛选用户
+        OrganizationUserSearch search = param;
+        if (search.hasSearchFilter()) {
+            search.setIsSearchProject(Boolean.TRUE);
+            search.setAddType(null);
+            search.setOrgUserState(OrgUserState.Formal);
+            Pageable pageable1 = PageRequest.of(0, 1000);
+
+            List<OrganizationUser> list = userAccountService.projectUserList(param, pageable1);
+            if (ObjectUtils.isEmpty(list)) {
+                page = CommonUtil.buildEmptyPage(pageable, UserGroupToUser.class);
+                isSearch = false;
+            } else {
+                param.setUserIds(list.stream().map(it -> it.getUserId()).collect(Collectors.toList()));
+            }
+        }
+        if (isSearch) {
+            page = userGroupToUserDao.page(pageable, param);
+        }
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toUserModel));
     }
 

+ 6 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/user/UserAccountServiceImpl.java

@@ -517,6 +517,12 @@ public class UserAccountServiceImpl extends SuperService implements UserAccountS
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toOrgUserModel));
     }
 
+    public List<OrganizationUser> projectUserList(OrganizationUserSearch param, Pageable pageable) {
+        initSearchParam(param);
+        Page<OrganizationUser> page = organizationUserDao.page(pageable, param);
+        return page.getContent();
+    }
+
     @Override
     public ResultContent<Page<OrganizationUserModel>> projectUserOpenPage(OrganizationUserSearch param, Pageable pageable) {
         Page<OrganizationUser> page = organizationUserDao.page(pageable, param);

+ 1 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/util/CommonUtil.java

@@ -9,6 +9,7 @@ import com.google.zxing.common.BitMatrix;
 import com.google.zxing.qrcode.QRCodeWriter;
 import com.zhongshu.card.client.model.base.SuperModel;
 import com.zhongshu.card.client.model.operLogs.OperationLogsAddParam;
+import com.zhongshu.card.client.model.org.orgUser.OrganizationUserSearch;
 import com.zhongshu.card.client.type.Sex;
 import com.zhongshu.card.client.type.school.CardType;
 import com.zhongshu.card.client.utils.DateUtils;