提交 12352d0a authored 作者: mooncake's avatar mooncake

update

上级 1b0e8fec
......@@ -17,8 +17,8 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/tracer"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/rd/nacos"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/dxsf"
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/xsf"
......@@ -65,7 +65,7 @@ func parseInit() {
logger.Fatal(err.Error())
}
logger.Info("[xsf] initialized.")
if err := dxsf.Init(); err != nil {
if err := idutils.Init(); err != nil {
logger.Fatal(err.Error())
}
logger.Info("[dxsf] initialized.")
......
......@@ -189,35 +189,3 @@ extend:
server-addr: "http://car-public.car-iot:18306"
validate-sms: "/sms/validate" # 验证验证码
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" # 合伙人收益列表
......@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"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"
)
......
......@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"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"
)
......
......@@ -12,7 +12,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"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"
)
......
......@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"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"
)
......
......@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"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"
)
......
......@@ -11,7 +11,7 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/types"
xsfutils "gitlab.wanzhuangkj.com/tush/xpkg/pkg/email/xsf_utils"
"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"
)
......
......@@ -5,8 +5,8 @@ import (
"fmt"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
ctxutils "gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/dxsf"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/idutils"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/xsf"
)
......@@ -38,7 +38,7 @@ func EmailTplReceiverID(ctx context.Context) xsf.ID {
return generateID(ctx, bizTag_email_tpl_receiver)
}
func generateID(ctx context.Context, bizTag string) xsf.ID {
xsf, err := dxsf.GenerateID(ctx, bizTag)
xsf, err := idutils.GenerateID(ctx, bizTag)
if err != nil {
logger.Error(fmt.Sprintf("GenerateID[%s] failed", bizTag), logger.Err(err), ctxutils.CtxTraceIDField(ctx))
return xsf
......
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
}
......@@ -3,9 +3,12 @@ package goutils
import (
"context"
"runtime/debug"
"time"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/xerrors/xerror"
"gitlab.wanzhuangkj.com/tush/xpkg/xutils/ctxutils"
"golang.org/x/sync/errgroup"
)
func Recover() {
......@@ -26,3 +29,41 @@ func Go(ctx context.Context, f func()) {
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
}
package dxsf
package idutils
import (
"context"
......@@ -65,6 +65,10 @@ func generateSFID(_ context.Context, _ string) (xsf.ID, error) {
return xsf.GenerateID(), nil
}
func GenerateSFID() xsf.ID {
return xsf.GenerateID()
}
func generateApiID(ctx context.Context, bizTag string) (xsf.ID, error) {
url := fmt.Sprintf(`%s/api/leaf?biz_tag=%s`, leafAddr, bizTag)
var id xsf.ID
......
......@@ -3,27 +3,14 @@ package jsonutils
import (
"bytes"
"encoding/json"
"errors"
"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 {
err := json.Unmarshal(data, v)
if err != nil {
return errors.New(err.Error())
return xerror.New(err.Error())
}
return nil
}
......@@ -64,15 +51,19 @@ func MarshalIndentString(data any) string {
return string(d)
}
func ToJSONString(data interface{}) string {
if data == nil {
return ""
func ToJSONBytes(v any) []byte {
if v == nil {
return []byte{}
}
d, _ := json.Marshal(data)
return string(d)
bytes, _ := json.Marshal(v)
return bytes
}
func ToJSONString(v interface{}) string {
return string(ToJSONBytes(v))
}
func ToJSONStringPtr(data interface{}) *string {
v := ToJSONString(data)
func ToJSONStringPtr(d interface{}) *string {
v := ToJSONString(d)
return &v
}
......@@ -20,7 +20,7 @@ func Join[T any](rs []T, connector string) string {
}
strs := make([]string, 0, len(rs))
for _, r := range rs {
v := cast.ToString(r)
v := cast.ToString(r) // use cast
strs = append(strs, v)
}
return strings.Join(strs, connector)
......@@ -308,11 +308,11 @@ func ChunkSlice[T any](slice []T, chunkSize int) [][]T {
return chunks
}
type IJoin interface {
type IString interface {
String() string
}
func JoinStrs[T IJoin](rs []T, connector string) string {
func JoinStrs[T IString](rs []T, connector string) string {
if len(rs) == 0 {
return ""
}
......
package stringutils
import (
"context"
"regexp"
"strings"
)
......@@ -37,6 +39,32 @@ func UnderscoreToCamel(s string, isUpperFirst bool) 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 {
if len(rs) == 0 {
return false
......@@ -49,3 +77,49 @@ func AllNotEmpty(rs ...string) bool {
}
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()
}
......@@ -6,6 +6,6 @@ import (
"github.com/google/uuid"
)
func Gen() string {
func Random() string {
return strings.Replace(uuid.NewString(), "-", "", -1)
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论