Commit 758cb5ce by songyinghui

feat: 数据统计

parent b38e297f
......@@ -9,6 +9,7 @@ import com.gic.content.api.dto.material.ContentMaterialFrontDTO;
import com.gic.content.api.qdto.material.ContentMaterialPageFrontQDTO;
import com.gic.content.api.service.ContentMaterialApiService;
import com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor;
import com.gic.haoban.manage.web.controller.content.adaptor.MaterialDataAdaptor;
import com.gic.haoban.manage.web.qo.content.ContentMaterialBaseQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialAnalyzeDataQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialPersonalUsedQO;
......@@ -19,15 +20,18 @@ import com.gic.haoban.manage.web.vo.content.statistics.MaterialIndexDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialRealDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialStoreUsedDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.report.MaterialPersonalUsedDataVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
* 素材-好办数据统计
......@@ -38,7 +42,8 @@ public class MaterialDataStaticsController {
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
@Autowired
private MaterialDataAdaptor materialDataAdaptor;
@Autowired
private ContentMaterialApiService contentMaterialApiService;
......@@ -51,7 +56,6 @@ public class MaterialDataStaticsController {
@RequestMapping(path = "/content/material/index/data")
public RestResponse<MaterialIndexDataVO> queryMaterialIndexData(@RequestBody ContentMaterialBaseQO contentMaterialBaseQO) {
ContentMaterialPageFrontQDTO search = new ContentMaterialPageFrontQDTO();
search.setEnterpriseId(contentMaterialBaseQO.getEnterpriseId());
search.setPublishBeginStartTime(DateUtil.beginOfDay(new Date()));
......@@ -68,16 +72,23 @@ public class MaterialDataStaticsController {
pageInfo.setPageSize(1);
int totalMaterialNum = 0;
ServiceResponse<Page<ContentMaterialFrontDTO>> serviceResponse = this.contentMaterialApiService.pageMaterialFront(search, pageInfo);
if (serviceResponse.isSuccess()) {
if (serviceResponse.isSuccess() && serviceResponse.getResult() != null) {
totalMaterialNum = serviceResponse.getResult().getTotalCount();
}
int totalManagerStoreNum = 0;
List<String> storeIds = clerkStoreAdaptor.queryClerkStoreIds(contentMaterialBaseQO.getClerkId(), contentMaterialBaseQO.getWxEnterpriseId());
MaterialIndexDataVO temp = materialDataAdaptor.queryMaterialIndexData(contentMaterialBaseQO.getEnterpriseId(), storeIds);
if (CollectionUtils.isEmpty(storeIds)) {
// 超管
totalMaterialNum = clerkStoreAdaptor.countAdminManagerStore(contentMaterialBaseQO.getClerkId(), contentMaterialBaseQO.getWxEnterpriseId());
}
MaterialIndexDataVO indexDataVO = MaterialIndexDataVO.builder()
.newMaterialNum(totalMaterialNum)
.storeManagerNum(storeIds.size())
.useMaterialClerkNum(temp.getUseMaterialClerkNum())
.unUseMaterialClerkNum(temp.getUnUseMaterialClerkNum())
.conversionAmount(Optional.ofNullable(temp.getConversionAmount()).orElse(BigDecimal.ZERO))
.storeManagerNum(totalManagerStoreNum)
.build();
return RestResponse.successResult(indexDataVO);
}
......@@ -89,6 +100,8 @@ public class MaterialDataStaticsController {
*/
@RequestMapping(path = "/content/material/real/use/data")
public RestResponse<MaterialRealDataVO> queryMaterialUsedAnalyze(@RequestBody MaterialStatisticsBaseQO materialStatisticsBaseQO) {
return RestResponse.successResult();
}
......
package com.gic.haoban.manage.web.controller.content.adaptor;
import com.gic.haoban.manage.api.dto.role.StoreRoleDTO;
import com.gic.haoban.manage.api.service.StaffApiService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
......@@ -43,4 +44,19 @@ public class ClerkStoreAdaptor {
}
return storeIds;
}
/**
* 获取超管管理门店的总数
* @param clerkId
* @param wxEnterpriseId
* @return
*/
public Integer countAdminManagerStore(String clerkId, String wxEnterpriseId) {
StoreRoleDTO storeRole = staffApiService.getCountHaoBanStoreIdsByClerkId(clerkId, wxEnterpriseId);
if (storeRole == null) {
return 0;
}
return storeRole.getStoreCount();
}
}
package com.gic.haoban.manage.web.controller.content.adaptor;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.manage.web.utils.target.DataTargetHttpUtils;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialIndexDataVO;
import com.gic.mall.api.dto.MallProDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author MUSI
* @Date 2023/3/27 10:49 AM
* @Description
* @Version
* 素材数据统计
**/
@Slf4j
@Component
public class MaterialDataAdaptor {
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
/**
* 素材首页数据统计
*/
private static final String MATERIAL_INDEX_DATA = "data_matl_haoban_area_stats_real";
/**
* 查询素材首页使用数据
* @param enterpriseId
* @return
*/
public MaterialIndexDataVO queryMaterialIndexData(String enterpriseId, List<String> storeIds) {
Map<String, Object> params = new HashMap<>();
Map<String, Object> inlineParams = new HashMap<>();
params.put("inFields", inlineParams);
inlineParams.put("enterprsieId", enterpriseId);
if (CollectionUtil.isNotEmpty(storeIds)) {
inlineParams.put("storeId", StringUtils.join(storeIds, ","));
}
Map<String, Object> result = this.doHttp(JSON.toJSONString(params), MATERIAL_INDEX_DATA);
if (result.get("data") == null) {
return MaterialIndexDataVO.builder()
.useMaterialClerkNum(0)
.unUseMaterialClerkNum(0)
.conversionAmount(BigDecimal.ZERO)
.build();
}
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(result.get("data")), JSONObject.class);
return MaterialIndexDataVO.builder()
.useMaterialClerkNum(jsonObject.getIntValue("useMatlClerkNum"))
.unUseMaterialClerkNum(jsonObject.getIntValue("unusedMatlClerkNum"))
.conversionAmount(jsonObject.getBigDecimal("convSalesAmt"))
.build();
}
private Map<String, Object> doHttp(String jsonParam, String apolloKey){
try {
Map<String, Object> result = DataTargetHttpUtils.http(jsonParam, apolloKey);
if (result == null) {
return Collections.emptyMap();
}
return result;
}catch (Exception ex) {
log.info("请求接口失败 apolloKey:{}", apolloKey, ex);
}
return Collections.emptyMap();
}
}
package com.gic.haoban.manage.web.vo.content.statistics;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author MUSI
......@@ -14,6 +17,8 @@ import java.io.Serializable;
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MaterialIndexDataVO implements Serializable {
private static final long serialVersionUID = 7362625836544624683L;
......@@ -31,7 +36,7 @@ public class MaterialIndexDataVO implements Serializable {
/**
* 转换金额
*/
private String conversionAmount;
private BigDecimal conversionAmount;
/**
* 当天素材发布数量
......
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