最早设计多商户在线客服系统的时候,没有给每一个商家设置一个唯一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