Commit c7066b68 by xiehongfei

fix:企微概览导购维度列表和导出

parent 30016b1c
package com.gic.haoban.manage.web.controller.wechatwork;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.commons.util.DataApiUtils;
import com.gic.commons.util.DateUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.manage.web.handle.WechatWorkOverviewStoreGroupHandle;
import com.gic.haoban.manage.web.qo.wechatwork.StoreGroupCommonQO;
import com.gic.haoban.manage.web.qo.wechatwork.WechatWorkOverviewQO;
import com.gic.haoban.manage.web.qo.wechatwork.WechatWorkOverviewStoreGroupQO;
import com.gic.haoban.manage.web.qo.wechatwork.WechatWorkOverviewTrendQO;
import com.gic.haoban.manage.web.qo.wechatwork.*;
import com.gic.haoban.manage.web.utils.AuthorizedUserUtils;
import com.gic.haoban.manage.web.utils.data.DataApiQO;
import com.gic.haoban.manage.web.utils.data.StoreAuthUtils;
import com.gic.haoban.manage.web.utils.data.StoreStatusFilterUtils;
import com.gic.haoban.manage.web.vo.wechatwork.DataPageVO;
import com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewStoreGroupVO;
import com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewTrendVO;
import com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewVO;
import com.gic.haoban.manage.web.vo.wechatwork.*;
import com.gic.qcloud.BucketNameEnum;
import com.gic.web.common.controller.NewBaseController;
import com.gic.web.common.download.DownloadTask;
......@@ -222,6 +220,129 @@ public class WechatWorkOverviewController extends NewBaseController {
return RestResponse.successResult(reportId);
}
/**
* 总数/新增-导购维度
* @param qo
* @return
*/
@RequestMapping(value = "store-group-clerk")
public RestResponse<DataPageVO<WechatWorkOverviewStoreGroupClerkVO>> storeGroupClerk(@RequestBody WechatWorkOverviewStoreGroupClerkQO qo) {
qo.setStatusList(StoreStatusFilterUtils.getStoreStatusList(qo.getStoreStatusFilter()));
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(qo);
storeAuthUtils.setCommonParam(jsonObject, qo);
jsonObject.put("dataType", 2);
boolean isTotalQuery = qo.getQueryDataType() == 1;
String apolloKey = isTotalQuery ? "data_mbr_scale_haoban_background_count" : "data_mbr_scale_haoban_background_count_new";
Map<String, Object> res = DataApiUtils.http(jsonObject.toJSONString(), apolloKey);
Page page = DataApiUtils.getPageData(res);
DataPageVO vo = new DataPageVO();
vo.setPageSize(page.getPageSize());
vo.setPageNum(page.getCurrentPage());
List<JSONObject> list = page.getResult();
vo.setTotalNum(page.getTotalCount());
jsonObject.put("dataType", 1);
jsonObject.put("storeGroup", 8);
JSONObject total = storeAuthUtils.getTotalJson(jsonObject, apolloKey);
if (list == null) {
list = new ArrayList<>();
}
if (total != null) {
total.put("clerkName", "合计(" + list.size() + ")");
list.add(0, total);
}
vo.setRows(list);
if (CollectionUtils.isNotEmpty(vo.getRows())) {
vo.setRows(JSONArray.parseArray(JSON.toJSONString(vo.getRows()), WechatWorkOverviewStoreGroupClerkVO.class));
}
return RestResponse.successResult(vo);
}
/**
* 总数/新增-导购维度-导出
* @param qo
* @return
*/
@RequestMapping(value = "export-store-group-clerk")
public RestResponse exportStoreGroupClerk(@RequestBody WechatWorkOverviewStoreGroupClerkQO qo) {
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.QW_OVERVIEW_STORE_GROUP_CLERK);
task.setDataType(qo.getDataType());
task.setUser(getUserInfo());
qo.setStatusList(StoreStatusFilterUtils.getStoreStatusList(qo.getStoreStatusFilter()));
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(qo);
storeAuthUtils.setCommonParam(jsonObject, qo);
jsonObject.put("dataType", 2);
boolean isTotalQuery = qo.getQueryDataType() == 1;
String apolloKey = isTotalQuery ? "data_mbr_scale_haoban_background_count" : "data_mbr_scale_haoban_background_count_new";
jsonObject.put("pageNum", 1);
jsonObject.put("pageSize", 1);
jsonObject.put("apolloKey", apolloKey);
Map<String, Object> res = DataApiUtils.http(jsonObject.toJSONString(), apolloKey);
Page page = DataApiUtils.getPageData(res);
task.setTotalCount(page.getTotalCount());
//Excel的标题是字段进行计算
List<String> indexList = new ArrayList<>();
List<String> fieldList = new ArrayList<>();
indexList.add("导购姓名");
fieldList.add("clerkCode");
indexList.add("导购code");
fieldList.add("clerkName");
indexList.add("所属门店名称");
fieldList.add("storeName");
indexList.add("所属门店code");
fieldList.add("storeCode");
if (isTotalQuery) {
indexList.add("企微好友总数(去重)");
fieldList.add("newEntwchFdNum");
indexList.add("企微好友总数");
fieldList.add("entwchFdNumTotal");
indexList.add("已注册会员好友数");
fieldList.add("entwchFdNumMbr");
indexList.add("未注册会员好友数");
fieldList.add("entwchFdNumNonmbr");
} else {
indexList.add("新增企微好友数");
fieldList.add("newEntwchFdNumTotal");
indexList.add("新增已注册会员好友数");
fieldList.add("newEntwchFdNumMbr");
indexList.add("新增未注册会员好友数");
fieldList.add("newEntwchFdNumNonmbr");
}
if (isTotalQuery) {
task.setFileName("企微概览-导购维度总数数据");
} else {
task.setFileName("企微概览-导购维度新增数据-" + qo.getStartDate() + "_" + qo.getEndDate());
}
task.setChannelName("数据-企微数据-企微概览");
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
jsonObject.put("indexList", indexList);
jsonObject.put("fieldList", fieldList);
task.setSearchDataParams(jsonObject.toJSONString());
task.setHandler(wechatWorkOverviewStoreGroupHandle);
JSONResponse downloadTask = DownloadTaskUtil.createDownloadTask(task);
final String reportId;
if (downloadTask.isSuccess()) {
reportId = (String) downloadTask.getResult();
} else {
return RestResponse.failure("9999", downloadTask.getErrorMessage());
}
return RestResponse.successResult(reportId);
}
private AuthorizedUser getUserInfo() {
return AuthorizedUserUtils.getUserInfo();
}
......
package com.gic.haoban.manage.web.handle;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.log.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.DataApiUtils;
import com.gic.enterprise.api.dto.security.DownloadReportDTO;
import com.gic.haoban.manage.web.utils.data.DataApiQO;
import com.gic.haoban.manage.web.utils.data.StoreAuthUtils;
import com.gic.haoban.manage.web.vo.wechatwork.DataPageVO;
import com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewStoreGroupClerkVO;
import com.gic.haoban.manage.web.vo.wechatwork.WechatWorkOverviewStoreGroupVO;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
/**
* 数据-企微数据-企微概览导购维度
*/
@Slf4j
@Component
public class WechatWorkOverviewStoreGroupClerkHandle extends DownloadHandlerAbstract<WechatWorkOverviewStoreGroupClerkVO> {
@Override
public List<WechatWorkOverviewStoreGroupClerkVO> getData(Context context, String searchDataParams, Integer currentPage) {
if (currentPage == 1) {
log.info("企微概览导购维度开始导出, searchDataParams:{}", searchDataParams);
}
JSONObject jsonObject = JSON.parseObject(searchDataParams);
Map<String, Object> res = DataApiUtils.http(jsonObject.toJSONString(), jsonObject.getString("apolloKey"));
Page page = DataApiUtils.getPageData(res);
DataPageVO vo = new DataPageVO();
vo.setPageSize(this.getPageSize());
vo.setPageNum(currentPage);
List<JSONObject> list = page.getResult();
if (CollUtil.isNotEmpty(list)) {
return JSONArray.parseArray(JSON.toJSONString(vo.getRows()), WechatWorkOverviewStoreGroupClerkVO.class);
}
return new ArrayList<>();
}
@Override
public List<String> getColumnNames() {
return Collections.EMPTY_LIST;
}
@Override
public List<String> getColumnNames(Context context){
DownloadReportDTO downloadReportDTO = context.getDownloadReportDTO();
String searchDataParams = downloadReportDTO.getSearchDataParams();
JSONObject jsonObject = JSONObject.parseObject(searchDataParams);
List<String> list = (List<String>) jsonObject.get("indexList");
return list;
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Collections.EMPTY_LIST;
}
@Override
public List<String> getColumns(Context context) {
DownloadReportDTO downloadReportDTO = context.getDownloadReportDTO();
String searchDataParams = downloadReportDTO.getSearchDataParams();
JSONObject jsonObject = JSONObject.parseObject(searchDataParams);
List<String> list = (List<String>) jsonObject.get("fieldList");
return list;
}
}
package com.gic.haoban.manage.web.qo.wechatwork;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import java.io.Serializable;
/**
* @Author guojx
* @Date 2024/5/22 9:27
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class WechatWorkOverviewStoreGroupClerkQO extends WechatWorkOverviewStoreGroupQO implements Serializable {
/**
* 导购查询参数
*/
private String vagueQueryClerk;
}
package com.gic.haoban.manage.web.vo.wechatwork;
import lombok.Data;
import java.io.Serializable;
@Data
public class WechatWorkOverviewStoreGroupClerkVO extends WechatWorkOverviewStoreGroupVO implements Serializable {
private String clerkId;
private String clerkName;
private String clerkCode;
}
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