diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
index ec294cf..12186c8 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersonIdentity.java
@@ -1,15 +1,27 @@
 package com.supwisdom.dlpay.api.domain;
 
+import org.hibernate.annotations.GenericGenerator;
+
 import javax.persistence.*;
 import javax.validation.constraints.NotNull;
 
 @Entity
-@Table(name = "TB_PERSON_IDENTITY")
+@Table(name = "TB_PERSON_IDENTITY",
+        indexes = {@Index(name = "uid_soucetype_idx", columnList = "THIRD_UID,SOURCETYPE")})
 public class TPersonIdentity {
+
   @Id
+  @GenericGenerator(name = "idGenerator", strategy = "uuid")
+  @GeneratedValue(generator = "idGenerator")
+  @Column(name = "PID", length = 32)
+  private String pid;
+
   @Column(name = "THIRD_UID", nullable = false, length = 60)
   private String thirdUid;
 
+  @Column(name = "SOURCETYPE", length = 20)
+  private String sourcetype;
+
   @ManyToOne(fetch = FetchType.LAZY)
   @JoinColumn(name = "USERID")
   private TPerson person; //绑定的系统用户
@@ -33,34 +45,24 @@
   @NotNull
   private String tenantid = "";
 
-  @Column(name = "ISSIGNED", length = 20)
-  private String issigned;
-
-  @Column(name = "SOURCETYPE", length = 20)
-  private String sourcetype;
-
-  @Column(name = "SOURCETYPEID", length = 64)
-  private String sourcetypeId;
-
   public TPersonIdentity() {
   }
 
-  public TPersonIdentity(String thirdUid, TPerson person, String status, Integer lossflag, Integer lockflag, String createtime,String issigned) {
+  public TPersonIdentity(String thirdUid, TPerson person, String status, Integer lossflag, Integer lockflag, String createtime) {
     this.thirdUid = thirdUid;
     this.person = person;
     this.status = status;
     this.lossflag = lossflag;
     this.lockflag = lockflag;
     this.createtime = createtime;
-    this.issigned = issigned;
   }
 
-  public String getIssigned() {
-    return issigned;
+  public String getPid() {
+    return pid;
   }
 
-  public void setIssigned(String issigned) {
-    this.issigned = issigned;
+  public void setPid(String pid) {
+    this.pid = pid;
   }
 
   public String getThirdUid() {
@@ -126,12 +128,4 @@
   public void setSourcetype(String sourcetype) {
     this.sourcetype = sourcetype;
   }
-
-  public String getSourcetypeId() {
-    return sourcetypeId;
-  }
-
-  public void setSourcetypeId(String sourcetypeId) {
-    this.sourcetypeId = sourcetypeId;
-  }
 }
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
index 1e026eb..c59dfd1 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java
@@ -85,6 +85,7 @@
   public static final String PAYTYPE_JS = "JS"; //JS内支付
   public static final String PAYTYPE_SM = "SM"; //SM内支付
 
+  public static final String SOURCETYPE_DEFAULT = "thirduid"; //第三方id默认
   /**
    * feetype
    * - 消费：折扣、搭伙费（管理费）
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt
index 460e113..1e0f5f2 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt
@@ -172,7 +172,7 @@
             if( transaction.transCode==TradeCode.TRANSCODE_JSPAY || transaction.transCode==TradeCode.TRANSCODE_SMPAY){
                 var p = personIdentityDao.getBySourcetype(transaction.personDtl.userid,transaction.sourceType)
                 if(p!=null){
-                    bean.openid = p.sourcetypeId
+                    bean.openid = p.thirdUid
                 }
             }
             bean.generaSign()
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index c19454b..3705427 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -85,6 +85,7 @@
             lossflag = 0
             lockflag = 0
             createtime = systemdatetime.hostdatetime
+            this.sourcetype = TradeDict.SOURCETYPE_DEFAULT
         }) //保存绑定关系
 
         return person
