model/user.go
@@ -27,6 +27,7 @@
      MenuIds      []uint            `json:"menuIds" gorm:"-"`                              // 菜单ID列表
      AuthorityId  uint              `json:"authorityId" gorm:"default:888;comment:用户角色ID"` // 用户角色ID
      Authority    Authority         `json:"authority" gorm:"foreignKey:AuthorityId"`
      SubUserIds   string            `json:"subUserIds" gorm:"sub_user_ids"` //下属员工用户id,用逗号分开
      gorm.Model   `json:"-"`
   }
@@ -283,10 +284,29 @@
   if err := db.Clauses(clause.OnConflict{
      Columns:   []clause.Column{{Name: "uuid"}},
      DoUpdates: clause.AssignmentColumns([]string{"uuid", "username", "user_type", "nick_name"}),
      DoUpdates: clause.AssignmentColumns([]string{"username", "user_type", "nick_name", "sub_user_ids"}),
   }).Create(&record).Error; err != nil {
      return fmt.Errorf("first or create err: %v, record: %+v", err, record)
   }
   return nil
}
type IdPair struct {
   ID   int    `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"`
   UUID string `json:"uuid" gorm:"unique;type:varchar(255);comment:用户ID"`
}
func (slf *UserSearch) UUID2CrmUserId(userIds []string) ([]*IdPair, error) {
   var (
      records = make([]*IdPair, 0)
      db      = slf.build()
   )
   db = db.Where("uuid in ?", userIds)
   if err := db.Find(&records).Error; err != nil {
      return records, fmt.Errorf("find all err: %v", err)
   }
   return records, nil
}