order apis
This commit is contained in:
@@ -44,7 +44,7 @@ func GetSaltPassword(salt, password string) string {
|
||||
|
||||
// GetRandstring 取得随机字符串:使用字符串拼接
|
||||
func GetRandString(length int) string {
|
||||
if length < 1 {
|
||||
if length < NumberOne {
|
||||
return ""
|
||||
}
|
||||
char := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
@@ -53,7 +53,7 @@ func GetRandString(length int) string {
|
||||
ran := rand.New(rand.NewSource(time.Now().Unix()))
|
||||
|
||||
var rchar string = ""
|
||||
for i := 1; i <= length; i++ {
|
||||
for i := NumberOne; i <= length; i++ {
|
||||
rchar = rchar + charArr[ran.Intn(charlen)]
|
||||
}
|
||||
return rchar
|
||||
@@ -133,8 +133,8 @@ func DecryptPhoneReplace(mobile string) string {
|
||||
|
||||
func GetSearchPhone(mobile string) string {
|
||||
phone := StringEmpty
|
||||
if len(mobile) == 11 {
|
||||
prefix := mobile[NumberZero:3] // 前三位
|
||||
if len(mobile) == NumberEleven {
|
||||
prefix := mobile[NumberZero:NumberThree] // 前三位
|
||||
username, cErr := Crypto{}.AESEncryptECB(prefix)
|
||||
if cErr == nil {
|
||||
phone = username
|
||||
@@ -171,7 +171,7 @@ func GetSearchPhone(mobile string) string {
|
||||
|
||||
// GetRandstring 取得随机字符串:使用字符串拼接
|
||||
func GetRandstring(length int) string {
|
||||
if length < 1 {
|
||||
if length < NumberOne {
|
||||
return StringEmpty
|
||||
}
|
||||
char := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
@@ -180,7 +180,7 @@ func GetRandstring(length int) string {
|
||||
ran := rand.New(rand.NewSource(time.Now().Unix()))
|
||||
|
||||
var rchar string = StringEmpty
|
||||
for i := 1; i <= length; i++ {
|
||||
for i := NumberOne; i <= length; i++ {
|
||||
rchar = rchar + charArr[ran.Intn(charlen)]
|
||||
}
|
||||
return rchar
|
||||
|
||||
+24
-14
@@ -10,20 +10,22 @@ import (
|
||||
)
|
||||
|
||||
type UserInfo struct {
|
||||
ID int64
|
||||
Name string
|
||||
RawUID string
|
||||
Refresh string
|
||||
ClientIP string // 客户端ip
|
||||
UserAgent string // 完整原始ua
|
||||
BrowserName string // 浏览器名称
|
||||
BrowserVer string // 浏览器版本
|
||||
StoreName string // 店铺名称
|
||||
StoreId int64 // 店铺id
|
||||
SaleName string // 销售名称
|
||||
SaleId int64 // 销售id
|
||||
GroupId int64 // 分组ID
|
||||
Valid bool
|
||||
ID int64
|
||||
Name string
|
||||
RawUID string
|
||||
Refresh string
|
||||
ClientIP string // 客户端ip
|
||||
UserAgent string // 完整原始ua
|
||||
BrowserName string // 浏览器名称
|
||||
BrowserVer string // 浏览器版本
|
||||
StoreName string // 店铺名称
|
||||
StoreId int64 // 店铺id
|
||||
SaleName string // 销售名称
|
||||
SaleId int64 // 销售id
|
||||
SaleMobile string // 销售手机
|
||||
SaleProvince int64 // 销售省份
|
||||
GroupId int64 // 分组ID
|
||||
Valid bool
|
||||
}
|
||||
|
||||
func GetUserFromCtx(ctx context.Context) UserInfo {
|
||||
@@ -42,6 +44,8 @@ func GetUserFromCtx(ctx context.Context) UserInfo {
|
||||
saleName := md.Get("x-sale-name")
|
||||
saleId := md.Get("x-sale-id")
|
||||
groupId := md.Get("x-group-id")
|
||||
province := md.Get("x-sale-province")
|
||||
mobile := md.Get("x-sale-mobile")
|
||||
|
||||
if len(refreshList) == NumberZero {
|
||||
refreshList = md.Get("X-Refresh")
|
||||
@@ -62,6 +66,12 @@ func GetUserFromCtx(ctx context.Context) UserInfo {
|
||||
if len(saleName) > NumberZero {
|
||||
userInfo.SaleName = saleName[NumberZero]
|
||||
}
|
||||
if len(province) > NumberZero {
|
||||
userInfo.SaleProvince, _ = strconv.ParseInt(province[NumberZero], NumberTen, NumberSixtyFourth)
|
||||
}
|
||||
if len(mobile) > NumberZero {
|
||||
userInfo.SaleMobile = mobile[NumberZero]
|
||||
}
|
||||
if len(saleId) > NumberZero {
|
||||
userInfo.SaleId, _ = strconv.ParseInt(saleId[NumberZero], NumberTen, NumberSixtyFourth)
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ const (
|
||||
NumberSixteen = 16
|
||||
NumberThirtyTwo = 32
|
||||
NumberSixtyFourth = 64
|
||||
NumberThirty = 30
|
||||
|
||||
MaxSort uint16 = 999 //全局基础最大排序
|
||||
MinSort uint8 = 1 //全局基础最小排序
|
||||
|
||||
@@ -25,6 +25,11 @@ type CustomTime struct {
|
||||
time.Time
|
||||
}
|
||||
|
||||
func GetAfterMinutes(minutes int) CustomTime {
|
||||
t := time.Now().In(AsiaShanghai).Add(time.Duration(minutes) * time.Minute)
|
||||
return CustomTime{Time: t}
|
||||
}
|
||||
|
||||
// Now 获取当前时间
|
||||
func Now() CustomTime {
|
||||
return CustomTime{time.Now().In(AsiaShanghai)}
|
||||
|
||||
@@ -8,7 +8,6 @@ import (
|
||||
"math"
|
||||
"math/rand"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
@@ -25,57 +24,6 @@ var (
|
||||
once sync.Once // 保证全局只初始化一次,并发安全
|
||||
)
|
||||
|
||||
func IsMobile(mobile string) bool {
|
||||
// 手机号验证正则表达式(支持国内手机号)
|
||||
phoneRegex := regexp.MustCompile(`^1[3-9]\d{9}$`)
|
||||
return phoneRegex.MatchString(mobile)
|
||||
}
|
||||
|
||||
// 初始化随机数生成器(内部方法,外部无需调用)
|
||||
func initRandGenerator() {
|
||||
// 创建随机数源
|
||||
source := rand.NewSource(time.Now().UnixNano())
|
||||
// 基于源创建生成器
|
||||
randGen = rand.New(source)
|
||||
}
|
||||
|
||||
// GetRandNum 工程化生成四位随机数(0000-9999)
|
||||
func GetRandNum(number int) int {
|
||||
// 首次调用时初始化,后续调用直接复用,无重复初始化开销
|
||||
once.Do(initRandGenerator)
|
||||
// 生成0-9999随机数,格式化补零为4位
|
||||
return randGen.Intn(number)
|
||||
}
|
||||
|
||||
func UniqueId(typeStr string, id int) string {
|
||||
// 格式化补零:%04d 表示数字占4位,不足左侧补0
|
||||
return fmt.Sprintf("%s%010d%s%s", typeStr, id, time.Now().Format("20060102150405"), fmt.Sprintf("%04d", GetRandNum(10000)))
|
||||
}
|
||||
|
||||
// GenerateNickname 生成风格1:形容词+名词+随机数字(例:帅气小猫668)
|
||||
func GenerateNickname() string {
|
||||
var (
|
||||
// 形容词(修饰昵称)
|
||||
adjectives = []string{
|
||||
"帅气", "可爱", "温柔", "霸气", "呆萌", "高冷", "暖心", "潇洒",
|
||||
"元气", "佛系", "硬核", "软萌", "酷飒", "慵懒", "清爽",
|
||||
}
|
||||
// 名词(核心昵称)
|
||||
nouns = []string{
|
||||
"小猫", "小狗", "星辰", "大海", "清风", "明月", "云朵", "小鹿",
|
||||
"枫叶", "晚风", "暖阳", "星辰", "鲸鱼", "兔子", "小熊",
|
||||
}
|
||||
)
|
||||
adj := adjectives[rand.Intn(len(adjectives))]
|
||||
noun := nouns[rand.Intn(len(nouns))]
|
||||
var numStr strings.Builder
|
||||
for i := 0; i < 3; i++ {
|
||||
numStr.WriteByte(byte('0' + rand.Intn(10)))
|
||||
}
|
||||
num := numStr.String() // 2位随机数字
|
||||
return fmt.Sprintf("%s%s%s", adj, noun, num)
|
||||
}
|
||||
|
||||
// MD5Encrypt 封装MD5加密函数:输入字符串,返回32位小写MD5哈希值
|
||||
func MD5Encrypt(str string) string {
|
||||
// 1. 创建MD5哈希对象
|
||||
|
||||
Reference in New Issue
Block a user