Commit 4f5f003f by 徐高华

查询

parent c49e0d20
package com.gic.haoban.manage.service.service.out.impl.chat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
......@@ -59,24 +62,24 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
if (null != qdto.getEndDate()) {
qdto.setEndDate(DateUtil.getEndTimeOfDay(qdto.getEndDate()));
}
String wxEnterpriseId = qdto.getWxEnterpriseId();
Page<GroupChatDTO> page = this.groupChatService.listPage(qdto, basePageInfo);
Page<GroupChatDTO> resultPage = PageHelperUtils.changePageToCurrentPage(page, GroupChatDTO.class);
List<GroupChatDTO> dtoList = resultPage.getResult();
// 处理关联状态
if (CollectionUtils.isNotEmpty(dtoList)) {
// 处理群主状态
List<String> staffIdList = dtoList.stream().filter(dto -> StringUtils.isNotBlank(dto.getStaffId()))
.map(dto -> dto.getStaffId()).collect(Collectors.toList());
List<TabHaobanStaff> staffList = this.staffService.listNoStatusByStaffIds(qdto.getWxEnterpriseId(),
staffIdList);
Map<String, TabHaobanStaff> map = staffList.stream()
.collect(Collectors.toMap(TabHaobanStaff::getStaffId, o -> o, (k1, k2) -> k2));
Map<String, TabHaobanStaff> map = this.getStaffMap(wxEnterpriseId, dtoList, 0);
dtoList.forEach(one -> {
TabHaobanStaff staff = map.get(one.getStaffId());
Integer activiveFlag = staff.getActiveFlag();
Integer openConcatFlag = staff.getOpenConcatFlag();
String reamrk = null;
Integer ownerAddFlag = 1;
if (null == staff || staff.getStatusFlag() == 0) {
reamrk = "群主不存在";
ownerAddFlag = 0;
} else {
Integer activiveFlag = staff.getActiveFlag();
Integer openConcatFlag = staff.getOpenConcatFlag();
if (activiveFlag == 0) {
ownerAddFlag = 0;
reamrk = "群主未激活";
......@@ -84,12 +87,15 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
ownerAddFlag = 0;
reamrk = "群主未配置客户联系功能";
}
}
one.setOwnerRemark(reamrk);
one.setOwnerAddFlag(ownerAddFlag);
});
// 处理关联关系
boolean needClerkReltaion = (qdto.getStatus() == 0);
if (needClerkReltaion) {
List<String> staffIdList = dtoList.stream().filter(dto -> StringUtils.isNotBlank(dto.getStaffId()))
.map(dto -> dto.getStaffId()).collect(Collectors.toList());
List<String> relationIdList = this.staffClerkRelationService
.listRelationsStaffId(new HashSet<>(staffIdList));
dtoList.forEach(one -> {
......@@ -98,9 +104,10 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
}
// 原群主
if (qdto.getStatus() == 2) {
Map<String, TabHaobanStaff> staffMap = this.getStaffMap(wxEnterpriseId, dtoList, 1);
dtoList.forEach(one -> {
String staffId = one.getOriginalStaffId();
TabHaobanStaff staff = this.staffService.selectById(staffId);
TabHaobanStaff staff = staffMap.get(staffId);
if (null != staff) {
one.setOriginalStaffName(staff.getStaffName());
}
......@@ -110,6 +117,33 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
return ServiceResponse.success(resultPage);
}
private Map<String, TabHaobanStaff> getStaffMap(String wxEnterpriseId, List<GroupChatDTO> dtoList, int staffType) {
Set<String> staffIdSet = null;
// 原群主
if (staffType == 1) {
staffIdSet = dtoList.stream().filter(dto -> StringUtils.isNotBlank(dto.getOriginalStaffId()))
.map(dto -> dto.getOriginalStaffId()).collect(Collectors.toSet());
} else {
staffIdSet = dtoList.stream().filter(dto -> StringUtils.isNotBlank(dto.getStaffId()))
.map(dto -> dto.getStaffId()).collect(Collectors.toSet());
}
List<String> staffIdList = new ArrayList<>(staffIdSet);
List<TabHaobanStaff> staffList = this.staffService.listNoStatusByStaffIds(wxEnterpriseId, staffIdList);
Map<String, TabHaobanStaff> map = new HashMap<>();
if (CollectionUtils.isNotEmpty(staffList)) {
Map<String, TabHaobanStaff> originalMap = staffList.stream()
.collect(Collectors.toMap(TabHaobanStaff::getStaffId, o -> o, (k1, k2) -> k2));
dtoList.forEach(one -> {
String staffId = one.getOriginalStaffId();
TabHaobanStaff staff = originalMap.get(staffId);
if (null != staff) {
one.setOriginalStaffName(staff.getStaffName());
}
});
}
return map;
}
@Override
public ServiceResponse<Page<GroupChatUserDTO>> listUserPage(GroupChatUserSearchQDTO qdto,
BasePageInfo basePageInfo) {
......
......@@ -304,7 +304,7 @@
and a.hm_add_status = #{hmAddStatus}
</if>
<if test="null !=canUseFlag and 1==canUseFlag">
and b.open_concat_flag = 1 and b.active_flag = 1
and b.open_concat_flag = 1 and b.active_flag = 1 and b.status_flag = 1
</if>
<if test="departmentIdList != null and departmentIdList.size() > 0">
and depart.department_id IN
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment