Commit 71ef5fff by shenjunjie

Merge branch 'feature' into 'release'

工具集互动量更新-影响力计算逻辑调整

See merge request !544
parents 5c3c6a63 0bd6a45b
...@@ -734,10 +734,14 @@ public class ToolsetServiceImpl implements ToolsetService { ...@@ -734,10 +734,14 @@ public class ToolsetServiceImpl implements ToolsetService {
? data.getPlatformType() : "网媒", data.getChannel())); ? data.getPlatformType() : "网媒", data.getChannel()));
// 1.分别将等级为S,A,B,C的渠道各自加和 // 1.分别将等级为S,A,B,C的渠道各自加和
if (Objects.nonNull(channelInfluence)){ if (Objects.nonNull(channelInfluence)){
// 2024/5/21修改:无论表中是否匹配,当类型为D,取值=1 // 2024/5/21修改:即使表中匹配,当类型为D,取值=1
if (Objects.equals("D", channelInfluence.getLevel())){ if (Objects.equals("D", channelInfluence.getLevel())){
channelInfluence.setInfluence(1d); channelInfluence.setInfluence(1d);
} }
// 对于表中匹配上的非D级渠道:当表中的渠道影响力为0或1时,给予对应等级的默认值
if (!Objects.equals("D", channelInfluence.getLevel()) && (0 == channelInfluence.getInfluence() || 1 == channelInfluence.getInfluence())){
channelInfluence.setInfluence(getMatchedDefaultChannelInf(channelInfluence.getLevel()));
}
levelSumH.compute(channelInfluence.getLevel(), (k, v) -> Objects.isNull(v) levelSumH.compute(channelInfluence.getLevel(), (k, v) -> Objects.isNull(v)
? channelInfluence.getInfluence() ? channelInfluence.getInfluence()
: BigDecimal.valueOf(v).add(BigDecimal.valueOf(channelInfluence.getInfluence())).doubleValue()); : BigDecimal.valueOf(v).add(BigDecimal.valueOf(channelInfluence.getInfluence())).doubleValue());
...@@ -764,6 +768,21 @@ public class ToolsetServiceImpl implements ToolsetService { ...@@ -764,6 +768,21 @@ public class ToolsetServiceImpl implements ToolsetService {
return BigDecimal.valueOf(result).setScale(1, RoundingMode.HALF_UP).doubleValue(); return BigDecimal.valueOf(result).setScale(1, RoundingMode.HALF_UP).doubleValue();
} }
private double getMatchedDefaultChannelInf(String level){
switch (level){
case "A":
return 72.1;
case "B":
return 57.1;
case "C":
return 37.5;
case "S":
return 88.1;
default:
return 1d;
}
}
/** /**
* 计算实时传播力(RMI) * 计算实时传播力(RMI)
* @param data * @param data
...@@ -885,7 +904,8 @@ public class ToolsetServiceImpl implements ToolsetService { ...@@ -885,7 +904,8 @@ public class ToolsetServiceImpl implements ToolsetService {
* @return * @return
*/ */
private double computeFinalInf(double inf, double RMI){ private double computeFinalInf(double inf, double RMI){
return BigDecimal.valueOf(inf).add(BigDecimal.valueOf(RMI)).divide(BigDecimal.valueOf(2), 1, RoundingMode.HALF_UP).doubleValue(); double finalInf = BigDecimal.valueOf(inf).add(BigDecimal.valueOf(RMI)).divide(BigDecimal.valueOf(2), 1, RoundingMode.HALF_UP).doubleValue();
return finalInf > 1 ? finalInf : 1d;
} }
/** /**
......
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