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;
}
......
......@@ -2,14 +2,16 @@ package com.gic.haoban.manage.web.controller.chat;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.ExcelUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.StaffDTO;
......@@ -24,13 +26,14 @@ import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.chat.GroupChatApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl;
import com.gic.haoban.manage.web.vo.chat.GroupChatUserExcelVO;
import com.gic.haoban.manage.web.vo.chat.GroupChatUserQuitVO;
import com.gic.log.record.anno.GicLogRecord;
import com.gic.log.record.util.GicLogRecordCategoryEnum;
import com.gic.log.record.util.GicLogRecordEvaluationContext;
import com.gic.log.record.util.GicLogRecordOptTypeEnum;
import org.apache.commons.collections.ArrayStack;
import com.gic.qcloud.BucketNameEnum;
import com.gic.web.common.download.DownloadTask;
import com.gic.web.common.download.DownloadTaskUtil;
import com.gic.web.common.download.constants.TaskTypeEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -38,7 +41,6 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
......@@ -63,7 +65,9 @@ public class GroupChatController {
@Autowired
private StaffApiService staffApiService;
@Autowired
private EnterpriseService enterpriseService;
private GroupChatUserExcelHandler groupChatUserExcelHandler;
@Autowired
private GroupChatUserQuitExcelHandler groupChatUserQuitExcelHandler ;
@RequestMapping("get-set-gic-flag")
public RestResponse<Object> getFlag() {
......@@ -79,7 +83,6 @@ public class GroupChatController {
* @Title: save
* @Description: 认领gic
* @author xugh
* @param groupChatIdList
* @return
* @throws
*/
......@@ -154,124 +157,97 @@ public class GroupChatController {
* 群详情导出
*/
@RequestMapping("user/detail/excel")
public RestResponse<Boolean> detailExcel(HttpServletRequest request, HttpServletResponse response,GroupChatUserSearchQDTO qdto) {
public RestResponse<String> detailExcel(@RequestBody GroupChatUserSearchQDTO qdto) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1000);
basePageInfo.setPageSize(1);
ServiceResponse<Page<GroupChatUserDTO>> resp = this.groupChatApiService.listUserPage(qdto, basePageInfo);
Long groupChatId = qdto.getGroupChatId() ;
ServiceResponse<GroupChatDTO> detailResp = this.groupChatApiService.detail(loginUser.getWxEnterpriseId(),groupChatId);
List<GroupChatUserDTO> list = resp.getResult().getResult() ;
if(CollectionUtils.isEmpty(list)) {
return RestResponse.failure("9999","无相关群成员");
return RestResponse.failure("9999","无群成员数据");
}
Long groupChatId = qdto.getGroupChatId() ;
int totalCount = resp.getResult().getTotalCount();
ServiceResponse<GroupChatDTO> detailResp = this.groupChatApiService.detail(loginUser.getWxEnterpriseId(),groupChatId);
String s = DateUtil.formatString(new Date(), DateUtil.FORMAT_DATE_10);
AuthorizedUser user = new AuthorizedUser();
user.setUserId(loginUser.getClerkId());
user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName());
String fileName = "客户群成员-"+detailResp.getResult().getName()+"-"+s;
List<String> titleList = Arrays.asList("群成员名称", "群成员昵称", "身份", "入群方式", "入群时间");
List<String> fileList = Arrays.asList("userName","nickName","userTypeExcel", "sceneExcel", "addTimeExcel");
List<GroupChatUserExcelVO> voList = new ArrayList<>() ;
for (GroupChatUserDTO dto : list) {
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) ;
}
}
try {
ExcelUtils.xls(response, request, fileName, voList, fileList, titleList);
} catch (Exception e) {
logger.info("异常",e);
logger.info("导出失败");
}
return RestResponse.successResult(true);
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.QYWX_GROUP_CHAT_USER);
task.setUser(user);
task.setDataType(qdto.getDataType());
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.QYWX_GROUP_CHAT_USER.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(groupChatUserExcelHandler);
JSONResponse jsonResponse = DownloadTaskUtil.createDownloadTask(task);
final String reportId;
if (jsonResponse.isSuccess()) {
reportId = (String) jsonResponse.getResult();
} else {
return RestResponse.failure("9999", jsonResponse.getErrorMessage());
}
return RestResponse.successResult(reportId);
}
@RequestMapping("user/quit/excel")
public RestResponse<Boolean> excel(HttpServletRequest request, HttpServletResponse response,String searchParams,Integer userType,
Date startDate,Date endDate,@RequestParam(defaultValue = "2") Integer status) {
GroupChatUserSearchQDTO qdto = new GroupChatUserSearchQDTO();
BasePageInfo basePageInfo = new BasePageInfo();
int pageNum = 1;
int pageSize = 1000;
public RestResponse<String> excel(@RequestBody GroupChatUserSearchQDTO qdto) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
qdto.setSearchParams(searchParams);
qdto.setUserType(userType);
Date startDate = qdto.getStartDate() ;
Date endDate = qdto.getEndDate() ;
if(null == startDate || null == endDate) {
return RestResponse.failure("9999","时间不能为空");
}
if(DateUtil.daysBetween(startDate,endDate) >= 32) {
return RestResponse.failure("9999","导出区间不能超过一个月");
if(DateUtil.daysBetween(startDate,endDate) >= 180) {
return RestResponse.failure("9999","导出区间不能超过半年");
}
qdto.setStartDate(startDate);
qdto.setEndDate(endDate);
qdto.setStatus(status);
basePageInfo.setPageSize(pageSize);
List<GroupChatUserDTO> result = new ArrayList<>();
while (true) {
basePageInfo.setPageNum(pageNum);
ServiceResponse<Page<GroupChatUserDTO>> page = this.groupChatApiService.listUserPage(qdto, basePageInfo);
List<GroupChatUserDTO> list = page.getResult().getResult();
if (CollectionUtils.isEmpty(list)) {
break;
}
result.addAll(list);
pageNum++;
}
if (CollUtil.isNotEmpty(result)){
List<GroupChatUserQuitVO> voList = new ArrayList<>() ;
for (GroupChatUserDTO dto : result) {
GroupChatUserQuitVO vo = EntityUtil.changeEntityByJSON(GroupChatUserQuitVO.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) ;
if(null == qdto.getStatus()) {
qdto.setStatus(2);
}
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageSize(1);
basePageInfo.setPageNum(1);
ServiceResponse<Page<GroupChatUserDTO>> resp = this.groupChatApiService.listUserPage(qdto, basePageInfo);
List<GroupChatUserDTO> list = resp.getResult().getResult() ;
if(CollectionUtils.isEmpty(list)) {
return RestResponse.failure("9999","无群成员数据");
}
AuthorizedUser user = new AuthorizedUser();
user.setUserId(loginUser.getClerkId());
user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName());
String s = DateUtil.formatString(new Date(), DateUtil.FORMAT_DATE_10);
String fileName = "退群记录"+s;
List<String> titleList = Arrays.asList("群成员姓名", "群成员昵称", "身份", "群名称", "群主", "群主关联门店", "退群时间");
List<String> fileList = Arrays.asList("userName","nickName","userTypeExcel", "chatName", "staffName", "quitStaffStore" , "userQuitTimeExcel");
try {
ExcelUtils.xls(response, request, fileName, voList, fileList, titleList);
} catch (Exception e) {
logger.info("异常",e);
logger.info("导出失败");
}
return RestResponse.successResult(true);
}
return RestResponse.successResult(false);
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.QYWX_GROUP_CHAT_USER);
task.setUser(user);
task.setDataType(qdto.getDataType());
task.setTotalCount(resp.getResult().getTotalCount());
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.QYWX_GROUP_CHAT_USER.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(groupChatUserQuitExcelHandler);
JSONResponse jsonResponse = DownloadTaskUtil.createDownloadTask(task);
final String reportId;
if (jsonResponse.isSuccess()) {
reportId = (String) jsonResponse.getResult();
} else {
return RestResponse.failure("9999", jsonResponse.getErrorMessage());
}
return RestResponse.successResult(reportId);
}
......
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