|
@@ -56,6 +56,7 @@ import com.yonge.log.dal.model.HistoryMessage;
|
|
|
import com.yonge.log.dal.model.HistoryMessageTencent;
|
|
|
import com.yonge.log.service.HistoryMessageService;
|
|
|
import com.yonge.log.service.HistoryMessageTenantService;
|
|
|
+import com.yonge.log.wrapper.HistoryMessageTencentWrapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -76,16 +77,7 @@ import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Base64;
|
|
|
-import java.util.Calendar;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Optional;
|
|
|
-import java.util.Random;
|
|
|
-import java.util.UUID;
|
|
|
+import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -1575,6 +1567,80 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public com.yonge.mongodb.PageInfo<HistoryMessageTencentWrapper.HistoryMessageTencent> historyMessage(HistoryMessageTencentWrapper.HistoryMessageTencentQuery query) {
|
|
|
+ com.yonge.mongodb.PageInfo<HistoryMessageTencentWrapper.HistoryMessageTencent> pageInfo = historyMessageTencentService.historyMessage(query);
|
|
|
+
|
|
|
+ List<HistoryMessageTencentWrapper.HistoryMessageTencent> rows = pageInfo.getRows();
|
|
|
+ if (CollectionUtils.isEmpty(rows)) {
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+ // 发送人信息
|
|
|
+ List<Integer> fromAccountList = rows.stream()
|
|
|
+ .map(HistoryMessageTencentWrapper.HistoryMessageTencent::getFromAccount)
|
|
|
+ .filter(StringUtils::isNotEmpty)
|
|
|
+ .map(Integer::parseInt)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<Integer, SysUser> userMap = studentService.getUserMapByIds(fromAccountList);
|
|
|
+ rows.forEach(item -> {
|
|
|
+ if (StringUtils.isEmpty(item.getFromAccount())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ SysUser sysUser = userMap.get(Integer.parseInt(item.getFromAccount()));
|
|
|
+ if (sysUser != null) {
|
|
|
+ item.setFromAccountName(sysUserService.getImName(sysUser));
|
|
|
+ item.setFromAccountAvatar(sysUserService.getImName(sysUser));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 接收人
|
|
|
+ List<Integer> toAccountList = rows.stream()
|
|
|
+ .map(HistoryMessageTencentWrapper.HistoryMessageTencent::getToAccount)
|
|
|
+ .filter(StringUtils::isNotEmpty)
|
|
|
+ .map(Integer::parseInt)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<Integer, SysUser> toUserMap = studentService.getUserMapByIds(toAccountList);
|
|
|
+ rows.forEach(item -> {
|
|
|
+ if (StringUtils.isEmpty(item.getToAccount())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ SysUser sysUser = toUserMap.get(Integer.parseInt(item.getToAccount()));
|
|
|
+ if (sysUser != null) {
|
|
|
+ item.setToAccountName(sysUserService.getImName(sysUser));
|
|
|
+ item.setToAccountAvatar(sysUserService.getImName(sysUser));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 群
|
|
|
+ List<String> groupIdList = rows.stream()
|
|
|
+ .map(HistoryMessageTencentWrapper.HistoryMessageTencent::getGroupId)
|
|
|
+ .filter(StringUtils::isNotEmpty)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ Map<String, ImGroup> groupMap = this.getMapByIds(groupIdList);
|
|
|
+ rows.forEach(item -> {
|
|
|
+ if (StringUtils.isEmpty(item.getGroupId())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ImGroup imGroup = groupMap.get(item.getGroupId());
|
|
|
+ if (imGroup != null) {
|
|
|
+ item.setGroupName(imGroup.getName());
|
|
|
+ item.setGroupAvatar(imGroup.getImg());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, ImGroup> getMapByIds(List<String> groupIdList) {
|
|
|
+ if (CollectionUtils.isEmpty(groupIdList)) {
|
|
|
+ return new HashMap<>();
|
|
|
+ }
|
|
|
+ List<ImGroup> imGroups = imGroupDao.getByIds(groupIdList);
|
|
|
+ if (CollectionUtils.isEmpty(imGroups)) {
|
|
|
+ return new HashMap<>();
|
|
|
+ }
|
|
|
+ return imGroups.stream().collect(Collectors.toMap(ImGroup::getId, item -> item));
|
|
|
+ }
|
|
|
+
|
|
|
private TencentRequest.MessageBody getTimGifElem(String remoteUr,int size,int width,int height) {
|
|
|
if (StringUtils.isEmpty(remoteUr) && size == 0 && width == 0 && height == 0) {
|
|
|
return null;
|