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