丁云鹏 1 ano atrás
pai
commit
57a1abc311

+ 1 - 1
abtest-client/src/main/java/com/tzld/piaoquan/abtest/client/ABTestClient.java

@@ -21,7 +21,7 @@ public class ABTestClient {
     private GroupServiceGrpc.GroupServiceBlockingStub groupClient;
 
     public GroupInfoProto getGroup(String mid, String uid, int appType, long date, int isFromCard, String chain, Map<String,
-            Integer> group) {
+            String> group) {
         GetGroupRequest request = GetGroupRequest.newBuilder()
                 .setMid(nullToEmpty(mid))
                 .setUid(nullToEmpty(uid))

+ 1 - 1
abtest-client/src/main/java/com/tzld/piaoquan/abtest/client/model/Group.java

@@ -51,7 +51,7 @@ public final class Group {
       "\206\001\n\016GroupInfoProto\022\014\n\004date\030\001 \001(\003\022\r\n\005chai" +
       "n\030\002 \001(\t\022)\n\005group\030\003 \003(\0132\032.GroupInfoProto." +
       "GroupEntry\032,\n\nGroupEntry\022\013\n\003key\030\001 \001(\t\022\r\n" +
-      "\005value\030\002 \001(\005:\0028\001\"P\n\020GetGroupResponse\022\027\n\006" +
+      "\005value\030\002 \001(\t:\0028\001\"P\n\020GetGroupResponse\022\027\n\006" +
       "result\030\001 \001(\0132\007.Result\022#\n\ngroup_info\030\002 \001(" +
       "\0132\017.GroupInfoProto2?\n\014GroupService\022/\n\010ge" +
       "tGroup\022\020.GetGroupRequest\032\021.GetGroupRespo" +

+ 41 - 41
abtest-client/src/main/java/com/tzld/piaoquan/abtest/client/model/GroupInfoProto.java

@@ -67,7 +67,7 @@ private static final long serialVersionUID = 0L;
                   GroupDefaultEntryHolder.defaultEntry);
               mutable_bitField0_ |= 0x00000001;
             }
-            com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer>
+            com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
             group__ = input.readMessage(
                 GroupDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
             group_.getMutableMap().put(
@@ -174,18 +174,18 @@ private static final long serialVersionUID = 0L;
   public static final int GROUP_FIELD_NUMBER = 3;
   private static final class GroupDefaultEntryHolder {
     static final com.google.protobuf.MapEntry<
-        java.lang.String, java.lang.Integer> defaultEntry =
+        java.lang.String, java.lang.String> defaultEntry =
             com.google.protobuf.MapEntry
-            .<java.lang.String, java.lang.Integer>newDefaultInstance(
+            .<java.lang.String, java.lang.String>newDefaultInstance(
                 com.tzld.piaoquan.abtest.client.model.Group.internal_static_GroupInfoProto_GroupEntry_descriptor, 
                 com.google.protobuf.WireFormat.FieldType.STRING,
                 "",
-                com.google.protobuf.WireFormat.FieldType.INT32,
-                0);
+                com.google.protobuf.WireFormat.FieldType.STRING,
+                "");
   }
   private com.google.protobuf.MapField<
-      java.lang.String, java.lang.Integer> group_;
-  private com.google.protobuf.MapField<java.lang.String, java.lang.Integer>
+      java.lang.String, java.lang.String> group_;
+  private com.google.protobuf.MapField<java.lang.String, java.lang.String>
   internalGetGroup() {
     if (group_ == null) {
       return com.google.protobuf.MapField.emptyMapField(
@@ -198,7 +198,7 @@ private static final long serialVersionUID = 0L;
     return internalGetGroup().getMap().size();
   }
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
 
   @java.lang.Override
@@ -212,39 +212,39 @@ private static final long serialVersionUID = 0L;
    */
   @java.lang.Override
   @java.lang.Deprecated
-  public java.util.Map<java.lang.String, java.lang.Integer> getGroup() {
+  public java.util.Map<java.lang.String, java.lang.String> getGroup() {
     return getGroupMap();
   }
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
   @java.lang.Override
 
-  public java.util.Map<java.lang.String, java.lang.Integer> getGroupMap() {
+  public java.util.Map<java.lang.String, java.lang.String> getGroupMap() {
     return internalGetGroup().getMap();
   }
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
   @java.lang.Override
 
-  public int getGroupOrDefault(
+  public java.lang.String getGroupOrDefault(
       java.lang.String key,
-      int defaultValue) {
+      java.lang.String defaultValue) {
     if (key == null) { throw new java.lang.NullPointerException(); }
-    java.util.Map<java.lang.String, java.lang.Integer> map =
+    java.util.Map<java.lang.String, java.lang.String> map =
         internalGetGroup().getMap();
     return map.containsKey(key) ? map.get(key) : defaultValue;
   }
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
   @java.lang.Override
 
-  public int getGroupOrThrow(
+  public java.lang.String getGroupOrThrow(
       java.lang.String key) {
     if (key == null) { throw new java.lang.NullPointerException(); }
-    java.util.Map<java.lang.String, java.lang.Integer> map =
+    java.util.Map<java.lang.String, java.lang.String> map =
         internalGetGroup().getMap();
     if (!map.containsKey(key)) {
       throw new java.lang.IllegalArgumentException();
@@ -294,9 +294,9 @@ private static final long serialVersionUID = 0L;
     if (!getChainBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, chain_);
     }
-    for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry
+    for (java.util.Map.Entry<java.lang.String, java.lang.String> entry
          : internalGetGroup().getMap().entrySet()) {
-      com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer>
+      com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
       group__ = GroupDefaultEntryHolder.defaultEntry.newBuilderForType()
           .setKey(entry.getKey())
           .setValue(entry.getValue())
@@ -743,8 +743,8 @@ private static final long serialVersionUID = 0L;
     }
 
     private com.google.protobuf.MapField<
-        java.lang.String, java.lang.Integer> group_;
-    private com.google.protobuf.MapField<java.lang.String, java.lang.Integer>
+        java.lang.String, java.lang.String> group_;
+    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
     internalGetGroup() {
       if (group_ == null) {
         return com.google.protobuf.MapField.emptyMapField(
@@ -752,7 +752,7 @@ private static final long serialVersionUID = 0L;
       }
       return group_;
     }
-    private com.google.protobuf.MapField<java.lang.String, java.lang.Integer>
+    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
     internalGetMutableGroup() {
       onChanged();;
       if (group_ == null) {
@@ -769,7 +769,7 @@ private static final long serialVersionUID = 0L;
       return internalGetGroup().getMap().size();
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
 
     @java.lang.Override
@@ -783,39 +783,39 @@ private static final long serialVersionUID = 0L;
      */
     @java.lang.Override
     @java.lang.Deprecated
-    public java.util.Map<java.lang.String, java.lang.Integer> getGroup() {
+    public java.util.Map<java.lang.String, java.lang.String> getGroup() {
       return getGroupMap();
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
     @java.lang.Override
 
-    public java.util.Map<java.lang.String, java.lang.Integer> getGroupMap() {
+    public java.util.Map<java.lang.String, java.lang.String> getGroupMap() {
       return internalGetGroup().getMap();
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
     @java.lang.Override
 
-    public int getGroupOrDefault(
+    public java.lang.String getGroupOrDefault(
         java.lang.String key,
-        int defaultValue) {
+        java.lang.String defaultValue) {
       if (key == null) { throw new java.lang.NullPointerException(); }
-      java.util.Map<java.lang.String, java.lang.Integer> map =
+      java.util.Map<java.lang.String, java.lang.String> map =
           internalGetGroup().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
     @java.lang.Override
 
-    public int getGroupOrThrow(
+    public java.lang.String getGroupOrThrow(
         java.lang.String key) {
       if (key == null) { throw new java.lang.NullPointerException(); }
-      java.util.Map<java.lang.String, java.lang.Integer> map =
+      java.util.Map<java.lang.String, java.lang.String> map =
           internalGetGroup().getMap();
       if (!map.containsKey(key)) {
         throw new java.lang.IllegalArgumentException();
@@ -829,7 +829,7 @@ private static final long serialVersionUID = 0L;
       return this;
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
 
     public Builder removeGroup(
@@ -843,28 +843,28 @@ private static final long serialVersionUID = 0L;
      * Use alternate mutation accessors instead.
      */
     @java.lang.Deprecated
-    public java.util.Map<java.lang.String, java.lang.Integer>
+    public java.util.Map<java.lang.String, java.lang.String>
     getMutableGroup() {
       return internalGetMutableGroup().getMutableMap();
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
     public Builder putGroup(
         java.lang.String key,
-        int value) {
+        java.lang.String value) {
       if (key == null) { throw new java.lang.NullPointerException(); }
-      
+      if (value == null) { throw new java.lang.NullPointerException(); }
       internalGetMutableGroup().getMutableMap()
           .put(key, value);
       return this;
     }
     /**
-     * <code>map&lt;string, int32&gt; group = 3;</code>
+     * <code>map&lt;string, string&gt; group = 3;</code>
      */
 
     public Builder putAllGroup(
-        java.util.Map<java.lang.String, java.lang.Integer> values) {
+        java.util.Map<java.lang.String, java.lang.String> values) {
       internalGetMutableGroup().getMutableMap()
           .putAll(values);
       return this;

+ 10 - 10
abtest-client/src/main/java/com/tzld/piaoquan/abtest/client/model/GroupInfoProtoOrBuilder.java

@@ -30,11 +30,11 @@ public interface GroupInfoProtoOrBuilder extends
       getChainBytes();
 
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
   int getGroupCount();
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
   boolean containsGroup(
       java.lang.String key);
@@ -42,24 +42,24 @@ public interface GroupInfoProtoOrBuilder extends
    * Use {@link #getGroupMap()} instead.
    */
   @java.lang.Deprecated
-  java.util.Map<java.lang.String, java.lang.Integer>
+  java.util.Map<java.lang.String, java.lang.String>
   getGroup();
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
-  java.util.Map<java.lang.String, java.lang.Integer>
+  java.util.Map<java.lang.String, java.lang.String>
   getGroupMap();
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
 
-  int getGroupOrDefault(
+  java.lang.String getGroupOrDefault(
       java.lang.String key,
-      int defaultValue);
+      java.lang.String defaultValue);
   /**
-   * <code>map&lt;string, int32&gt; group = 3;</code>
+   * <code>map&lt;string, string&gt; group = 3;</code>
    */
 
-  int getGroupOrThrow(
+  java.lang.String getGroupOrThrow(
       java.lang.String key);
 }

+ 1 - 1
abtest-client/src/main/proto/com/tzld/piaoquan/abtest/group.proto

@@ -17,7 +17,7 @@ message GetGroupRequest {
 message GroupInfoProto {
   int64 date = 1; // 分组生成时间
   string chain = 2;
-  map<string, int32> group = 3;
+  map<string, string> group = 3;
 }
 
 message GetGroupResponse {

+ 8 - 8
abtest-service/src/main/java/com/tzld/piaoquan/abtest/service/GroupService.java

@@ -80,39 +80,39 @@ public class GroupService {
             log.info("ExperimentInterceptor scene {}", scene);
 
             //TODO 2. 根据场景 确定策略并分组
-            Map<String, Integer> oldGroupMap = request.hasGroupInfo()
+            Map<String, String> oldGroupMap = request.hasGroupInfo()
                     ? request.getGroupInfo().getGroupMap()
                     : Collections.emptyMap();
-            Map<String, Integer> groupMap = new HashMap<>();
+            Map<String, String> groupMap = new HashMap<>();
             for (ExpConfig.Layer layer : layers) {
                 int bucketNum = layer.getBucketNum() <= 0 ? 100 : layer.getBucketNum();
                 Map<String, String> groupRule = layer.getGroupRule();
                 if (MapUtils.isEmpty(groupRule)) {
                     // random
-                    groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum));
+                    groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum) + "");
                 } else {
                     String policy = groupRule.get(scene);
                     if (org.apache.commons.lang.StringUtils.isBlank(policy)) {
                         // random
-                        groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum));
+                        groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum) + "");
                     }
                     switch (policy) {
 
                         case "inherit":
                             groupMap.put(layer.getLayerId(), oldGroupMap.getOrDefault(layer.getLayerId(),
-                                    RandomUtils.nextInt(0, bucketNum)));
+                                    RandomUtils.nextInt(0, bucketNum) + ""));
                             break;
                         case "random_once":
                             if (!isToday(time)) {
-                                groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum));
+                                groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum) + "");
                             } else {
                                 groupMap.put(layer.getLayerId(), oldGroupMap.getOrDefault(layer.getLayerId(),
-                                        RandomUtils.nextInt(0, bucketNum)));
+                                        RandomUtils.nextInt(0, bucketNum) + ""));
                             }
                             break;
                         case "random_every":
                         default:
-                            groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum));
+                            groupMap.put(layer.getLayerId(), RandomUtils.nextInt(0, bucketNum) + "");
                             break;
                     }
                 }