|
@@ -70,6 +70,7 @@ public class ContentPlatformDatastatJob {
|
|
|
"FROM loghubods.out_channel_mid_first_total first_level " +
|
|
|
"left join loghubods.out_channel_mid_split_total fission " +
|
|
|
"on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "and first_level.type = fission.type and first_level.tag = fission.tag " +
|
|
|
"WHERE first_level.dt = %s and first_level.type = '公众号即时回复' and first_level.tag = '投放渠道内分客户分账号去重';", dt);
|
|
|
List<Record> dataList = OdpsUtil.getOdpsData(sql);
|
|
|
// 所有公众号
|
|
@@ -102,7 +103,7 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
|
|
|
if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
- BigDecimal num = BigDecimal.valueOf(fissionCount / firstLevelCount);
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
item.setScore(rounded.doubleValue());
|
|
|
}
|
|
@@ -124,10 +125,11 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
Long now = System.currentTimeMillis();
|
|
|
// 公众号自动回复数据统计
|
|
|
- String sql = String.format("SELECT first_level.channel_shortname, first_level.first_uv, , fission.split_uv " +
|
|
|
+ String sql = String.format("SELECT first_level.channel_shortname, first_level.first_uv, fission.split_uv " +
|
|
|
"FROM loghubods.out_channel_mid_first_total first_level " +
|
|
|
"left join loghubods.out_channel_mid_split_total fission " +
|
|
|
- "on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "on first_level.channel_shortname = fission.channel_shortname and first_level.dt = fission.dt " +
|
|
|
+ "and first_level.type = fission.type and first_level.tag = fission.tag " +
|
|
|
"WHERE first_level.dt = %s and first_level.type = '公众号即时回复' and first_level.tag = '投放渠道内去重' ;", dt);
|
|
|
List<Record> dataList = OdpsUtil.getOdpsData(sql);
|
|
|
// 所有公众号
|
|
@@ -167,7 +169,7 @@ public class ContentPlatformDatastatJob {
|
|
|
item.setFansIncreaseCount(fansIncreaseCount);
|
|
|
|
|
|
if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
- BigDecimal num = BigDecimal.valueOf(fissionCount / firstLevelCount);
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
item.setScore(rounded.doubleValue());
|
|
|
}
|
|
@@ -194,10 +196,11 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
Long now = System.currentTimeMillis();
|
|
|
// 公众号自动回复数据统计
|
|
|
- String sql = String.format("SELECT first_level.subchannel, first_level.first_uv, , fission.split_uv " +
|
|
|
+ String sql = String.format("SELECT first_level.subchannel, first_level.first_uv, fission.split_uv " +
|
|
|
"FROM loghubods.out_channel_mid_first_total first_level " +
|
|
|
"left join loghubods.out_channel_mid_split_total fission " +
|
|
|
- "on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "on first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "and first_level.type = fission.type and first_level.tag = fission.tag " +
|
|
|
"WHERE first_level.dt = %s and first_level.type = '服务号代运营' and first_level.tag = '投放渠道内分客户分账号去重' ;", dt);
|
|
|
List<Record> dataList = OdpsUtil.getOdpsData(sql);
|
|
|
// 所有公众号
|
|
@@ -230,7 +233,7 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
|
|
|
if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
- BigDecimal num = BigDecimal.valueOf(fissionCount / firstLevelCount);
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
item.setScore(rounded.doubleValue());
|
|
|
}
|
|
@@ -252,10 +255,11 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
Long now = System.currentTimeMillis();
|
|
|
// 公众号自动回复数据统计
|
|
|
- String sql = String.format("SELECT first_level.channel_shortname, first_level.first_uv, , fission.split_uv " +
|
|
|
+ String sql = String.format("SELECT first_level.channel_shortname, first_level.first_uv, fission.split_uv " +
|
|
|
"FROM loghubods.out_channel_mid_first_total first_level " +
|
|
|
"left join loghubods.out_channel_mid_split_total fission " +
|
|
|
- "on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "on first_level.channel_shortname = fission.channel_shortname and first_level.dt = fission.dt " +
|
|
|
+ "and first_level.type = fission.type and first_level.tag = fission.tag " +
|
|
|
"WHERE first_level.dt = %s and first_level.type = '服务号代运营' and first_level.tag = '投放渠道内去重' ;", dt);
|
|
|
List<Record> dataList = OdpsUtil.getOdpsData(sql);
|
|
|
// 所有公众号
|
|
@@ -295,7 +299,7 @@ public class ContentPlatformDatastatJob {
|
|
|
item.setFansIncreaseCount(fansIncreaseCount);
|
|
|
|
|
|
if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
- BigDecimal num = BigDecimal.valueOf(fissionCount / firstLevelCount);
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
item.setScore(rounded.doubleValue());
|
|
|
}
|
|
@@ -444,12 +448,12 @@ public class ContentPlatformDatastatJob {
|
|
|
if (StringUtils.hasText(param)) {
|
|
|
dt = param;
|
|
|
}
|
|
|
- dataStatMapperExt.deleteQwDatastatTotal(dt);
|
|
|
Map<String, ContentPlatformQwDataStatTotal> saveMap = new HashMap<>();
|
|
|
- String outSql = String.format("SELECT first_level.channel_shortname, first_level.first_uv, , fission.split_uv " +
|
|
|
+ String outSql = String.format("SELECT first_level.channel_shortname, first_level.first_uv, fission.split_uv " +
|
|
|
"FROM loghubods.out_channel_mid_first_total first_level " +
|
|
|
"left join loghubods.out_channel_mid_split_total fission " +
|
|
|
- "on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "on first_level.channel_shortname = fission.channel_shortname and first_level.dt = fission.dt " +
|
|
|
+ "and first_level.type = fission.type and first_level.tag = fission.tag " +
|
|
|
"WHERE first_level.dt = %s and first_level.type = '企微外部' and first_level.tag = '投放渠道内去重' ;", dt);
|
|
|
List<Record> outDataList = OdpsUtil.getOdpsData(outSql);
|
|
|
Long now = System.currentTimeMillis();
|
|
@@ -469,7 +473,7 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
|
|
|
if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
- BigDecimal num = BigDecimal.valueOf(fissionCount / firstLevelCount);
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
item.setScore(rounded.doubleValue());
|
|
|
}
|
|
@@ -480,14 +484,7 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
List<ContentPlatformQwDataStatTotal> saveList = new ArrayList<>(saveMap.values());
|
|
|
if (CollectionUtils.isNotEmpty(saveList)) {
|
|
|
- List<String> channels = saveList.stream().map(ContentPlatformQwDataStatTotal::getChannel).distinct().collect(Collectors.toList());
|
|
|
- List<ContentPlatformQwDataStatTotal> channelScoreList = dataStatMapperExt.getQwTotalDatastatScoreList(dt, channels);
|
|
|
- Map<String, Double> channelScoreMap = channelScoreList.stream()
|
|
|
- .filter(o -> Objects.nonNull(o.getChannel()) && Objects.nonNull(o.getScore()))
|
|
|
- .collect(Collectors.toMap(ContentPlatformQwDataStatTotal::getChannel, ContentPlatformQwDataStatTotal::getScore, (a, b) -> a));
|
|
|
- for (ContentPlatformQwDataStatTotal item : saveList) {
|
|
|
- item.setScore(channelScoreMap.get(item.getChannel()));
|
|
|
- }
|
|
|
+ dataStatMapperExt.deleteQwDatastatTotal(dt);
|
|
|
dataStatMapperExt.batchInsertQwDatastatTotal(saveList);
|
|
|
}
|
|
|
return ReturnT.SUCCESS;
|
|
@@ -499,7 +496,6 @@ public class ContentPlatformDatastatJob {
|
|
|
if (StringUtils.hasText(param)) {
|
|
|
dt = param;
|
|
|
}
|
|
|
- dataStatMapperExt.deleteQwDatastatReplyTotal(dt);
|
|
|
Map<String, ContentPlatformQwDataStatReplyTotal> saveMap = new HashMap<>();
|
|
|
String outSql = String.format("SELECT * FROM loghubods.qw_out_touliu_behavior_total WHERE dt=%s and 推送方式 = '自动回复';", dt);
|
|
|
List<Record> outDataList = OdpsUtil.getOdpsData(outSql);
|
|
@@ -557,6 +553,7 @@ public class ContentPlatformDatastatJob {
|
|
|
for (ContentPlatformQwDataStatReplyTotal item : saveList) {
|
|
|
item.setScore(channelScoreMap.get(item.getChannel()));
|
|
|
}
|
|
|
+ dataStatMapperExt.deleteQwDatastatReplyTotal(dt);
|
|
|
dataStatMapperExt.batchInsertQwDatastatReplyTotal(saveList);
|
|
|
}
|
|
|
return ReturnT.SUCCESS;
|
|
@@ -569,10 +566,11 @@ public class ContentPlatformDatastatJob {
|
|
|
dt = param;
|
|
|
}
|
|
|
List<ContentPlatformQwDataStatSubChannel> saveList = new ArrayList<>();
|
|
|
- String outSql = String.format("SELECT first_level.channel_shortname, first_level.subchannel, first_level.first_uv, , fission.split_uv " +
|
|
|
+ String outSql = String.format("SELECT first_level.channel_shortname, first_level.subchannel, first_level.first_uv, fission.split_uv " +
|
|
|
"FROM loghubods.out_channel_mid_first_total first_level " +
|
|
|
"left join loghubods.out_channel_mid_split_total fission " +
|
|
|
"on first_level.channel_shortname = fission.channel_shortname and first_level.subchannel = fission.subchannel and first_level.dt = fission.dt " +
|
|
|
+ "and first_level.type = fission.type and first_level.tag = fission.tag " +
|
|
|
"WHERE first_level.dt = %s and first_level.type = '企微外部' and first_level.tag = '投放渠道内分客户分账号去重' ;", dt);
|
|
|
List<Record> outDataList = OdpsUtil.getOdpsData(outSql);
|
|
|
List<ContentPlatformAccount> accountList = getAllAccount();
|
|
@@ -611,7 +609,7 @@ public class ContentPlatformDatastatJob {
|
|
|
}
|
|
|
|
|
|
if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
- BigDecimal num = BigDecimal.valueOf(fissionCount / firstLevelCount);
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
item.setScore(rounded.doubleValue());
|
|
|
}
|
|
@@ -622,6 +620,7 @@ public class ContentPlatformDatastatJob {
|
|
|
for (Record record : noSubChannelRecordList) {
|
|
|
String channel = (String) record.get(0);
|
|
|
int firstLevelCount = Integer.parseInt((String) record.get(2));
|
|
|
+ Integer fissionCount = parseInteger(record.get(3));
|
|
|
ContentPlatformQwDataStatSubChannel item = new ContentPlatformQwDataStatSubChannel();
|
|
|
item.setDateStr(dt);
|
|
|
ContentPlatformAccount account = accountMap.get(channel);
|
|
@@ -634,6 +633,12 @@ public class ContentPlatformDatastatJob {
|
|
|
item.setFirstLevelCount(0);
|
|
|
}
|
|
|
item.setFirstLevelCount(item.getFirstLevelCount() + firstLevelCount);
|
|
|
+
|
|
|
+ if (Objects.nonNull(fissionCount) && fissionCount > 0 && firstLevelCount > 0) {
|
|
|
+ BigDecimal num = BigDecimal.valueOf(fissionCount.doubleValue() / firstLevelCount);
|
|
|
+ BigDecimal rounded = num.setScale(2, RoundingMode.HALF_UP);
|
|
|
+ item.setScore(rounded.doubleValue());
|
|
|
+ }
|
|
|
item.setCreateTimestamp(now);
|
|
|
saveList.add(item);
|
|
|
}
|