zl程序教程

您现在的位置是:首页 >  其他

当前栏目

客服系统即时通讯IM开发(七)生成唯一身份UUID批量更新旧数据【唯一客服】网站在线客服系统

2023-03-07 09:42:48 时间

最早设计多商户在线客服系统的时候,没有给每一个商家设置一个唯一ID,是拿自增ID代替的。

现在给每个商家单独设计一个唯一UUID,生成好后更新到所有的用户数据里

生成UUID

package tools

import (
    "crypto/md5"
    "encoding/hex"
    "github.com/satori/go.uuid"
)

//生成uuid
func Uuid() string {
    u2 := uuid.NewV4()
    return u2.String()
}

//生成uuid,并且md5一下
func Uuid2() string {
    m := md5.New()
    m.Write([]byte(Uuid()))
    res := hex.EncodeToString(m.Sum(nil))
    return res
}

执行测试用例给旧数据批量更新UUID

func TestUpdateUserUuid(t *testing.T) {
    db := &DBTool{
        Username: "BT_DB_USERNAME",
        Password: "BT_DB_PASSWORD",
        Server:   "127.0.0.1",
        Port:     "3306",
        Database: "BT_DB_NAME",
    }
    res, err := db.QuerySql("select * from user")
    for _, row := range res {
        name := row["name"]
        sql := fmt.Sprintf("update user set uuid = '%s' where name = '%s'", tools.Uuid2(), name)
        db.ExecuteSql(sql)
    }
    log.Println(res, err)
}

go test -v lib\import.go lib\import_test.go --run TestUpdateUserUuid