Commit 8e781fe8 by 徐高华

客户群导出

parent 5168c08d
package com.gic.haoban.manage.api.dto.qdto.chat;
import com.alibaba.fastjson.annotation.JSONField;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
......@@ -22,6 +24,11 @@ public class GroupChatUserSearchQDTO implements Serializable {
private Integer status = 1;
private String wxChatId ;
/**
* 下载导出参数:数据脱敏 1:脱敏 2:完整
*/
private Integer dataType = 1;
public List<String> getStaffIdList() {
return staffIdList;
}
......@@ -30,6 +37,14 @@ public class GroupChatUserSearchQDTO implements Serializable {
this.staffIdList = staffIdList;
}
public Integer getDataType() {
return dataType;
}
public void setDataType(Integer dataType) {
this.dataType = dataType;
}
public String getWxChatId() {
return wxChatId;
}
......
package com.gic.haoban.manage.web.controller.chat;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.web.controller.moment.QwMomentController;
import com.gic.haoban.manage.web.vo.chat.GroupChatUserExcelVO;
import com.gic.haoban.manage.web.vo.moment.MomentDataExcelVO;
import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class GroupChatUserExcelHandler extends DownloadHandlerAbstract<GroupChatUserExcelVO> {
@Autowired
private GroupChatApiService groupChatApiService;
@Autowired
private QwMomentController qwMomentController ;
@Override
public List<GroupChatUserExcelVO> getData(Context context, String searchDataParams, Integer currentPage) {
GroupChatUserSearchQDTO qdto = JSON.parseObject(searchDataParams, GroupChatUserSearchQDTO.class);
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageSize(this.getPageSize());
basePageInfo.setPageNum(currentPage);
ServiceResponse<Page<GroupChatUserDTO>> resp = this.groupChatApiService.listUserPage(qdto, basePageInfo);
List<GroupChatUserExcelVO> voList = new ArrayList<>() ;
for (GroupChatUserDTO dto : resp.getResult().getResult()) {
GroupChatUserExcelVO vo = EntityUtil.changeEntityByJSON(GroupChatUserExcelVO.class, dto);
vo.setAddTimeExcel(DateUtil.dateToStr(dto.getJoinTime(), "yyyy-MM-dd HH:mm:ss"));
if (dto.getUserType() == 1) {
vo.setUserTypeExcel("企业成员");
} else if (dto.getUserType() == 2) {
vo.setUserTypeExcel("外部成员");
} else {
vo.setUserTypeExcel("客户");
}
Integer joinScene = dto.getJoinScene();
if (null != joinScene) {
String invitor_user_name = dto.getInvitorUserName();
if (StringUtils.isBlank(invitor_user_name)) {
invitor_user_name = "群成员";
}
if (joinScene == 1) {
// 由群成员邀请入群(直接邀请入群)
vo.setSceneExcel(String.format("由%s直接邀请入群", invitor_user_name));
} else if (joinScene == 2) {
// 由群成员邀请入群(通过邀请链接入群)
vo.setSceneExcel(String.format("通过%s分享链接入群", invitor_user_name));
} else if (joinScene == 3) {
// 通过扫描群二维码入群
vo.setSceneExcel(String.format("通过扫描%s分享的二维码入群", invitor_user_name));
}
voList.add(vo);
}
}
List<String> memberIdList = voList.stream().filter(o->StringUtils.isNotBlank(o.getMemberId())).map(o->o.getMemberId()).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(memberIdList)) {
Map<String, MemberDataDTO> map = this.qwMomentController.getMemberMap(qdto.getEnterpriseId(),memberIdList) ;
for (GroupChatUserExcelVO vo : voList) {
String memberId = vo.getMemberId() ;
if(null == map.get(memberId)) {
vo.setMemberScene(2);
}else {
MemberDataDTO data = map.get(memberId) ;
vo.setMemberName(data.getName());
vo.setMemberNick(data.getNickName());
vo.setMemberCard(data.getCardNo());
vo.setMemberPhone(data.getPhoneNumber());
vo.setMemberScene(3);
}
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("群成员名称", "群成员昵称", "身份", "客户姓名","客户昵称","手机号","卡号","入群方式", "入群时间");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("userName","nickName","userTypeExcel","memberName","memberNick","memberPhone","memberCard", "sceneExcel", "addTimeExcel");
}
}
package com.gic.haoban.manage.web.controller.chat;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatUserDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatUserSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.web.controller.moment.QwMomentController;
import com.gic.haoban.manage.web.vo.chat.GroupChatUserExcelVO;
import com.gic.haoban.manage.web.vo.chat.GroupChatUserQuitExcelVO;
import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class GroupChatUserQuitExcelHandler extends DownloadHandlerAbstract<GroupChatUserQuitExcelVO> {
@Autowired
private GroupChatApiService groupChatApiService;
@Autowired
private QwMomentController qwMomentController ;
@Override
public List<GroupChatUserQuitExcelVO> getData(Context context, String searchDataParams, Integer currentPage) {
GroupChatUserSearchQDTO qdto = JSON.parseObject(searchDataParams, GroupChatUserSearchQDTO.class);
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageSize(this.getPageSize());
basePageInfo.setPageNum(currentPage);
ServiceResponse<Page<GroupChatUserDTO>> resp = this.groupChatApiService.listUserPage(qdto, basePageInfo);
List<GroupChatUserQuitExcelVO> voList = new ArrayList<>() ;
for (GroupChatUserDTO dto : resp.getResult().getResult()) {
GroupChatUserQuitExcelVO vo = EntityUtil.changeEntityByJSON(GroupChatUserQuitExcelVO.class, dto);
vo.setUserQuitTimeExcel(DateUtil.dateToStr(dto.getUserQuitTime(),"yyyy-MM-dd HH:mm:ss"));
if(dto.getUserType()==1) {
vo.setUserTypeExcel("企业成员");
}else if(dto.getUserType()==2) {
vo.setUserTypeExcel("外部成员");
}else {
vo.setUserTypeExcel("客户");
}
voList.add(vo);
}
List<String> memberIdList = voList.stream().filter(o->StringUtils.isNotBlank(o.getMemberId())).map(o->o.getMemberId()).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(memberIdList)) {
Map<String, MemberDataDTO> map = this.qwMomentController.getMemberMap(qdto.getEnterpriseId(),memberIdList) ;
for (GroupChatUserQuitExcelVO vo : voList) {
String memberId = vo.getMemberId() ;
if(null == map.get(memberId)) {
vo.setMemberScene(2);
}else {
MemberDataDTO data = map.get(memberId) ;
vo.setMemberName(data.getName());
vo.setMemberNick(data.getNickName());
vo.setMemberCard(data.getCardNo());
vo.setMemberPhone(data.getPhoneNumber());
vo.setMemberScene(3);
}
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("群成员姓名", "群成员昵称", "身份", "客户姓名","客户昵称","手机号","卡号","群名称", "群主", "群主关联门店", "退群时间");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("userName","nickName","userTypeExcel","memberName","memberNick","memberPhone","memberCard", "chatName", "staffName", "quitStaffStore" , "userQuitTimeExcel");
}
}
......@@ -12,9 +12,11 @@ import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import com.gic.web.common.utils.DataApiUtils;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class LinkDataExcelHandler extends DownloadHandlerAbstract<LinkDataExcelVO> {
@Override
......
package com.gic.haoban.manage.web.vo.chat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer;
import com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer;
import com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer;
import java.io.Serializable;
/**
......@@ -30,6 +35,67 @@ public class GroupChatUserExcelVO implements Serializable {
private String sceneExcel;
private String addTimeExcel;
private String memberId ;
private String memberNick ;
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberName ;
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
private String memberPhone ;
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard;
/**
* 1:非会员 2:会员已注销 3:正常
*/
private Integer memberScene;
public Integer getMemberScene() {
return memberScene;
}
public void setMemberScene(Integer memberScene) {
this.memberScene = memberScene;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getMemberNick() {
return memberNick;
}
public void setMemberNick(String memberNick) {
this.memberNick = memberNick;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getMemberCard() {
return memberCard;
}
public void setMemberCard(String memberCard) {
this.memberCard = memberCard;
}
public String getUserTypeExcel() {
return userTypeExcel;
......
package com.gic.haoban.manage.web.vo.chat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer;
import com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer;
import com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer;
import java.io.Serializable;
public class GroupChatUserQuitExcelVO implements Serializable {
/**1企业成员2外部联系人3客户*/
private String userTypeExcel;
/**姓名*/
private String userName;
/**昵称*/
private String nickName;
/**用户退群时间*/
private String userQuitTimeExcel;
private String chatName ;
private String staffName ;
private String quitStaffStore ;
private String memberId ;
private String memberNick ;
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberName ;
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
private String memberPhone ;
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard;
private Integer memberScene ;
public String getUserTypeExcel() {
return userTypeExcel;
}
public void setUserTypeExcel(String userTypeExcel) {
this.userTypeExcel = userTypeExcel;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getUserQuitTimeExcel() {
return userQuitTimeExcel;
}
public void setUserQuitTimeExcel(String userQuitTimeExcel) {
this.userQuitTimeExcel = userQuitTimeExcel;
}
public String getChatName() {
return chatName;
}
public void setChatName(String chatName) {
this.chatName = chatName;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getQuitStaffStore() {
return quitStaffStore;
}
public void setQuitStaffStore(String quitStaffStore) {
this.quitStaffStore = quitStaffStore;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getMemberNick() {
return memberNick;
}
public void setMemberNick(String memberNick) {
this.memberNick = memberNick;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getMemberCard() {
return memberCard;
}
public void setMemberCard(String memberCard) {
this.memberCard = memberCard;
}
public Integer getMemberScene() {
return memberScene;
}
public void setMemberScene(Integer memberScene) {
this.memberScene = memberScene;
}
}
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