Commit 4f5f003f by 徐高华

查询

parent c49e0d20
package com.gic.haoban.manage.service.service.out.impl.chat; 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.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
...@@ -59,30 +62,31 @@ public class GroupChatApiServiceImpl implements GroupChatApiService { ...@@ -59,30 +62,31 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
if (null != qdto.getEndDate()) { if (null != qdto.getEndDate()) {
qdto.setEndDate(DateUtil.getEndTimeOfDay(qdto.getEndDate())); qdto.setEndDate(DateUtil.getEndTimeOfDay(qdto.getEndDate()));
} }
String wxEnterpriseId = qdto.getWxEnterpriseId();
Page<GroupChatDTO> page = this.groupChatService.listPage(qdto, basePageInfo); Page<GroupChatDTO> page = this.groupChatService.listPage(qdto, basePageInfo);
Page<GroupChatDTO> resultPage = PageHelperUtils.changePageToCurrentPage(page, GroupChatDTO.class); Page<GroupChatDTO> resultPage = PageHelperUtils.changePageToCurrentPage(page, GroupChatDTO.class);
List<GroupChatDTO> dtoList = resultPage.getResult(); List<GroupChatDTO> dtoList = resultPage.getResult();
// 处理关联状态 // 处理关联状态
if (CollectionUtils.isNotEmpty(dtoList)) { if (CollectionUtils.isNotEmpty(dtoList)) {
// 处理群主状态 // 处理群主状态
List<String> staffIdList = dtoList.stream().filter(dto -> StringUtils.isNotBlank(dto.getStaffId())) Map<String, TabHaobanStaff> map = this.getStaffMap(wxEnterpriseId, dtoList, 0);
.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));
dtoList.forEach(one -> { dtoList.forEach(one -> {
TabHaobanStaff staff = map.get(one.getStaffId()); TabHaobanStaff staff = map.get(one.getStaffId());
Integer activiveFlag = staff.getActiveFlag();
Integer openConcatFlag = staff.getOpenConcatFlag();
String reamrk = null; String reamrk = null;
Integer ownerAddFlag = 1; Integer ownerAddFlag = 1;
if (activiveFlag == 0) { if (null == staff || staff.getStatusFlag() == 0) {
ownerAddFlag = 0; reamrk = "群主不存在";
reamrk = "群主未激活";
} else if (openConcatFlag == 0) {
ownerAddFlag = 0; ownerAddFlag = 0;
reamrk = "群主未配置客户联系功能"; } else {
Integer activiveFlag = staff.getActiveFlag();
Integer openConcatFlag = staff.getOpenConcatFlag();
if (activiveFlag == 0) {
ownerAddFlag = 0;
reamrk = "群主未激活";
} else if (openConcatFlag == 0) {
ownerAddFlag = 0;
reamrk = "群主未配置客户联系功能";
}
} }
one.setOwnerRemark(reamrk); one.setOwnerRemark(reamrk);
one.setOwnerAddFlag(ownerAddFlag); one.setOwnerAddFlag(ownerAddFlag);
...@@ -90,6 +94,8 @@ public class GroupChatApiServiceImpl implements GroupChatApiService { ...@@ -90,6 +94,8 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
// 处理关联关系 // 处理关联关系
boolean needClerkReltaion = (qdto.getStatus() == 0); boolean needClerkReltaion = (qdto.getStatus() == 0);
if (needClerkReltaion) { 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 List<String> relationIdList = this.staffClerkRelationService
.listRelationsStaffId(new HashSet<>(staffIdList)); .listRelationsStaffId(new HashSet<>(staffIdList));
dtoList.forEach(one -> { dtoList.forEach(one -> {
...@@ -98,9 +104,10 @@ public class GroupChatApiServiceImpl implements GroupChatApiService { ...@@ -98,9 +104,10 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
} }
// 原群主 // 原群主
if (qdto.getStatus() == 2) { if (qdto.getStatus() == 2) {
Map<String, TabHaobanStaff> staffMap = this.getStaffMap(wxEnterpriseId, dtoList, 1);
dtoList.forEach(one -> { dtoList.forEach(one -> {
String staffId = one.getOriginalStaffId(); String staffId = one.getOriginalStaffId();
TabHaobanStaff staff = this.staffService.selectById(staffId); TabHaobanStaff staff = staffMap.get(staffId);
if (null != staff) { if (null != staff) {
one.setOriginalStaffName(staff.getStaffName()); one.setOriginalStaffName(staff.getStaffName());
} }
...@@ -110,6 +117,33 @@ public class GroupChatApiServiceImpl implements GroupChatApiService { ...@@ -110,6 +117,33 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
return ServiceResponse.success(resultPage); 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 @Override
public ServiceResponse<Page<GroupChatUserDTO>> listUserPage(GroupChatUserSearchQDTO qdto, public ServiceResponse<Page<GroupChatUserDTO>> listUserPage(GroupChatUserSearchQDTO qdto,
BasePageInfo basePageInfo) { BasePageInfo basePageInfo) {
......
...@@ -304,7 +304,7 @@ ...@@ -304,7 +304,7 @@
and a.hm_add_status = #{hmAddStatus} and a.hm_add_status = #{hmAddStatus}
</if> </if>
<if test="null !=canUseFlag and 1==canUseFlag"> <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>
<if test="departmentIdList != null and departmentIdList.size() > 0"> <if test="departmentIdList != null and departmentIdList.size() > 0">
and depart.department_id IN 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