|
|
@@ -299,16 +299,7 @@ public class ChannelDemandMatchJob {
|
|
|
* 短哈希由全19个需求字段+视频ID+configCode拼接后MD5取前8位,确保唯一性
|
|
|
*/
|
|
|
private String generateExperimentId(ChannelDemandMatchResult demand, Long matchVideoId, String matchConfigCode) {
|
|
|
- // 可读部分:几个关键字段
|
|
|
- StringJoiner readablePart = new StringJoiner("_");
|
|
|
- readablePart.add(nullToEmpty(demand.getChannelName()));
|
|
|
- readablePart.add(nullToEmpty(demand.getOnlineAction()));
|
|
|
- readablePart.add(nullToEmpty(demand.getDemandStrategy()));
|
|
|
- readablePart.add(nullToEmpty(demand.getPointType()));
|
|
|
- readablePart.add(String.valueOf(matchVideoId));
|
|
|
- readablePart.add(nullToEmpty(matchConfigCode));
|
|
|
-
|
|
|
- // 唯一性保证:全字段MD5取前8位
|
|
|
+ // 全字段MD5取前16位作为experimentId
|
|
|
StringBuilder fullKey = new StringBuilder();
|
|
|
fullKey.append(nullToEmpty(demand.getChannelName()));
|
|
|
fullKey.append("|").append(nullToEmpty(demand.getOnlineAction()));
|
|
|
@@ -332,9 +323,7 @@ public class ChannelDemandMatchJob {
|
|
|
fullKey.append("|").append(matchVideoId);
|
|
|
fullKey.append("|").append(nullToEmpty(matchConfigCode));
|
|
|
String hash = Md5Util.encoderByMd5(fullKey.toString());
|
|
|
- String shortHash = (hash != null && hash.length() >= 8) ? hash.substring(0, 8) : "00000000";
|
|
|
-
|
|
|
- return readablePart + "_" + shortHash;
|
|
|
+ return (hash != null && hash.length() >= 16) ? hash.substring(0, 16) : "0000000000000000";
|
|
|
}
|
|
|
|
|
|
private String nullToEmpty(String value) {
|