ソースを参照

request context

丁云鹏 1 年間 前
コミット
bee54d39bb

+ 1387 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/MachineInfoProto.java

@@ -0,0 +1,1387 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: com/tzld/piaoquan/recommend/server/recommend.proto
+
+package com.tzld.piaoquan.recommend.server.gen.recommend;
+
+/**
+ * Protobuf type {@code MachineInfoProto}
+ */
+public final class MachineInfoProto extends
+    com.google.protobuf.GeneratedMessageV3 implements
+    // @@protoc_insertion_point(message_implements:MachineInfoProto)
+    MachineInfoProtoOrBuilder {
+private static final long serialVersionUID = 0L;
+  // Use MachineInfoProto.newBuilder() to construct.
+  private MachineInfoProto(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+  private MachineInfoProto() {
+    brand_ = "";
+    model_ = "";
+    platform_ = "";
+    sdkVersion_ = "";
+    system_ = "";
+    wechatVersion_ = "";
+  }
+
+  @java.lang.Override
+  @SuppressWarnings({"unused"})
+  protected java.lang.Object newInstance(
+      UnusedPrivateParameter unused) {
+    return new MachineInfoProto();
+  }
+
+  @java.lang.Override
+  public final com.google.protobuf.UnknownFieldSet
+  getUnknownFields() {
+    return this.unknownFields;
+  }
+  private MachineInfoProto(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new java.lang.NullPointerException();
+    }
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 10: {
+            java.lang.String s = input.readStringRequireUtf8();
+
+            brand_ = s;
+            break;
+          }
+          case 18: {
+            java.lang.String s = input.readStringRequireUtf8();
+
+            model_ = s;
+            break;
+          }
+          case 26: {
+            java.lang.String s = input.readStringRequireUtf8();
+
+            platform_ = s;
+            break;
+          }
+          case 34: {
+            java.lang.String s = input.readStringRequireUtf8();
+
+            sdkVersion_ = s;
+            break;
+          }
+          case 42: {
+            java.lang.String s = input.readStringRequireUtf8();
+
+            system_ = s;
+            break;
+          }
+          case 50: {
+            java.lang.String s = input.readStringRequireUtf8();
+
+            wechatVersion_ = s;
+            break;
+          }
+          default: {
+            if (!parseUnknownField(
+                input, unknownFields, extensionRegistry, tag)) {
+              done = true;
+            }
+            break;
+          }
+        }
+      }
+    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+      throw e.setUnfinishedMessage(this);
+    } catch (java.io.IOException e) {
+      throw new com.google.protobuf.InvalidProtocolBufferException(
+          e).setUnfinishedMessage(this);
+    } finally {
+      this.unknownFields = unknownFields.build();
+      makeExtensionsImmutable();
+    }
+  }
+  public static final com.google.protobuf.Descriptors.Descriptor
+      getDescriptor() {
+    return com.tzld.piaoquan.recommend.server.gen.recommend.Recommend.internal_static_MachineInfoProto_descriptor;
+  }
+
+  @java.lang.Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return com.tzld.piaoquan.recommend.server.gen.recommend.Recommend.internal_static_MachineInfoProto_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.class, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder.class);
+  }
+
+  public static final int BRAND_FIELD_NUMBER = 1;
+  private volatile java.lang.Object brand_;
+  /**
+   * <code>string brand = 1;</code>
+   * @return The brand.
+   */
+  @java.lang.Override
+  public java.lang.String getBrand() {
+    java.lang.Object ref = brand_;
+    if (ref instanceof java.lang.String) {
+      return (java.lang.String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      java.lang.String s = bs.toStringUtf8();
+      brand_ = s;
+      return s;
+    }
+  }
+  /**
+   * <code>string brand = 1;</code>
+   * @return The bytes for brand.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString
+      getBrandBytes() {
+    java.lang.Object ref = brand_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (java.lang.String) ref);
+      brand_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int MODEL_FIELD_NUMBER = 2;
+  private volatile java.lang.Object model_;
+  /**
+   * <pre>
+   * NZA-AL00
+   * </pre>
+   *
+   * <code>string model = 2;</code>
+   * @return The model.
+   */
+  @java.lang.Override
+  public java.lang.String getModel() {
+    java.lang.Object ref = model_;
+    if (ref instanceof java.lang.String) {
+      return (java.lang.String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      java.lang.String s = bs.toStringUtf8();
+      model_ = s;
+      return s;
+    }
+  }
+  /**
+   * <pre>
+   * NZA-AL00
+   * </pre>
+   *
+   * <code>string model = 2;</code>
+   * @return The bytes for model.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString
+      getModelBytes() {
+    java.lang.Object ref = model_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (java.lang.String) ref);
+      model_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int PLATFORM_FIELD_NUMBER = 3;
+  private volatile java.lang.Object platform_;
+  /**
+   * <pre>
+   * android
+   * </pre>
+   *
+   * <code>string platform = 3;</code>
+   * @return The platform.
+   */
+  @java.lang.Override
+  public java.lang.String getPlatform() {
+    java.lang.Object ref = platform_;
+    if (ref instanceof java.lang.String) {
+      return (java.lang.String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      java.lang.String s = bs.toStringUtf8();
+      platform_ = s;
+      return s;
+    }
+  }
+  /**
+   * <pre>
+   * android
+   * </pre>
+   *
+   * <code>string platform = 3;</code>
+   * @return The bytes for platform.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString
+      getPlatformBytes() {
+    java.lang.Object ref = platform_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (java.lang.String) ref);
+      platform_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int SDK_VERSION_FIELD_NUMBER = 4;
+  private volatile java.lang.Object sdkVersion_;
+  /**
+   * <pre>
+   * 3.2.4
+   * </pre>
+   *
+   * <code>string sdk_version = 4;</code>
+   * @return The sdkVersion.
+   */
+  @java.lang.Override
+  public java.lang.String getSdkVersion() {
+    java.lang.Object ref = sdkVersion_;
+    if (ref instanceof java.lang.String) {
+      return (java.lang.String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      java.lang.String s = bs.toStringUtf8();
+      sdkVersion_ = s;
+      return s;
+    }
+  }
+  /**
+   * <pre>
+   * 3.2.4
+   * </pre>
+   *
+   * <code>string sdk_version = 4;</code>
+   * @return The bytes for sdkVersion.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString
+      getSdkVersionBytes() {
+    java.lang.Object ref = sdkVersion_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (java.lang.String) ref);
+      sdkVersion_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int SYSTEM_FIELD_NUMBER = 5;
+  private volatile java.lang.Object system_;
+  /**
+   * <pre>
+   * Android 10
+   * </pre>
+   *
+   * <code>string system = 5;</code>
+   * @return The system.
+   */
+  @java.lang.Override
+  public java.lang.String getSystem() {
+    java.lang.Object ref = system_;
+    if (ref instanceof java.lang.String) {
+      return (java.lang.String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      java.lang.String s = bs.toStringUtf8();
+      system_ = s;
+      return s;
+    }
+  }
+  /**
+   * <pre>
+   * Android 10
+   * </pre>
+   *
+   * <code>string system = 5;</code>
+   * @return The bytes for system.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString
+      getSystemBytes() {
+    java.lang.Object ref = system_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (java.lang.String) ref);
+      system_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int WECHAT_VERSION_FIELD_NUMBER = 6;
+  private volatile java.lang.Object wechatVersion_;
+  /**
+   * <pre>
+   * 8.0.43
+   * </pre>
+   *
+   * <code>string wechat_version = 6;</code>
+   * @return The wechatVersion.
+   */
+  @java.lang.Override
+  public java.lang.String getWechatVersion() {
+    java.lang.Object ref = wechatVersion_;
+    if (ref instanceof java.lang.String) {
+      return (java.lang.String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      java.lang.String s = bs.toStringUtf8();
+      wechatVersion_ = s;
+      return s;
+    }
+  }
+  /**
+   * <pre>
+   * 8.0.43
+   * </pre>
+   *
+   * <code>string wechat_version = 6;</code>
+   * @return The bytes for wechatVersion.
+   */
+  @java.lang.Override
+  public com.google.protobuf.ByteString
+      getWechatVersionBytes() {
+    java.lang.Object ref = wechatVersion_;
+    if (ref instanceof java.lang.String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (java.lang.String) ref);
+      wechatVersion_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  private byte memoizedIsInitialized = -1;
+  @java.lang.Override
+  public final boolean isInitialized() {
+    byte isInitialized = memoizedIsInitialized;
+    if (isInitialized == 1) return true;
+    if (isInitialized == 0) return false;
+
+    memoizedIsInitialized = 1;
+    return true;
+  }
+
+  @java.lang.Override
+  public void writeTo(com.google.protobuf.CodedOutputStream output)
+                      throws java.io.IOException {
+    if (!getBrandBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, brand_);
+    }
+    if (!getModelBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, model_);
+    }
+    if (!getPlatformBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, platform_);
+    }
+    if (!getSdkVersionBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 4, sdkVersion_);
+    }
+    if (!getSystemBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 5, system_);
+    }
+    if (!getWechatVersionBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 6, wechatVersion_);
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @java.lang.Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getBrandBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, brand_);
+    }
+    if (!getModelBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, model_);
+    }
+    if (!getPlatformBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, platform_);
+    }
+    if (!getSdkVersionBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, sdkVersion_);
+    }
+    if (!getSystemBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, system_);
+    }
+    if (!getWechatVersionBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, wechatVersion_);
+    }
+    size += unknownFields.getSerializedSize();
+    memoizedSize = size;
+    return size;
+  }
+
+  @java.lang.Override
+  public boolean equals(final java.lang.Object obj) {
+    if (obj == this) {
+     return true;
+    }
+    if (!(obj instanceof com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto)) {
+      return super.equals(obj);
+    }
+    com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto other = (com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto) obj;
+
+    if (!getBrand()
+        .equals(other.getBrand())) return false;
+    if (!getModel()
+        .equals(other.getModel())) return false;
+    if (!getPlatform()
+        .equals(other.getPlatform())) return false;
+    if (!getSdkVersion()
+        .equals(other.getSdkVersion())) return false;
+    if (!getSystem()
+        .equals(other.getSystem())) return false;
+    if (!getWechatVersion()
+        .equals(other.getWechatVersion())) return false;
+    if (!unknownFields.equals(other.unknownFields)) return false;
+    return true;
+  }
+
+  @java.lang.Override
+  public int hashCode() {
+    if (memoizedHashCode != 0) {
+      return memoizedHashCode;
+    }
+    int hash = 41;
+    hash = (19 * hash) + getDescriptor().hashCode();
+    hash = (37 * hash) + BRAND_FIELD_NUMBER;
+    hash = (53 * hash) + getBrand().hashCode();
+    hash = (37 * hash) + MODEL_FIELD_NUMBER;
+    hash = (53 * hash) + getModel().hashCode();
+    hash = (37 * hash) + PLATFORM_FIELD_NUMBER;
+    hash = (53 * hash) + getPlatform().hashCode();
+    hash = (37 * hash) + SDK_VERSION_FIELD_NUMBER;
+    hash = (53 * hash) + getSdkVersion().hashCode();
+    hash = (37 * hash) + SYSTEM_FIELD_NUMBER;
+    hash = (53 * hash) + getSystem().hashCode();
+    hash = (37 * hash) + WECHAT_VERSION_FIELD_NUMBER;
+    hash = (53 * hash) + getWechatVersion().hashCode();
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      java.nio.ByteBuffer data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      com.google.protobuf.ByteString data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      byte[] data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      java.io.InputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input, extensionRegistry);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseDelimitedFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseDelimitedWithIOException(PARSER, input);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseDelimitedFrom(
+      java.io.InputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      com.google.protobuf.CodedInputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input);
+  }
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parseFrom(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input, extensionRegistry);
+  }
+
+  @java.lang.Override
+  public Builder newBuilderForType() { return newBuilder(); }
+  public static Builder newBuilder() {
+    return DEFAULT_INSTANCE.toBuilder();
+  }
+  public static Builder newBuilder(com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto prototype) {
+    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+  }
+  @java.lang.Override
+  public Builder toBuilder() {
+    return this == DEFAULT_INSTANCE
+        ? new Builder() : new Builder().mergeFrom(this);
+  }
+
+  @java.lang.Override
+  protected Builder newBuilderForType(
+      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+    Builder builder = new Builder(parent);
+    return builder;
+  }
+  /**
+   * Protobuf type {@code MachineInfoProto}
+   */
+  public static final class Builder extends
+      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+      // @@protoc_insertion_point(builder_implements:MachineInfoProto)
+      com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return com.tzld.piaoquan.recommend.server.gen.recommend.Recommend.internal_static_MachineInfoProto_descriptor;
+    }
+
+    @java.lang.Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return com.tzld.piaoquan.recommend.server.gen.recommend.Recommend.internal_static_MachineInfoProto_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.class, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder.class);
+    }
+
+    // Construct using com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.newBuilder()
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
+
+    private Builder(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      super(parent);
+      maybeForceBuilderInitialization();
+    }
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3
+              .alwaysUseFieldBuilders) {
+      }
+    }
+    @java.lang.Override
+    public Builder clear() {
+      super.clear();
+      brand_ = "";
+
+      model_ = "";
+
+      platform_ = "";
+
+      sdkVersion_ = "";
+
+      system_ = "";
+
+      wechatVersion_ = "";
+
+      return this;
+    }
+
+    @java.lang.Override
+    public com.google.protobuf.Descriptors.Descriptor
+        getDescriptorForType() {
+      return com.tzld.piaoquan.recommend.server.gen.recommend.Recommend.internal_static_MachineInfoProto_descriptor;
+    }
+
+    @java.lang.Override
+    public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto getDefaultInstanceForType() {
+      return com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.getDefaultInstance();
+    }
+
+    @java.lang.Override
+    public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto build() {
+      com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @java.lang.Override
+    public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto buildPartial() {
+      com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto result = new com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto(this);
+      result.brand_ = brand_;
+      result.model_ = model_;
+      result.platform_ = platform_;
+      result.sdkVersion_ = sdkVersion_;
+      result.system_ = system_;
+      result.wechatVersion_ = wechatVersion_;
+      onBuilt();
+      return result;
+    }
+
+    @java.lang.Override
+    public Builder clone() {
+      return super.clone();
+    }
+    @java.lang.Override
+    public Builder setField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        java.lang.Object value) {
+      return super.setField(field, value);
+    }
+    @java.lang.Override
+    public Builder clearField(
+        com.google.protobuf.Descriptors.FieldDescriptor field) {
+      return super.clearField(field);
+    }
+    @java.lang.Override
+    public Builder clearOneof(
+        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+      return super.clearOneof(oneof);
+    }
+    @java.lang.Override
+    public Builder setRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        int index, java.lang.Object value) {
+      return super.setRepeatedField(field, index, value);
+    }
+    @java.lang.Override
+    public Builder addRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        java.lang.Object value) {
+      return super.addRepeatedField(field, value);
+    }
+    @java.lang.Override
+    public Builder mergeFrom(com.google.protobuf.Message other) {
+      if (other instanceof com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto) {
+        return mergeFrom((com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto)other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto other) {
+      if (other == com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.getDefaultInstance()) return this;
+      if (!other.getBrand().isEmpty()) {
+        brand_ = other.brand_;
+        onChanged();
+      }
+      if (!other.getModel().isEmpty()) {
+        model_ = other.model_;
+        onChanged();
+      }
+      if (!other.getPlatform().isEmpty()) {
+        platform_ = other.platform_;
+        onChanged();
+      }
+      if (!other.getSdkVersion().isEmpty()) {
+        sdkVersion_ = other.sdkVersion_;
+        onChanged();
+      }
+      if (!other.getSystem().isEmpty()) {
+        system_ = other.system_;
+        onChanged();
+      }
+      if (!other.getWechatVersion().isEmpty()) {
+        wechatVersion_ = other.wechatVersion_;
+        onChanged();
+      }
+      this.mergeUnknownFields(other.unknownFields);
+      onChanged();
+      return this;
+    }
+
+    @java.lang.Override
+    public final boolean isInitialized() {
+      return true;
+    }
+
+    @java.lang.Override
+    public Builder mergeFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private java.lang.Object brand_ = "";
+    /**
+     * <code>string brand = 1;</code>
+     * @return The brand.
+     */
+    public java.lang.String getBrand() {
+      java.lang.Object ref = brand_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        brand_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     * <code>string brand = 1;</code>
+     * @return The bytes for brand.
+     */
+    public com.google.protobuf.ByteString
+        getBrandBytes() {
+      java.lang.Object ref = brand_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        brand_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <code>string brand = 1;</code>
+     * @param value The brand to set.
+     * @return This builder for chaining.
+     */
+    public Builder setBrand(
+        java.lang.String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      brand_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <code>string brand = 1;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearBrand() {
+      
+      brand_ = getDefaultInstance().getBrand();
+      onChanged();
+      return this;
+    }
+    /**
+     * <code>string brand = 1;</code>
+     * @param value The bytes for brand to set.
+     * @return This builder for chaining.
+     */
+    public Builder setBrandBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      brand_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object model_ = "";
+    /**
+     * <pre>
+     * NZA-AL00
+     * </pre>
+     *
+     * <code>string model = 2;</code>
+     * @return The model.
+     */
+    public java.lang.String getModel() {
+      java.lang.Object ref = model_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        model_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     * <pre>
+     * NZA-AL00
+     * </pre>
+     *
+     * <code>string model = 2;</code>
+     * @return The bytes for model.
+     */
+    public com.google.protobuf.ByteString
+        getModelBytes() {
+      java.lang.Object ref = model_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        model_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <pre>
+     * NZA-AL00
+     * </pre>
+     *
+     * <code>string model = 2;</code>
+     * @param value The model to set.
+     * @return This builder for chaining.
+     */
+    public Builder setModel(
+        java.lang.String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      model_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * NZA-AL00
+     * </pre>
+     *
+     * <code>string model = 2;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearModel() {
+      
+      model_ = getDefaultInstance().getModel();
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * NZA-AL00
+     * </pre>
+     *
+     * <code>string model = 2;</code>
+     * @param value The bytes for model to set.
+     * @return This builder for chaining.
+     */
+    public Builder setModelBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      model_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object platform_ = "";
+    /**
+     * <pre>
+     * android
+     * </pre>
+     *
+     * <code>string platform = 3;</code>
+     * @return The platform.
+     */
+    public java.lang.String getPlatform() {
+      java.lang.Object ref = platform_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        platform_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     * <pre>
+     * android
+     * </pre>
+     *
+     * <code>string platform = 3;</code>
+     * @return The bytes for platform.
+     */
+    public com.google.protobuf.ByteString
+        getPlatformBytes() {
+      java.lang.Object ref = platform_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        platform_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <pre>
+     * android
+     * </pre>
+     *
+     * <code>string platform = 3;</code>
+     * @param value The platform to set.
+     * @return This builder for chaining.
+     */
+    public Builder setPlatform(
+        java.lang.String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      platform_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * android
+     * </pre>
+     *
+     * <code>string platform = 3;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearPlatform() {
+      
+      platform_ = getDefaultInstance().getPlatform();
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * android
+     * </pre>
+     *
+     * <code>string platform = 3;</code>
+     * @param value The bytes for platform to set.
+     * @return This builder for chaining.
+     */
+    public Builder setPlatformBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      platform_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object sdkVersion_ = "";
+    /**
+     * <pre>
+     * 3.2.4
+     * </pre>
+     *
+     * <code>string sdk_version = 4;</code>
+     * @return The sdkVersion.
+     */
+    public java.lang.String getSdkVersion() {
+      java.lang.Object ref = sdkVersion_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        sdkVersion_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     * <pre>
+     * 3.2.4
+     * </pre>
+     *
+     * <code>string sdk_version = 4;</code>
+     * @return The bytes for sdkVersion.
+     */
+    public com.google.protobuf.ByteString
+        getSdkVersionBytes() {
+      java.lang.Object ref = sdkVersion_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        sdkVersion_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <pre>
+     * 3.2.4
+     * </pre>
+     *
+     * <code>string sdk_version = 4;</code>
+     * @param value The sdkVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setSdkVersion(
+        java.lang.String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      sdkVersion_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * 3.2.4
+     * </pre>
+     *
+     * <code>string sdk_version = 4;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearSdkVersion() {
+      
+      sdkVersion_ = getDefaultInstance().getSdkVersion();
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * 3.2.4
+     * </pre>
+     *
+     * <code>string sdk_version = 4;</code>
+     * @param value The bytes for sdkVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setSdkVersionBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      sdkVersion_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object system_ = "";
+    /**
+     * <pre>
+     * Android 10
+     * </pre>
+     *
+     * <code>string system = 5;</code>
+     * @return The system.
+     */
+    public java.lang.String getSystem() {
+      java.lang.Object ref = system_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        system_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     * <pre>
+     * Android 10
+     * </pre>
+     *
+     * <code>string system = 5;</code>
+     * @return The bytes for system.
+     */
+    public com.google.protobuf.ByteString
+        getSystemBytes() {
+      java.lang.Object ref = system_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        system_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <pre>
+     * Android 10
+     * </pre>
+     *
+     * <code>string system = 5;</code>
+     * @param value The system to set.
+     * @return This builder for chaining.
+     */
+    public Builder setSystem(
+        java.lang.String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      system_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * Android 10
+     * </pre>
+     *
+     * <code>string system = 5;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearSystem() {
+      
+      system_ = getDefaultInstance().getSystem();
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * Android 10
+     * </pre>
+     *
+     * <code>string system = 5;</code>
+     * @param value The bytes for system to set.
+     * @return This builder for chaining.
+     */
+    public Builder setSystemBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      system_ = value;
+      onChanged();
+      return this;
+    }
+
+    private java.lang.Object wechatVersion_ = "";
+    /**
+     * <pre>
+     * 8.0.43
+     * </pre>
+     *
+     * <code>string wechat_version = 6;</code>
+     * @return The wechatVersion.
+     */
+    public java.lang.String getWechatVersion() {
+      java.lang.Object ref = wechatVersion_;
+      if (!(ref instanceof java.lang.String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        java.lang.String s = bs.toStringUtf8();
+        wechatVersion_ = s;
+        return s;
+      } else {
+        return (java.lang.String) ref;
+      }
+    }
+    /**
+     * <pre>
+     * 8.0.43
+     * </pre>
+     *
+     * <code>string wechat_version = 6;</code>
+     * @return The bytes for wechatVersion.
+     */
+    public com.google.protobuf.ByteString
+        getWechatVersionBytes() {
+      java.lang.Object ref = wechatVersion_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (java.lang.String) ref);
+        wechatVersion_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <pre>
+     * 8.0.43
+     * </pre>
+     *
+     * <code>string wechat_version = 6;</code>
+     * @param value The wechatVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setWechatVersion(
+        java.lang.String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      wechatVersion_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * 8.0.43
+     * </pre>
+     *
+     * <code>string wechat_version = 6;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearWechatVersion() {
+      
+      wechatVersion_ = getDefaultInstance().getWechatVersion();
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * 8.0.43
+     * </pre>
+     *
+     * <code>string wechat_version = 6;</code>
+     * @param value The bytes for wechatVersion to set.
+     * @return This builder for chaining.
+     */
+    public Builder setWechatVersionBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      wechatVersion_ = value;
+      onChanged();
+      return this;
+    }
+    @java.lang.Override
+    public final Builder setUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.setUnknownFields(unknownFields);
+    }
+
+    @java.lang.Override
+    public final Builder mergeUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.mergeUnknownFields(unknownFields);
+    }
+
+
+    // @@protoc_insertion_point(builder_scope:MachineInfoProto)
+  }
+
+  // @@protoc_insertion_point(class_scope:MachineInfoProto)
+  private static final com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto DEFAULT_INSTANCE;
+  static {
+    DEFAULT_INSTANCE = new com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto();
+  }
+
+  public static com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<MachineInfoProto>
+      PARSER = new com.google.protobuf.AbstractParser<MachineInfoProto>() {
+    @java.lang.Override
+    public MachineInfoProto parsePartialFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return new MachineInfoProto(input, extensionRegistry);
+    }
+  };
+
+  public static com.google.protobuf.Parser<MachineInfoProto> parser() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.google.protobuf.Parser<MachineInfoProto> getParserForType() {
+    return PARSER;
+  }
+
+  @java.lang.Override
+  public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+
+}
+

+ 121 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/MachineInfoProtoOrBuilder.java

@@ -0,0 +1,121 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: com/tzld/piaoquan/recommend/server/recommend.proto
+
+package com.tzld.piaoquan.recommend.server.gen.recommend;
+
+public interface MachineInfoProtoOrBuilder extends
+    // @@protoc_insertion_point(interface_extends:MachineInfoProto)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   * <code>string brand = 1;</code>
+   * @return The brand.
+   */
+  java.lang.String getBrand();
+  /**
+   * <code>string brand = 1;</code>
+   * @return The bytes for brand.
+   */
+  com.google.protobuf.ByteString
+      getBrandBytes();
+
+  /**
+   * <pre>
+   * NZA-AL00
+   * </pre>
+   *
+   * <code>string model = 2;</code>
+   * @return The model.
+   */
+  java.lang.String getModel();
+  /**
+   * <pre>
+   * NZA-AL00
+   * </pre>
+   *
+   * <code>string model = 2;</code>
+   * @return The bytes for model.
+   */
+  com.google.protobuf.ByteString
+      getModelBytes();
+
+  /**
+   * <pre>
+   * android
+   * </pre>
+   *
+   * <code>string platform = 3;</code>
+   * @return The platform.
+   */
+  java.lang.String getPlatform();
+  /**
+   * <pre>
+   * android
+   * </pre>
+   *
+   * <code>string platform = 3;</code>
+   * @return The bytes for platform.
+   */
+  com.google.protobuf.ByteString
+      getPlatformBytes();
+
+  /**
+   * <pre>
+   * 3.2.4
+   * </pre>
+   *
+   * <code>string sdk_version = 4;</code>
+   * @return The sdkVersion.
+   */
+  java.lang.String getSdkVersion();
+  /**
+   * <pre>
+   * 3.2.4
+   * </pre>
+   *
+   * <code>string sdk_version = 4;</code>
+   * @return The bytes for sdkVersion.
+   */
+  com.google.protobuf.ByteString
+      getSdkVersionBytes();
+
+  /**
+   * <pre>
+   * Android 10
+   * </pre>
+   *
+   * <code>string system = 5;</code>
+   * @return The system.
+   */
+  java.lang.String getSystem();
+  /**
+   * <pre>
+   * Android 10
+   * </pre>
+   *
+   * <code>string system = 5;</code>
+   * @return The bytes for system.
+   */
+  com.google.protobuf.ByteString
+      getSystemBytes();
+
+  /**
+   * <pre>
+   * 8.0.43
+   * </pre>
+   *
+   * <code>string wechat_version = 6;</code>
+   * @return The wechatVersion.
+   */
+  java.lang.String getWechatVersion();
+  /**
+   * <pre>
+   * 8.0.43
+   * </pre>
+   *
+   * <code>string wechat_version = 6;</code>
+   * @return The bytes for wechatVersion.
+   */
+  com.google.protobuf.ByteString
+      getWechatVersionBytes();
+}

+ 33 - 17
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/Recommend.java

@@ -24,6 +24,11 @@ public final class Recommend {
   static final 
     com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
       internal_static_RecommendRequest_EventIdEntry_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_MachineInfoProto_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_MachineInfoProto_fieldAccessorTable;
   static final com.google.protobuf.Descriptors.Descriptor
     internal_static_RecommendResponse_descriptor;
   static final 
@@ -46,7 +51,7 @@ public final class Recommend {
       "\n2com/tzld/piaoquan/recommend/server/rec" +
       "ommend.proto\032\031google/protobuf/any.proto\032" +
       "/com/tzld/piaoquan/recommend/server/comm" +
-      "on.proto\"\355\002\n\020RecommendRequest\022\022\n\nrequest" +
+      "on.proto\"\226\003\n\020RecommendRequest\022\022\n\nrequest" +
       "_id\030\001 \001(\t\022\013\n\003mid\030\002 \001(\t\022\013\n\003uid\030\003 \001(\t\022\014\n\004s" +
       "ize\030\004 \001(\005\022\020\n\010app_type\030\005 \001(\005\022\021\n\tcity_code" +
       "\030\006 \001(\t\022\025\n\rprovince_code\030\007 \001(\t\022\023\n\013ab_exp_" +
@@ -54,19 +59,24 @@ public final class Recommend {
       "Request.EventIdEntry\022\034\n\024version_audit_st" +
       "atus\030\n \001(\005\022\032\n\022recommend_trace_id\030\013 \001(\t\022\020" +
       "\n\010video_id\030\014 \001(\003\022\014\n\004city\030\r \001(\t\022\020\n\010provin" +
-      "ce\030\016 \001(\t\032.\n\014EventIdEntry\022\013\n\003key\030\001 \001(\t\022\r\n" +
-      "\005value\030\002 \001(\t:\0028\001\"H\n\021RecommendResponse\022\027\n" +
-      "\006result\030\001 \001(\0132\007.Result\022\032\n\005video\030\002 \003(\0132\013." +
-      "VideoProto\"\265\001\n\nVideoProto\022\020\n\010video_id\030\001 " +
-      "\001(\003\022\021\n\trov_score\030\002 \001(\001\022\021\n\tpush_from\030\003 \001(" +
-      "\t\022\017\n\007ab_code\030\004 \001(\t\022\022\n\nsort_score\030\005 \001(\001\022\020" +
-      "\n\010position\030\006 \001(\005\022\021\n\tflow_pool\030\007 \001(\t\022\027\n\017i" +
-      "s_in_flow_pool\030\010 \001(\005\022\014\n\004rand\030\t \001(\0012\212\001\n\020R" +
-      "ecommendService\022:\n\021HomepageRecommend\022\021.R" +
-      "ecommendRequest\032\022.RecommendResponse\022:\n\021R" +
-      "elevantRecommend\022\021.RecommendRequest\032\022.Re" +
-      "commendResponseB7\n0com.tzld.piaoquan.rec" +
-      "ommend.server.gen.recommendP\001\210\001\001b\006proto3"
+      "ce\030\016 \001(\t\022\'\n\014machine_info\030\017 \001(\0132\021.Machine" +
+      "InfoProto\032.\n\014EventIdEntry\022\013\n\003key\030\001 \001(\t\022\r" +
+      "\n\005value\030\002 \001(\t:\0028\001\"\177\n\020MachineInfoProto\022\r\n" +
+      "\005brand\030\001 \001(\t\022\r\n\005model\030\002 \001(\t\022\020\n\010platform\030" +
+      "\003 \001(\t\022\023\n\013sdk_version\030\004 \001(\t\022\016\n\006system\030\005 \001" +
+      "(\t\022\026\n\016wechat_version\030\006 \001(\t\"H\n\021RecommendR" +
+      "esponse\022\027\n\006result\030\001 \001(\0132\007.Result\022\032\n\005vide" +
+      "o\030\002 \003(\0132\013.VideoProto\"\265\001\n\nVideoProto\022\020\n\010v" +
+      "ideo_id\030\001 \001(\003\022\021\n\trov_score\030\002 \001(\001\022\021\n\tpush" +
+      "_from\030\003 \001(\t\022\017\n\007ab_code\030\004 \001(\t\022\022\n\nsort_sco" +
+      "re\030\005 \001(\001\022\020\n\010position\030\006 \001(\005\022\021\n\tflow_pool\030" +
+      "\007 \001(\t\022\027\n\017is_in_flow_pool\030\010 \001(\005\022\014\n\004rand\030\t" +
+      " \001(\0012\212\001\n\020RecommendService\022:\n\021HomepageRec" +
+      "ommend\022\021.RecommendRequest\032\022.RecommendRes" +
+      "ponse\022:\n\021RelevantRecommend\022\021.RecommendRe" +
+      "quest\032\022.RecommendResponseB7\n0com.tzld.pi" +
+      "aoquan.recommend.server.gen.recommendP\001\210" +
+      "\001\001b\006proto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -79,21 +89,27 @@ public final class Recommend {
     internal_static_RecommendRequest_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_RecommendRequest_descriptor,
-        new java.lang.String[] { "RequestId", "Mid", "Uid", "Size", "AppType", "CityCode", "ProvinceCode", "AbExpCode", "EventId", "VersionAuditStatus", "RecommendTraceId", "VideoId", "City", "Province", });
+        new java.lang.String[] { "RequestId", "Mid", "Uid", "Size", "AppType", "CityCode", "ProvinceCode", "AbExpCode", "EventId", "VersionAuditStatus", "RecommendTraceId", "VideoId", "City", "Province", "MachineInfo", });
     internal_static_RecommendRequest_EventIdEntry_descriptor =
       internal_static_RecommendRequest_descriptor.getNestedTypes().get(0);
     internal_static_RecommendRequest_EventIdEntry_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_RecommendRequest_EventIdEntry_descriptor,
         new java.lang.String[] { "Key", "Value", });
-    internal_static_RecommendResponse_descriptor =
+    internal_static_MachineInfoProto_descriptor =
       getDescriptor().getMessageTypes().get(1);
+    internal_static_MachineInfoProto_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_MachineInfoProto_descriptor,
+        new java.lang.String[] { "Brand", "Model", "Platform", "SdkVersion", "System", "WechatVersion", });
+    internal_static_RecommendResponse_descriptor =
+      getDescriptor().getMessageTypes().get(2);
     internal_static_RecommendResponse_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_RecommendResponse_descriptor,
         new java.lang.String[] { "Result", "Video", });
     internal_static_VideoProto_descriptor =
-      getDescriptor().getMessageTypes().get(2);
+      getDescriptor().getMessageTypes().get(3);
     internal_static_VideoProto_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_VideoProto_descriptor,

+ 188 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequest.java

@@ -148,6 +148,19 @@ private static final long serialVersionUID = 0L;
             province_ = s;
             break;
           }
+          case 122: {
+            com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder subBuilder = null;
+            if (machineInfo_ != null) {
+              subBuilder = machineInfo_.toBuilder();
+            }
+            machineInfo_ = input.readMessage(com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.parser(), extensionRegistry);
+            if (subBuilder != null) {
+              subBuilder.mergeFrom(machineInfo_);
+              machineInfo_ = subBuilder.buildPartial();
+            }
+
+            break;
+          }
           default: {
             if (!parseUnknownField(
                 input, unknownFields, extensionRegistry, tag)) {
@@ -671,6 +684,32 @@ private static final long serialVersionUID = 0L;
     }
   }
 
+  public static final int MACHINE_INFO_FIELD_NUMBER = 15;
+  private com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto machineInfo_;
+  /**
+   * <code>.MachineInfoProto machine_info = 15;</code>
+   * @return Whether the machineInfo field is set.
+   */
+  @java.lang.Override
+  public boolean hasMachineInfo() {
+    return machineInfo_ != null;
+  }
+  /**
+   * <code>.MachineInfoProto machine_info = 15;</code>
+   * @return The machineInfo.
+   */
+  @java.lang.Override
+  public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto getMachineInfo() {
+    return machineInfo_ == null ? com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.getDefaultInstance() : machineInfo_;
+  }
+  /**
+   * <code>.MachineInfoProto machine_info = 15;</code>
+   */
+  @java.lang.Override
+  public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder getMachineInfoOrBuilder() {
+    return getMachineInfo();
+  }
+
   private byte memoizedIsInitialized = -1;
   @java.lang.Override
   public final boolean isInitialized() {
@@ -730,6 +769,9 @@ private static final long serialVersionUID = 0L;
     if (!getProvinceBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 14, province_);
     }
+    if (machineInfo_ != null) {
+      output.writeMessage(15, getMachineInfo());
+    }
     unknownFields.writeTo(output);
   }
 
@@ -797,6 +839,10 @@ private static final long serialVersionUID = 0L;
     if (!getProvinceBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, province_);
     }
+    if (machineInfo_ != null) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeMessageSize(15, getMachineInfo());
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -840,6 +886,11 @@ private static final long serialVersionUID = 0L;
         .equals(other.getCity())) return false;
     if (!getProvince()
         .equals(other.getProvince())) return false;
+    if (hasMachineInfo() != other.hasMachineInfo()) return false;
+    if (hasMachineInfo()) {
+      if (!getMachineInfo()
+          .equals(other.getMachineInfo())) return false;
+    }
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -884,6 +935,10 @@ private static final long serialVersionUID = 0L;
     hash = (53 * hash) + getCity().hashCode();
     hash = (37 * hash) + PROVINCE_FIELD_NUMBER;
     hash = (53 * hash) + getProvince().hashCode();
+    if (hasMachineInfo()) {
+      hash = (37 * hash) + MACHINE_INFO_FIELD_NUMBER;
+      hash = (53 * hash) + getMachineInfo().hashCode();
+    }
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -1066,6 +1121,12 @@ private static final long serialVersionUID = 0L;
 
       province_ = "";
 
+      if (machineInfoBuilder_ == null) {
+        machineInfo_ = null;
+      } else {
+        machineInfo_ = null;
+        machineInfoBuilder_ = null;
+      }
       return this;
     }
 
@@ -1112,6 +1173,11 @@ private static final long serialVersionUID = 0L;
       result.videoId_ = videoId_;
       result.city_ = city_;
       result.province_ = province_;
+      if (machineInfoBuilder_ == null) {
+        result.machineInfo_ = machineInfo_;
+      } else {
+        result.machineInfo_ = machineInfoBuilder_.build();
+      }
       onBuilt();
       return result;
     }
@@ -1216,6 +1282,9 @@ private static final long serialVersionUID = 0L;
         province_ = other.province_;
         onChanged();
       }
+      if (other.hasMachineInfo()) {
+        mergeMachineInfo(other.getMachineInfo());
+      }
       this.mergeUnknownFields(other.unknownFields);
       onChanged();
       return this;
@@ -2251,6 +2320,125 @@ private static final long serialVersionUID = 0L;
       onChanged();
       return this;
     }
+
+    private com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto machineInfo_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+        com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder> machineInfoBuilder_;
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     * @return Whether the machineInfo field is set.
+     */
+    public boolean hasMachineInfo() {
+      return machineInfoBuilder_ != null || machineInfo_ != null;
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     * @return The machineInfo.
+     */
+    public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto getMachineInfo() {
+      if (machineInfoBuilder_ == null) {
+        return machineInfo_ == null ? com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.getDefaultInstance() : machineInfo_;
+      } else {
+        return machineInfoBuilder_.getMessage();
+      }
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    public Builder setMachineInfo(com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto value) {
+      if (machineInfoBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        machineInfo_ = value;
+        onChanged();
+      } else {
+        machineInfoBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    public Builder setMachineInfo(
+        com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder builderForValue) {
+      if (machineInfoBuilder_ == null) {
+        machineInfo_ = builderForValue.build();
+        onChanged();
+      } else {
+        machineInfoBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    public Builder mergeMachineInfo(com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto value) {
+      if (machineInfoBuilder_ == null) {
+        if (machineInfo_ != null) {
+          machineInfo_ =
+            com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.newBuilder(machineInfo_).mergeFrom(value).buildPartial();
+        } else {
+          machineInfo_ = value;
+        }
+        onChanged();
+      } else {
+        machineInfoBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    public Builder clearMachineInfo() {
+      if (machineInfoBuilder_ == null) {
+        machineInfo_ = null;
+        onChanged();
+      } else {
+        machineInfo_ = null;
+        machineInfoBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder getMachineInfoBuilder() {
+      
+      onChanged();
+      return getMachineInfoFieldBuilder().getBuilder();
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    public com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder getMachineInfoOrBuilder() {
+      if (machineInfoBuilder_ != null) {
+        return machineInfoBuilder_.getMessageOrBuilder();
+      } else {
+        return machineInfo_ == null ?
+            com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.getDefaultInstance() : machineInfo_;
+      }
+    }
+    /**
+     * <code>.MachineInfoProto machine_info = 15;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+        com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder> 
+        getMachineInfoFieldBuilder() {
+      if (machineInfoBuilder_ == null) {
+        machineInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+            com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto.Builder, com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder>(
+                getMachineInfo(),
+                getParentForChildren(),
+                isClean());
+        machineInfo_ = null;
+      }
+      return machineInfoBuilder_;
+    }
     @java.lang.Override
     public final Builder setUnknownFields(
         final com.google.protobuf.UnknownFieldSet unknownFields) {

+ 15 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequestOrBuilder.java

@@ -197,4 +197,19 @@ public interface RecommendRequestOrBuilder extends
    */
   com.google.protobuf.ByteString
       getProvinceBytes();
+
+  /**
+   * <code>.MachineInfoProto machine_info = 15;</code>
+   * @return Whether the machineInfo field is set.
+   */
+  boolean hasMachineInfo();
+  /**
+   * <code>.MachineInfoProto machine_info = 15;</code>
+   * @return The machineInfo.
+   */
+  com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto getMachineInfo();
+  /**
+   * <code>.MachineInfoProto machine_info = 15;</code>
+   */
+  com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProtoOrBuilder getMachineInfoOrBuilder();
 }

+ 15 - 0
recommend-server-client/src/main/proto/com/tzld/piaoquan/recommend/server/recommend.proto

@@ -23,6 +23,21 @@ message RecommendRequest {
   int64 video_id = 12;
   string city = 13;
   string province = 14;
+  MachineInfoProto machine_info = 15;
+}
+
+message MachineInfoProto {
+  string brand = 1;
+  // NZA-AL00
+  string model = 2;
+  // android
+  string platform = 3;
+  // 3.2.4
+  string sdk_version = 4;
+  // Android 10
+  string system = 5;
+  // 8.0.43
+  string wechat_version = 6;
 }
 
 // https://sls.console.aliyun.com/lognext/project/rov-server/logsearch/info

+ 4 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/RecommendParam.java

@@ -27,4 +27,8 @@ public class RecommendParam {
     private String mid;
     private int size;
     private String uid;
+    private MachineInfo machineInfo;
+    private String province;
+    private String city;
+
 }

+ 22 - 5
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -3,12 +3,13 @@ package com.tzld.piaoquan.recommend.server.service;
 import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
 import com.google.common.base.Stopwatch;
 import com.google.common.base.Strings;
-import com.tzld.piaoquan.recommend.server.common.base.RequestContext;
 import com.tzld.piaoquan.recommend.server.common.enums.AppTypeEnum;
 import com.tzld.piaoquan.recommend.server.gen.common.Result;
+import com.tzld.piaoquan.recommend.server.gen.recommend.MachineInfoProto;
 import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendRequest;
 import com.tzld.piaoquan.recommend.server.gen.recommend.RecommendResponse;
 import com.tzld.piaoquan.recommend.server.gen.recommend.VideoProto;
+import com.tzld.piaoquan.recommend.server.model.MachineInfo;
 import com.tzld.piaoquan.recommend.server.model.RecommendParam;
 import com.tzld.piaoquan.recommend.server.model.Video;
 import com.tzld.piaoquan.recommend.server.service.flowpool.FlowPoolConfigService;
@@ -206,6 +207,9 @@ public class RecommendService {
         param.setCityCode(request.getCityCode());
         param.setProvinceCode(request.getProvinceCode());
         param.setAppType(request.getAppType());
+        param.setProvince(request.getProvince());
+        param.setCity(request.getCity());
+
 
         String abInitialConfig = ab_initial_config_map.getOrDefault(request.getAppType(), "095-1");
         Map<String, String> abExpCode = abExpCodeMap.getOrDefault(abInitialConfig, Collections.emptyMap());
@@ -271,6 +275,19 @@ public class RecommendService {
             }
         }
 
+        if (request.hasMachineInfo()) {
+            MachineInfoProto machineInfoProto = request.getMachineInfo();
+            MachineInfo machineInfo = new MachineInfo();
+            machineInfo.setBrand(machineInfoProto.getBrand());
+            machineInfo.setModel(machineInfoProto.getModel());
+            machineInfo.setPlatform(machineInfoProto.getPlatform());
+            machineInfo.setSdkVersion(machineInfoProto.getSdkVersion());
+            machineInfo.setSystem(machineInfoProto.getSystem());
+            machineInfo.setWechatVersion(machineInfoProto.getWechatVersion());
+            param.setMachineInfo(machineInfo);
+        }
+
+
         return param;
     }
 
@@ -340,11 +357,11 @@ public class RecommendService {
         rankParam.setTopK(param.getTopK());
         rankParam.setRankKeyPrefix(param.getRankKeyPrefix());
         rankParam.setAppType(param.getAppType());
+        rankParam.setUid(param.getUid());
+        rankParam.setProvince(param.getProvince());
+        rankParam.setCity(param.getCity());
+        rankParam.setMachineInfo(param.getMachineInfo());
 
-        // TODO RequestContext
-        RequestContext context = new RequestContext();
-
-        //rankParam.setRequestContext(context);
         return rankParam;
     }
 

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankParam.java

@@ -18,8 +18,8 @@ public class RankParam {
     private int appType;
     private boolean specialRecommend;
     private String uid;
-    private String cityCode;
-
+    private String province;
+    private String city;
     private MachineInfo machineInfo;
 
 }

+ 2 - 2
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java

@@ -186,8 +186,8 @@ public class RankService {
         context.setApptype(param.getAppType() + "");
 
         // TODO 地域转换
-//        context.setRegion();
-//        context.setCity();
+        context.setRegion(param.getProvince());
+        context.setCity(param.getCity());
 
         Calendar calendar = Calendar.getInstance();
         context.setWeek((calendar.get(Calendar.DAY_OF_WEEK) + 6) % 7 + "");