Commit 992b2586 by songyinghui

feat: 好办素材统计数据

parent 0f78e5c6
......@@ -93,6 +93,7 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic
*/
@Override
public ServiceResponse<Void> handlerMaterialWeekReport(String params) {
log.info("handlerMaterialWeekReport 执行素材周报任务开始 >>>>> {}", DateUtil.datetimeToString(new Date()));
return doHandlerReportInner(MaterialReportType.WEEK.getCode());
}
......@@ -104,6 +105,7 @@ public class QywxGroupMsgTaskApiServiceImpl implements QywxGroupMsgTaskApiServic
*/
@Override
public ServiceResponse<Void> handlerMaterialMonthReport(String params) {
log.info("handlerMaterialWeekReport 执行素材月报任务开始 >>>>> {}", DateUtil.datetimeToString(new Date()));
return doHandlerReportInner(MaterialReportType.MONTH.getCode());
}
......
......@@ -195,9 +195,13 @@ public class MaterialDataStaticsController {
storeIds.add(materialReportQO.getStoreId());
}
MaterialPersonalUsedDataVO materialPersonalUsedDataVO =
materialDataAdaptor.queryMaterialUsedReport(materialReportQO.getEnterpriseId(), materialReportQO.getClerkId(), materialReportQO.getReportType(), storeIds);
Page<MaterialPersonalUsedDataVO> usedDataVOPage =
materialDataAdaptor.queryMaterialClerkUsedReport(materialReportQO.getEnterpriseId(), materialReportQO.getClerkId(),
materialReportQO.getReportType(), storeIds, 1, 1, null, null);
if (usedDataVOPage == null || CollectionUtils.isEmpty(usedDataVOPage.getResult())) {
return RestResponse.successResult();
}
MaterialPersonalUsedDataVO materialPersonalUsedDataVO = usedDataVOPage.getResult().get(0);
// 补充导购信息
ClerkDTO clerkInfo = clerkService.getClerkByClerkId(materialReportQO.getClerkId());
if (clerkInfo != null) {
......@@ -217,8 +221,28 @@ public class MaterialDataStaticsController {
@RequestMapping(path = "/content/material/store/used/data")
public RestResponse<MaterialStoreUsedDataVO> queryMaterialStoreUseReport(@RequestBody MaterialReportQO materialReportQO) {
List<String> storeIds = new ArrayList<>();
if (StringUtils.isBlank(materialReportQO.getStoreId())) {
storeIds = clerkStoreAdaptor.queryClerkStoreIds(materialReportQO.getClerkId(), materialReportQO.getWxEnterpriseId());
} else {
storeIds.add(materialReportQO.getStoreId());
}
return RestResponse.successResult();
Page<MaterialStoreUsedDataVO> usedDataVOPage =
materialDataAdaptor.queryMaterialStoreUseReport(materialReportQO.getEnterpriseId(), materialReportQO.getClerkId(),
materialReportQO.getReportType(), storeIds, 1, 1, null, null);
if (usedDataVOPage == null || CollectionUtils.isEmpty(usedDataVOPage.getResult())) {
return RestResponse.successResult();
}
MaterialStoreUsedDataVO materialStoreUsedDataVO = usedDataVOPage.getResult().get(0);
// 补充导购信息
ClerkDTO clerkInfo = clerkService.getClerkByClerkId(materialReportQO.getClerkId());
if (clerkInfo != null) {
materialStoreUsedDataVO.setClerkId(materialReportQO.getClerkId());
materialStoreUsedDataVO.setClerkName(clerkInfo.getClerkName());
materialStoreUsedDataVO.setImageUrl(clerkInfo.getImageUrl());
}
return RestResponse.successResult(materialStoreUsedDataVO);
}
......@@ -228,10 +252,16 @@ public class MaterialDataStaticsController {
* @param materialReportQO
* @return
*/
@RequestMapping(path = "/content/material/store/used/data")
@RequestMapping(path = "/content/material/area/used/data")
public RestResponse<MaterialStoreUsedDataVO> queryMaterialAreaUseReport(@RequestBody MaterialReportQO materialReportQO) {
return RestResponse.successResult();
List<String> storeIds = new ArrayList<>();
if (StringUtils.isBlank(materialReportQO.getStoreId())) {
storeIds = clerkStoreAdaptor.queryClerkStoreIds(materialReportQO.getClerkId(), materialReportQO.getWxEnterpriseId());
} else {
storeIds.add(materialReportQO.getStoreId());
}
MaterialStoreUsedDataVO materialStoreUsedDataVO = materialDataAdaptor.queryMaterialAreaOverviewData(materialReportQO.getEnterpriseId(), materialReportQO.getClerkId(), materialReportQO.getReportType(), storeIds);
return RestResponse.successResult(materialStoreUsedDataVO);
}
......@@ -243,7 +273,29 @@ public class MaterialDataStaticsController {
@RequestMapping(path = "/content/material/personal/used/data/list")
public RestResponse<Page<MaterialPersonalUsedDataVO>> queryMaterialUsedReportList(@RequestBody MaterialReportQO materialReportQO) {
return RestResponse.successResult();
List<String> storeIds = new ArrayList<>();
if (StringUtils.isBlank(materialReportQO.getStoreId())) {
storeIds = clerkStoreAdaptor.queryClerkStoreIds(materialReportQO.getClerkId(), materialReportQO.getWxEnterpriseId());
} else {
storeIds.add(materialReportQO.getStoreId());
}
Page<MaterialPersonalUsedDataVO> usedDataVOPage =
materialDataAdaptor.queryMaterialClerkUsedReport(materialReportQO.getEnterpriseId(), materialReportQO.getClerkId(),
materialReportQO.getReportType(), storeIds, 1, 1, materialReportQO.getOrderByField(), materialReportQO.getOrder());
if (usedDataVOPage == null || CollectionUtils.isEmpty(usedDataVOPage.getResult())) {
return RestResponse.successResult();
}
// 补充导购信息
ClerkDTO clerkInfo = clerkService.getClerkByClerkId(materialReportQO.getClerkId());
if (clerkInfo != null) {
for (MaterialPersonalUsedDataVO materialPersonalUsedDataVO : usedDataVOPage.getResult()) {
materialPersonalUsedDataVO.setClerkId(materialReportQO.getClerkId());
materialPersonalUsedDataVO.setClerkName(clerkInfo.getClerkName());
materialPersonalUsedDataVO.setImageUrl(clerkInfo.getImageUrl());
}
}
return RestResponse.successResult(usedDataVOPage);
}
......@@ -255,7 +307,29 @@ public class MaterialDataStaticsController {
*/
@RequestMapping(path = "/content/material/store/used/data/list")
public RestResponse<Page<MaterialStoreUsedDataVO>> queryMaterialStoreUseReportList(@RequestBody MaterialReportQO materialReportQO) {
return RestResponse.successResult();
List<String> storeIds = new ArrayList<>();
if (StringUtils.isBlank(materialReportQO.getStoreId())) {
storeIds = clerkStoreAdaptor.queryClerkStoreIds(materialReportQO.getClerkId(), materialReportQO.getWxEnterpriseId());
} else {
storeIds.add(materialReportQO.getStoreId());
}
Page<MaterialStoreUsedDataVO> usedDataVOPage =
materialDataAdaptor.queryMaterialStoreUseReport(materialReportQO.getEnterpriseId(), materialReportQO.getClerkId(),
materialReportQO.getReportType(), storeIds, 1, 1, materialReportQO.getOrderByField(), materialReportQO.getOrder());
if (usedDataVOPage == null || CollectionUtils.isEmpty(usedDataVOPage.getResult())) {
return RestResponse.successResult();
}
// 补充导购信息
ClerkDTO clerkInfo = clerkService.getClerkByClerkId(materialReportQO.getClerkId());
if (clerkInfo != null) {
for (MaterialStoreUsedDataVO materialStoreUsedDataVO : usedDataVOPage.getResult()) {
materialStoreUsedDataVO.setClerkId(materialReportQO.getClerkId());
materialStoreUsedDataVO.setClerkName(clerkInfo.getClerkName());
materialStoreUsedDataVO.setImageUrl(clerkInfo.getImageUrl());
}
}
return RestResponse.successResult(usedDataVOPage);
}
}
package com.gic.haoban.manage.web.qo.content.statistics;
import lombok.Data;
/**
* @Author MUSI
* @Date 2023/3/23 12:48 PM
......@@ -7,6 +9,7 @@ package com.gic.haoban.manage.web.qo.content.statistics;
* @Version
* 素材
**/
@Data
public class MaterialReportQO extends MaterialStatisticsBaseQO {
private static final long serialVersionUID = -4105397589798480404L;
......@@ -18,11 +21,16 @@ public class MaterialReportQO extends MaterialStatisticsBaseQO {
*/
private Integer reportType;
public Integer getReportType() {
return reportType;
}
/**
* 排序字段
* 日均使用导购占比
* 转化客户数
*/
private String orderByField;
public void setReportType(Integer reportType) {
this.reportType = reportType;
}
/**
* 1 生序
* 0 降序
*/
private Integer order;
}
package com.gic.haoban.manage.web.vo.content.statistics;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author MUSI
......@@ -10,6 +13,7 @@ import java.math.BigDecimal;
* @Version
* 门店纬度使用数据
**/
@Data
public class MaterialStoreUsedDataVO implements Serializable {
private static final long serialVersionUID = -6389925840088323751L;
......@@ -73,99 +77,28 @@ public class MaterialStoreUsedDataVO implements Serializable {
*/
private String storeName;
public Integer getDayAvgUseMatlNum() {
return dayAvgUseMatlNum;
}
public void setDayAvgUseMatlNum(Integer dayAvgUseMatlNum) {
this.dayAvgUseMatlNum = dayAvgUseMatlNum;
}
public BigDecimal getDayAvgUseRate() {
return dayAvgUseRate;
}
public void setDayAvgUseRate(BigDecimal dayAvgUseRate) {
this.dayAvgUseRate = dayAvgUseRate;
}
public Integer getClickUserNum() {
return clickUserNum;
}
public void setClickUserNum(Integer clickUserNum) {
this.clickUserNum = clickUserNum;
}
public Integer getConvUserNum() {
return convUserNum;
}
public void setConvUserNum(Integer convUserNum) {
this.convUserNum = convUserNum;
}
public BigDecimal getConvSalesNmt() {
return convSalesNmt;
}
public void setConvSalesNmt(BigDecimal convSalesNmt) {
this.convSalesNmt = convSalesNmt;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
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;
}
public BigDecimal getUserClickNumRatio() {
return userClickNumRatio;
}
public void setUserClickNumRatio(BigDecimal userClickNumRatio) {
this.userClickNumRatio = userClickNumRatio;
}
public BigDecimal getConvUserNumRatio() {
return convUserNumRatio;
}
public void setConvUserNumRatio(BigDecimal convUserNumRatio) {
this.convUserNumRatio = convUserNumRatio;
}
/**
* 开始时间
*/
private Date startTime;
public Integer getConvSalesAmtRank() {
return convSalesAmtRank;
}
/**
* 结束时间
*/
private Date endTime;
public void setConvSalesAmtRank(Integer convSalesAmtRank) {
this.convSalesAmtRank = convSalesAmtRank;
}
/**
* 导购id
*/
private String clerkId;
public BigDecimal getConvSalesAmtRatio() {
return convSalesAmtRatio;
}
/**
* 导购名称
*/
private String clerkName;
public void setConvSalesAmtRatio(BigDecimal convSalesAmtRatio) {
this.convSalesAmtRatio = convSalesAmtRatio;
}
/**
* 导购头像
*/
private String imageUrl;
}
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