Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xpkg
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
屠思豪
xpkg
Commits
12352d0a
提交
12352d0a
authored
10月 29, 2025
作者:
mooncake
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
1b0e8fec
显示空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
147 行增加
和
116 行删除
+147
-116
init_app.go
application/init_app.go
+2
-2
xpkg.yaml
config/xpkg.yaml
+0
-32
email.go
pkg/email/service/email.go
+1
-1
email_receiver.go
pkg/email/service/email_receiver.go
+1
-1
email_send.go
pkg/email/service/email_send.go
+1
-1
email_send_log.go
pkg/email/service/email_send_log.go
+1
-1
email_tpl.go
pkg/email/service/email_tpl.go
+1
-1
email_tpl_receiver.go
pkg/email/service/email_tpl_receiver.go
+1
-1
xsf_utils.go
pkg/email/xsf_utils/xsf_utils.go
+3
-3
.DS_Store
xutils/.DS_Store
+0
-0
csv_exporter.go
xutils/csvexporter/csv_exporter.go
+0
-0
eg.go
xutils/egutils/eg.go
+0
-47
go.go
xutils/goutils/go.go
+41
-0
idutils.go
xutils/idutils/idutils.go
+5
-1
json.go
xutils/jsonutils/json.go
+12
-21
xslice.go
xutils/sliceutils/xslice.go
+3
-3
xstring.go
xutils/stringutils/xstring.go
+74
-0
uri_utils.go
xutils/uriutils/uri_utils.go
+0
-0
xuuid.go
xutils/uuidutils/xuuid.go
+1
-1
没有找到文件。
application/init_app.go
浏览文件 @
12352d0a
...
@@ -17,8 +17,8 @@ import (
...
@@ -17,8 +17,8 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/tracer"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/tracer"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/rd/nacos"
"gitlab.wanzhuangkj.com/tush/xpkg/rd/nacos"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/dxsf"
goutils
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/goutils"
goutils
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/goutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/idutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/sliceutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
...
@@ -65,7 +65,7 @@ func parseInit() {
...
@@ -65,7 +65,7 @@ func parseInit() {
logger
.
Fatal
(
err
.
Error
())
logger
.
Fatal
(
err
.
Error
())
}
}
logger
.
Info
(
"[xsf] initialized."
)
logger
.
Info
(
"[xsf] initialized."
)
if
err
:=
dxsf
.
Init
();
err
!=
nil
{
if
err
:=
idutils
.
Init
();
err
!=
nil
{
logger
.
Fatal
(
err
.
Error
())
logger
.
Fatal
(
err
.
Error
())
}
}
logger
.
Info
(
"[dxsf] initialized."
)
logger
.
Info
(
"[dxsf] initialized."
)
...
...
config/xpkg.yaml
浏览文件 @
12352d0a
...
@@ -189,35 +189,3 @@ extend:
...
@@ -189,35 +189,3 @@ extend:
server-addr
:
"
http://car-public.car-iot:18306"
server-addr
:
"
http://car-public.car-iot:18306"
validate-sms
:
"
/sms/validate"
# 验证验证码
validate-sms
:
"
/sms/validate"
# 验证验证码
sms-send
:
"
/sms/fishSend"
# 发送短信(批量)
sms-send
:
"
/sms/fishSend"
# 发送短信(批量)
qt-pay
:
server-addr
:
"
http://qt-pay.qitu"
withdraw
:
"
/pay/acc/sub-account/withdraw"
withdraw-query
:
"
/pay/acc/sub-account/withdraw/query"
query-balance
:
"
/pay/acc/sub-account/balance/query"
baofu-intake
:
server-addr
:
"
https://dev-mid.hzqitu.com/baofu-entry"
sms-send
:
"
/insrv/common/sendCode"
upload
:
"
/insrv/common/uploadFile"
login
:
"
/front/user/login"
intake
:
"
/front/entry/register"
intake-query
:
"
/front/entry/registerInfo"
intake-qr-code
:
"
/front/entry/getAuthQrCode"
app-id
:
"
"
app-secret
:
"
"
pay-center
:
server-addr
:
"
http://service-pay.wz-service:18306"
# 支付中心
dg-pay
:
"
/pay/dougong"
# 斗拱支付
dg-refund
:
"
/refund/dougong"
# 斗拱退款
dg-refund-query
:
"
/refund/dougong_query"
# 斗拱支付退款查询
user
:
# 用户中心服务
server-addr
:
"
http://user-center2.wz-service:9901"
entry-record
:
"
/settle/getSettleListByMemberId"
# 入账记录
save-share-rate
:
"
/agent/shareGroupAddMulti"
# 保存合伙人分账
order
:
# 订单服务
server-addr
:
"
http://share.qitu"
profit
:
"
/profit/getProfitCurve"
# 最近两天收益
share-profit
:
"
/profit/getShareDayProfit"
# 合伙人日收益
big-data
:
# 数据中台
server-addr
:
"
http://mid-bigdata.wz-service:8000"
profit-report
:
"
/qitu/profit/report"
# 收益报表
share-income
:
"
/qitu/income/shareList"
# 合伙人收益列表
pkg/email/service/email.go
浏览文件 @
12352d0a
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csv
_
exporter"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
...
pkg/email/service/email_receiver.go
浏览文件 @
12352d0a
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csv
_
exporter"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
...
pkg/email/service/email_send.go
浏览文件 @
12352d0a
...
@@ -12,7 +12,7 @@ import (
...
@@ -12,7 +12,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csv
_
exporter"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
...
pkg/email/service/email_send_log.go
浏览文件 @
12352d0a
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csv
_
exporter"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
...
pkg/email/service/email_tpl.go
浏览文件 @
12352d0a
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csv
_
exporter"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
...
pkg/email/service/email_tpl_receiver.go
浏览文件 @
12352d0a
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
xsfutils
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
"gitlab.wanzhuangkj.com/tush/xpkg/xcommon"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csv
_
exporter"
csvexporter
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/csvexporter"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
...
pkg/email/xsf_utils/xsf_utils.go
浏览文件 @
12352d0a
...
@@ -5,8 +5,8 @@ import (
...
@@ -5,8 +5,8 @@ import (
"fmt"
"fmt"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
ctxutils
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/
dxsf
"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/
idutils
"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
)
...
@@ -38,7 +38,7 @@ func EmailTplReceiverID(ctx context.Context) xsf.ID {
...
@@ -38,7 +38,7 @@ func EmailTplReceiverID(ctx context.Context) xsf.ID {
return
generateID
(
ctx
,
bizTag_email_tpl_receiver
)
return
generateID
(
ctx
,
bizTag_email_tpl_receiver
)
}
}
func
generateID
(
ctx
context
.
Context
,
bizTag
string
)
xsf
.
ID
{
func
generateID
(
ctx
context
.
Context
,
bizTag
string
)
xsf
.
ID
{
xsf
,
err
:=
dxsf
.
GenerateID
(
ctx
,
bizTag
)
xsf
,
err
:=
idutils
.
GenerateID
(
ctx
,
bizTag
)
if
err
!=
nil
{
if
err
!=
nil
{
logger
.
Error
(
fmt
.
Sprintf
(
"GenerateID[%s] failed"
,
bizTag
),
logger
.
Err
(
err
),
ctxutils
.
CtxTraceIDField
(
ctx
))
logger
.
Error
(
fmt
.
Sprintf
(
"GenerateID[%s] failed"
,
bizTag
),
logger
.
Err
(
err
),
ctxutils
.
CtxTraceIDField
(
ctx
))
return
xsf
return
xsf
...
...
xutils/.DS_Store
0 → 100644
浏览文件 @
12352d0a
File added
xutils/csv
_
exporter/csv_exporter.go
→
xutils/csvexporter/csv_exporter.go
浏览文件 @
12352d0a
File moved
xutils/egutils/eg.go
deleted
100644 → 0
浏览文件 @
1b0e8fec
package
eg_utils
import
(
"context"
"time"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"golang.org/x/sync/errgroup"
)
type
FnCtx
func
(
ctx
context
.
Context
)
error
func
Do
(
ctx
context
.
Context
,
fns
...
FnCtx
)
error
{
if
len
(
fns
)
==
0
{
return
nil
}
ctx
,
cancel
:=
context
.
WithCancel
(
ctx
)
defer
cancel
()
eg
,
ctx
:=
errgroup
.
WithContext
(
ctx
)
for
_
,
fn
:=
range
fns
{
eg
.
Go
(
func
()
error
{
return
fn
(
ctx
)
})
}
if
err
:=
eg
.
Wait
();
err
!=
nil
{
return
xerror
.
New
(
err
.
Error
())
}
return
nil
}
func
DoWithTimeout
(
timeout
time
.
Duration
,
fns
...
FnCtx
)
error
{
if
len
(
fns
)
==
0
{
return
nil
}
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
timeout
)
defer
cancel
()
eg
,
ctx
:=
errgroup
.
WithContext
(
ctx
)
for
_
,
fn
:=
range
fns
{
eg
.
Go
(
func
()
error
{
return
fn
(
ctx
)
})
}
if
err
:=
eg
.
Wait
();
err
!=
nil
{
return
xerror
.
New
(
err
.
Error
())
}
return
nil
}
xutils/goutils/go.go
浏览文件 @
12352d0a
...
@@ -3,9 +3,12 @@ package goutils
...
@@ -3,9 +3,12 @@ package goutils
import
(
import
(
"context"
"context"
"runtime/debug"
"runtime/debug"
"time"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"golang.org/x/sync/errgroup"
)
)
func
Recover
()
{
func
Recover
()
{
...
@@ -26,3 +29,41 @@ func Go(ctx context.Context, f func()) {
...
@@ -26,3 +29,41 @@ func Go(ctx context.Context, f func()) {
f
()
f
()
}()
}()
}
}
type
FnCtx
func
(
ctx
context
.
Context
)
error
func
Do
(
ctx
context
.
Context
,
fns
...
FnCtx
)
error
{
if
len
(
fns
)
==
0
{
return
nil
}
ctx
,
cancel
:=
context
.
WithCancel
(
ctx
)
defer
cancel
()
eg
,
ctx
:=
errgroup
.
WithContext
(
ctx
)
for
_
,
fn
:=
range
fns
{
eg
.
Go
(
func
()
error
{
return
fn
(
ctx
)
})
}
if
err
:=
eg
.
Wait
();
err
!=
nil
{
return
xerror
.
New
(
err
.
Error
())
}
return
nil
}
func
DoWithTimeout
(
timeout
time
.
Duration
,
fns
...
FnCtx
)
error
{
if
len
(
fns
)
==
0
{
return
nil
}
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
timeout
)
defer
cancel
()
eg
,
ctx
:=
errgroup
.
WithContext
(
ctx
)
for
_
,
fn
:=
range
fns
{
eg
.
Go
(
func
()
error
{
return
fn
(
ctx
)
})
}
if
err
:=
eg
.
Wait
();
err
!=
nil
{
return
xerror
.
New
(
err
.
Error
())
}
return
nil
}
xutils/
dxsf/dxsf
.go
→
xutils/
idutils/idutils
.go
浏览文件 @
12352d0a
package
dxsf
package
idutils
import
(
import
(
"context"
"context"
...
@@ -65,6 +65,10 @@ func generateSFID(_ context.Context, _ string) (xsf.ID, error) {
...
@@ -65,6 +65,10 @@ func generateSFID(_ context.Context, _ string) (xsf.ID, error) {
return
xsf
.
GenerateID
(),
nil
return
xsf
.
GenerateID
(),
nil
}
}
func
GenerateSFID
()
xsf
.
ID
{
return
xsf
.
GenerateID
()
}
func
generateApiID
(
ctx
context
.
Context
,
bizTag
string
)
(
xsf
.
ID
,
error
)
{
func
generateApiID
(
ctx
context
.
Context
,
bizTag
string
)
(
xsf
.
ID
,
error
)
{
url
:=
fmt
.
Sprintf
(
`%s/api/leaf?biz_tag=%s`
,
leafAddr
,
bizTag
)
url
:=
fmt
.
Sprintf
(
`%s/api/leaf?biz_tag=%s`
,
leafAddr
,
bizTag
)
var
id
xsf
.
ID
var
id
xsf
.
ID
...
...
xutils/jsonutils/json.go
浏览文件 @
12352d0a
...
@@ -3,27 +3,14 @@ package jsonutils
...
@@ -3,27 +3,14 @@ package jsonutils
import
(
import
(
"bytes"
"bytes"
"encoding/json"
"encoding/json"
"errors"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
)
)
func
ToJsonString
(
v
any
)
string
{
return
string
(
ToJsonBytes
(
v
))
}
func
ToJsonBytes
(
v
any
)
[]
byte
{
if
v
==
nil
{
return
[]
byte
{}
}
bytes
,
_
:=
json
.
Marshal
(
v
)
return
bytes
}
func
Unmarshal
(
data
[]
byte
,
v
any
)
error
{
func
Unmarshal
(
data
[]
byte
,
v
any
)
error
{
err
:=
json
.
Unmarshal
(
data
,
v
)
err
:=
json
.
Unmarshal
(
data
,
v
)
if
err
!=
nil
{
if
err
!=
nil
{
return
errors
.
New
(
err
.
Error
())
return
xerror
.
New
(
err
.
Error
())
}
}
return
nil
return
nil
}
}
...
@@ -64,15 +51,19 @@ func MarshalIndentString(data any) string {
...
@@ -64,15 +51,19 @@ func MarshalIndentString(data any) string {
return
string
(
d
)
return
string
(
d
)
}
}
func
ToJSON
String
(
data
interface
{})
string
{
func
ToJSON
Bytes
(
v
any
)
[]
byte
{
if
data
==
nil
{
if
v
==
nil
{
return
""
return
[]
byte
{}
}
}
d
,
_
:=
json
.
Marshal
(
data
)
bytes
,
_
:=
json
.
Marshal
(
v
)
return
string
(
d
)
return
bytes
}
func
ToJSONString
(
v
interface
{})
string
{
return
string
(
ToJSONBytes
(
v
))
}
}
func
ToJSONStringPtr
(
d
ata
interface
{})
*
string
{
func
ToJSONStringPtr
(
d
interface
{})
*
string
{
v
:=
ToJSONString
(
d
ata
)
v
:=
ToJSONString
(
d
)
return
&
v
return
&
v
}
}
xutils/sliceutils/xslice.go
浏览文件 @
12352d0a
...
@@ -20,7 +20,7 @@ func Join[T any](rs []T, connector string) string {
...
@@ -20,7 +20,7 @@ func Join[T any](rs []T, connector string) string {
}
}
strs
:=
make
([]
string
,
0
,
len
(
rs
))
strs
:=
make
([]
string
,
0
,
len
(
rs
))
for
_
,
r
:=
range
rs
{
for
_
,
r
:=
range
rs
{
v
:=
cast
.
ToString
(
r
)
v
:=
cast
.
ToString
(
r
)
// use cast
strs
=
append
(
strs
,
v
)
strs
=
append
(
strs
,
v
)
}
}
return
strings
.
Join
(
strs
,
connector
)
return
strings
.
Join
(
strs
,
connector
)
...
@@ -308,11 +308,11 @@ func ChunkSlice[T any](slice []T, chunkSize int) [][]T {
...
@@ -308,11 +308,11 @@ func ChunkSlice[T any](slice []T, chunkSize int) [][]T {
return
chunks
return
chunks
}
}
type
I
Join
interface
{
type
I
String
interface
{
String
()
string
String
()
string
}
}
func
JoinStrs
[
T
I
Join
](
rs
[]
T
,
connector
string
)
string
{
func
JoinStrs
[
T
I
String
](
rs
[]
T
,
connector
string
)
string
{
if
len
(
rs
)
==
0
{
if
len
(
rs
)
==
0
{
return
""
return
""
}
}
...
...
xutils/stringutils/xstring.go
浏览文件 @
12352d0a
package
stringutils
package
stringutils
import
(
import
(
"context"
"regexp"
"strings"
"strings"
)
)
...
@@ -37,6 +39,32 @@ func UnderscoreToCamel(s string, isUpperFirst bool) string {
...
@@ -37,6 +39,32 @@ func UnderscoreToCamel(s string, isUpperFirst bool) string {
return
builder
.
String
()
return
builder
.
String
()
}
}
func
OneEmpty
(
rs
...
string
)
bool
{
if
len
(
rs
)
==
0
{
return
false
}
ret
:=
false
for
_
,
r
:=
range
rs
{
if
strings
.
TrimSpace
(
r
)
==
""
{
ret
=
true
}
}
return
ret
}
func
AllEmpty
(
rs
...
string
)
bool
{
if
len
(
rs
)
==
0
{
return
true
}
ret
:=
true
for
_
,
r
:=
range
rs
{
if
strings
.
TrimSpace
(
r
)
!=
""
{
ret
=
false
}
}
return
ret
}
func
AllNotEmpty
(
rs
...
string
)
bool
{
func
AllNotEmpty
(
rs
...
string
)
bool
{
if
len
(
rs
)
==
0
{
if
len
(
rs
)
==
0
{
return
false
return
false
...
@@ -49,3 +77,49 @@ func AllNotEmpty(rs ...string) bool {
...
@@ -49,3 +77,49 @@ func AllNotEmpty(rs ...string) bool {
}
}
return
ret
return
ret
}
}
func
MaskPhone
(
ctx
context
.
Context
,
phone
string
)
string
{
if
len
(
phone
)
!=
11
{
return
phone
// 非11位直接返回原字符串
}
matched
,
_
:=
regexp
.
MatchString
(
`^\d{11}$`
,
phone
)
if
!
matched
{
return
phone
}
return
phone
[
:
3
]
+
"****"
+
phone
[
7
:
]
}
func
MaskString
(
ctx
context
.
Context
,
text
string
,
keepFirst
,
keepLast
int
)
string
{
// 处理边界情况
if
keepFirst
<
0
{
keepFirst
=
0
}
if
keepLast
<
0
{
keepLast
=
0
}
runes
:=
[]
rune
(
text
)
length
:=
len
(
runes
)
// 如果字符串太短或超出限制,返回全掩码
if
length
<=
2
||
length
>
50
{
return
"******"
}
// 如果要保留的字符总数大于等于总长度,直接返回原文
if
keepFirst
+
keepLast
>=
length
{
return
text
}
var
b
strings
.
Builder
// 写入保留的前面字符
for
i
:=
0
;
i
<
keepFirst
&&
i
<
length
;
i
++
{
b
.
WriteRune
(
runes
[
i
])
}
// 写入掩码字符(中间部分)
maskCount
:=
length
-
keepFirst
-
keepLast
for
i
:=
0
;
i
<
maskCount
;
i
++
{
b
.
WriteRune
(
'*'
)
}
// 写入保留的后面字符
for
i
:=
length
-
keepLast
;
i
<
length
;
i
++
{
b
.
WriteRune
(
runes
[
i
])
}
return
b
.
String
()
}
xutils/uriutils/uri
U
tils.go
→
xutils/uriutils/uri
_u
tils.go
浏览文件 @
12352d0a
File moved
xutils/uuidutils/xuuid.go
浏览文件 @
12352d0a
...
@@ -6,6 +6,6 @@ import (
...
@@ -6,6 +6,6 @@ import (
"github.com/google/uuid"
"github.com/google/uuid"
)
)
func
Gen
()
string
{
func
Random
()
string
{
return
strings
.
Replace
(
uuid
.
NewString
(),
"-"
,
""
,
-
1
)
return
strings
.
Replace
(
uuid
.
NewString
(),
"-"
,
""
,
-
1
)
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论