Commit 48d243d0 by 王祖波

潜客数据接口

parent d6ea4ce3
...@@ -106,7 +106,7 @@ public class ContactLogServiceImpl implements ContactLogService { ...@@ -106,7 +106,7 @@ public class ContactLogServiceImpl implements ContactLogService {
contactLog.setContactTime(date); contactLog.setContactTime(date);
contactLog.setContactCycle(contactCycle); contactLog.setContactCycle(contactCycle);
contactLog.setContactCycleFirst(contactCycleFirst); contactLog.setContactCycleFirst(contactCycleFirst);
// todo 建联时间 // 成为潜客时间 无用暂不写
contactLog.setPotentialTime(null); contactLog.setPotentialTime(null);
contactLog.setEnterpriseId(enterpriseId); contactLog.setEnterpriseId(enterpriseId);
contactLogMapper.insert(contactLog); contactLogMapper.insert(contactLog);
......
package com.gic.haoban.manage.web.controller.content.adaptor; package com.gic.haoban.manage.web.controller.content.adaptor;
import cn.hutool.core.lang.Pair;
import com.gic.clerk.api.dto.ClerkDTO; import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.dto.StoreInfoDTO; import com.gic.clerk.api.dto.StoreInfoDTO;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
...@@ -11,16 +12,15 @@ import com.gic.haoban.manage.api.dto.StaffDTO; ...@@ -11,16 +12,15 @@ import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.role.StoreRoleDTO; import com.gic.haoban.manage.api.dto.role.StoreRoleDTO;
import com.gic.haoban.manage.api.service.StaffApiService; import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService; import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.web.vo.StoreClerkIdVO;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Collections; import java.util.*;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -128,4 +128,19 @@ public class ClerkStoreAdaptor { ...@@ -128,4 +128,19 @@ public class ClerkStoreAdaptor {
} }
return storeDTOS.stream().collect(Collectors.toMap(StoreDTO::getStoreId, storeDTO -> storeDTO)); return storeDTOS.stream().collect(Collectors.toMap(StoreDTO::getStoreId, storeDTO -> storeDTO));
} }
public Pair<Map<String, ClerkDTO>,Map<String, StoreDTO>> getClerkStoreIdMap(List<? extends StoreClerkIdVO> result) {
if (CollectionUtils.isEmpty(result)) {
return new Pair<>(new HashMap<>(), new HashMap<>());
}
Set<String> storeIdSet = new HashSet<>();
Set<String> clerkIdSet = new HashSet<>();
result.forEach(x->{
storeIdSet.add(x.getStoreId());
clerkIdSet.add(x.getClerkId());
});
Map<String, ClerkDTO> clerkMap = queryClerkMap(Lists.newArrayList(clerkIdSet));
Map<String, StoreDTO> storeMap = queryStoreMap(Lists.newArrayList(storeIdSet));
return new Pair<>(clerkMap, storeMap);
}
} }
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
public class PotentialBusiOverviewQO extends PotentialOverviewQO {
private static final long serialVersionUID = -4105397589798480404L;
/**
* 查询的业务列表 默认所有 1建联数据 2转化数据
*/
private List<Integer> queryBiz;
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class PotentialContactOverviewQO extends PotentialOverviewQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("potCusNum", 1); // 潜力客户数
map.put("connPotCusNum", 2); // 建联客户数
map.put("potCusConnRate", 3); // 建联率
map.put("convsPotCusNum", 4); // 转化客户数
map.put("connConvsRate", 5); // 转化率
map.put("connConvsAmt", 6); // 潜客转化金额
map.put("noConnPotCusNum", 7); // 当前未建联潜客数
return map;
}
public String getDefaultFields() {
return "potCusConnRate";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class PotentialConvMemberQO extends PotentialStatisticsBaseQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("connConvsAmt", 1); // 潜客转化金额
return map;
}
public String getDefaultFields() {
return "connConvsAmt";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class PotentialConvOverviewQO extends PotentialOverviewQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("onlineConnConvsMbrNum", 1); // 商城转化客户数
map.put("onlineConnConvsAmt", 2); // 商城转化金额
map.put("offlineConnConvsMbrNum", 3); // 线下转化客户数
map.put("offlineConnConvsAmt", 4); // 线下转化金额
map.put("potCusRdrOnlineConvsMbrNum", 5); // 潜客雷达商城转化客户数
map.put("potCusRdrOnlineConvsAmt", 6); // 潜客雷达商城转化金额
map.put("potCusRdrOfflineConvsMbrNum", 7); // 潜客雷达线下转化客户数
map.put("potCusRdrOfflineConvsAmt", 8); // 潜客雷达线下转化金额
return map;
}
public String getDefaultFields() {
return "onlineConnConvsMbrNum";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class PotentialOverviewQO extends PotentialStatisticsBaseQO {
private static final long serialVersionUID = -4105397589798480404L;
/**
* 数据类型
* 1 周报; 2 月报
* @see com.gic.haoban.manage.api.enums.content.MaterialReportType
*/
private Integer reportType;
/**
* 周报/月报传业务周期
*/
private String bizDate;
/**
* 1 门店维度 2 导购维度
*/
private Integer potGroup;
}
package com.gic.haoban.manage.web.qo.potential;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.haoban.common.utils.DateUtil;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
public class PotentialStatisticsBaseQO extends BasePageInfo {
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 门店id
*/
private String storeId;
/**
* 门店id列表
*/
private List<String> storeIdList;
/**
* 门店过滤
*/
private Integer storeStatusFilter;
/**
* 开始时间
*/
private String startDate;
/**
* 结束时间
*/
private String endDate;
/**
* 排序字段
*/
private String orderByField;
/**
* asc
* desc
*/
private String order;
public String getEndDate() {
if (StringUtils.isBlank(this.endDate)) {
return DateUtil.dateToStr(DateUtils.addDays(new Date(), -1), "yyyy-MM-dd");
}
return endDate;
}
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
return map;
}
public String getDefaultFields() {
return "";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.List;
@Data
public class RecommendBusiOverviewQO extends PotentialOverviewQO {
private static final long serialVersionUID = -4105397589798480404L;
/**
* 查询的业务列表 默认所有 1使用数据 2转化数据
*/
private List<Integer> queryBiz;
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class RecommendConvOverviewQO extends PotentialOverviewQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("matchingOnlineConvsMbrNum", 1); // 人货匹配商城转化人数
map.put("matchingOnlineConvsAmt", 2); // 人货匹配商城转化金额
map.put("matchingOfflineConvsMbrNum", 3); // 人货匹配线下转化人数
map.put("matchingOfflineConvsAmt", 4); // 人货匹配线下转化金额
map.put("matchingOnlineConvsMbrNumOverview", 5);// 人货匹配商城转化人数(总览)
map.put("matchingOnlineConvsAmtOverview", 6); // 人货匹配商城转化金额(总览)
map.put("matchingOfflineConvsMbrNumOverview", 7);// 人货匹配线下转化人数(总览)
map.put("matchingOfflineConvsAmtOverview", 8); // 人货匹配线下转化金额(总览)
return map;
}
public String getDefaultFields() {
return "matchingOnlineConvsMbrNum";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class RecommendConvTrendQO extends PotentialStatisticsBaseQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("matchingOnlineConvsMbrNum", 1); // 1 人货匹配商城转化客户数
map.put("matchingOnlineConvsAmt", 2); // 2 人货匹配商城转化金额
map.put("matchingOfflineConvsMbrNum", 3); // 3 人货匹配线下转化客户数
map.put("matchingOfflineConvsAmt", 4); // 4 人货匹配线下转化金额
map.put("matchingOnlineConvsMbrNumOverview", 5);// 5 人货匹配商城转化客户数(总览)
map.put("matchingOnlineConvsAmtOverview", 6); // 6 人货匹配商城转化金额(总览)
map.put("matchingOfflineConvsMbrNumOverview", 7);// 7 人货匹配线下转化客户数(总览)
map.put("matchingOfflineConvsAmtOverview", 8); // 8 人货匹配线下转化金额(总览)
map.put("bizDate", 9); // 日期
return map;
}
public String getDefaultFields() {
return "bizDate";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class RecommendUsedOverviewQO extends PotentialOverviewQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("matchingTouchMbrNum", 1); // 人货匹配触达客户数
map.put("matchingReachClickMbrNum", 2); // 人货匹配访问人数
map.put("matchingCTR", 3); // 人货匹配触达访问率
map.put("matchingTouchConvsMbrNum", 4); // 人货匹配触达转化人数
map.put("matchingConvsRate", 5); // 人货匹配触达转化率
map.put("matchingTouchConvsAmt", 6); // 人货匹配触达转化金额
return map;
}
public String getDefaultFields() {
return "matchingTouchMbrNum";
}
}
package com.gic.haoban.manage.web.qo.potential;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class RecommendUsedTrendQO extends PotentialStatisticsBaseQO {
private static final long serialVersionUID = -4105397589798480404L;
public Map<String, Integer> getFieldsOrder() {
Map<String, Integer> map = new HashMap<>();
map.put("matchingTouchMbrNum", 1); // 人货匹配触达客户数
map.put("matchingReachClickMbrNum", 2); // 人货匹配访问人数
map.put("matchingCTR", 3); // 人货匹配触达访问率
map.put("matchingTouchConvsMbrNum", 4); // 人货匹配触达转化人数
map.put("matchingConvsRate", 5); // 人货匹配触达转化率
map.put("matchingTouchConvsAmt", 6); // 人货匹配触达转化金额
map.put("bizDate", 7); // 日期
return map;
}
public String getDefaultFields() {
return "bizDate";
}
}
...@@ -41,7 +41,7 @@ public class EsMemberInfoUtils { ...@@ -41,7 +41,7 @@ public class EsMemberInfoUtils {
} }
} }
if (CollectionUtils.isNotEmpty(memberIdList)) { if (CollectionUtils.isNotEmpty(memberIdList)) {
List<JSONObject> memberJson = queryDataBatch(enterpriseId, memberIdList, "memberId,name,mainStoreId,phoneNumber,name,nickName,mainClerkId,photoUrl"); List<JSONObject> memberJson = queryDataBatch(enterpriseId, memberIdList, "memberId,name,mainStoreId,phoneNumber,name,nickName,mainClerkId,photoUrl,cardNo");
if (CollectionUtils.isNotEmpty(memberJson)) { if (CollectionUtils.isNotEmpty(memberJson)) {
Map<String, JSONObject> map = memberJson.stream() Map<String, JSONObject> map = memberJson.stream()
.collect(Collectors.toMap(e -> e.getString("memberId"), e -> e)); .collect(Collectors.toMap(e -> e.getString("memberId"), e -> e));
...@@ -94,6 +94,12 @@ public class EsMemberInfoUtils { ...@@ -94,6 +94,12 @@ public class EsMemberInfoUtils {
if (fieldName.contains("memberScene")) { if (fieldName.contains("memberScene")) {
ReflectUtils.setDateFieldValue(vo, "memberScene", 3); ReflectUtils.setDateFieldValue(vo, "memberScene", 3);
} }
if (fieldName.contains("memberCard")) {
ReflectUtils.setDateFieldValue(vo, "memberCard", jsonValue.getString("cardNo"));
}
if (fieldName.contains("memberImage")) {
ReflectUtils.setDateFieldValue(vo, "memberImage", jsonValue.getString("photoUrl"));
}
if (isQueryStore) { if (isQueryStore) {
String mainStoreId = jsonValue.getString("mainStoreId"); String mainStoreId = jsonValue.getString("mainStoreId");
......
package com.gic.haoban.manage.web.vo;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class StoreClerkIdVO {
/**
* 导购id
*/
private String clerkId;
/**
* 门店id
*/
private String storeId;
}
package com.gic.haoban.manage.web.vo;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class StoreClerkInfoVO {
/**
* 导购id
*/
private String clerkId;
/**
* 导购code
*/
private String clerkCode;
/**
* 导购名称
*/
private String clerkName;
/**
* 门店id
*/
private String storeId;
/**
* 门店code
*/
private String storeCode;
/**
* 门店名称
*/
private String storeName;
public void setClerk(ClerkDTO clerkDTO) {
if (clerkDTO == null) {
return;
}
this.setClerkId(clerkDTO.getClerkId());
this.setClerkCode(clerkDTO.getClerkCode());
this.setClerkName(clerkDTO.getClerkName());
}
public void setStore(StoreDTO storeDTO) {
if (storeDTO == null) {
return;
}
this.setStoreId(storeDTO.getStoreId());
this.setStoreCode(storeDTO.getStoreCode());
this.setStoreName(storeDTO.getStoreName());
}
}
...@@ -13,35 +13,7 @@ import java.util.Date; ...@@ -13,35 +13,7 @@ import java.util.Date;
public class MaterialPersonalUsedDataVO implements Serializable { public class MaterialPersonalUsedDataVO implements Serializable {
private static final long serialVersionUID = 6148710247246321358L; private static final long serialVersionUID = 6148710247246321358L;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 导购id
*/
private String clerkId;
/**
* 导购code
*/
private String clerkCode;
/**
* 导购名称
*/
private String clerkName;
/**
* 导购头像
*/
private String imageUrl;
/** /**
* 使用素材数量 * 使用素材数量
......
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkInfoVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class PotentialContactDetailOverviewVO extends StoreClerkInfoVO {
/**
* 建联数据
*/
private PotentialContactOverviewVO contact;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkIdVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/21.
*/
@Data
public class PotentialContactOverviewVO extends StoreClerkIdVO {
/**
* 潜力客户数
*/
private Integer potCusNum;
/**
* 建联客户数
*/
private Integer connPotCusNum;
/**
* 建联率
*/
private Double potCusConnRate;
/**
* 转化客户数
*/
private Integer convsPotCusNum;
/**
* 转化率
*/
private Double connConvsRate;
/**
* 潜客转化金额
*/
private Double connConvsAmt;
/**
* 当前未建联潜客数
*/
private Integer noConnPotCusNum;
/**
* 潜力客户数上一周期环比
*/
private Double potCusNumLast;
/**
* 建联客户数上一周期环比
*/
private Double connPotCusNumLast;
/**
* 建联率上一周期环比
*/
private Double potCusConnRateLast;
/**
* 转化客户数上一周期环比
*/
private Integer convsPotCusNumLast;
/**
* 转化率上一周期环比
*/
private Double connConvsRateLast;
/**
* 潜客转化金额上一周期环比
*/
private Double connConvsAmtLast;
/**
* 建联率排名
*/
private Integer potCusConnRateRank;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkInfoVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class PotentialConvDetailOverviewVO extends StoreClerkInfoVO {
/**
* 转化数据
*/
private PotentialConvOverviewVO conv;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkIdVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class PotentialConvOverviewVO extends StoreClerkIdVO {
/**
* 商城转化金额
*/
private Double onlineConnConvsAmt;
/**
* 商城转化客户数
*/
private Integer onlineConnConvsMbrNum;
/**
* 线下转化金额
*/
private Double offlineConnConvsAmt;
/**
* 线下转化客户数
*/
private Integer offlineConnConvsMbrNum;
/**
* 商城转化金额上一周期环比
*/
private Double onlineConnConvsAmtLast;
/**
* 商城转化客户数上一周期环比
*/
private Double onlineConnConvsMbrNumLast;
/**
* 线下转化金额上一周期环比
*/
private Double offlineConnConvsAmtLast;
/**
* 线下转化客户数上一周期环比 (必须)
*/
private Integer offlineConnConvsMbrNumLast;
/**
* 商城转化金额排名 (必须)
*/
private Integer onlineConnConvsAmtRank;
/**
* 线下转化金额排名 (必须)
*/
private Integer offlineConnConvsAmtRank;
/**
* 潜客雷达商城转化客户数
*/
private Integer potCusRdrOnlineConvsMbrNum;
/**
* 潜客雷达商城转化金额
*/
private Double potCusRdrOnlineConvsAmt;
/**
* 潜客雷达线下转化客户数
*/
private Integer potCusRdrOfflineConvsMbrNum;
/**
* 潜客雷达线下转化金额
*/
private Double potCusRdrOfflineConvsAmt;
}
package com.gic.haoban.manage.web.vo.potential;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class PotentialMemberConvVO {
/**
* 会员id
*/
private String memberId;
/**
* 潜客转化金额
*/
private Double connConvsAmt;
/**
* 会员名称
*/
private String memberName;
/**
* 会员昵称
*/
private String memberNick;
/**
* 会员卡号
*/
private String memberCard;
/**
* 会员头像
*/
private String memberImage;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.clerk.api.dto.ClerkDTO;
import lombok.Data;
import java.util.Date;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class PotentialOverviewVO {
/**
* 建联数据
*/
private PotentialContactOverviewVO contact;
/**
* 转化数据
*/
private PotentialConvOverviewVO conv;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 导购id
*/
private String clerkId;
/**
* 导购code
*/
private String clerkCode;
/**
* 导购名称
*/
private String clerkName;
/**
* 导购头像
*/
private String imageUrl;
public void setClerk(ClerkDTO clerkDTO) {
if (clerkDTO == null) {
return;
}
this.clerkId = clerkDTO.getClerkId();
this.clerkCode = clerkDTO.getClerkCode();
this.clerkName = clerkDTO.getClerkName();
this.imageUrl = clerkDTO.getImageUrl();
}
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkInfoVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendConvDetailOverviewVO extends StoreClerkInfoVO {
/**
* 转化数据
*/
private RecommendConvOverviewVO conv;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkIdVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendConvOverviewVO extends StoreClerkIdVO {
/**
* 人货匹配商城转化人数
*/
private Integer matchingOnlineConvsMbrNum;
/**
* 人货匹配商城转化金额
*/
private Double matchingOnlineConvsAmt;
/**
* 人货匹配线下转化人数
*/
private Integer matchingOfflineConvsMbrNum;
/**
* 人货匹配线下转化金额
*/
private Double matchingOfflineConvsAmt;
/**
* 人货匹配商城转化人数(总览)
*/
private Integer matchingOnlineConvsMbrNumOverview;
/**
* 人货匹配商城转化金额(总览)
*/
private Double matchingOnlineConvsAmtOverview;
/**
* 人货匹配线下转化人数(总览)
*/
private Integer matchingOfflineConvsMbrNumOverview;
/**
* 人货匹配线下转化金额(总览)
*/
private Double matchingOfflineConvsAmtOverview;
}
package com.gic.haoban.manage.web.vo.potential;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendConvTrendVO {
/**
* 人货匹配商城转化客户数
*/
private Integer matchingOnlineConvsMbrNum;
/**
* 人货匹配商城转化金额
*/
private Double matchingOnlineConvsAmt;
/**
* 人货匹配线下转化客户数
*/
private Integer matchingOfflineConvsMbrNum;
/**
* 人货匹配线下转化金额
*/
private Double matchingOfflineConvsAmt;
/**
* 人货匹配商城转化客户数(总览)
*/
private Integer matchingOnlineConvsMbrNumOverview;
/**
* 人货匹配商城转化金额(总览)
*/
private Double matchingOnlineConvsAmtOverview;
/**
* 人货匹配线下转化客户数(总览)
*/
private Integer matchingOfflineConvsMbrNumOverview;
/**
* 人货匹配线下转化金额(总览)
*/
private Double matchingOfflineConvsAmtOverview;
/**
* 日期
*/
private String bizDate;
}
package com.gic.haoban.manage.web.vo.potential;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendOverviewVO {
/**
* 使用数据
*/
private RecommendUsedOverviewVO used;
/**
* 转化数据
*/
private RecommendConvOverviewVO conv;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkInfoVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendUsedDetailOverviewVO extends StoreClerkInfoVO {
/**
* 使用数据
*/
private RecommendUsedOverviewVO used;
}
package com.gic.haoban.manage.web.vo.potential;
import com.gic.haoban.manage.web.vo.StoreClerkIdVO;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendUsedOverviewVO extends StoreClerkIdVO {
/**
* 人货匹配触达客户数
*/
private Integer matchingTouchMbrNum;
/**
* 人货匹配访问人数
*/
private Integer matchingReachClickMbrNum;
/**
* 人货匹配触达访问率
*/
private Double matchingCTR;
/**
* 人货匹配触达转化人数
*/
private Integer matchingTouchConvsMbrNum;
/**
* 人货匹配触达转化率
*/
private Double matchingConvsRate;
/**
* 人货匹配触达转化金额
*/
private Double matchingTouchConvsAmt;
}
package com.gic.haoban.manage.web.vo.potential;
import lombok.Data;
/**
* Created by wangzubo on 2025/3/22.
*/
@Data
public class RecommendUsedTrendVO {
/**
* 人货匹配触达客户数
*/
private Integer matchingTouchMbrNum;
/**
* 人货匹配访问人数
*/
private Integer matchingReachClickMbrNum;
/**
* 人货匹配触达访问率
*/
private Double matchingCTR;
/**
* 人货匹配触达转化人数
*/
private Integer matchingTouchConvsMbrNum;
/**
* 人货匹配触达转化率
*/
private Double matchingConvsRate;
/**
* 人货匹配触达转化金额
*/
private Double matchingTouchConvsAmt;
/**
* 日期
*/
private String bizDate;
}
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