Commit 5168c08d by 徐高华

引流链接导出

parent 8a11d2c1
......@@ -62,7 +62,7 @@ public class MaterialController extends WebBaseController {
* @return
*/
@RequestMapping("/mateial-sort-category")
public HaobanResponse materialSortCategory(MaterialCategorySortQDTO qdto) {
public HaobanResponse materialSortCategory(@RequestBody MaterialCategorySortQDTO qdto) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
qdto.setWxEnterpriseId(wxEnterpriseId);
......
......@@ -9,7 +9,14 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.JSONResponse;
import com.gic.clerk.api.dto.AuthorizedUser;
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 com.gic.web.common.utils.DataApiUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
......@@ -93,6 +100,8 @@ public class HmLinkController {
private HmQrcodeApiService hmQrcodeApiService;
@Autowired
private GroupChatHmApiService groupChatHmApiService;
@Autowired
private LinkDataExcelHandler linkDataExcelHandler;
@RequestMapping("add")
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.HUOMA, optType = GicLogRecordOptTypeEnum.HM_LINK_ADD, userFunc = LogRecordUserServiceImpl.class, optPage = "引流加人-新建链接")
......@@ -860,6 +869,65 @@ public class HmLinkController {
return RestResponse.successResult(DataApiUtils.getPageData(res));
}
@RequestMapping("statistics/clerk/excel")
public RestResponse<String> statisticsClerkExcel(@RequestBody HmLinkClerkListQO qo) {
qo.setPageNo(1);
qo.setPageSize(1);
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qo.getInFields().setEnterpriseId(loginUser.getEnterpriseId());
JSONObject paramJson = (JSONObject) JSON.toJSON(qo.getInFields());
DataApiUtils.dealParamJson(paramJson, "linkSelect1", "vagueQueryStore");
DataApiUtils.dealParamJson(paramJson, "linkSelect2", "vagueQueryClerk");
DataApiUtils.dealParamJson(paramJson, "startTime", "startDate");
DataApiUtils.dealParamJson(paramJson, "endTime", "endDate");
Map<String, Integer> orderByFieldMap = new HashMap<String, Integer>(8){{
put("addNumT", 8);
put("addNum", 9);
}};
paramJson.put("orderByType", DataApiUtils.getOrderByType( qo.getInFields().getOrderByField()));
paramJson.put("orderByFields", DataApiUtils.getOrderByFields( qo.getInFields().getOrderByField(),
"addNum", orderByFieldMap));
Map<String, Object> res = DataApiUtils.http(paramJson.toJSONString(), StatisticsApolloKeyConstant.data_haoban_link_detail);
Page page = DataApiUtils.getPageData(res) ;
final int totalCount = page.getTotalCount() ;
if (totalCount == 0) {
return RestResponse.failure("9999", "导出数据条数为0");
}
Long linkId = qo.getInFields().getLinkId() ;
ServiceResponse<HmLinkDTO> linkResp = this.hmLinkApiService.getByLinkId(loginUser.getWxEnterpriseId(), loginUser.getEnterpriseId(), linkId);
if (!linkResp.isSuccess()) {
return RestResponse.failure("1", "链接不存在");
}
AuthorizedUser user = new AuthorizedUser();
user.setUserId(loginUser.getClerkId());
user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName());
String fileName = "引流加人数据-"+linkResp.getResult().getName() ;
String startDate = qo.getInFields().getStartTime() ;
String endDate = qo.getInFields().getEndTime() ;
if (null != startDate && null != endDate) {
fileName = fileName + "-" + startDate + "到" + endDate ;
}
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.QYWX_HM_LINK_DATA);
task.setUser(user);
task.setDataType(1);
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.QYWX_HM_LINK_DATA.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qo, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(linkDataExcelHandler);
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);
}
/**
* com.gic.haoban.manage.web.controller.hm.HmQrcodeController.wxUserAddLogList 一样
*/
......
package com.gic.haoban.manage.web.controller.hm;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.constants.StatisticsApolloKeyConstant;
import com.gic.haoban.manage.web.qo.hm.data.HmLinkClerkListQO;
import com.gic.haoban.manage.web.vo.hm.LinkDataExcelVO;
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 java.util.*;
public class LinkDataExcelHandler extends DownloadHandlerAbstract<LinkDataExcelVO> {
@Override
public List<LinkDataExcelVO> getData(Context context, String json, Integer currentPage) {
HmLinkClerkListQO qo = JSON.parseObject(json, HmLinkClerkListQO.class);
qo.setPageSize(this.getPageSize());
qo.setPageNo(currentPage);
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
qo.getInFields().setEnterpriseId(loginUser.getEnterpriseId());
JSONObject paramJson = (JSONObject) JSON.toJSON(qo.getInFields());
DataApiUtils.dealParamJson(paramJson, "linkSelect1", "vagueQueryStore");
DataApiUtils.dealParamJson(paramJson, "linkSelect2", "vagueQueryClerk");
DataApiUtils.dealParamJson(paramJson, "startTime", "startDate");
DataApiUtils.dealParamJson(paramJson, "endTime", "endDate");
Map<String, Integer> orderByFieldMap = new HashMap<String, Integer>(8){{
put("addNumT", 8);
put("addNum", 9);
}};
paramJson.put("orderByType", DataApiUtils.getOrderByType( qo.getInFields().getOrderByField()));
paramJson.put("orderByFields", DataApiUtils.getOrderByFields( qo.getInFields().getOrderByField(),
"addNum", orderByFieldMap));
Map<String, Object> res = DataApiUtils.http(paramJson.toJSONString(), StatisticsApolloKeyConstant.data_haoban_link_detail);
Page<JSONObject> page = DataApiUtils.getPageData(res) ;
List<LinkDataExcelVO> voList = new ArrayList<>();
if (null != page && CollectionUtils.isNotEmpty(page.getResult())) {
for(JSONObject jsonObject : page.getResult()) {
LinkDataExcelVO vo = JSONObject.parseObject(jsonObject.toJSONString(),LinkDataExcelVO.class) ;
voList.add(vo) ;
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList();
}
@Override
public List<String> getColumnNames(Context context) {
return Arrays.asList("导购名称", "导购code" , "门店名称", "门店code", "新增总人数","今日新增人数","今日已达上限");
}
@Override
public List<String> getColumns(Context context) {
return Arrays.asList("clerkName", "clerkCode", "storeName", "storeCode","addNumT","addNum","overFlag");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList();
}
}
package com.gic.haoban.manage.web.vo.hm;
import java.io.Serializable;
public class LinkDataExcelVO implements Serializable {
private Integer addNum ;
private Integer addNumT ;
private String clerkCode ;
private String clerkId ;
private String clerkName ;
private String enterpriseId ;
private Long linkId ;
private String overFlag ;
private String storeCode ;
private String storeName ;
public Integer getAddNum() {
return addNum;
}
public void setAddNum(Integer addNum) {
this.addNum = addNum;
}
public Integer getAddNumT() {
return addNumT;
}
public void setAddNumT(Integer addNumT) {
this.addNumT = addNumT;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Long getLinkId() {
return linkId;
}
public void setLinkId(Long linkId) {
this.linkId = linkId;
}
public String getOverFlag() {
return overFlag;
}
public void setOverFlag(String overFlag) {
this.overFlag = overFlag;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
}
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