github.com/SupenBysz/gf-admin-community@v0.7.4/utility/invite_id/invite_id.go (about)

     1  package invite_id
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/gogf/gf/v2/text/gstr"
     6  	"strconv"
     7  )
     8  
     9  func TestFunc() {
    10  	var id int64 = 7063052439322693
    11  	code := InviteIdToCode(id)
    12  
    13  	inviteId := CodeToInviteId(code)
    14  	fmt.Println(inviteId == id)
    15  }
    16  
    17  // InviteIdToCode 邀约id转换为code: id --> 32位编码 --> 全部转为大写 --> code
    18  func InviteIdToCode(id int64) string {
    19  	// id编码成32进制
    20  	id32 := strconv.FormatInt(id, 32)
    21  
    22  	// 转为大写
    23  	idStr := gstr.ToUpper(id32)
    24  
    25  	return idStr
    26  }
    27  
    28  // CodeToInviteId 邀约code转为原始id:code --> 全部转小写 --> 32位解码 --> id
    29  func CodeToInviteId(idStr string) int64 {
    30  	// 大写转小写
    31  	idLower := gstr.ToLower(idStr)
    32  
    33  	// 32进制解码成id
    34  	id64, _ := strconv.ParseInt(idLower, 32, 0)
    35  
    36  	return id64
    37  }