Commit 41107d4a by 徐高华

群数据导出

parent 271e6502
package com.gic.haoban.manage.web.controller.chat;
import java.util.List;
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.RestController;
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.webapi.reponse.RestResponse;
......@@ -19,6 +16,18 @@ import com.gic.haoban.manage.api.dto.chat.GroupChatDataDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatDataSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatDataApiService;
import com.gic.haoban.manage.web.vo.chat.GroupChatDataVO;
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.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.RestController;
import java.util.Date;
import java.util.List;
/**
*
......@@ -34,6 +43,8 @@ public class GroupChatDataController {
@Autowired
private GroupChatDataApiService groupChatDataApiService;
@Autowired
private GroupChatDataExcelHandler groupChatDataExcelHandler ;
@RequestMapping("total")
public RestResponse<Object> listTotalData(@RequestBody ChatDataSearchQDTO qdto) {
......@@ -77,4 +88,44 @@ public class GroupChatDataController {
return RestResponse.successResult(retPage);
}
@RequestMapping("excel")
public RestResponse<String> detailExcel(@RequestBody ChatDataSearchQDTO qdto) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1);
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setStartDate(DateUtil.getStartTimeOfDay(qdto.getStartDate()));
ServiceResponse<Page<GroupChatDataDTO>> resp = this.groupChatDataApiService.listStaffData(qdto, basePageInfo);
List<GroupChatDataDTO> list = resp.getResult().getResult() ;
if(CollectionUtils.isEmpty(list)) {
return RestResponse.failure("9999","无客户群数据");
}
int totalCount = resp.getResult().getTotalCount();
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 = "客户群数据-"+s;
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.QYWX_GROUP_CHAT_DATA);
task.setUser(user);
task.setDataType(1);
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.QYWX_GROUP_CHAT_DATA.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(groupChatDataExcelHandler);
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.EntityUtil;
import com.gic.haoban.manage.api.dto.chat.GroupChatDataDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.ChatDataSearchQDTO;
import com.gic.haoban.manage.api.service.chat.GroupChatDataApiService;
import com.gic.haoban.manage.web.vo.chat.GroupChatDataVO;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@Service
public class GroupChatDataExcelHandler extends DownloadHandlerAbstract<GroupChatDataVO> {
@Autowired
private GroupChatDataApiService groupChatDataApiService;
@Override
public List<GroupChatDataVO> getData(Context context, String searchDataParams, Integer currentPage) {
ChatDataSearchQDTO qdto = JSON.parseObject(searchDataParams, ChatDataSearchQDTO.class);
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageSize(this.getPageSize());
basePageInfo.setPageNum(currentPage);
ServiceResponse<Page<GroupChatDataDTO>> resp = this.groupChatDataApiService.listStaffData(qdto, basePageInfo);
List<GroupChatDataVO> voList = new ArrayList<>() ;
for (GroupChatDataDTO dto : resp.getResult().getResult()) {
GroupChatDataVO vo = EntityUtil.changeEntityByJSON(GroupChatDataVO.class, dto);
voList.add(vo);
}
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("staffName","chatTotal","newChatCnt","chatHasMsg","memberTotal","newMemberCnt","memberHasMsg", "quitUserCount", "msgTotal");
}
}
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