package test import ( "crypto/md5" "fmt" "git.echol.cn/loser/lckt/global" "go.uber.org/zap" "golang.org/x/crypto/bcrypt" "math/rand" "net/http" "net/url" "strings" "testing" "time" ) const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" func TestRain(t *testing.T) { num := GenerateOrderNum() fmt.Println("生成的订单号:", num) } func GenerateOrderNum() string { rand.Seed(time.Now().UnixNano()) // 拼接用户ID和随机数 data := fmt.Sprintf("%d%d", 6, rand.Intn(1000000)) hash := md5.Sum([]byte(data)) code := "" for i := 0; i < 12; i++ { // 取哈希的前6位,每位映射到字符集 code += string(charset[int(hash[i])%len(charset)]) } return code } func TestPwd(t *testing.T) { password, _ := bcrypt.GenerateFromPassword([]byte("loser7659"), bcrypt.DefaultCost) fmt.Println(string(password)) err := bcrypt.CompareHashAndPassword(password, []byte("122456")) if err != nil { fmt.Println("密码错误") } else { fmt.Println("密码正确") } } func TestCode(t *testing.T) { rand.New(rand.NewSource(time.Now().UnixNano())) verifyCode := fmt.Sprintf("%06v", rand.Int31n(1000000)) // 测试验证码生成 sendCode(verifyCode) } func sendCode(code string) { // 内容 通过urlEncode编码 content := "【海口龙华铁坚成电子商务商行】您的验证码是" + code + "。如非本人操作,请忽略本短信" // urlencode编码内容 content = url.QueryEscape(content) api := "https://api.smsbao.com/sms?u=lchz5599&p=7ea114c87a224cd38a0d616b9be3faed&g=海口龙华铁坚成电子商务商行&m=17754945397&c=" + content // 发送GET请求 resp, err := http.Get(api) if err != nil { fmt.Println("请求失败:", err) return } defer resp.Body.Close() if resp.StatusCode == http.StatusOK { fmt.Println("请求成功,短信发送成功") } else { fmt.Println("请求失败,状态码:", resp.StatusCode) } } func TestTime(t *testing.T) { // 默认未过期,获取过期时间+30天 // 将 existingTeacherVip.ExpireAt转为time.Time类型 parse, err := time.Parse("2006-01-02", "2025-09-10") if err != nil { global.GVA_LOG.Error("转换过期时间出错", zap.Error(err)) return } after := time.Now().After(parse) fmt.Println(after) } func TestTask(t *testing.T) { fmt.Println(GetTeacherName("https://lckt.oss-cn-hangzhou.aliyuncs.com/lckt/uploads/2025-09-12/阿弟_6CO8KB8HCSJL_1757684981.jpg")) } func GetTeacherName(url string) string { lastSlash := strings.LastIndex(url, "/") underscore := strings.Index(url[lastSlash+1:], "_") if lastSlash == -1 || underscore == -1 { return "" } return url[lastSlash+1 : lastSlash+1+underscore] }