Commit c61f5c80 by 裴大威

Merge branch 'feat-1001770' into 'master'

微信群导出

See merge request rays/pcloud-book!181
parents 17f0d49e 0d8abf6b
......@@ -37,12 +37,14 @@ import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.common.utils.zip.CompressUtils;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.wechatgroup.message.dto.BrandParamDTO;
import com.pcloud.wechatgroup.message.dto.GroupStatistics;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -414,6 +416,7 @@ public class GroupTagBizImpl implements GroupTagBiz {
String fileUrl = "";
try {
setGroupInfo(list);
this.setGroupMessageInfo(list);
fileUrl = exportGroupBrandfile(list, fileName);
} catch (Exception e) {
log.error("生成导出文件失败" + e.getMessage(), e);
......@@ -426,6 +429,36 @@ public class GroupTagBizImpl implements GroupTagBiz {
});
}
/**
* 填充群消息数量
* @param groupTagDTOS
*/
private void setGroupMessageInfo(List<GroupTagDTO> groupTagDTOS) {
List<BrandParamDTO> paramDTOList = new ArrayList<>();
groupTagDTOS.forEach(groupTagDTO -> {
BrandParamDTO paramDTO = new BrandParamDTO();
paramDTO.setWxGroupId(groupTagDTO.getWxGroupId());
Date time = groupTagDTO.getTagTime();
if (null != time) {
paramDTO.setTagTime(DateUtils.formatDate(time, DateUtils.DATE_FORMAT_DATETIME));
}
paramDTOList.add(paramDTO);
});
Map<String, GroupStatistics> groupStatisticsMap = wechatGroupConsr.getGroupMessageStatistics4AdBrand(paramDTOList);
if (MapUtils.isEmpty(groupStatisticsMap)) {
return;
}
groupTagDTOS.forEach(groupTagDTO -> {
GroupStatistics statistics = groupStatisticsMap.get(groupTagDTO.getWxGroupId());
if (null != statistics) {
groupTagDTO.setJoinCount(statistics.getJoinCount());
groupTagDTO.setMsgCount(statistics.getMsgCount());
groupTagDTO.setChatCount(statistics.getChatCount());
groupTagDTO.setChatUserCount(statistics.getChatUserCount());
}
});
}
@Override
public Map<String,Object> exportGroupList4Brand(Map<String, Object> paramMap, Long userId) {
Long brandId = advertisingBrandDao.getBrandIdByUserLoginId(userId);
......@@ -474,8 +507,9 @@ public class GroupTagBizImpl implements GroupTagBiz {
*/
private String exportGroupBrandfile(List<GroupTagDTO> list, String fileName) {
// 字段名
String[] rowsName = {"序号", "群名称", "群分类名称", "社群标签(专业)", "社群标签(深度)", "社群标签(目的)", "社群书", "所属出版社",
"创建编辑", "近7天活跃度", "当前群人数", "广告位数量", "群二维码", "标签", "群创建时间"};
String[] rowsName = {"序号", "群名称", "群分类名称", "社群书", "社群标签(专业)", "社群标签(深度)", "社群标签(目的)", "所属出版社",
"创建编辑", "近7天活跃度", "当前群人数", "广告位数量", "二维码", "品牌方", "分配日期",
"期间进群人数", "群消息数", "发言人数(机器人除外)", "发言次数(机器人除外"};
List<Object[]> dataList = new ArrayList<>();
Object[] objs;
for (int i = 0; i < list.size(); i++) {
......@@ -484,17 +518,19 @@ public class GroupTagBizImpl implements GroupTagBiz {
objs[0] = i + 1;
objs[1] = dto.getGroupName();
objs[2] = dto.getClassify();
objs[3] = dto.getProLabelName();
objs[4] = dto.getDepLabelName();
objs[5] = dto.getPurLabelName();
objs[6] = dto.getBookName();
objs[3] = dto.getBookName();
objs[4] = dto.getProLabelName();
objs[5] = dto.getDepLabelName();
objs[6] = dto.getPurLabelName();
objs[7] = dto.getAgentName();
objs[8] = dto.getAdviserName();
objs[9] = dto.getActiveCount() == null ? 0 : dto.getActiveCount();
objs[10] = dto.getUserNumber();
objs[11] = dto.getAdvertisingSpaceNum() == null ? 0 : dto.getAdvertisingSpaceNum();
String qrcodeUrl = "";
if (!StringUtil.isEmpty(dto.getQrcodeUrl())) {
if (Integer.valueOf(2).equals(dto.getJoinGroupType()) && !StringUtil.isEmpty(dto.getCodeUrl())) {
qrcodeUrl = dto.getCodeUrl().replace("oss.5rs.me", "file.5rs.me");
} else if (!StringUtil.isEmpty(dto.getQrcodeUrl())) {
qrcodeUrl = dto.getQrcodeUrl().replace("oss.5rs.me", "file.5rs.me");
}
objs[12] = qrcodeUrl;
......@@ -510,7 +546,11 @@ public class GroupTagBizImpl implements GroupTagBiz {
}
}
objs[13] = brandName;
objs[14] = DateUtils.formatDate(dto.getCreateTime(), DateUtils.DATE_FORMAT_DATEONLY);
objs[14] = dto.getTagTime() == null ? "" : DateUtils.formatDate(dto.getTagTime(), DateUtils.DATE_FORMAT_DATEONLY);
objs[15] = dto.getJoinCount();
objs[16] = dto.getMsgCount();
objs[17] = dto.getChatUserCount();
objs[18] = dto.getChatCount();
dataList.add(objs);
}
return exportConsr.exportExcel(fileName, rowsName, dataList);
......
......@@ -126,6 +126,24 @@ public class GroupTagDTO extends BaseDto{
private Integer joinGroupType;
private String codeUrl;
/**
* 进群人数
*/
private Integer joinCount;
/**
* 群消息总数
*/
private Integer msgCount;
/**
* 发言人数(非机器人)
*/
private Integer chatUserCount;
/**
* 发言次数(非机器人)
*/
private Integer chatCount;
public String getWxGroupId() {
return wxGroupId;
}
......@@ -334,6 +352,38 @@ public class GroupTagDTO extends BaseDto{
this.codeUrl = codeUrl;
}
public Integer getJoinCount() {
return joinCount;
}
public void setJoinCount(Integer joinCount) {
this.joinCount = joinCount;
}
public Integer getMsgCount() {
return msgCount;
}
public void setMsgCount(Integer msgCount) {
this.msgCount = msgCount;
}
public Integer getChatUserCount() {
return chatUserCount;
}
public void setChatUserCount(Integer chatUserCount) {
this.chatUserCount = chatUserCount;
}
public Integer getChatCount() {
return chatCount;
}
public void setChatCount(Integer chatCount) {
this.chatCount = chatCount;
}
@Override
public String toString() {
return "GroupTagDTO{" +
......@@ -359,6 +409,14 @@ public class GroupTagDTO extends BaseDto{
", brandList=" + brandList +
", tagTime=" + tagTime +
", isbn='" + isbn + '\'' +
", classifyId=" + classifyId +
", bookGroupId=" + bookGroupId +
", joinGroupType=" + joinGroupType +
", codeUrl='" + codeUrl + '\'' +
", joinCount=" + joinCount +
", msgCount=" + msgCount +
", chatUserCount=" + chatUserCount +
", chatCount=" + chatCount +
'}';
}
}
......@@ -2,7 +2,6 @@ package com.pcloud.book.consumer.wechatgroup;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
......@@ -12,15 +11,15 @@ import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import com.pcloud.wechatgroup.group.service.GroupMemberService;
import com.pcloud.wechatgroup.message.dto.BrandParamDTO;
import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO;
import com.pcloud.wechatgroup.message.dto.GroupStatistics;
import com.pcloud.wechatgroup.message.service.MessageService;
import com.pcloud.wechatgroup.monitor.service.MonitorService;
import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService;
import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO;
import com.pcloud.wechatgroup.selfrobot.service.SelfRobotService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
......@@ -361,4 +360,15 @@ public class WechatGroupConsr {
return map;
}
@ParamLog("获取群消息数量")
public Map<String, GroupStatistics> getGroupMessageStatistics4AdBrand(List<BrandParamDTO> paramDTOList) {
Map<String, GroupStatistics> map = new HashMap<>();
try {
map = ResponseHandleUtil.parseMapResponse(messageService.getGroupStatistics4AdBrand(paramDTOList), String.class, GroupStatistics.class);
} catch (Exception e) {
log.error("获取群消息数量.[get7DayActiveCountByQrcode]:" + e.getMessage(), e);
}
return map;
}
}
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