Commit eea31c6b by 王祖波

创作中心数据

parent 279dd44a
package com.gic.haoban.manage.web.controller.content;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Constant;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
......@@ -15,10 +16,13 @@ import com.gic.content.api.service.ContentMaterialApiService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.api.dto.StaffDTO;
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.ContentAuditMaterialQO;
import com.gic.haoban.manage.web.qo.content.ContentMaterialSaveQO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialConvsVO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialDataVO;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialVO;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -30,6 +34,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 好办-创作中心
......@@ -46,6 +52,8 @@ public class ContentCreativeController {
private ClerkService clerkService;
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
@Autowired
private MaterialDataAdaptor materialDataAdaptor;
/**
* 创建素材
......@@ -120,6 +128,9 @@ public class ContentCreativeController {
return RestResponse.failure(response.getCode(), response.getMessage());
}
ContentMaterialVO detailVO = EntityUtil.changeEntityByJSON(ContentMaterialVO.class, response.getResult());
Map<Long, ContentMaterialConvsVO> map = materialDataAdaptor.queryCreativeConvsMap(enterpriseId, Lists.newArrayList(detailVO.getContentMaterialId()), null);
ContentMaterialConvsVO materialConvsVO = map.get(detailVO.getContentMaterialId());
detailVO.setConvs(materialConvsVO);
return RestResponse.successResult(detailVO);
}
......@@ -132,11 +143,36 @@ public class ContentCreativeController {
@RequestMapping("/page-material")
public RestResponse<Page<ContentMaterialVO>> pageAuditMaterial(@RequestBody ContentAuditMaterialQO auditMaterialQO) {
ContentMaterialPageQDTO pageQDTO = new ContentMaterialPageQDTO();
pageQDTO.setEnterpriseId(auditMaterialQO.getEnterpriseId());
String enterpriseId = auditMaterialQO.getEnterpriseId();
pageQDTO.setEnterpriseId(enterpriseId);
pageQDTO.setStoreId(auditMaterialQO.getStoreId());
pageQDTO.setClerkId(auditMaterialQO.getClerkId());
pageQDTO.setQueryScene(MaterialSearchSceneEnum.HAOBAN_AUDIT.value);
//todo 是否有转化查询
Integer convsFlag = auditMaterialQO.getConvsFlag();
// 分页数据总数(无转化查询取素材分页数据,有转化查询取数据组返回的分页数据)
Integer totalCount = null;
//素材对应转化数据map
Map<Long, ContentMaterialConvsVO> map = null;
//转化数据过滤的素材id列表
List<Long> filterMaterialIdList = null;
boolean convs = convsFlag != null && convsFlag == Constant.FLAG_TRUE;
//是否有转化查询
if (convs) {
ServiceResponse<List<Long>> listIdResponse = contentMaterialApiService.listMaterialIdBySearch(pageQDTO);
if (!listIdResponse.isSuccess() || CollectionUtils.isEmpty(listIdResponse.getResult())) {
return RestResponse.successResult(new Page<>());
}
List<Long> materialIdList = listIdResponse.getResult();
Page<ContentMaterialConvsVO> dataPage = materialDataAdaptor.queryCreativeConvs(enterpriseId, materialIdList, auditMaterialQO.getBasePageInfo());
if (dataPage == null || CollectionUtils.isEmpty(dataPage.getResult())) {
return RestResponse.successResult(new Page<>());
}
List<ContentMaterialConvsVO> result = dataPage.getResult();
map = result.stream().collect(Collectors.toMap(ContentMaterialConvsVO::getContentMaterialId, t -> t));
filterMaterialIdList = result.stream().map(ContentMaterialConvsVO::getContentMaterialId).collect(Collectors.toList());
totalCount = dataPage.getTotalCount();
}
pageQDTO.setContentMaterialIdList(filterMaterialIdList);
ServiceResponse<Page<ContentMaterialDTO>> response = contentMaterialApiService.pageMaterial(pageQDTO, auditMaterialQO.getBasePageInfo());
if (!response.isSuccess() || CollectionUtils.isEmpty(response.getResult().getResult())) {
return RestResponse.successResult(new Page<>());
......@@ -144,11 +180,28 @@ public class ContentCreativeController {
Page<ContentMaterialDTO> page = response.getResult();
Page<ContentMaterialVO> result = new Page<>();
List<ContentMaterialVO> list = EntityUtil.changeEntityListByJSON(ContentMaterialVO.class, response.getResult().getResult());
result.setTotalCount(page.getTotalCount());
if (totalCount == null) {
totalCount = page.getTotalCount();
}
result.setTotalCount(totalCount);
result.setResult(list);
result.setCurrentPage(page.getCurrentPage());
result.setPageSize(page.getPageSize());
//todo 转化数据
if (!convs) {
List<Long> materialIdList = list.stream().map(ContentMaterialVO::getContentMaterialId).collect(Collectors.toList());
BasePageInfo pageInfo = new BasePageInfo();
pageInfo.setPageNum(1);
pageInfo.setPageSize(materialIdList.size());
map = materialDataAdaptor.queryCreativeConvsMap(enterpriseId, materialIdList, pageInfo);
}
//列表转化数据
if (CollectionUtils.isNotEmpty(list)) {
for (ContentMaterialVO materialVO : list) {
Long contentMaterialId = materialVO.getContentMaterialId();
ContentMaterialConvsVO materialConvsVO = map.get(contentMaterialId);
materialVO.setConvs(materialConvsVO);
}
}
return RestResponse.successResult(result);
}
......@@ -161,7 +214,8 @@ public class ContentCreativeController {
@RequestMapping("/material-data")
public RestResponse<ContentMaterialDataVO> auditMaterialData(@RequestBody ContentAuditMaterialQO auditMaterialQO) {
ContentMaterialPageQDTO pageQDTO = new ContentMaterialPageQDTO();
pageQDTO.setEnterpriseId(auditMaterialQO.getEnterpriseId());
String enterpriseId = auditMaterialQO.getEnterpriseId();
pageQDTO.setEnterpriseId(enterpriseId);
pageQDTO.setStoreId(auditMaterialQO.getStoreId());
pageQDTO.setClerkId(auditMaterialQO.getClerkId());
pageQDTO.setQueryScene(MaterialSearchSceneEnum.HAOBAN_AUDIT.value);
......@@ -174,7 +228,13 @@ public class ContentCreativeController {
ContentMaterialDataVO materialDataVO = new ContentMaterialDataVO();
materialDataVO.setAuditCount(auditResponse.getResult());
materialDataVO.setCreateCount(response.getResult());
//todo 转化数据
//转化数据
ServiceResponse<List<Long>> idListResponse = contentMaterialApiService.listMaterialIdBySearch(pageQDTO);
if (!idListResponse.isSuccess()) {
return RestResponse.failure("-1", "请求失败");
}
ContentMaterialConvsVO materialConvsVO = materialDataAdaptor.queryCreativeConvsOverview(enterpriseId, idListResponse.getResult());
materialDataVO.setConvs(materialConvsVO);
return RestResponse.successResult(materialDataVO);
}
......
......@@ -7,19 +7,16 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.column.ContentColumnListDTO;
import com.gic.content.api.dto.material.ContentMaterialDTO;
import com.gic.content.api.dto.material.ContentMaterialFrontDTO;
import com.gic.content.api.dto.material.ContentMaterialShareInfoDTO;
import com.gic.content.api.enums.ColumnEnum;
import com.gic.content.api.enums.MaterialSearchSceneEnum;
import com.gic.content.api.qdto.column.ContentColumnClerkQDTO;
import com.gic.content.api.qdto.material.ContentMaterialPageFrontQDTO;
import com.gic.content.api.qdto.material.ContentMaterialPageQDTO;
import com.gic.content.api.qdto.material.ContentMaterialShareQDTO;
import com.gic.content.api.service.ContentColumnApiService;
import com.gic.content.api.service.ContentMaterialApiService;
import com.gic.content.api.service.ContentMaterialShareApiService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.web.controller.commission.CommissionManager;
import com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor;
import com.gic.haoban.manage.web.controller.goods.GoodsInfoAdaptor;
......@@ -43,11 +40,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
......
......@@ -5,9 +5,9 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.DataApiUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.manage.api.enums.content.MaterialReportType;
......@@ -15,7 +15,7 @@ import com.gic.haoban.manage.web.qo.content.statistics.MaterialAnalyzeDataQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialReportQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialStoreAnalyzeDataQO;
import com.gic.haoban.manage.web.qo.content.statistics.MaterialStoreReportQO;
import com.gic.haoban.manage.web.utils.target.DataTargetHttpUtils;
import com.gic.haoban.manage.web.vo.content.creative.ContentMaterialConvsVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialAreaUsedDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialClerkUsedDataVO;
import com.gic.haoban.manage.web.vo.content.statistics.MaterialDataOverviewVO;
......@@ -95,6 +95,17 @@ public class MaterialDataAdaptor {
*/
private static final String MEMBER_RECENTLY_30_DAY_VISIT = "data_matl_haoban_user_30day_stats_real";
/**
* 创作中心素材审核转化数据
*/
private static final String MATERIAL_CREATIVE_CONVS_DATA = "data_cms_matl_examine_convs_list";
/**
* 创作中心转化数据汇总
*/
private static final String MATERIAL_CREATIVE_CONVS_TOTAL_DATA = "data_cms_matl_examine_convs_total";
@Autowired
private EnterpriseService enterpriseService;
......@@ -427,4 +438,82 @@ public class MaterialDataAdaptor {
.collect(Collectors.toMap(MemberVisitMaterialBO::getCustomerId, item -> Optional.ofNullable(item.getMatlNum30Day())
.map(Integer::new).orElse(0), (v1, v2) -> v1));
}
/**
* 创作中心获取素材转化数
* @param enterpriseId 企业id
* @param materialIdList 素材id
* @param pageInfo 分页
* @return
*/
public Page<ContentMaterialConvsVO> queryCreativeConvs(String enterpriseId, List<Long> materialIdList, BasePageInfo pageInfo) {
Map<String, Object> inlineParams = new HashMap<>();
if (CollectionUtils.isEmpty(materialIdList)) {
return new Page();
}
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("contentMaterialId", StringUtils.join(materialIdList, ","));
inlineParams.put("pageNum", pageInfo.getPageNum());
inlineParams.put("pageSize", pageInfo.getPageSize());
Map<String, Object> result = null;
try {
result = DataApiUtils.http(JSON.toJSONString(inlineParams), MATERIAL_CREATIVE_CONVS_DATA);
} catch (Exception e) {
log.error("创作中心获取素材转化数异常",e);
return new Page();
}
Page<ContentMaterialConvsVO> page = DataApiUtils.getPageData(result, ContentMaterialConvsVO.class);
return page;
}
/**
* 创作中心获取素材转化数组装成map
* @param enterpriseId 企业id
* @param materialIdList 素材id
* @param pageInfo 分页
* @return
*/
public Map<Long,ContentMaterialConvsVO> queryCreativeConvsMap(String enterpriseId, List<Long> materialIdList, BasePageInfo pageInfo) {
if (pageInfo == null) {
pageInfo = new BasePageInfo();
pageInfo.setPageNum(1);
pageInfo.setPageSize(1);
}
Page<ContentMaterialConvsVO> page = queryCreativeConvs(enterpriseId, materialIdList, pageInfo);
if (page != null && CollectionUtils.isNotEmpty(page.getResult())) {
List<ContentMaterialConvsVO> result = page.getResult();
Map<Long, ContentMaterialConvsVO> map = result.stream().collect(Collectors.toMap(ContentMaterialConvsVO::getContentMaterialId, t -> t));
return map;
}
return new HashMap<>();
}
/**
* 创作中心获取素材转化数总和(30天)
* @param enterpriseId 企业id
* @param materialIdList 素材id列表
* @return
*/
public ContentMaterialConvsVO queryCreativeConvsOverview(String enterpriseId, List<Long> materialIdList) {
Map<String, Object> inlineParams = new HashMap<>();
if (CollectionUtils.isEmpty(materialIdList)) {
return new ContentMaterialConvsVO();
}
inlineParams.put("enterpriseId", enterpriseId);
inlineParams.put("contentMaterialId", StringUtils.join(materialIdList, ","));
Map<String, Object> result = null;
try {
result = DataApiUtils.http(JSON.toJSONString(inlineParams), MATERIAL_CREATIVE_CONVS_TOTAL_DATA);
} catch (Exception e) {
log.error("创作中心获取素材转化数总和异常",e);
return new ContentMaterialConvsVO();
}
List<ContentMaterialConvsVO> list = DataApiUtils.parsePageDataList(result, ContentMaterialConvsVO.class);
if (CollectionUtils.isNotEmpty(list)) {
return list.get(0);
}
return new ContentMaterialConvsVO();
}
}
......@@ -5,14 +5,27 @@ import java.io.Serializable;
public class ContentMaterialConvsVO implements Serializable {
/**
* 素材id
*/
private Long contentMaterialId;
/**
* 转化人数
*/
private Integer convsNum;
private Integer convsNum = 0;
/**
* 转化金额
*/
private Double convsAmt;
private Double convsAmt = 0.0;
public Long getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Long contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
public Integer getConvsNum() {
return convsNum;
......@@ -29,4 +42,14 @@ public class ContentMaterialConvsVO implements Serializable {
public void setConvsAmt(Double convsAmt) {
this.convsAmt = convsAmt;
}
public void setConvs(ContentMaterialConvsVO convs) {
if (convs == null) {
this.setConvsNum(0);
this.setConvsAmt(0.0);
return;
}
this.setConvsNum(convs.getConvsNum());
this.setConvsAmt(convs.getConvsAmt());
}
}
......@@ -3,7 +3,7 @@ package com.gic.haoban.manage.web.vo.content.creative;
import java.io.Serializable;
import java.util.Date;
public class ContentMaterialDataVO implements Serializable {
public class ContentMaterialDataVO extends ContentMaterialConvsVO implements Serializable {
/**
* 创建数
......@@ -15,16 +15,6 @@ public class ContentMaterialDataVO implements Serializable {
*/
private Long auditCount;
/**
* 转化人数
*/
private Integer convsNum;
/**
* 转化金额
*/
private Double convsAmt;
public Long getCreateCount() {
return createCount;
}
......@@ -41,19 +31,4 @@ public class ContentMaterialDataVO implements Serializable {
this.auditCount = auditCount;
}
public Integer getConvsNum() {
return convsNum;
}
public void setConvsNum(Integer convsNum) {
this.convsNum = convsNum;
}
public Double getConvsAmt() {
return convsAmt;
}
public void setConvsAmt(Double convsAmt) {
this.convsAmt = convsAmt;
}
}
......@@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.util.Date;
import java.util.List;
public class ContentMaterialVO {
public class ContentMaterialVO extends ContentMaterialConvsVO{
/**
* 素材id
*/
......@@ -111,16 +111,6 @@ public class ContentMaterialVO {
*/
private ContentAuditorVO auditor;
/**
* 转化人数
*/
private Integer convsNum;
/**
* 转化金额
*/
private Double convsAmt;
public Long getContentMaterialId() {
return contentMaterialId;
}
......@@ -305,20 +295,5 @@ public class ContentMaterialVO {
this.auditor = auditor;
}
public Integer getConvsNum() {
return convsNum;
}
public void setConvsNum(Integer convsNum) {
this.convsNum = convsNum;
}
public Double getConvsAmt() {
return convsAmt;
}
public void setConvsAmt(Double convsAmt) {
this.convsAmt = convsAmt;
}
}
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